diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..0ff4b37 Binary files /dev/null and b/.DS_Store differ diff --git a/.env.example b/.env.example index 1292607..71aeea9 100644 --- a/.env.example +++ b/.env.example @@ -11,7 +11,7 @@ LOG_LEVEL=debug DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 -DB_DATABASE=echoscoop +DB_DATABASE=FutureWalker DB_USERNAME=root DB_PASSWORD= diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 1ac517d..8fea6c2 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -2,11 +2,13 @@ namespace App\Console; -use App\Jobs\AISerpGenArticleJob; -use Carbon\Carbon; +use App\Jobs\BrowseAndWriteWithAIJob; +use App\Jobs\PublishIndexPostJob; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; +use App\Models\Post; + class Kernel extends ConsoleKernel { /** @@ -15,20 +17,17 @@ class Kernel extends ConsoleKernel protected function schedule(Schedule $schedule): void { - // AI Gen Scheduler + $schedule->call(function () { + BrowseAndWriteWithAIJob::dispatch()->onQueue('default')->onConnection('default'); + })->dailyAt('00:00'); - // $launched_date = Carbon::parse(intval(config('platform.global.launched_epoch'))); - // $days_since_launch = now()->diffInDays($launched_date) + 1; - // $posts_to_generate = get_exponential_posts_gen_by_day($days_since_launch); - // $mins_between_posts = floor((24 * 60) / $posts_to_generate); + $schedule->call(function () { + $future_post = Post::whereNotNull('published_at')->where('status','future')->where('published_at', '>=', now())->orderBy('published_at','ASC')->first(); - // $schedule->call(function () { - // AISerpGenArticleJob::dispatch()->onQueue('default')->onConnection('default'); - // })->everyMinute()->when(function () use ($mins_between_posts, $launched_date) { - // $minutes_since_launch = now()->diffInMinutes($launched_date); + PublishIndexPostJob::dispatch($future_post->id)->onQueue('default')->onConnection('default'); - // return $minutes_since_launch % $mins_between_posts === 0; - // }); + + })->everyMinute(); } diff --git a/app/Helpers/FirstParty/DFS/DFSSerp.php b/app/Helpers/FirstParty/DFS/DFSSerp.php new file mode 100644 index 0000000..c5f86eb --- /dev/null +++ b/app/Helpers/FirstParty/DFS/DFSSerp.php @@ -0,0 +1,44 @@ + $keyword, + 'location_name' => $location_name, + 'language_code' => $language_code, + ]; + + if (!is_empty($search_param)) + { + $query['search_param'] = $search_param; + } + + try { + $response = Http::timeout($api_timeout)->withBasicAuth(config('dataforseo.login'), config('dataforseo.password'))->withBody( + json_encode([(object) $query]) + )->post("{$api_url}{$api_version}serp/{$se}/{$se_type}/live/advanced"); + + if ($response->successful()) { + return $response->body(); + } + } catch (Exception $e) { + return null; + } + + return null; + + } +} diff --git a/app/Helpers/FirstParty/OpenAI/OpenAI.php b/app/Helpers/FirstParty/OpenAI/OpenAI.php index c2da8b6..6cee4f0 100644 --- a/app/Helpers/FirstParty/OpenAI/OpenAI.php +++ b/app/Helpers/FirstParty/OpenAI/OpenAI.php @@ -5,118 +5,184 @@ use Exception; use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Log; -use Illuminate\Support\Str; class OpenAI { - public static function writeArticle($title, $description, $article_type, $min, $max) + public static function getArticleMeta($user_prompt, $model_max_tokens = 1536, $timeout = 60) { - $system_prompt = " - Using the general article structure, please create a Markdown format article on the topic given. The article should prioritize accuracy and provide genuine value to readers. Avoid making assumptions or adding unverified facts. Ensure the article is between {$min}-{$max} words. Write with 8th & 9th grade US english standard.\n\n - Structure:\n\n - Title\n - Provide a headline that captures the essence of the article's focus and is tailored to the reader's needs.\n\n - Introduction\n - Offer a brief overview or background of the topic, ensuring it's engaging and invites readers to continue reading.\n\n - Main Body\n\n - Subsection\n - Introduce foundational information about the topic, ensuring content is accurate and based on known facts. Avoid generic or speculative statements.\n\n - Subsection (if applicable)\n - If helpful, use Markdown to create tables to convey comparison of data. Ensure data is accurate and relevant to the reader.\n\n - Subsection\n - Dive deep into primary elements or facets of the topic, ensuring content is factual and offers value.\n\n - Subsection\n - Discuss real-world applications or significance, highlighting practical implications or actionable insights for the reader.\n\n - Subsection (optional)\n - Provide context or relate the topic to relevant past events or trends, making it relatable and more comprehensive.\n\n - Subsection (if applicable)\n - Predict outcomes, trends, or ramifications, but ensure predictions are rooted in known information or logical reasoning.\n\n - Subsection\n - Summarise key points or lessons, ensuring they resonate with the initial objectives of the article and provide clear takeaways.\n\n - Conclusion\n - Revisit main points and offer final thoughts or recommendations that are actionable and beneficial to the reader.\n\n - FAQs (optional)\n - Address anticipated questions or misconceptions about the topic. Prioritize questions that readers are most likely to have and provide clear, concise answers based on factual information.\n - Q: Question\n\n - A: Answer\n - "; - $user_prompt = "Title: {$title}\nDescription: {$description}\nArticleType: {$article_type}"; + $openai_config = 'openai-gpt-4-turbo'; - return self::chatCompletion($system_prompt, $user_prompt, 'gpt-3.5-turbo', 1200); + $system_prompt = "Based on given article, populate the following in valid JSON format\n{\n\"title\":\"(Title based on article)\",\n\"keywords\":[\"(Important keywords in 1-2 words per keyword)\"],\n\"category\":\"(Updates|Opinions|Features|New Launches|How Tos|Reviews)\",\n\"summary\":\"(Summarise article in 80-100 words to help readers understand what article is about)\",\n\"entities\":[(List of companies, brands that are considered as main entites in 1-2 words. per entity)],\n\"society_impact\":[\"(Explain how this article content's can impact society on AI and\/or technology aspect )\"],\n\"society_impact_level:\"(low|medium|high)\"\n}"; + return self::getChatCompletion($user_prompt, $system_prompt, $openai_config, $model_max_tokens, $timeout); } - public static function createNewArticleTitle($current_title, $supporting_data) + public static function writeArticle($user_prompt, $model_max_tokens = 1536, $timeout = 180) { - $system_prompt = "Based on provided article title, identify the main keyword in 1-2 words. Once identified, use the main keyword only to generate an easy-to-read unique, helpful article title.\n\n - Requirements:\n - 2 descriptive photos keywords to represent article title when put together side-by-side\n - No realtime information required\n - No guides and how tos\n - No punctuation in titles especially colons :\n - 90-130 characters\n\n - return in following json format {\"main_keyword\":\"(Main Keyword)\",\"title\":\"(Title in 90-130 letters)\",\"short_title\":\"(Short Title in 30-40 letters)\",\"article_type\":\"(How-tos|Guides|Interview|Review|Commentary|Feature|News|Editorial|Report|Research|Case-study|Overview|Tutorial|Update|Spotlight|Insights)\",\"description\":\"(Summarize in max 120 letters, add cliffhanger is possible to attract readers)\",\"photo_keywords\":[\"photo keyword 1\",\"photo keyword 2\"]}"; + $openai_config = 'openai-gpt-3-5-turbo-1106'; - $supporting_data = Str::substr($supporting_data, 0, 2100); + $system_prompt = "Write a news article in US grade 9 English, approximately 600-800 words, formatted in Markdown. \n\nIMPORTANT RULES\n- Do not add photos, publish date, or author\n- Only have 1 heading, which is the article title\n- Write in the following article structure:\n# Main article title\n\nParagraph 1\n\nParagraph 2\n\nParagraph 3, etc.\n\nConclusion"; - $user_prompt = "Article Title: {$current_title}\n Article Description: {$supporting_data}\n"; - - $reply = self::chatCompletion($system_prompt, $user_prompt, 'gpt-3.5-turbo', 900); - - try { - return json_decode($reply, false); - } catch (Exception $e) { - return null; - } + return self::getChatCompletion($user_prompt, $system_prompt, $openai_config, $model_max_tokens, $timeout, 'text'); } - public static function suggestArticleTitles($current_title, $supporting_data, $suggestion_counts) + public static function titleSuggestions($user_prompt, $model_max_tokens = 512, $timeout = 60) { - $system_prompt = "Based on provided article title, identify the main keyword in 1-2 words. Once identified, use the main keyword only to generate {$suggestion_counts} easy-to-read unique, helpful title articles.\n\n - Requirements:\n - 2 descriptive photos keywords to represent article title when put together side-by-side\n - No realtime information required\n - No guides and how tos\n - No punctuation in titles especially colons :\n - 90-130 characters\n\n - return in following json format {\"main_keyword\":\"(Main Keyword)\",\"suggestions\":[{\"title\":\"(Title in 90-130 letters)\",\"short_title\":\"(Short Title in 30-40 letters)\",\"article_type\":\"(How-tos|Guides|Interview|Review|Commentary|Feature|News|Editorial|Report|Research|Case-study|Overview|Tutorial|Update|Spotlight|Insights)\",\"description\":\"(SEO description based on main keyword)\",\"photo_keywords\":[\"photo keyword 1\",\"photo keyword 2\"]}]}"; + $openai_config = 'openai-gpt-3-5-turbo-1106'; - $user_prompt = "Article Title: {$current_title}\n Article Description: {$supporting_data}\n"; + $system_prompt = "1. identify meaningful & potential keywords in this blog post article title. also estimate other related keywords to the title.\n\n2. using identify keywords, propose search queries i can use to find relevant articles online\n\n3. recommend writing tone that will entice readers.\n\n4. using identified keywords, propose article headings with key facts to highlight for this article, without reviews\n\n\nreturn all content in json: {\n\"identified_keywords\":[],\n\"related_keywords\":[],\n\"proposed_search_queries\":[],\n\"writing_tone\":[],\n\"article_headings\":[],\n}"; - $reply = self::chatCompletion($system_prompt, $user_prompt, 'gpt-3.5-turbo'); + return self::getChatCompletion($user_prompt, $system_prompt, $openai_config, $model_max_tokens, $timeout); + } + + public static function topTitlePicksById($user_prompt, $model_max_tokens = 256, $timeout = 60) + { + + $openai_config = 'openai-gpt-4-turbo'; + + $system_prompt = 'Pick 10-15 unique articles that are focused on different product launches, ensuring each is interesting, informative, and casts a positive light on the technology and AI industry. Avoid selecting multiple articles that center around the same product or feature. Ensure that titles selected do not share primary keywords—such as the name of a product or specific technology feature—and strictly return a list of IDs only, without title, strictly in this JSON format: {"ids":[]}. Titles should represent a diverse range of topics and products within the technology and AI space without repetition.'; + + return self::getChatCompletion($user_prompt, $system_prompt, $openai_config, $model_max_tokens, $timeout = 800); + } + + private static function getChatCompletion($user_prompt, $system_prompt, $openai_config, $model_max_tokens, $timeout, $response_format = 'json_object') + { + $model = config("platform.ai.{$openai_config}.model"); + $input_cost_per_thousand_tokens = config("platform.ai.{$openai_config}.input_cost_per_thousand_tokens"); + $output_cost_per_thousand_tokens = config("platform.ai.{$openai_config}.output_cost_per_thousand_tokens"); + + $output_token = 1280; try { - return json_decode($reply, false); + + $obj = self::chatCompletionApi($system_prompt, $user_prompt, $model, $output_token, $response_format, $timeout); + + $input_cost = self::getCostUsage($obj->usage_detailed->prompt_tokens, $input_cost_per_thousand_tokens); + $output_cost = self::getCostUsage($obj->usage_detailed->completion_tokens, $output_cost_per_thousand_tokens); + + $output = $obj->reply; + + if ($response_format == 'json_object') { + $output = json_decode(self::jsonFixer($obj->reply), false, 512, JSON_THROW_ON_ERROR); + } + + return (object) [ + 'prompts' => (object) [ + 'system_prompt' => $system_prompt, + 'user_prompt' => $user_prompt, + ], + 'cost' => $input_cost + $output_cost, + 'output' => $output, + 'token_usage' => $obj->usage, + 'token_usage_detailed' => $obj->usage_detailed, + ]; } catch (Exception $e) { - return null; + return self::getDefaultFailedResponse($system_prompt, $user_prompt, $e); } + return self::getDefaultFailedResponse($system_prompt, $user_prompt); + } - public static function chatCompletion($system_prompt, $user_prompt, $model, $max_token = 2500) + private static function getDefaultFailedResponse($system_prompt, $user_prompt, $exception = null) { + $exception_message = null; + + if (! is_null($exception)) { + $exception_message = $exception->getMessage(); + } + + return (object) [ + 'exception' => $exception_message, + 'prompts' => (object) [ + 'system_prompt' => $system_prompt, + 'user_prompt' => $user_prompt, + ], + 'cost' => 0, + 'output' => null, + 'token_usage' => 0, + 'token_usage_detailed' => (object) [ + 'completion_tokens' => 0, + 'prompt_tokens' => 0, + 'total_tokens' => 0, + ], + ]; + } + + private static function getCostUsage($token_usage, $cost_per_thousand_tokens) + { + $calc = $token_usage / 1000; + + return $calc * $cost_per_thousand_tokens; + } + + private static function jsonFixer($json_string) + { + $json_string = str_replace("\n", '', $json_string); + + // try { + // return (new JsonFixer)->fix($json_string); + // } + // catch(Exception $e) { + + // } + return $json_string; + + } + + public static function chatCompletionApi($system_prompt, $user_prompt, $model, $max_token = 2500, $response_format = 'text', $timeout = 800) + { + + if ($response_format == 'json_object') { + $arr = [ + 'model' => $model, + 'max_tokens' => $max_token, + 'response_format' => (object) [ + 'type' => 'json_object', + ], + 'messages' => [ + ['role' => 'system', 'content' => $system_prompt], + ['role' => 'user', 'content' => $user_prompt], + ], + ]; + } else { + $arr = [ + 'model' => $model, + 'max_tokens' => $max_token, + 'messages' => [ + ['role' => 'system', 'content' => $system_prompt], + ['role' => 'user', 'content' => $user_prompt], + ], + ]; + } + try { - $response = Http::timeout(800)->withToken(config('platform.ai.openai.api_key')) - ->post('https://api.openai.com/v1/chat/completions', [ - 'model' => $model, - 'max_tokens' => $max_token, - 'messages' => [ - ['role' => 'system', 'content' => $system_prompt], - ['role' => 'user', 'content' => $user_prompt], - ], - ]); + $response = Http::timeout($timeout)->withToken(config('platform.ai.openai.api_key')) + ->post('https://api.openai.com/v1/chat/completions', $arr); $json_response = json_decode($response->body()); - $reply = $json_response?->choices[0]?->message?->content; + //dump($json_response); - return $reply; + if (isset($json_response->error)) { + Log::error(serialize($json_response)); + throw new Exception(serialize($json_response->error)); + } + + $obj = (object) [ + 'usage' => $json_response?->usage?->total_tokens, + 'usage_detailed' => $json_response?->usage, + 'reply' => $json_response?->choices[0]?->message?->content, + + ]; + + return $obj; } catch (Exception $e) { - Log::error($response->body()); - inspector()->reportException($e); + ////dd($response->body()); + //inspector()->reportException($e); throw ($e); } diff --git a/app/Helpers/Global/helpers.php b/app/Helpers/Global/helpers.php index b1c1e4e..69b7471 100644 --- a/app/Helpers/Global/helpers.php +++ b/app/Helpers/Global/helpers.php @@ -3,3 +3,4 @@ require 'string_helper.php'; require 'geo_helper.php'; require 'platform_helper.php'; +require 'proxy_helper.php'; diff --git a/app/Helpers/Global/platform_helper.php b/app/Helpers/Global/platform_helper.php index c8c9cf0..3de9bb9 100644 --- a/app/Helpers/Global/platform_helper.php +++ b/app/Helpers/Global/platform_helper.php @@ -31,3 +31,19 @@ function get_exponential_posts_gen_by_day($day, $period_days = 45) return $value; } } + +if (! function_exists('get_notification_channel')) { + + function get_notification_channel() + { + return 'telegram'; + } +} + +if (! function_exists('get_notification_user_id')) { + + function get_notification_user_id() + { + return '629991336'; + } +} diff --git a/app/Helpers/Global/proxy_helper.php b/app/Helpers/Global/proxy_helper.php new file mode 100644 index 0000000..3471e36 --- /dev/null +++ b/app/Helpers/Global/proxy_helper.php @@ -0,0 +1,67 @@ +.*$/m', '', $markdown); + + // Remove multiple spaces, leading and trailing spaces + $plaintext = trim(preg_replace('/\s+/', ' ', $markdown)); + + return $plaintext; + } +} + if (! function_exists('markdown_min_read')) { function markdown_min_read($markdown) { @@ -48,12 +100,12 @@ function str_slug($string, $delimiter = '-') if (! function_exists('str_first_sentence')) { function str_first_sentence($str) { - // Split the string at ., !, or ? - $sentences = preg_split('/(\.|!|\?)(\s|$)/', $str, 2); + // Split the string at ., !, or ? but include these characters in the match + $sentences = preg_split('/([.!?])\s/', $str, 2, PREG_SPLIT_DELIM_CAPTURE); - // Return the first part of the array if available - if (isset($sentences[0])) { - return trim($sentences[0]); + // Check if we have captured the first sentence and its punctuation + if (isset($sentences[0]) && isset($sentences[1])) { + return trim($sentences[0].$sentences[1]); } // If no sentence ending found, return the whole string diff --git a/app/Http/Controllers/Front/FrontHomeController.php b/app/Http/Controllers/Front/FrontHomeController.php index 53bac35..18cc00e 100644 --- a/app/Http/Controllers/Front/FrontHomeController.php +++ b/app/Http/Controllers/Front/FrontHomeController.php @@ -13,12 +13,18 @@ class FrontHomeController extends Controller { public function home(Request $request) { - $featured_post = Post::where('status', 'publish')->orderBy('published_at', 'desc')->first(); - $latest_posts = Post::where(function ($query) use ($featured_post) { - $query->whereNotIn('id', [$featured_post?->id]); - })->where('status', 'publish')->orderBy('published_at', 'desc')->limit(5)->get(); + // $featured_post = Post::where('status', 'publish')->orderBy('published_at', 'desc')->first(); + // $latest_posts = Post::where(function ($query) use ($featured_post) { + // $query->whereNotIn('id', [$featured_post?->id]); + // })->where('status', 'publish')->orderBy('published_at', 'desc')->limit(5)->get(); - return response(view('front.welcome', compact('featured_post', 'latest_posts')), 200); + $featured_posts = Post::where('status', 'publish')->where('published_at', '<=', now())->orderBy('published_at', 'desc')->limit(6)->get(); + + $latest_posts = Post::where(function ($query) use ($featured_posts) { + $query->whereNotIn('id', $featured_posts->pluck('id')->toArray()); + })->where('status', 'publish')->where('published_at', '<=', now())->orderBy('published_at', 'desc')->limit(6)->get(); + + return response(view('front.welcome', compact('featured_posts', 'latest_posts')), 200); } public function terms(Request $request) @@ -70,7 +76,7 @@ public function disclaimer(Request $request) $markdown = file_get_contents(resource_path('markdown/disclaimer.md')); $title = 'Disclaimer'; - $description = 'EchoScoop provides the content on this website purely for informational purposes and should not be interpreted as legal, financial, or medical guidance.'; + $description = 'FutureWalker provides the content on this website purely for informational purposes and should not be interpreted as legal, financial, or medical guidance.'; SEOTools::metatags(); SEOTools::twitter(); diff --git a/app/Http/Controllers/Front/FrontListController.php b/app/Http/Controllers/Front/FrontListController.php index 108fd84..f702e35 100644 --- a/app/Http/Controllers/Front/FrontListController.php +++ b/app/Http/Controllers/Front/FrontListController.php @@ -12,14 +12,65 @@ class FrontListController extends Controller { + +public function search(Request $request) +{ + $page_type = 'search'; + + $query = $request->get('query', ''); + + $breadcrumbs = collect([ + ['name' => 'Home', 'url' => route('front.home')], + ['name' => 'Search', 'url' => null], + ['name' => $query, 'url' => url()->current()], + ]); + + + + $title = 'Latest News about ' . ucwords($query) . ' in FutureWalker'; + + SEOTools::metatags(); + SEOTools::twitter(); + SEOTools::opengraph(); + SEOTools::jsonLd(); + SEOTools::setTitle($title, false); + + // Use full-text search capabilities of your database + // For example, using MySQL's full-text search with MATCH...AGAINST +$posts = Post::with('category') + ->where('status', 'publish') + ->whereRaw("to_tsvector('english', title || ' ' || bites) @@ to_tsquery('english', ?)", [$query]) + ->orderBy('published_at', 'desc') + ->cursorPaginate(10); + + // breadcrumb json ld + $listItems = []; + + foreach ($breadcrumbs as $index => $breadcrumb) { + $listItems[] = [ + 'name' => $breadcrumb['name'], + 'url' => $breadcrumb['url'], + ]; + } + + $breadcrumb_context = Context::create('breadcrumb_list', [ + 'itemListElement' => $listItems, + ]); + + return view('front.post_list', compact('posts', 'breadcrumbs', 'breadcrumb_context', 'title','page_type')); +} + + public function index(Request $request) { + $page_type = 'default'; + $breadcrumbs = collect([ ['name' => 'Home', 'url' => route('front.home')], ['name' => 'Latest News', 'url' => null], // or you can set a route for Latest News if there's a specific one ]); - $title = 'Latest News from EchoScoop'; + $title = 'Latest News from FutureWalker'; SEOTools::metatags(); SEOTools::twitter(); @@ -27,7 +78,7 @@ public function index(Request $request) SEOTools::jsonLd(); SEOTools::setTitle($title, false); - $posts = Post::where('status', 'publish')->orderBy('published_at', 'desc')->simplePaginate(10) ?? collect(); + $posts = Post::with('category')->where('status', 'publish')->orderBy('published_at', 'desc')->cursorPaginate(10) ?? collect(); // breadcrumb json ld $listItems = []; @@ -39,15 +90,19 @@ public function index(Request $request) ]; } + //dd($posts); + $breadcrumb_context = Context::create('breadcrumb_list', [ 'itemListElement' => $listItems, ]); - return view('front.post_list', compact('posts', 'breadcrumbs', 'breadcrumb_context')); + return view('front.post_list', compact('posts', 'breadcrumbs', 'breadcrumb_context','page_type')); } public function category(Request $request, $category_slug) { + $page_type = 'default'; + // Fetch the category by slug $category = Category::where('slug', $category_slug)->first(); @@ -68,9 +123,9 @@ public function category(Request $request, $category_slug) // Get the posts associated with these category IDs $postIds = PostCategory::whereIn('category_id', $categoryIds)->pluck('post_id'); - $posts = Post::whereIn('id', $postIds)->where('status', 'publish')->orderBy('published_at', 'desc')->simplePaginate(10); + $posts = Post::whereIn('id', $postIds)->where('status', 'publish')->orderBy('published_at', 'desc')->cursorPaginate(10); - $title = $category->name.' News from EchoScoop'; + $title = $category->name.' News from FutureWalker'; SEOTools::metatags(); SEOTools::twitter(); @@ -92,6 +147,6 @@ public function category(Request $request, $category_slug) 'itemListElement' => $listItems, ]); - return view('front.post_list', compact('category', 'posts', 'breadcrumbs', 'breadcrumb_context')); + return view('front.post_list', compact('category', 'posts', 'breadcrumbs', 'breadcrumb_context','page_type')); } } diff --git a/app/Http/Controllers/Front/FrontPostController.php b/app/Http/Controllers/Front/FrontPostController.php index 88d7c37..98db1be 100644 --- a/app/Http/Controllers/Front/FrontPostController.php +++ b/app/Http/Controllers/Front/FrontPostController.php @@ -42,7 +42,7 @@ public function index(Request $request, $category_slug, $slug) $content = $this->injectFeaturedImage($post, $content); $content = $this->injectPublishDateAndAuthor($post, $content); - $post_description = $post->excerpt.' '.$post->title.' by EchoScoop.'; + $post_description = $post->excerpt.' '.$post->title.' by FutureWalker.'; // Generate breadcrumb data $breadcrumbs = collect([ @@ -71,7 +71,6 @@ public function index(Request $request, $category_slug, $slug) SEOMeta::setTitle($post->title, false); SEOMeta::setDescription($post_description); SEOMeta::addMeta('article:published_time', $post->published_at->format('Y-m-d'), 'property'); - SEOMeta::addMeta('article:section', $post->category->name, 'property'); SEOMeta::setRobots('INDEX, FOLLOW, MAX-IMAGE-PREVIEW:LARGE, MAX-SNIPPET:-1, MAX-VIDEO-PREVIEW:-1'); OpenGraph::setDescription($post_description); @@ -89,15 +88,15 @@ public function index(Request $request, $category_slug, $slug) ->addImage($post->featured_image_cdn) ->addValue('author', [ 'type' => 'Person', - 'name' => $post->author->name, + 'name' => 'FutureWalker', 'url' => config('app.url'), ]) ->addValue('publisher', [ 'type' => 'Organization', - 'name' => 'EchoScoop', + 'name' => 'FutureWalker', 'logo' => [ 'type' => 'ImageObject', - 'url' => asset('echoscoop-logo-512x512.png'), + 'url' => asset('FutureWalker-logo-512x512.png'), ], ]) ->addValue('datePublished', $post->published_at->format('Y-m-d')) @@ -231,7 +230,7 @@ private function injectTableOfContents($html) private function injectPublishDateAndAuthor($post, $content) { $publishedAtFormatted = $post->published_at->format('F j, Y'); - $authorName = $post->author->name; + $authorName = 'FutureWalker Team'; // Create the HTML structure for publish date and author $publishInfo = "
Published on {$publishedAtFormatted} by {$authorName}".markdown_min_read($post->body).'
'; diff --git a/app/Jobs/AISerpGenArticleJob.php b/app/Jobs/AISerpGenArticleJob.php index cdbc1ba..2395047 100644 --- a/app/Jobs/AISerpGenArticleJob.php +++ b/app/Jobs/AISerpGenArticleJob.php @@ -17,6 +17,8 @@ class AISerpGenArticleJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; + public $timeout = 600; + /** * Create a new job instance. */ diff --git a/app/Jobs/BrowseAndWriteWithAIJob.php b/app/Jobs/BrowseAndWriteWithAIJob.php new file mode 100644 index 0000000..6eff6db --- /dev/null +++ b/app/Jobs/BrowseAndWriteWithAIJob.php @@ -0,0 +1,42 @@ +serp_url_id = $serp_url_id; + } + + /** + * Execute the job. + */ + public function handle(): void + { + BrowseDFSForResearchTask::handle($this->serp_url_id); + } +} diff --git a/app/Jobs/CrawlUrlResearchJob.php b/app/Jobs/CrawlUrlResearchJob.php new file mode 100644 index 0000000..a3a26ef --- /dev/null +++ b/app/Jobs/CrawlUrlResearchJob.php @@ -0,0 +1,37 @@ +serp_url_research_id = $serp_url_research_id; + } + + /** + * Execute the job. + */ + public function handle(): void + { + if (! is_null($this->serp_url_research_id)) { + CrawlUrlResearchTask::handle($this->serp_url_research_id); + } + } +} diff --git a/app/Jobs/FillPostMetadataJob.php b/app/Jobs/FillPostMetadataJob.php new file mode 100644 index 0000000..81abd14 --- /dev/null +++ b/app/Jobs/FillPostMetadataJob.php @@ -0,0 +1,35 @@ +post_id = $post_id; + } + + /** + * Execute the job. + */ + public function handle(): void + { + FillPostMetadataTask::handle($this->post_id); + } +} diff --git a/app/Jobs/GenerateArticleJob.php b/app/Jobs/GenerateArticleJob.php index a0034e9..753c3df 100644 --- a/app/Jobs/GenerateArticleJob.php +++ b/app/Jobs/GenerateArticleJob.php @@ -15,7 +15,7 @@ class GenerateArticleJob implements ShouldQueue protected $serp_url; - public $timeout = 600; + public $timeout = 240; /** * Create a new job instance. diff --git a/app/Jobs/IdentifyCrawlSourcesJob.php b/app/Jobs/IdentifyCrawlSourcesJob.php new file mode 100644 index 0000000..27449b4 --- /dev/null +++ b/app/Jobs/IdentifyCrawlSourcesJob.php @@ -0,0 +1,35 @@ +serp_url_id = $serp_url_id; + } + + /** + * Execute the job. + */ + public function handle(): void + { + IdentifyCrawlSourcesTask::handle($this->serp_url_id); + } +} diff --git a/app/Jobs/PublishIndexPostJob.php b/app/Jobs/PublishIndexPostJob.php index 89a56b3..01106a1 100644 --- a/app/Jobs/PublishIndexPostJob.php +++ b/app/Jobs/PublishIndexPostJob.php @@ -14,14 +14,16 @@ class PublishIndexPostJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; - protected $post; + protected $post_id; + + public $timeout = 10; /** * Create a new job instance. */ - public function __construct(Post $post) + public function __construct(int $post_id) { - $this->post = $post; + $this->post_id = $post_id; } /** @@ -29,8 +31,6 @@ public function __construct(Post $post) */ public function handle(): void { - if (! is_null($this->post)) { - PublishIndexPostTask::handle($this->post); - } + PublishIndexPostTask::handle($this->post_id); } } diff --git a/app/Jobs/SchedulePublishPost.php b/app/Jobs/SchedulePublishPost.php new file mode 100644 index 0000000..0dbe951 --- /dev/null +++ b/app/Jobs/SchedulePublishPost.php @@ -0,0 +1,38 @@ +post_id = $post_id; + $this->status = $status; + } + + /** + * Execute the job. + */ + public function handle(): void + { + SchedulePublishTask::handle($this->post_id, $this->status); + } +} diff --git a/app/Jobs/Tasks/BrowseDFSForResearchTask.php b/app/Jobs/Tasks/BrowseDFSForResearchTask.php new file mode 100644 index 0000000..12df0f5 --- /dev/null +++ b/app/Jobs/Tasks/BrowseDFSForResearchTask.php @@ -0,0 +1,132 @@ +suggestion_data))) { + if (isset($serp_url->suggestion_data->proposed_search_queries)) { + if (count($serp_url->suggestion_data->proposed_search_queries) > 0) { + $search_query = $serp_url->suggestion_data->proposed_search_queries[0]; + + // $serp_model = new SettingSerpLiveAdvanced; + + // $serp_model->setSe('google'); + // $serp_model->setSeType('organic'); + // $serp_model->setKeyword(strtolower($search_query)); + // $serp_model->setLocationName('United States'); + // //$serp_model->setDepth(100); + // $serp_model->setLanguageCode('en'); + // $serp_res = $serp_model->getAsJson(); + + // print_r($serp_res); + // die(); + $country_name = get_country_name_by_iso($serp_url->country_iso); + + $serp_res = DFSSerp::liveAdvanced('google', 'news', $search_query, $country_name, 'en', 100); + + try { + $serp_obj = json_decode($serp_res, false, 512, JSON_THROW_ON_ERROR); + + if ($serp_obj?->status_code == 20000) { + + $service_cost_usage = new ServiceCostUsage; + $service_cost_usage->cost = $serp_obj->cost; + $service_cost_usage->name = 'dataforseo-GoogleSerpApiAdvancedLiveOrganic'; + $service_cost_usage->reference_1 = 'google'; + $service_cost_usage->reference_2 = 'organic'; + $service_cost_usage->output = $serp_obj; + $service_cost_usage->input_1 = $country_name; + $service_cost_usage->input_2 = $search_query; + $service_cost_usage->save(); + + $results = $serp_obj?->tasks[0]->result[0]?->items; + + //$results = $serp_obj?->result[0]?->items; + + // dump($serp_obj); + // exit(); + + $saved_count = 0; + + $first_serp_url_research = null; + + foreach ($results as $key => $result) { + if ($result->type == 'news_search') { + $serp_url_research = SerpUrlResearch::where('url', $result->url)->where('serp_url_id', $serp_url_id)->first(); + + if (is_null($serp_url_research)) { + //dump($result->url); + + $serp_url_research = new SerpUrlResearch; + $serp_url_research->serp_url_id = $serp_url_id; + $serp_url_research->url = $result->url; + $serp_url_research->query = $search_query; + $serp_url_research->content = null; + if ($serp_url_research->save()) { + $saved_count++; + } + } + } + if ($saved_count >= 10) { + break; + } + } + + $first_serp_url_research = SerpUrlResearch::where('serp_url_id', $serp_url_id)->orderBy('created_at', 'ASC')->whereNull('content')->first(); + + CrawlUrlResearchJob::dispatch($first_serp_url_research->id)->onQueue('default')->onConnection('default'); + } + } catch (Exception $e) { + throw $e; + } + + } + } + } + } +} + +// { +// "identified_keywords":[ +// "Humane AI Pin", +// "costs", +// "OpenAI", +// "T-Mobile integration" +// ], +// "related_keywords":[ +// "artificial intelligence device", +// "monthly subscription", +// "OpenAI partnership", +// "T-Mobile collaboration" +// ], +// "proposed_search_queries":[ +// "Humane AI Pin features", +// "Cost of Humane AI Pin", +// "Humane AI Pin integration with OpenAI and T-Mobile", +// "Reviews of Humane AI Pin" +// ], +// "writing_tone":[ +// "engaging", +// "informative" +// ], +// "article_headings":[ +// "Introduction to Humane AI Pin", +// "Features of Humane AI Pin", +// "Cost and Subscription Details", +// "OpenAI and T-Mobile Integration" +// ] +// } diff --git a/app/Jobs/Tasks/GetNewsSerpTask.php b/app/Jobs/Tasks/BrowseDFSLatestNewsTask.php similarity index 51% rename from app/Jobs/Tasks/GetNewsSerpTask.php rename to app/Jobs/Tasks/BrowseDFSLatestNewsTask.php index 6ea6215..226e4cc 100644 --- a/app/Jobs/Tasks/GetNewsSerpTask.php +++ b/app/Jobs/Tasks/BrowseDFSLatestNewsTask.php @@ -2,46 +2,59 @@ namespace App\Jobs\Tasks; +use App\Helpers\FirstParty\DFS\DFSSerp; use App\Helpers\FirstParty\OSSUploader\OSSUploader; use App\Helpers\ThirdParty\DFS\SettingSerpLiveAdvanced; -use App\Models\Category; use App\Models\NewsSerpResult; +use App\Models\ServiceCostUsage; use DFSClientV3\DFSClient; use Exception; use Illuminate\Support\Facades\Log; -class GetNewsSerpTask +class BrowseDFSLatestNewsTask { - public static function handle(Category $category, $country_iso) + public static function handle(string $keyword, $country_iso) { $country_name = get_country_name_by_iso($country_iso); - $keyword = strtolower("{$category->name}"); + // $client = new DFSClient( + // config('dataforseo.login'), + // config('dataforseo.password'), + // config('dataforseo.timeout'), + // config('dataforseo.api_version'), + // config('dataforseo.url'), + // ); - $client = new DFSClient( - config('dataforseo.login'), - config('dataforseo.password'), - config('dataforseo.timeout'), - config('dataforseo.api_version'), - config('dataforseo.url'), - ); + // // You will receive SERP data specific to the indicated keyword, search engine, and location parameters + // $serp_model = new SettingSerpLiveAdvanced(); - // You will receive SERP data specific to the indicated keyword, search engine, and location parameters - $serp_model = new SettingSerpLiveAdvanced(); + // $serp_model->setSe('google'); + // $serp_model->setSeType('news'); + // $serp_model->setSearchParam('&tbs=qdr:d'); + // $serp_model->setKeyword($keyword); + // $serp_model->setLocationName($country_name); + // $serp_model->setDepth(100); + // $serp_model->setLanguageCode('en'); + // $serp_res = $serp_model->getAsJson(); - $serp_model->setSe('google'); - $serp_model->setSeType('news'); - $serp_model->setKeyword($keyword); - $serp_model->setLocationName($country_name); - $serp_model->setDepth(100); - $serp_model->setLanguageCode('en'); - $serp_res = $serp_model->getAsJson(); + $serp_res = DFSSerp::liveAdvanced('google', 'news', $keyword, $country_name, 'en', 100, '&tbs=qdr:d'); try { $serp_obj = json_decode($serp_res, false, 512, JSON_THROW_ON_ERROR); if ($serp_obj?->status_code == 20000) { - $json_file_name = config('platform.dataset.news.news_serp.file_prefix').str_slug($category->name).'-'.epoch_now_timestamp().'.json'; + + $service_cost_usage = new ServiceCostUsage; + $service_cost_usage->cost = $serp_obj->cost; + $service_cost_usage->name = 'dataforseo-GoogleSerpApiAdvancedLiveNews'; + $service_cost_usage->reference_1 = 'google'; + $service_cost_usage->reference_2 = 'news'; + $service_cost_usage->output = $serp_obj; + $service_cost_usage->input_1 = $country_name; + $service_cost_usage->input_2 = $keyword; + $service_cost_usage->save(); + + $json_file_name = config('platform.dataset.news.news_serp.file_prefix').str_slug($keyword).'-'.epoch_now_timestamp().'.json'; $upload_status = OSSUploader::uploadJson( config('platform.dataset.news.news_serp.driver'), @@ -50,9 +63,8 @@ public static function handle(Category $category, $country_iso) $serp_obj); if ($upload_status) { + $news_serp_result = new NewsSerpResult; - $news_serp_result->category_id = $category->id; - $news_serp_result->category_name = $category->name; $news_serp_result->serp_provider = 'dfs'; $news_serp_result->serp_se = 'google'; $news_serp_result->serp_se_type = 'news'; @@ -62,10 +74,7 @@ public static function handle(Category $category, $country_iso) $news_serp_result->result_count = $serp_obj?->tasks[0]?->result[0]?->items_count; $news_serp_result->filename = $json_file_name; $news_serp_result->status = 'initial'; - if ($news_serp_result->save()) { - $category->serp_at = now(); - $category->save(); - } + $news_serp_result->save(); return $news_serp_result; } else { diff --git a/app/Jobs/Tasks/CrawlUrlResearchTask.php b/app/Jobs/Tasks/CrawlUrlResearchTask.php new file mode 100644 index 0000000..958ede4 --- /dev/null +++ b/app/Jobs/Tasks/CrawlUrlResearchTask.php @@ -0,0 +1,207 @@ + $user_agent, + ]) + ->withOptions([ + 'proxy' => get_smartproxy_rotating_server(), + 'timeout' => 10, + 'verify' => false, + ]) + ->get($serp_url_research->url); + + if ($response->successful()) { + $raw_html = $response->body(); + $costs['unblocker'] = calculate_smartproxy_cost(round(strlen($raw_html) / 1024, 2), 'rotating_global'); + } else { + $raw_html = null; + $response->throw(); + } + + } catch (Exception $e) { + $raw_html = null; + //throw $e; + } + + if (! is_empty($raw_html)) { + //dump(self::getMarkdownFromHtml($raw_html)); + + $serp_url_research->content = self::getMarkdownFromHtml($raw_html); + $serp_url_research->main_image = self::getMainImageFromHtml($raw_html); + + //dump($serp_url_research->content); + } else { + $serp_url_research->content = 'EMPTY CONTENT'; + } + + $serp_url_research->save(); + + $completed_serp_url_researches_counts = SerpUrlResearch::where('serp_url_id', $serp_url_research->serp_url_id)->where('content', '!=', 'EMPTY CONTENT')->whereNotNull('content')->count(); + + if ($completed_serp_url_researches_counts >= 3) { + $serp_url = SerpUrl::find($serp_url_research->serp_url_id); + + if (! is_null($serp_url)) { + $serp_url->crawled = true; + $serp_url->save(); + + WriteWithAIJob::dispatch($serp_url->id)->onQueue('default')->onConnection('default'); + } + } else { + $next_serp_url_research = SerpUrlResearch::where('serp_url_id', $serp_url_research->serp_url_id)->whereNull('content')->first(); + + if (! is_null($next_serp_url_research)) { + CrawlUrlResearchJob::dispatch($next_serp_url_research->id)->onQueue('default')->onConnection('default'); + } + + } + } + + private static function getMainImageFromHtml($html) + { + $r_configuration = new ReadabilityConfiguration(); + $r_configuration->setCharThreshold(20); + + $readability = new Readability($r_configuration); + + try { + $readability->parse($html); + + return $readability->getImage(); + //dd($readability); + } catch (ReadabilityParseException $e) { + } + + return null; + } + + private static function getMarkdownFromHtml($html) + { + + $converter = new HtmlConverter([ + 'strip_tags' => true, + 'strip_placeholder_links' => true, + ]); + + $html = self::cleanHtml($html); + + $markdown = $converter->convert($html); + + //dd($markdown); + + $markdown = self::reverseLTGT($markdown); + + $markdown = self::normalizeNewLines($markdown); + + $markdown = self::removeDuplicateLines($markdown); + + return html_entity_decode(markdown_to_plaintext($markdown)); + } + + private static function reverseLTGT($input) + { + $output = str_replace('<', '<', $input); + $output = str_replace('>', '>', $output); + + return $output; + } + + private static function removeDuplicateLines($string) + { + $lines = explode("\n", $string); + $uniqueLines = array_unique($lines); + + return implode("\n", $uniqueLines); + } + + private static function normalizeNewLines($content) + { + // Split the content by lines + $lines = explode("\n", $content); + + $processedLines = []; + + for ($i = 0; $i < count($lines); $i++) { + $line = trim($lines[$i]); + + // If the line is an image markdown + if (preg_match("/^!\[.*\]\(.*\)$/", $line)) { + // And if the next line is not empty and not another markdown structure + if (isset($lines[$i + 1]) && ! empty(trim($lines[$i + 1])) && ! preg_match('/^[-=#*&_]+$/', trim($lines[$i + 1]))) { + $line .= ' '.trim($lines[$i + 1]); + $i++; // Skip the next line as we're merging it + } + } + + // Add line to processedLines if it's not empty + if (! empty($line)) { + $processedLines[] = $line; + } + } + + // Collapse excessive newlines + $result = preg_replace("/\n{3,}/", "\n\n", implode("\n", $processedLines)); + + // Detect and replace the pattern + $result = preg_replace('/^(!\[.*?\]\(.*?\))\s*\n\s*([^\n!]+)/m', '$1 $2', $result); + + // Replace multiple spaces with a dash separator + $result = preg_replace('/ {2,}/', ' - ', $result); + + return $result; + } + + private static function cleanHtml($htmlContent) + { + $crawler = new Crawler($htmlContent); + + // Define tags to remove completely + $tagsToRemove = ['script', 'style', 'svg', 'picture', 'form', 'footer', 'nav', 'aside']; + + foreach ($tagsToRemove as $tag) { + $crawler->filter($tag)->each(function ($node) { + foreach ($node as $child) { + $child->parentNode->removeChild($child); + } + }); + } + + // Replace tags with their inner content + $crawler->filter('span')->each(function ($node) { + $replacement = new \DOMText($node->text()); + + foreach ($node as $child) { + $child->parentNode->replaceChild($replacement, $child); + } + }); + + return $crawler->outerHtml(); + } +} diff --git a/app/Jobs/Tasks/FillPostMetadataTask.php b/app/Jobs/Tasks/FillPostMetadataTask.php new file mode 100644 index 0000000..94ab8a7 --- /dev/null +++ b/app/Jobs/Tasks/FillPostMetadataTask.php @@ -0,0 +1,267 @@ +metadata)) { + $post_meta_response = $post->metadata; + } else { + $post_meta_response = OpenAI::getArticleMeta($post->body, 1536, 30); + + if ((isset($post_meta_response->output)) && (! is_null($post_meta_response->output))) { + $service_cost_usage = new ServiceCostUsage; + $service_cost_usage->cost = $post_meta_response->cost; + $service_cost_usage->name = 'openai-getArticleMeta'; + $service_cost_usage->reference_1 = 'post'; + $service_cost_usage->reference_2 = strval($post->id); + $service_cost_usage->output = $post_meta_response; + $service_cost_usage->save(); + } + } + + //dump($post_meta_response); + + if ((isset($post_meta_response->output)) && (! is_null($post_meta_response->output))) { + + $post->metadata = $post_meta_response; + + if (isset($post_meta_response->output->keywords)) { + if (count($post_meta_response->output->keywords) > 0) { + $post->keywords = $post_meta_response->output->keywords; + + $post->main_keyword = $post_meta_response->output->keywords[0]; + } + } + + if (isset($post_meta_response->output->title)) { + if ((is_empty($post->title)) && (! is_empty($post_meta_response->output->title))) { + $post->title = $post_meta_response->output->title; + } + } + + if (isset($post_meta_response->output->summary)) { + if (! is_empty($post_meta_response->output->summary)) { + $post->bites = $post_meta_response->output->summary; + } + } + + } + + if (is_empty($post->slug)) { + $post->slug = str_slug($post->title); + } + + if (is_empty($post->featured_image)) { + $post = self::setPostImage($post); + } + + if (isset($post_meta_response->output->society_impact)) + { + if (!is_empty($post_meta_response->output->society_impact)) + { + $post->society_impact = $post_meta_response->output->society_impact; + } + } + + if (isset($post_meta_response->output->society_impact_level)) + { + if (!is_empty($post_meta_response->output->society_impact_level)) + { + $post->society_impact = $post_meta_response->output->society_impact_level; + } + } + + if ($post->save()) { + + + // Set Category + + $category_name = 'Updates'; + + if ((isset($post_meta_response->output->category)) && (!is_empty($post_meta_response->output->category))) + { + $category_name = $post_meta_response?->output?->category; + } + + $category = Category::where('name', $category_name)->first(); + + if (is_null($category)) + { + $category = Category::where('name', 'Updates')->first(); + } + + // Set Post Category + $post_category = PostCategory::where('post_id', $post->id)->first(); + + if (is_null($post_category)) + { + $post_category = new PostCategory; + $post_category->post_id = $post->id; + } + $post_category->category_id = $category->id; + + $post_category->save(); + + + // Set Post Entities + if (isset($post_meta_response->output->entities)) + { + $entity_names = []; + + if (is_array($post_meta_response->output->entities)) + { + $entity_names = $post_meta_response->output->entities; + } + + if (count($entity_names) > 0) + { + $previous_post_entities = PostEntity::where('post_id', $post->id)->delete(); + + foreach ($entity_names as $entity_name) + { + $entity_name = trim($entity_name); + + $entity = Entity::where('name', $entity_name)->first(); + + if (is_null($entity)) + { + $entity = new Entity; + $entity->name = $entity_name; + $entity->slug = str_slug($entity_name); + $entity->save(); + } + + + $post_entity = PostEntity::where('post_id', $post->id) + ->where('entity_id', $entity->id) + ->first(); + + if (is_null($post_entity)) + { + $post_entity = new PostEntity; + $post_entity->post_id = $post->id; + $post_entity->entity_id = $entity->id; + $post_entity->save(); + } + } + } + } + + // Set Schedule Publish + SchedulePublishPost::dispatch($post->id, 'future')->onQueue('default')->onConnection('default'); + } + + } + + private static function setPostImage($post) + { + $serp_url_researches = SerpUrlResearch::where('serp_url_id', $post->serp_url_id)->get(); + + $main_image_url = null; + + foreach ($serp_url_researches as $serp_url_research) { + if (! is_empty($serp_url_research->main_image)) { + if (is_valid_url($serp_url_research->main_image)) { + + if (is_empty($serp_url_research->main_image)) { + continue; + } + + $main_image_url = $serp_url_research->main_image; + + $image_response = Http::timeout(300)->withHeaders([ + 'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36', + ])->get($main_image_url); + + $image_content = $image_response->body(); + + // Get the size of the image content in KB + $imageSizeInKb = strlen($image_response->body()) / 1024; + + // Skip this iteration if the image exceeds the maximum size + if ($imageSizeInKb > 1024) { + continue; + } + + $canvas_width = 1080; + $canvas_height = 608; + + $thumb_width = 540; + $thumb_height = 78; + + // Create an image from the fetched content + $image = Image::make($image_content); + + // Check if the image is wider than it is tall (landscape orientation) + if ($image->width() > $image->height()) { + // Resize the image to fill the canvas width while maintaining aspect ratio + $image->resize($canvas_width, null, function ($constraint) { + $constraint->aspectRatio(); + }); + } else { + // Resize the image to fill the canvas height while maintaining aspect ratio + $image->resize(null, $canvas_height, function ($constraint) { + $constraint->aspectRatio(); + }); + } + + // Fit the image to the canvas size, without gaps + $image->fit($canvas_width, $canvas_height, function ($constraint) { + $constraint->upsize(); + }); + + // Create a thumbnail by cloning the original image and resizing it + $thumb = clone $image; + $thumb->resize($thumb_width, $thumb_height, function ($constraint) { + $constraint->aspectRatio(); + $constraint->upsize(); + }); + + // Create a image filename + $epoch_now_timestamp = epoch_now_timestamp(); + $filename = $post->slug.'-'.$epoch_now_timestamp.'.jpg'; + $thumb_filename = $post->slug.'-'.$epoch_now_timestamp.'_thumb.jpg'; + + OSSUploader::uploadFile('r2', 'post_images_2/', $filename, (string) $image->stream('jpeg', 75)); + OSSUploader::uploadFile('r2', 'post_images_2/', $thumb_filename, (string) $thumb->stream('jpeg', 50)); + + $post->featured_image = 'post_images_2/'.$filename; + + $image->destroy(); + + try { + break; + } catch (Exception $e) { + continue; + } + + } + } + } + + return $post; + } +} diff --git a/app/Jobs/Tasks/GenerateArticleFeaturedImageTask.php b/app/Jobs/Tasks/GenerateArticleFeaturedImageTask.php index 10be8d5..049871f 100644 --- a/app/Jobs/Tasks/GenerateArticleFeaturedImageTask.php +++ b/app/Jobs/Tasks/GenerateArticleFeaturedImageTask.php @@ -94,7 +94,7 @@ public static function handle($post) } } - //return $news_serp_result; + //return $news_serp_result; } else { throw new Exception('Uploading failed', 1); } diff --git a/app/Jobs/Tasks/IdentifyCrawlSourcesTask.php b/app/Jobs/Tasks/IdentifyCrawlSourcesTask.php new file mode 100644 index 0000000..2e41364 --- /dev/null +++ b/app/Jobs/Tasks/IdentifyCrawlSourcesTask.php @@ -0,0 +1,54 @@ +output === null)) { + $suggestion_response = OpenAI::titleSuggestions($serp_url->title); + + //dump($suggestion_response); + + $service_cost_usage = new ServiceCostUsage; + $service_cost_usage->cost = $suggestion_response->cost; + $service_cost_usage->name = 'openai-titleSuggestions'; + $service_cost_usage->reference_1 = 'serp_url'; + $service_cost_usage->reference_2 = strval($serp_url->id); + $service_cost_usage->output = $suggestion_response; + $service_cost_usage->save(); + + $attempt++; + + // If the output is not null, break out of the loop + if ($suggestion_response !== null && $suggestion_response->output !== null) { + break; + } + + // Optional: sleep for a bit before retrying + sleep(1); // sleep for 1 second + } + + if (! is_null($suggestion_response->output)) { + $serp_url->suggestion_data = $suggestion_response->output; + if ($serp_url->save()) { + BrowseDFSForResearchJob::dispatch($serp_url_id)->onQueue('default')->onConnection('default'); + } + } + } + } +} diff --git a/app/Jobs/Tasks/ParseNewsSerpDomainsTask.php b/app/Jobs/Tasks/ParseDFSNewsTask.php similarity index 53% rename from app/Jobs/Tasks/ParseNewsSerpDomainsTask.php rename to app/Jobs/Tasks/ParseDFSNewsTask.php index 233e101..babb682 100644 --- a/app/Jobs/Tasks/ParseNewsSerpDomainsTask.php +++ b/app/Jobs/Tasks/ParseDFSNewsTask.php @@ -2,15 +2,19 @@ namespace App\Jobs\Tasks; +use App\Helpers\FirstParty\OpenAI\OpenAI; use App\Helpers\FirstParty\OSSUploader\OSSUploader; +use App\Jobs\IdentifyCrawlSourcesJob; use App\Models\Category; use App\Models\NewsSerpResult; use App\Models\SerpUrl; +use App\Models\ServiceCostUsage; +use Carbon\Carbon; use Exception; -class ParseNewsSerpDomainsTask +class ParseDFSNewsTask { - public static function handle(NewsSerpResult $news_serp_result, $serp_counts = 1) + public static function handle(NewsSerpResult $news_serp_result, $serp_counts = 100) { //dd($news_serp_result->category->serp_at); @@ -35,16 +39,47 @@ public static function handle(NewsSerpResult $news_serp_result, $serp_counts = 1 foreach ($serp_results as $serp_item) { + if ($serp_item->type != 'news_search') { + continue; + } + //dump($serp_item); if (is_empty($serp_item->url)) { continue; } - // if (!str_contains($serp_item->time_published, "hours")) - // { - // continue; - // } + $blacklist_keywords = config('platform.global.blacklist_keywords_serp'); + + $blacklist_domains = config('platform.global.blacklist_domains_serp'); + + $skipItem = false; + + foreach ($blacklist_domains as $domain) { + if (str_contains($serp_item->domain, $domain)) { + $skipItem = true; + break; + } + } + + if (! $skipItem) { + $title = strtolower($serp_item->title); + $snippet = strtolower($serp_item->snippet); + + // Check if any unwanted word is in the title or snippet + + foreach ($blacklist_keywords as $word) { + if (strpos($title, $word) !== false || strpos($snippet, $word) !== false) { + $skipItem = true; + break; // Break the inner loop as we found an unwanted word + } + } + } + + // Skip this iteration if an unwanted word was found + if ($skipItem) { + continue; + } $serp_url = SerpUrl::where('url', $serp_item->url)->first(); @@ -69,14 +104,14 @@ public static function handle(NewsSerpResult $news_serp_result, $serp_counts = 1 //dd($valid_serps); + $serp_titles = []; + foreach ($valid_serps as $serp_item) { - //dd($serp_item); + $serp_url = SerpUrl::where('url', self::normalizeUrl($serp_item->url))->first(); if (is_null($serp_url)) { $serp_url = new SerpUrl; - $serp_url->category_id = $news_serp_result->category_id; - $serp_url->category_name = $news_serp_result->category_name; $serp_url->news_serp_result_id = $news_serp_result->id; } @@ -85,20 +120,47 @@ public static function handle(NewsSerpResult $news_serp_result, $serp_counts = 1 $serp_url->country_iso = $news_serp_result->serp_country_iso; if (! is_empty($serp_item->title)) { - $serp_url->title = $serp_item->title; + $serp_url->title = remove_newline($serp_item->title); } if (! is_empty($serp_item->snippet)) { - $serp_url->description = $serp_item->snippet; + $serp_url->description = remove_newline($serp_item->snippet); } if ($serp_url->isDirty()) { - $serp_url->serp_at = $news_serp_result->category->serp_at; + $serp_url->serp_at = now(); + } + + if ((isset($serp_item->timestamp)) && (! is_empty($serp_item->timestamp))) { + $serp_url->url_posted_at = Carbon::parse($serp_item->timestamp); + } else { + $serp_url->url_posted_at = now(); } if ($serp_url->save()) { $success = true; } + $serp_titles[$serp_url->id] = $serp_url->title; + + } + + $ids_response = OpenAI::topTitlePicksById(json_encode($serp_titles)); + + if (isset($ids_response->output->ids)) { + + $service_cost_usage = new ServiceCostUsage; + $service_cost_usage->cost = $ids_response->cost; + $service_cost_usage->name = 'openai-topTitlePicksById'; + $service_cost_usage->reference_1 = 'news_serp_result'; + $service_cost_usage->reference_2 = strval($news_serp_result->id); + $service_cost_usage->output = $ids_response; + $service_cost_usage->save(); + + $selected_serp_urls = SerpUrl::whereIn('id', $ids_response->output->ids)->update(['picked' => true]); + + foreach ($ids_response->output->ids as $id) { + IdentifyCrawlSourcesJob::dispatch($id)->onQueue('default')->onConnection('default'); + } } } diff --git a/app/Jobs/Tasks/PublishIndexPostTask.php b/app/Jobs/Tasks/PublishIndexPostTask.php index 22abab6..86230fe 100644 --- a/app/Jobs/Tasks/PublishIndexPostTask.php +++ b/app/Jobs/Tasks/PublishIndexPostTask.php @@ -9,12 +9,19 @@ class PublishIndexPostTask { - public static function handle(Post $post) + public static function handle(int $post_id) { - $post->published_at = now(); + $post = Post::find($post_id); + + if (is_null($post)) + { + return ; + } + + $post->status = 'publish'; if ($post->save()) { - if (app()->environment() == 'production') { + if ((app()->environment() == 'production') && (config('platform.global.indexing'))) { $post_url = route('front.post', ['slug' => $post->slug, 'category_slug' => $post->category->slug]); try { diff --git a/app/Jobs/Tasks/SchedulePublishTask.php b/app/Jobs/Tasks/SchedulePublishTask.php new file mode 100644 index 0000000..07cedf8 --- /dev/null +++ b/app/Jobs/Tasks/SchedulePublishTask.php @@ -0,0 +1,76 @@ +status, ['future', 'draft', 'publish'])) { + return; + } + + if ((is_empty($post->title)) || (is_empty($post->slug)) || (is_empty($post->main_keyword)) || (is_empty($post->keywords)) || (is_empty($post->bites)) || (is_empty($post->featured_image)) || (is_empty($post->body)) || (is_empty($post->metadata))) { + Notification::route(get_notification_channel(), get_notification_user_id())->notify(new PostIncomplete($post)); + + return; + } + + /* + TODO: + + - to determine a published_at time, first check if there are any post with existing published_at date. + + - if there are no other posts except for the current post, then the current post published_at is now(). + + - if there are other posts but all of them published_at is null, then the current post published_at is now(). + + - if there are other posts and there are non null published_at, + -- first find the latest published post (latest published_at). + -- if the latest published_at datetime is before now, then published_at is null. + -- if the latest published_at datetime is after now, then current post published_at should be 1 hour after the latest published_at + + -- the idea is published_posts should be spreaded accross by an hour if found. + + */ + + // Check if there are any other posts with a set published_at date + $latest_published_post = Post::where('id', '!=', $post_id)->whereNotNull('published_at')->orderBy('published_at', 'DESC')->first(); + + //dd($latest_published_post); + + if (is_null($latest_published_post)) { + $post->published_at = now(); + } else { + if ($latest_published_post->published_at->lt(now())) { + + $new_time = now(); + + } else { + + $new_time = clone $latest_published_post->published_at; + + } + + $new_time->addMinutes(rand(40, 60)); + $post->published_at = $new_time; + } + + $post->published_at->subDays(1); + + $post->status = $post_status; // Assuming you want to update the status to future + $post->save(); + } +} diff --git a/app/Jobs/Tasks/WriteWithAITask.php b/app/Jobs/Tasks/WriteWithAITask.php new file mode 100644 index 0000000..5585661 --- /dev/null +++ b/app/Jobs/Tasks/WriteWithAITask.php @@ -0,0 +1,140 @@ +id)->where('content', '!=', 'EMPTY CONTENT')->whereNotNull('content')->get(); + + $user_prompt = ''; + $total_tokens = 0; + + foreach ($serp_url_researches as $serp_url_research) { + + $sentences = self::markdownToSentences($serp_url_research->content); + + //dump($sentences); + + foreach ($sentences as $key => $sentence) { + + if ($key == 0) { + $user_prompt .= "ARTICLE:\n"; + } + + $current_tokens = Tiktoken::count($sentence); + + if ($current_tokens + $total_tokens > 4096) { + break 2; + } else { + $user_prompt .= $sentence."\n"; + $total_tokens += $current_tokens; + } + + } + $user_prompt .= "\n\n"; + } + + //dd($user_prompt); + + $ai_writeup_response = OpenAI::writeArticle($user_prompt, 1536, 30); + + //dd($ai_writeup_response); + + if ((isset($ai_writeup_response->output)) && (! is_empty($ai_writeup_response->output))) { + $output = self::extractRemoveFirstHeading($ai_writeup_response->output); + + $service_cost_usage = new ServiceCostUsage; + $service_cost_usage->cost = $ai_writeup_response->cost; + $service_cost_usage->name = 'openai-writeArticle'; + $service_cost_usage->reference_1 = 'serp_url'; + $service_cost_usage->reference_2 = strval($serp_url->id); + $service_cost_usage->output = $ai_writeup_response; + $service_cost_usage->save(); + + $post = Post::where('serp_url_id', $serp_url->id)->first(); + + if (is_null($post)) { + $post = new Post; + $post->serp_url_id = $serp_url->id; + } + + if (! is_empty($output->title)) { + $post->title = $output->title; + } else { + + if (! is_null($serp_url->suggestion_data)) { + if (isset($serp_url->suggestion_data->article_headings)) { + if (count($serp_url->suggestion_data->article_headings) > 0) { + $post->title = $serp_url->suggestion_data?->article_headings[0]; + } + } + } + } + + if (is_empty($post->title)) { + $post->title = $serp_url->title; + } + + $post->slug = str_slug($post->title); + + $post->body = $output->content; + + $post->bites = null; + $post->metadata = null; + + if ($post->save()) { + FillPostMetadataJob::dispatch($post->id)->onQueue('default')->onConnection('default'); + } + } else { + throw new Exception('OpenAI failed to write'); + } + } + + private static function markdownToSentences($markdownContent) + { + // Split the content on punctuation followed by a space or end of string + $pattern = '/(?<=[.!?])\s+|\z/'; + + // Split the content into sentences + $sentences = preg_split($pattern, $markdownContent, -1, PREG_SPLIT_NO_EMPTY); + + // Return the array of sentences + return $sentences; + } + + private static function extractRemoveFirstHeading($markdownContent) + { + // Pattern to match the first markdown heading of any level + $pattern = '/^(#+)\s*(.+)$/m'; + + // Try to find the first heading + if (preg_match($pattern, $markdownContent, $matches)) { + $title = $matches[2]; // The first heading becomes the title + + // Remove the first heading from the content + $updatedContent = preg_replace($pattern, '', $markdownContent, 1); + + return (object) ['title' => $title, 'content' => trim($updatedContent)]; + } + + // Return original content if no heading found + return (object) ['title' => '', 'content' => $markdownContent]; + } +} diff --git a/app/Jobs/WriteWithAIJob.php b/app/Jobs/WriteWithAIJob.php new file mode 100644 index 0000000..ae05b08 --- /dev/null +++ b/app/Jobs/WriteWithAIJob.php @@ -0,0 +1,35 @@ +serp_url_id = $serp_url_id; + } + + /** + * Execute the job. + */ + public function handle(): void + { + WriteWithAITask::handle($this->serp_url_id); + } +} diff --git a/app/Models/Entity.php b/app/Models/Entity.php new file mode 100644 index 0000000..a92d254 --- /dev/null +++ b/app/Models/Entity.php @@ -0,0 +1,39 @@ +hasMany(PostEntity::class); + } +} diff --git a/app/Models/Post.php b/app/Models/Post.php index f81c6bb..62010e3 100644 --- a/app/Models/Post.php +++ b/app/Models/Post.php @@ -7,6 +7,7 @@ namespace App\Models; use Carbon\Carbon; +use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Storage; @@ -17,74 +18,93 @@ * Class Post * * @property int $id + * @property int|null $serp_url_id * @property string|null $title * @property string|null $slug - * @property string|null $type - * @property string|null $excerpt + * @property string|null $main_keyword + * @property string|null $keywords + * @property string|null $bites * @property int|null $author_id - * @property bool $featured * @property string|null $featured_image * @property string|null $body * @property int $views_count * @property string $status + * @property Carbon|null $published_at * @property Carbon|null $created_at * @property Carbon|null $updated_at + * @property SerpUrl|null $serp_url * @property Author|null $author * @property Collection|PostCategory[] $post_categories - * @property Carbon $published_at */ class Post extends Model implements Feedable { protected $table = 'posts'; protected $casts = [ + 'serp_url_id' => 'int', 'author_id' => 'int', - 'featured' => 'bool', 'views_count' => 'int', - 'keywords' => 'array', 'published_at' => 'datetime', + 'keywords' => 'array', + 'metadata' => 'object', ]; protected $fillable = [ + 'serp_url_id', 'title', - 'short_title', 'slug', - 'type', - 'excerpt', + 'main_keyword', + 'keywords', + 'bites', 'author_id', - 'featured', 'featured_image', 'body', 'views_count', 'status', - 'main_keyword', - 'keywords', 'published_at', + 'metadata', + 'society_impact', + 'society_impact_level', ]; - public function getFeaturedImageLqipCdnAttribute() + protected function featuredImage(): Attribute { - if (! is_empty($this->featured_image)) { - // Get the extension of the original featured image - $extension = pathinfo($this->featured_image, PATHINFO_EXTENSION); + return Attribute::make( + get: function ($value = null) { + if (! is_empty($value)) { + return Storage::disk('r2')->url($value); + } - // Append "_lqip" before the extension to create the LQIP image URL - $lqipFeaturedImage = str_replace(".{$extension}", '_lqip.webp', $this->featured_image); + return null; + } + ); + } - return 'https://'.Storage::disk('r2')->url($lqipFeaturedImage).'?a=bc'; + protected function getFeaturedThumbImageAttribute() + { + $value = $this->featured_image; + //dd($value); + + if (! is_empty($value)) { + // Extract the file extension + $extension = pathinfo($value, PATHINFO_EXTENSION); + + // Construct the thumbnail filename by appending '_thumb' before the extension + $thumbnail = str_replace(".{$extension}", "_thumb.{$extension}", $value); + + return $thumbnail; + + // Return the full URL to the thumbnail image + //return Storage::disk('r2')->url($thumbnail); } return null; } - public function getFeaturedImageCdnAttribute() + public function serp_url() { - if (! is_empty($this->featured_image)) { - return 'https://'.Storage::disk('r2')->url($this->featured_image); - } - - return null; + return $this->belongsTo(SerpUrl::class); } public function author() @@ -92,6 +112,16 @@ public function author() return $this->belongsTo(Author::class); } + public function post_categories() + { + return $this->hasMany(PostCategory::class); + } + + public function post_entities() + { + return $this->hasMany(PostEntity::class); + } + public function category() { return $this->hasOneThrough( @@ -104,15 +134,27 @@ public function category() ); } + public function entities() + { + return $this->hasManyThrough( + Entity::class, // The target model + PostEntity::class, // The through model + 'post_id', // The foreign key on the through model + 'id', // The local key on the parent model (Post) + 'id', // The local key on the through model (PostEntity) + 'entity_id' // The foreign key on the target model (Entity) + ); + } + public function toFeedItem(): FeedItem { return FeedItem::create([ 'id' => $this->id, 'title' => $this->title, - 'summary' => $this->excerpt, + 'summary' => $this->bites, 'updated' => $this->updated_at, 'link' => route('front.post', ['slug' => $this->slug, 'category_slug' => $this->category->slug]), - 'authorName' => optional($this->author)->name, + 'authorName' => 'FutureWalker', ]); } diff --git a/app/Models/PostEntity.php b/app/Models/PostEntity.php new file mode 100644 index 0000000..6b99266 --- /dev/null +++ b/app/Models/PostEntity.php @@ -0,0 +1,49 @@ + 'int', + 'entity_id' => 'int' + ]; + + protected $fillable = [ + 'post_id', + 'entity_id' + ]; + + public function post() + { + return $this->belongsTo(Post::class); + } + + public function entity() + { + return $this->belongsTo(Entity::class); + } +} diff --git a/app/Models/SerpUrl.php b/app/Models/SerpUrl.php index 805f29b..294d645 100644 --- a/app/Models/SerpUrl.php +++ b/app/Models/SerpUrl.php @@ -37,6 +37,12 @@ class SerpUrl extends Model 'category_id' => 'int', 'process_status' => 'int', 'serp_at' => 'datetime', + 'picked' => 'boolean', + 'processed' => 'boolean', + 'crawled' => 'boolean', + 'written' => 'boolean', + 'url_posted_at' => 'datetime', + 'suggestion_data' => 'object', ]; protected $fillable = [ @@ -51,6 +57,12 @@ class SerpUrl extends Model 'process_status', 'serp_at', 'status', + 'picked', + 'processed', + 'crawled', + 'written', + 'url_posted_at', + 'suggestion_data', ]; public function news_serp_result() diff --git a/app/Models/SerpUrlResearch.php b/app/Models/SerpUrlResearch.php new file mode 100644 index 0000000..c6f2dac --- /dev/null +++ b/app/Models/SerpUrlResearch.php @@ -0,0 +1,44 @@ + 'int', + ]; + + protected $fillable = [ + 'serp_url_id', + 'url', + 'query', + 'content', + 'main_image', + ]; + + public function serp_url() + { + return $this->belongsTo(SerpUrl::class); + } +} diff --git a/app/Models/ServiceCostUsage.php b/app/Models/ServiceCostUsage.php new file mode 100644 index 0000000..4add750 --- /dev/null +++ b/app/Models/ServiceCostUsage.php @@ -0,0 +1,44 @@ + 'float', + 'output' => 'object', + ]; + + protected $fillable = [ + 'cost', + 'name', + 'reference_1', + 'reference_2', + 'output', + 'input_1', + 'input_2', + ]; +} diff --git a/app/Notifications/PostIncomplete.php b/app/Notifications/PostIncomplete.php new file mode 100644 index 0000000..e7c57cd --- /dev/null +++ b/app/Notifications/PostIncomplete.php @@ -0,0 +1,39 @@ +post = $post; + } + + /** + * Get the notification's delivery channels. + * + * @return array + */ + public function via(object $notifiable): array + { + return ['telegram']; + } + + public function toTelegram($notifiable) + { + return TelegramMessage::create() + ->content("*Incomplete Post*:\nPost ID: ".$this->post->id."\nPost Name: ".$this->post->title); + } +} diff --git a/composer.json b/composer.json index c96a048..53eec4e 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,7 @@ "artesaos/seotools": "^1.2", "dipeshsukhia/laravel-html-minify": "^3.3", "famdirksen/laravel-google-indexing": "^0.5.0", - "fivefilters/readability.php": "^1.0", + "fivefilters/readability.php": "^3.1.6", "graham-campbell/markdown": "^15.0", "guzzlehttp/guzzle": "^7.2", "inspector-apm/inspector-laravel": "^4.7", @@ -20,10 +20,13 @@ "jovix/dataforseo-clientv3": "^1.1", "kalnoy/nestedset": "^6.0", "laravel-freelancer-nl/laravel-index-now": "^1.2", + "laravel-notification-channels/telegram": "^4.0", "laravel/framework": "^10.10", "laravel/sanctum": "^3.2", "laravel/tinker": "^2.8", "league/flysystem-aws-s3-v3": "^3.0", + "league/html-to-markdown": "^5.1", + "mis3085/tiktoken-for-laravel": "^0.1.2", "predis/predis": "^2.2", "silviolleite/laravelpwa": "^2.0", "spatie/laravel-feed": "^4.3", diff --git a/composer.lock b/composer.lock index 0df159d..cc88914 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "4bb8fad2567f5c7b3e6a1682fe4eaf39", + "content-hash": "309ead64d16d3481bd402a1a0cf5f348", "packages": [ { "name": "artesaos/seotools", @@ -80,16 +80,16 @@ }, { "name": "aws/aws-crt-php", - "version": "v1.2.2", + "version": "v1.2.3", "source": { "type": "git", "url": "https://github.com/awslabs/aws-crt-php.git", - "reference": "2f1dc7b7eda080498be96a4a6d683a41583030e9" + "reference": "5545a4fa310aec39f54279fdacebcce33b3ff382" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/2f1dc7b7eda080498be96a4a6d683a41583030e9", - "reference": "2f1dc7b7eda080498be96a4a6d683a41583030e9", + "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/5545a4fa310aec39f54279fdacebcce33b3ff382", + "reference": "5545a4fa310aec39f54279fdacebcce33b3ff382", "shasum": "" }, "require": { @@ -128,26 +128,26 @@ ], "support": { "issues": "https://github.com/awslabs/aws-crt-php/issues", - "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.2" + "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.3" }, - "time": "2023-07-20T16:49:55+00:00" + "time": "2023-10-16T20:10:06+00:00" }, { "name": "aws/aws-sdk-php", - "version": "3.281.11", + "version": "3.286.2", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "9d466efae67d5016ed132fd4ffa1566a7d4cab98" + "reference": "33a763586e840e5162ff8144a9532aa43172e11c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/9d466efae67d5016ed132fd4ffa1566a7d4cab98", - "reference": "9d466efae67d5016ed132fd4ffa1566a7d4cab98", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/33a763586e840e5162ff8144a9532aa43172e11c", + "reference": "33a763586e840e5162ff8144a9532aa43172e11c", "shasum": "" }, "require": { - "aws/aws-crt-php": "^1.0.4", + "aws/aws-crt-php": "^1.2.3", "ext-json": "*", "ext-pcre": "*", "ext-simplexml": "*", @@ -223,9 +223,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.281.11" + "source": "https://github.com/aws/aws-sdk-php/tree/3.286.2" }, - "time": "2023-09-20T19:16:24+00:00" + "time": "2023-11-15T19:19:39+00:00" }, { "name": "brick/math", @@ -284,16 +284,16 @@ }, { "name": "composer/pcre", - "version": "3.1.0", + "version": "3.1.1", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2" + "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", - "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", "shasum": "" }, "require": { @@ -335,7 +335,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.0" + "source": "https://github.com/composer/pcre/tree/3.1.1" }, "funding": [ { @@ -351,7 +351,7 @@ "type": "tidelift" } ], - "time": "2022-11-17T09:50:14+00:00" + "time": "2023-10-11T07:11:09+00:00" }, { "name": "composer/xdebug-handler", @@ -792,16 +792,16 @@ }, { "name": "egulias/email-validator", - "version": "4.0.1", + "version": "4.0.2", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff" + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/3a85486b709bc384dae8eb78fb2eec649bdb64ff", - "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", "shasum": "" }, "require": { @@ -810,8 +810,8 @@ "symfony/polyfill-intl-idn": "^1.26" }, "require-dev": { - "phpunit/phpunit": "^9.5.27", - "vimeo/psalm": "^4.30" + "phpunit/phpunit": "^10.2", + "vimeo/psalm": "^5.12" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" @@ -847,7 +847,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/4.0.1" + "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" }, "funding": [ { @@ -855,7 +855,7 @@ "type": "github" } ], - "time": "2023-01-14T14:17:03+00:00" + "time": "2023-10-06T06:47:41+00:00" }, { "name": "famdirksen/laravel-google-indexing", @@ -928,16 +928,16 @@ }, { "name": "firebase/php-jwt", - "version": "v6.8.1", + "version": "v6.9.0", "source": { "type": "git", "url": "https://github.com/firebase/php-jwt.git", - "reference": "5dbc8959427416b8ee09a100d7a8588c00fb2e26" + "reference": "f03270e63eaccf3019ef0f32849c497385774e11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/firebase/php-jwt/zipball/5dbc8959427416b8ee09a100d7a8588c00fb2e26", - "reference": "5dbc8959427416b8ee09a100d7a8588c00fb2e26", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/f03270e63eaccf3019ef0f32849c497385774e11", + "reference": "f03270e63eaccf3019ef0f32849c497385774e11", "shasum": "" }, "require": { @@ -985,37 +985,44 @@ ], "support": { "issues": "https://github.com/firebase/php-jwt/issues", - "source": "https://github.com/firebase/php-jwt/tree/v6.8.1" + "source": "https://github.com/firebase/php-jwt/tree/v6.9.0" }, - "time": "2023-07-14T18:33:00+00:00" + "time": "2023-10-05T00:24:42+00:00" }, { "name": "fivefilters/readability.php", - "version": "v1.0.0", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/fivefilters/readability.php.git", - "reference": "0d02e2916d1659bb79426969c5d48848ff402598" + "reference": "a00d35cb5eb14a236ba42326da9ac52c8c9f80a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fivefilters/readability.php/zipball/0d02e2916d1659bb79426969c5d48848ff402598", - "reference": "0d02e2916d1659bb79426969c5d48848ff402598", + "url": "https://api.github.com/repos/fivefilters/readability.php/zipball/a00d35cb5eb14a236ba42326da9ac52c8c9f80a1", + "reference": "a00d35cb5eb14a236ba42326da9ac52c8c9f80a1", "shasum": "" }, "require": { "ext-dom": "*", "ext-mbstring": "*", "ext-xml": "*", - "php": ">=5.6.0" + "league/uri": "~6.7.2", + "masterminds/html5": "^2.0", + "php": ">=7.4.0", + "psr/log": "^1.0 || ^2.0 || ^3.0" }, "require-dev": { - "phpunit/phpunit": "^5.7" + "monolog/monolog": "^2.3", + "phpunit/phpunit": "^9" + }, + "suggest": { + "monolog/monolog": "Allow logging debug information" }, "type": "library", "autoload": { "psr-4": { - "andreskrey\\Readability\\": "src/" + "fivefilters\\Readability\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1026,37 +1033,44 @@ { "name": "Andres Rey", "email": "andreskrey@gmail.com", - "role": "Lead Developer" + "role": "Original Developer" + }, + { + "name": "Keyvan Minoukadeh", + "email": "keyvan@fivefilters.org", + "homepage": "https://www.fivefilters.org", + "role": "Developer/Maintainer" } ], "description": "A PHP port of Readability.js", - "homepage": "https://github.com/andreskrey/readability", + "homepage": "https://github.com/fivefilters/readability.php", "keywords": [ "html", "readability" ], "support": { - "source": "https://github.com/fivefilters/readability.php/tree/v1.0.0" + "issues": "https://github.com/fivefilters/readability.php/issues", + "source": "https://github.com/fivefilters/readability.php/tree/v3.1.6" }, - "time": "2017-12-03T12:24:28+00:00" + "time": "2023-06-15T18:06:49+00:00" }, { "name": "fruitcake/php-cors", - "version": "v1.2.0", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/fruitcake/php-cors.git", - "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e" + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/58571acbaa5f9f462c9c77e911700ac66f446d4e", - "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b", "shasum": "" }, "require": { "php": "^7.4|^8.0", - "symfony/http-foundation": "^4.4|^5.4|^6" + "symfony/http-foundation": "^4.4|^5.4|^6|^7" }, "require-dev": { "phpstan/phpstan": "^1.4", @@ -1066,7 +1080,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.1-dev" + "dev-master": "1.2-dev" } }, "autoload": { @@ -1097,7 +1111,7 @@ ], "support": { "issues": "https://github.com/fruitcake/php-cors/issues", - "source": "https://github.com/fruitcake/php-cors/tree/v1.2.0" + "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0" }, "funding": [ { @@ -1109,7 +1123,7 @@ "type": "github" } ], - "time": "2022-02-20T15:07:15+00:00" + "time": "2023-10-12T05:21:21+00:00" }, { "name": "google/apiclient", @@ -1182,16 +1196,16 @@ }, { "name": "google/apiclient-services", - "version": "v0.317.0", + "version": "v0.324.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-api-php-client-services.git", - "reference": "a11658da6e5ba713e3d636544895bb0af3c27689" + "reference": "585cc823c3d59788e4a0829d5b7e41c76950d801" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/a11658da6e5ba713e3d636544895bb0af3c27689", - "reference": "a11658da6e5ba713e3d636544895bb0af3c27689", + "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/585cc823c3d59788e4a0829d5b7e41c76950d801", + "reference": "585cc823c3d59788e4a0829d5b7e41c76950d801", "shasum": "" }, "require": { @@ -1220,22 +1234,22 @@ ], "support": { "issues": "https://github.com/googleapis/google-api-php-client-services/issues", - "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.317.0" + "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.324.0" }, - "time": "2023-09-24T01:06:13+00:00" + "time": "2023-11-13T01:06:14+00:00" }, { "name": "google/auth", - "version": "v1.30.0", + "version": "v1.32.1", "source": { "type": "git", "url": "https://github.com/googleapis/google-auth-library-php.git", - "reference": "6028b072aa444d7edecbed603431322026704627" + "reference": "999e9ce8b9d17914f04e1718271a0a46da4de2f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/6028b072aa444d7edecbed603431322026704627", - "reference": "6028b072aa444d7edecbed603431322026704627", + "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/999e9ce8b9d17914f04e1718271a0a46da4de2f3", + "reference": "999e9ce8b9d17914f04e1718271a0a46da4de2f3", "shasum": "" }, "require": { @@ -1278,9 +1292,9 @@ "support": { "docs": "https://googleapis.github.io/google-auth-library-php/main/", "issues": "https://github.com/googleapis/google-auth-library-php/issues", - "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.30.0" + "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.32.1" }, - "time": "2023-09-07T19:13:44+00:00" + "time": "2023-10-17T21:13:22+00:00" }, { "name": "graham-campbell/markdown", @@ -1364,24 +1378,24 @@ }, { "name": "graham-campbell/result-type", - "version": "v1.1.1", + "version": "v1.1.2", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831" + "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831", - "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862", + "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.1" + "phpoption/phpoption": "^1.9.2" }, "require-dev": { - "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12" + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" }, "type": "library", "autoload": { @@ -1410,7 +1424,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.1" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2" }, "funding": [ { @@ -1422,7 +1436,7 @@ "type": "tidelift" } ], - "time": "2023-02-25T20:23:15+00:00" + "time": "2023-11-12T22:16:48+00:00" }, { "name": "guzzlehttp/guzzle", @@ -1897,16 +1911,16 @@ }, { "name": "inspector-apm/inspector-php", - "version": "3.7.18", + "version": "3.7.19", "source": { "type": "git", "url": "https://github.com/inspector-apm/inspector-php.git", - "reference": "c79ca8b6a3c83df2dcd292240ce220ebcfe6f83c" + "reference": "455d7caabf97ab5f6b50f9e8ad71a25f7f02cc56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/inspector-apm/inspector-php/zipball/c79ca8b6a3c83df2dcd292240ce220ebcfe6f83c", - "reference": "c79ca8b6a3c83df2dcd292240ce220ebcfe6f83c", + "url": "https://api.github.com/repos/inspector-apm/inspector-php/zipball/455d7caabf97ab5f6b50f9e8ad71a25f7f02cc56", + "reference": "455d7caabf97ab5f6b50f9e8ad71a25f7f02cc56", "shasum": "" }, "require": { @@ -1939,9 +1953,9 @@ ], "support": { "issues": "https://github.com/inspector-apm/inspector-php/issues", - "source": "https://github.com/inspector-apm/inspector-php/tree/3.7.18" + "source": "https://github.com/inspector-apm/inspector-php/tree/3.7.19" }, - "time": "2022-12-19T09:35:42+00:00" + "time": "2023-10-26T09:23:00+00:00" }, { "name": "intervention/image", @@ -2222,17 +2236,90 @@ "time": "2023-02-17T14:44:51+00:00" }, { - "name": "laravel/framework", - "version": "v10.24.0", + "name": "laravel-notification-channels/telegram", + "version": "4.0.0", "source": { "type": "git", - "url": "https://github.com/laravel/framework.git", - "reference": "bcebd0a4c015d5c38aeec299d355a42451dd3726" + "url": "https://github.com/laravel-notification-channels/telegram.git", + "reference": "c67b312193fcd59c8abad1ee1f5b1f4e5540c201" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/bcebd0a4c015d5c38aeec299d355a42451dd3726", - "reference": "bcebd0a4c015d5c38aeec299d355a42451dd3726", + "url": "https://api.github.com/repos/laravel-notification-channels/telegram/zipball/c67b312193fcd59c8abad1ee1f5b1f4e5540c201", + "reference": "c67b312193fcd59c8abad1ee1f5b1f4e5540c201", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/guzzle": "^7.2", + "illuminate/contracts": "^10.0", + "illuminate/notifications": "^10.0", + "illuminate/support": "^10.0", + "php": "^8.1" + }, + "require-dev": { + "mockery/mockery": "^1.4.4", + "nunomaduro/larastan": "^2.4", + "orchestra/testbench": "^8.0", + "pestphp/pest": "^1.22", + "pestphp/pest-plugin-laravel": "^1.4", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan-deprecation-rules": "^1.1", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5.10" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "NotificationChannels\\Telegram\\TelegramServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "NotificationChannels\\Telegram\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Irfaq Syed", + "email": "github@lukonet.net", + "homepage": "https://lukonet.com", + "role": "Developer" + } + ], + "description": "Telegram Notifications Channel for Laravel", + "homepage": "https://github.com/laravel-notification-channels/telegram", + "keywords": [ + "laravel", + "notification", + "telegram", + "telegram notification", + "telegram notifications channel" + ], + "support": { + "issues": "https://github.com/laravel-notification-channels/telegram/issues", + "source": "https://github.com/laravel-notification-channels/telegram/tree/4.0.0" + }, + "time": "2023-02-14T18:21:03+00:00" + }, + { + "name": "laravel/framework", + "version": "v10.32.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/framework.git", + "reference": "b30e44f20d244f7ba125283e14a8bbac167f4e5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/framework/zipball/b30e44f20d244f7ba125283e14a8bbac167f4e5b", + "reference": "b30e44f20d244f7ba125283e14a8bbac167f4e5b", "shasum": "" }, "require": { @@ -2250,7 +2337,7 @@ "ext-tokenizer": "*", "fruitcake/php-cors": "^1.2", "guzzlehttp/uri-template": "^1.0", - "laravel/prompts": "^0.1", + "laravel/prompts": "^0.1.9", "laravel/serializable-closure": "^1.3", "league/commonmark": "^2.2.1", "league/flysystem": "^3.8.0", @@ -2265,7 +2352,7 @@ "symfony/console": "^6.2", "symfony/error-handler": "^6.2", "symfony/finder": "^6.2", - "symfony/http-foundation": "^6.2", + "symfony/http-foundation": "^6.3", "symfony/http-kernel": "^6.2", "symfony/mailer": "^6.2", "symfony/mime": "^6.2", @@ -2332,13 +2419,15 @@ "league/flysystem-read-only": "^3.3", "league/flysystem-sftp-v3": "^3.0", "mockery/mockery": "^1.5.1", - "orchestra/testbench-core": "^8.10", + "nyholm/psr7": "^1.2", + "orchestra/testbench-core": "^8.15.1", "pda/pheanstalk": "^4.0", "phpstan/phpstan": "^1.4.7", "phpunit/phpunit": "^10.0.7", "predis/predis": "^2.0.2", "symfony/cache": "^6.2", - "symfony/http-client": "^6.2.4" + "symfony/http-client": "^6.2.4", + "symfony/psr-http-message-bridge": "^2.0" }, "suggest": { "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", @@ -2419,27 +2508,31 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2023-09-19T15:25:04+00:00" + "time": "2023-11-14T22:57:08+00:00" }, { "name": "laravel/prompts", - "version": "v0.1.8", + "version": "v0.1.13", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "68dcc65babf92e1fb43cba0b3f78fc3d8002709c" + "reference": "e1379d8ead15edd6cc4369c22274345982edc95a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/68dcc65babf92e1fb43cba0b3f78fc3d8002709c", - "reference": "68dcc65babf92e1fb43cba0b3f78fc3d8002709c", + "url": "https://api.github.com/repos/laravel/prompts/zipball/e1379d8ead15edd6cc4369c22274345982edc95a", + "reference": "e1379d8ead15edd6cc4369c22274345982edc95a", "shasum": "" }, "require": { "ext-mbstring": "*", "illuminate/collections": "^10.0|^11.0", "php": "^8.1", - "symfony/console": "^6.2" + "symfony/console": "^6.2|^7.0" + }, + "conflict": { + "illuminate/console": ">=10.17.0 <10.25.0", + "laravel/framework": ">=10.17.0 <10.25.0" }, "require-dev": { "mockery/mockery": "^1.5", @@ -2451,6 +2544,11 @@ "ext-pcntl": "Required for the spinner to be animated." }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.1.x-dev" + } + }, "autoload": { "files": [ "src/helpers.php" @@ -2465,22 +2563,22 @@ ], "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.1.8" + "source": "https://github.com/laravel/prompts/tree/v0.1.13" }, - "time": "2023-09-19T15:33:56+00:00" + "time": "2023-10-27T13:53:59+00:00" }, { "name": "laravel/sanctum", - "version": "v3.3.1", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/laravel/sanctum.git", - "reference": "338f633e6487e76b255470d3373fbc29228aa971" + "reference": "e1a272893bec13cf135627f7e156030b3afe1e60" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/338f633e6487e76b255470d3373fbc29228aa971", - "reference": "338f633e6487e76b255470d3373fbc29228aa971", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/e1a272893bec13cf135627f7e156030b3afe1e60", + "reference": "e1a272893bec13cf135627f7e156030b3afe1e60", "shasum": "" }, "require": { @@ -2533,20 +2631,20 @@ "issues": "https://github.com/laravel/sanctum/issues", "source": "https://github.com/laravel/sanctum" }, - "time": "2023-09-07T15:46:33+00:00" + "time": "2023-11-03T13:42:14+00:00" }, { "name": "laravel/serializable-closure", - "version": "v1.3.1", + "version": "v1.3.3", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "e5a3057a5591e1cfe8183034b0203921abe2c902" + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/e5a3057a5591e1cfe8183034b0203921abe2c902", - "reference": "e5a3057a5591e1cfe8183034b0203921abe2c902", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754", + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754", "shasum": "" }, "require": { @@ -2593,7 +2691,7 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2023-07-14T13:56:28+00:00" + "time": "2023-11-08T14:08:06+00:00" }, { "name": "laravel/tinker", @@ -2854,16 +2952,16 @@ }, { "name": "league/flysystem", - "version": "3.16.0", + "version": "3.19.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "4fdf372ca6b63c6e281b1c01a624349ccb757729" + "reference": "1b2aa10f2326e0351399b8ce68e287d8e9209a83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/4fdf372ca6b63c6e281b1c01a624349ccb757729", - "reference": "4fdf372ca6b63c6e281b1c01a624349ccb757729", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/1b2aa10f2326e0351399b8ce68e287d8e9209a83", + "reference": "1b2aa10f2326e0351399b8ce68e287d8e9209a83", "shasum": "" }, "require": { @@ -2881,8 +2979,8 @@ "symfony/http-client": "<5.2" }, "require-dev": { - "async-aws/s3": "^1.5", - "async-aws/simple-s3": "^1.1", + "async-aws/s3": "^1.5 || ^2.0", + "async-aws/simple-s3": "^1.1 || ^2.0", "aws/aws-sdk-php": "^3.220.0", "composer/semver": "^3.0", "ext-fileinfo": "*", @@ -2892,7 +2990,7 @@ "google/cloud-storage": "^1.23", "microsoft/azure-storage-blob": "^1.1", "phpseclib/phpseclib": "^3.0.14", - "phpstan/phpstan": "^0.12.26", + "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^9.5.11|^10.0", "sabre/dav": "^4.3.1" }, @@ -2928,7 +3026,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.16.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.19.0" }, "funding": [ { @@ -2940,20 +3038,20 @@ "type": "github" } ], - "time": "2023-09-07T19:22:17+00:00" + "time": "2023-11-07T09:04:28+00:00" }, { "name": "league/flysystem-aws-s3-v3", - "version": "3.16.0", + "version": "3.19.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "ded9ba346bb01cb9cc4cc7f2743c2c0e14d18e1c" + "reference": "03be643c8ed4dea811d946101be3bc875b5cf214" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/ded9ba346bb01cb9cc4cc7f2743c2c0e14d18e1c", - "reference": "ded9ba346bb01cb9cc4cc7f2743c2c0e14d18e1c", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/03be643c8ed4dea811d946101be3bc875b5cf214", + "reference": "03be643c8ed4dea811d946101be3bc875b5cf214", "shasum": "" }, "require": { @@ -2994,7 +3092,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues", - "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.16.0" + "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.19.0" }, "funding": [ { @@ -3006,20 +3104,20 @@ "type": "github" } ], - "time": "2023-08-30T10:14:57+00:00" + "time": "2023-11-06T20:35:28+00:00" }, { "name": "league/flysystem-local", - "version": "3.16.0", + "version": "3.19.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "ec7383f25642e6fd4bb0c9554fc2311245391781" + "reference": "8d868217f9eeb4e9a7320db5ccad825e9a7a4076" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/ec7383f25642e6fd4bb0c9554fc2311245391781", - "reference": "ec7383f25642e6fd4bb0c9554fc2311245391781", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/8d868217f9eeb4e9a7320db5ccad825e9a7a4076", + "reference": "8d868217f9eeb4e9a7320db5ccad825e9a7a4076", "shasum": "" }, "require": { @@ -3054,7 +3152,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem-local/issues", - "source": "https://github.com/thephpleague/flysystem-local/tree/3.16.0" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.19.0" }, "funding": [ { @@ -3066,7 +3164,7 @@ "type": "github" } ], - "time": "2023-08-30T10:23:59+00:00" + "time": "2023-11-06T20:35:28+00:00" }, { "name": "league/glide", @@ -3134,17 +3232,106 @@ "time": "2023-07-08T06:26:07+00:00" }, { - "name": "league/mime-type-detection", - "version": "1.13.0", + "name": "league/html-to-markdown", + "version": "5.1.1", "source": { "type": "git", - "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "a6dfb1194a2946fcdc1f38219445234f65b35c96" + "url": "https://github.com/thephpleague/html-to-markdown.git", + "reference": "0b4066eede55c48f38bcee4fb8f0aa85654390fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/a6dfb1194a2946fcdc1f38219445234f65b35c96", - "reference": "a6dfb1194a2946fcdc1f38219445234f65b35c96", + "url": "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/0b4066eede55c48f38bcee4fb8f0aa85654390fd", + "reference": "0b4066eede55c48f38bcee4fb8f0aa85654390fd", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xml": "*", + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "mikehaertl/php-shellcommand": "^1.1.0", + "phpstan/phpstan": "^1.8.8", + "phpunit/phpunit": "^8.5 || ^9.2", + "scrutinizer/ocular": "^1.6", + "unleashedtech/php-coding-standard": "^2.7 || ^3.0", + "vimeo/psalm": "^4.22 || ^5.0" + }, + "bin": [ + "bin/html-to-markdown" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\HTMLToMarkdown\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + }, + { + "name": "Nick Cernis", + "email": "nick@cern.is", + "homepage": "http://modernnerd.net", + "role": "Original Author" + } + ], + "description": "An HTML-to-markdown conversion helper for PHP", + "homepage": "https://github.com/thephpleague/html-to-markdown", + "keywords": [ + "html", + "markdown" + ], + "support": { + "issues": "https://github.com/thephpleague/html-to-markdown/issues", + "source": "https://github.com/thephpleague/html-to-markdown/tree/5.1.1" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/html-to-markdown", + "type": "tidelift" + } + ], + "time": "2023-07-12T21:21:09+00:00" + }, + { + "name": "league/mime-type-detection", + "version": "1.14.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/mime-type-detection.git", + "reference": "b6a5854368533df0295c5761a0253656a2e52d9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/b6a5854368533df0295c5761a0253656a2e52d9e", + "reference": "b6a5854368533df0295c5761a0253656a2e52d9e", "shasum": "" }, "require": { @@ -3175,7 +3362,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.13.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.14.0" }, "funding": [ { @@ -3187,7 +3374,177 @@ "type": "tidelift" } ], - "time": "2023-08-05T12:09:49+00:00" + "time": "2023-10-17T14:13:20+00:00" + }, + { + "name": "league/uri", + "version": "6.7.2", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri.git", + "reference": "d3b50812dd51f3fbf176344cc2981db03d10fe06" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/d3b50812dd51f3fbf176344cc2981db03d10fe06", + "reference": "d3b50812dd51f3fbf176344cc2981db03d10fe06", + "shasum": "" + }, + "require": { + "ext-json": "*", + "league/uri-interfaces": "^2.3", + "php": "^7.4 || ^8.0", + "psr/http-message": "^1.0" + }, + "conflict": { + "league/uri-schemes": "^1.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^v3.3.2", + "nyholm/psr7": "^1.5", + "php-http/psr7-integration-tests": "^1.1", + "phpstan/phpstan": "^1.2.0", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0.0", + "phpstan/phpstan-strict-rules": "^1.1.0", + "phpunit/phpunit": "^9.5.10", + "psr/http-factory": "^1.0" + }, + "suggest": { + "ext-fileinfo": "Needed to create Data URI from a filepath", + "ext-intl": "Needed to improve host validation", + "league/uri-components": "Needed to easily manipulate URI objects", + "psr/http-factory": "Needed to use the URI factory" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "URI manipulation library", + "homepage": "https://uri.thephpleague.com", + "keywords": [ + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "middleware", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "uri-template", + "url", + "ws" + ], + "support": { + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri/issues", + "source": "https://github.com/thephpleague/uri/tree/6.7.2" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2022-09-13T19:50:42+00:00" + }, + { + "name": "league/uri-interfaces", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri-interfaces.git", + "reference": "00e7e2943f76d8cb50c7dfdc2f6dee356e15e383" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/00e7e2943f76d8cb50c7dfdc2f6dee356e15e383", + "reference": "00e7e2943f76d8cb50c7dfdc2f6dee356e15e383", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.19", + "phpstan/phpstan": "^0.12.90", + "phpstan/phpstan-phpunit": "^0.12.19", + "phpstan/phpstan-strict-rules": "^0.12.9", + "phpunit/phpunit": "^8.5.15 || ^9.5" + }, + "suggest": { + "ext-intl": "to use the IDNA feature", + "symfony/intl": "to use the IDNA feature via Symfony Polyfill" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "Common interface for URI representation", + "homepage": "http://github.com/thephpleague/uri-interfaces", + "keywords": [ + "rfc3986", + "rfc3987", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/thephpleague/uri-interfaces/issues", + "source": "https://github.com/thephpleague/uri-interfaces/tree/2.3.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2021-06-28T04:27:21+00:00" }, { "name": "masterminds/html5", @@ -3257,17 +3614,88 @@ "time": "2023-05-10T11:58:31+00:00" }, { - "name": "monolog/monolog", - "version": "3.4.0", + "name": "mis3085/tiktoken-for-laravel", + "version": "0.1.2", "source": { "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "e2392369686d420ca32df3803de28b5d6f76867d" + "url": "https://github.com/mis3085/tiktoken-for-laravel.git", + "reference": "3f588e42ed3ed2944e735b752885da9fb3d982bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/e2392369686d420ca32df3803de28b5d6f76867d", - "reference": "e2392369686d420ca32df3803de28b5d6f76867d", + "url": "https://api.github.com/repos/mis3085/tiktoken-for-laravel/zipball/3f588e42ed3ed2944e735b752885da9fb3d982bf", + "reference": "3f588e42ed3ed2944e735b752885da9fb3d982bf", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^9.28|^10.0", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.14.0", + "yethee/tiktoken": "^0.1.2" + }, + "require-dev": { + "laravel/pint": "^1.0", + "nunomaduro/collision": "^5.11|^6.0|^7.9", + "nunomaduro/larastan": "^1.0|^2.0.1", + "orchestra/testbench": "^7.0|^8.0", + "pestphp/pest": "^1.21|^2.0", + "pestphp/pest-plugin-laravel": "^1.1|^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Mis3085\\Tiktoken\\TiktokenServiceProvider" + ], + "aliases": { + "Tiktoken": "Mis3085\\Tiktoken\\Facades\\Tiktoken" + } + } + }, + "autoload": { + "psr-4": { + "Mis3085\\Tiktoken\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "mis3085", + "email": "17059877+mis3085@users.noreply.github.com", + "role": "Developer" + } + ], + "description": "This is tiktoken-php (yethee/tiktoken) wrapper for Laravel", + "homepage": "https://github.com/mis3085/tiktoken-for-laravel", + "keywords": [ + "laravel", + "tiktoken", + "tiktoken-for-laravel" + ], + "support": { + "issues": "https://github.com/mis3085/tiktoken-for-laravel/issues", + "source": "https://github.com/mis3085/tiktoken-for-laravel/tree/0.1.2" + }, + "time": "2023-05-18T05:47:13+00:00" + }, + { + "name": "monolog/monolog", + "version": "3.5.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448", "shasum": "" }, "require": { @@ -3343,7 +3771,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.4.0" + "source": "https://github.com/Seldaek/monolog/tree/3.5.0" }, "funding": [ { @@ -3355,7 +3783,7 @@ "type": "tidelift" } ], - "time": "2023-06-21T08:46:11+00:00" + "time": "2023-10-27T15:32:31+00:00" }, { "name": "mtdowling/jmespath.php", @@ -3425,16 +3853,16 @@ }, { "name": "nesbot/carbon", - "version": "2.70.0", + "version": "2.71.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "d3298b38ea8612e5f77d38d1a99438e42f70341d" + "reference": "98276233188583f2ff845a0f992a235472d9466a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d3298b38ea8612e5f77d38d1a99438e42f70341d", - "reference": "d3298b38ea8612e5f77d38d1a99438e42f70341d", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/98276233188583f2ff845a0f992a235472d9466a", + "reference": "98276233188583f2ff845a0f992a235472d9466a", "shasum": "" }, "require": { @@ -3527,20 +3955,20 @@ "type": "tidelift" } ], - "time": "2023-09-07T16:43:50+00:00" + "time": "2023-09-25T11:31:05+00:00" }, { "name": "nette/schema", - "version": "v1.2.4", + "version": "v1.2.5", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "c9ff517a53903b3d4e29ec547fb20feecb05b8ab" + "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/c9ff517a53903b3d4e29ec547fb20feecb05b8ab", - "reference": "c9ff517a53903b3d4e29ec547fb20feecb05b8ab", + "url": "https://api.github.com/repos/nette/schema/zipball/0462f0166e823aad657c9224d0f849ecac1ba10a", + "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a", "shasum": "" }, "require": { @@ -3587,22 +4015,22 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.4" + "source": "https://github.com/nette/schema/tree/v1.2.5" }, - "time": "2023-08-05T18:56:25+00:00" + "time": "2023-10-05T20:37:59+00:00" }, { "name": "nette/utils", - "version": "v4.0.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "cead6637226456b35e1175cc53797dd585d85545" + "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/cead6637226456b35e1175cc53797dd585d85545", - "reference": "cead6637226456b35e1175cc53797dd585d85545", + "url": "https://api.github.com/repos/nette/utils/zipball/a9d127dd6a203ce6d255b2e2db49759f7506e015", + "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015", "shasum": "" }, "require": { @@ -3673,9 +4101,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.2" + "source": "https://github.com/nette/utils/tree/v4.0.3" }, - "time": "2023-09-19T11:58:07+00:00" + "time": "2023-10-29T21:02:13+00:00" }, { "name": "nicmart/tree", @@ -3984,16 +4412,16 @@ }, { "name": "pdepend/pdepend", - "version": "2.15.0", + "version": "2.15.1", "source": { "type": "git", "url": "https://github.com/pdepend/pdepend.git", - "reference": "0d4d8fb87aa74c358c1c4364514017f34b4a68b9" + "reference": "d12f25bcdfb7754bea458a4a5cb159d55e9950d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/0d4d8fb87aa74c358c1c4364514017f34b4a68b9", - "reference": "0d4d8fb87aa74c358c1c4364514017f34b4a68b9", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/d12f25bcdfb7754bea458a4a5cb159d55e9950d0", + "reference": "d12f25bcdfb7754bea458a4a5cb159d55e9950d0", "shasum": "" }, "require": { @@ -4035,7 +4463,7 @@ ], "support": { "issues": "https://github.com/pdepend/pdepend/issues", - "source": "https://github.com/pdepend/pdepend/tree/2.15.0" + "source": "https://github.com/pdepend/pdepend/tree/2.15.1" }, "funding": [ { @@ -4043,26 +4471,26 @@ "type": "tidelift" } ], - "time": "2023-09-22T02:30:39+00:00" + "time": "2023-09-28T12:00:56+00:00" }, { "name": "phpmd/phpmd", - "version": "2.13.0", + "version": "2.14.1", "source": { "type": "git", "url": "https://github.com/phpmd/phpmd.git", - "reference": "dad0228156856b3ad959992f9748514fa943f3e3" + "reference": "442fc2c34edcd5198b442d8647c7f0aec3afabe8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmd/phpmd/zipball/dad0228156856b3ad959992f9748514fa943f3e3", - "reference": "dad0228156856b3ad959992f9748514fa943f3e3", + "url": "https://api.github.com/repos/phpmd/phpmd/zipball/442fc2c34edcd5198b442d8647c7f0aec3afabe8", + "reference": "442fc2c34edcd5198b442d8647c7f0aec3afabe8", "shasum": "" }, "require": { "composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0", "ext-xml": "*", - "pdepend/pdepend": "^2.12.1", + "pdepend/pdepend": "^2.15.1", "php": ">=5.3.9" }, "require-dev": { @@ -4072,7 +4500,7 @@ "gregwar/rst": "^1.0", "mikey179/vfsstream": "^1.6.8", "phpunit/phpunit": "^4.8.36 || ^5.7.27", - "squizlabs/php_codesniffer": "^2.0" + "squizlabs/php_codesniffer": "^2.9.2 || ^3.7.2" }, "bin": [ "src/bin/phpmd" @@ -4109,6 +4537,7 @@ "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.", "homepage": "https://phpmd.org/", "keywords": [ + "dev", "mess detection", "mess detector", "pdepend", @@ -4118,7 +4547,7 @@ "support": { "irc": "irc://irc.freenode.org/phpmd", "issues": "https://github.com/phpmd/phpmd/issues", - "source": "https://github.com/phpmd/phpmd/tree/2.13.0" + "source": "https://github.com/phpmd/phpmd/tree/2.14.1" }, "funding": [ { @@ -4126,20 +4555,20 @@ "type": "tidelift" } ], - "time": "2022-09-10T08:44:15+00:00" + "time": "2023-09-28T13:07:44+00:00" }, { "name": "phpoption/phpoption", - "version": "1.9.1", + "version": "1.9.2", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e" + "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dd3a383e599f49777d8b628dadbb90cae435b87e", - "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820", + "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820", "shasum": "" }, "require": { @@ -4147,7 +4576,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12" + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" }, "type": "library", "extra": { @@ -4189,7 +4618,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.1" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.2" }, "funding": [ { @@ -4201,20 +4630,20 @@ "type": "tidelift" } ], - "time": "2023-02-25T19:38:58+00:00" + "time": "2023-11-12T21:59:55+00:00" }, { "name": "phpseclib/phpseclib", - "version": "3.0.23", + "version": "3.0.33", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "866cc78fbd82462ffd880e3f65692afe928bed50" + "reference": "33fa69b2514a61138dd48e7a49f99445711e0ad0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/866cc78fbd82462ffd880e3f65692afe928bed50", - "reference": "866cc78fbd82462ffd880e3f65692afe928bed50", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/33fa69b2514a61138dd48e7a49f99445711e0ad0", + "reference": "33fa69b2514a61138dd48e7a49f99445711e0ad0", "shasum": "" }, "require": { @@ -4295,7 +4724,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/3.0.23" + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.33" }, "funding": [ { @@ -4311,7 +4740,7 @@ "type": "tidelift" } ], - "time": "2023-09-18T17:22:01+00:00" + "time": "2023-10-21T14:00:39+00:00" }, { "name": "predis/predis", @@ -4576,16 +5005,16 @@ }, { "name": "psr/http-client", - "version": "1.0.2", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/php-fig/http-client.git", - "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31" + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31", - "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", "shasum": "" }, "require": { @@ -4622,9 +5051,9 @@ "psr-18" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/1.0.2" + "source": "https://github.com/php-fig/http-client" }, - "time": "2023-04-10T20:12:12+00:00" + "time": "2023-09-23T14:17:50+00:00" }, { "name": "psr/http-factory", @@ -4683,16 +5112,16 @@ }, { "name": "psr/http-message", - "version": "2.0", + "version": "1.1", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", - "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", "shasum": "" }, "require": { @@ -4701,7 +5130,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -4716,7 +5145,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "homepage": "http://www.php-fig.org/" } ], "description": "Common interface for HTTP messages", @@ -4730,9 +5159,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/2.0" + "source": "https://github.com/php-fig/http-message/tree/1.1" }, - "time": "2023-04-04T09:54:51+00:00" + "time": "2023-04-04T09:50:52+00:00" }, { "name": "psr/log", @@ -4837,16 +5266,16 @@ }, { "name": "psy/psysh", - "version": "v0.11.21", + "version": "v0.11.22", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "bcb22101107f3bf770523b65630c9d547f60c540" + "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/bcb22101107f3bf770523b65630c9d547f60c540", - "reference": "bcb22101107f3bf770523b65630c9d547f60c540", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/128fa1b608be651999ed9789c95e6e2a31b5802b", + "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b", "shasum": "" }, "require": { @@ -4875,7 +5304,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "0.11.x-dev" + "dev-0.11": "0.11.x-dev" }, "bamarni-bin": { "bin-links": false, @@ -4911,9 +5340,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.21" + "source": "https://github.com/bobthecow/psysh/tree/v0.11.22" }, - "time": "2023-09-17T21:15:54+00:00" + "time": "2023-10-14T21:56:36+00:00" }, { "name": "ralouphie/getallheaders", @@ -5050,16 +5479,16 @@ }, { "name": "ramsey/uuid", - "version": "4.7.4", + "version": "4.7.5", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "60a4c63ab724854332900504274f6150ff26d286" + "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/60a4c63ab724854332900504274f6150ff26d286", - "reference": "60a4c63ab724854332900504274f6150ff26d286", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", + "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", "shasum": "" }, "require": { @@ -5126,7 +5555,7 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.7.4" + "source": "https://github.com/ramsey/uuid/tree/4.7.5" }, "funding": [ { @@ -5138,7 +5567,7 @@ "type": "tidelift" } ], - "time": "2023-04-15T23:01:58+00:00" + "time": "2023-11-08T05:53:05+00:00" }, { "name": "silviolleite/laravelpwa", @@ -5192,21 +5621,21 @@ }, { "name": "spatie/browsershot", - "version": "3.58.2", + "version": "3.60.0", "source": { "type": "git", "url": "https://github.com/spatie/browsershot.git", - "reference": "6503b2b429e10ff28a4cdb9fffaecc25ba6d032c" + "reference": "0be848cf5c562179eceea96d8c3297e59fd0dd55" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/browsershot/zipball/6503b2b429e10ff28a4cdb9fffaecc25ba6d032c", - "reference": "6503b2b429e10ff28a4cdb9fffaecc25ba6d032c", + "url": "https://api.github.com/repos/spatie/browsershot/zipball/0be848cf5c562179eceea96d8c3297e59fd0dd55", + "reference": "0be848cf5c562179eceea96d8c3297e59fd0dd55", "shasum": "" }, "require": { "ext-json": "*", - "php": "^7.4|^8.0", + "php": "^8.0", "spatie/image": "^1.5.3|^2.0", "spatie/temporary-directory": "^1.1|^2.0", "symfony/process": "^4.2|^5.0|^6.0" @@ -5246,7 +5675,7 @@ "webpage" ], "support": { - "source": "https://github.com/spatie/browsershot/tree/3.58.2" + "source": "https://github.com/spatie/browsershot/tree/3.60.0" }, "funding": [ { @@ -5254,7 +5683,7 @@ "type": "github" } ], - "time": "2023-07-27T07:51:54+00:00" + "time": "2023-11-16T12:27:51+00:00" }, { "name": "spatie/crawler", @@ -5395,28 +5824,28 @@ }, { "name": "spatie/image-optimizer", - "version": "1.7.1", + "version": "1.7.2", "source": { "type": "git", "url": "https://github.com/spatie/image-optimizer.git", - "reference": "af179994e2d2413e4b3ba2d348d06b4eaddbeb30" + "reference": "62f7463483d1bd975f6f06025d89d42a29608fe1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/af179994e2d2413e4b3ba2d348d06b4eaddbeb30", - "reference": "af179994e2d2413e4b3ba2d348d06b4eaddbeb30", + "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/62f7463483d1bd975f6f06025d89d42a29608fe1", + "reference": "62f7463483d1bd975f6f06025d89d42a29608fe1", "shasum": "" }, "require": { "ext-fileinfo": "*", "php": "^7.3|^8.0", "psr/log": "^1.0 | ^2.0 | ^3.0", - "symfony/process": "^4.2|^5.0|^6.0" + "symfony/process": "^4.2|^5.0|^6.0|^7.0" }, "require-dev": { "pestphp/pest": "^1.21", "phpunit/phpunit": "^8.5.21|^9.4.4", - "symfony/var-dumper": "^4.2|^5.0|^6.0" + "symfony/var-dumper": "^4.2|^5.0|^6.0|^7.0" }, "type": "library", "autoload": { @@ -5444,9 +5873,9 @@ ], "support": { "issues": "https://github.com/spatie/image-optimizer/issues", - "source": "https://github.com/spatie/image-optimizer/tree/1.7.1" + "source": "https://github.com/spatie/image-optimizer/tree/1.7.2" }, - "time": "2023-07-27T07:57:32+00:00" + "time": "2023-11-03T10:08:02+00:00" }, { "name": "spatie/laravel-feed", @@ -5670,16 +6099,16 @@ }, { "name": "spatie/laravel-sitemap", - "version": "6.3.1", + "version": "6.4.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-sitemap.git", - "reference": "39844ec1836e76f9f090075c49b5ae2b5fea79f9" + "reference": "d5115b430de517aaa29a6410f4cd6f1561766579" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-sitemap/zipball/39844ec1836e76f9f090075c49b5ae2b5fea79f9", - "reference": "39844ec1836e76f9f090075c49b5ae2b5fea79f9", + "url": "https://api.github.com/repos/spatie/laravel-sitemap/zipball/d5115b430de517aaa29a6410f4cd6f1561766579", + "reference": "d5115b430de517aaa29a6410f4cd6f1561766579", "shasum": "" }, "require": { @@ -5732,7 +6161,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/laravel-sitemap/tree/6.3.1" + "source": "https://github.com/spatie/laravel-sitemap/tree/6.4.0" }, "funding": [ { @@ -5740,7 +6169,7 @@ "type": "custom" } ], - "time": "2023-06-27T08:05:18+00:00" + "time": "2023-10-18T14:38:11+00:00" }, { "name": "spatie/robots-txt", @@ -5805,16 +6234,16 @@ }, { "name": "spatie/temporary-directory", - "version": "2.1.2", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/spatie/temporary-directory.git", - "reference": "0c804873f6b4042aa8836839dca683c7d0f71831" + "reference": "efc258c9f4da28f0c7661765b8393e4ccee3d19c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/0c804873f6b4042aa8836839dca683c7d0f71831", - "reference": "0c804873f6b4042aa8836839dca683c7d0f71831", + "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/efc258c9f4da28f0c7661765b8393e4ccee3d19c", + "reference": "efc258c9f4da28f0c7661765b8393e4ccee3d19c", "shasum": "" }, "require": { @@ -5850,7 +6279,7 @@ ], "support": { "issues": "https://github.com/spatie/temporary-directory/issues", - "source": "https://github.com/spatie/temporary-directory/tree/2.1.2" + "source": "https://github.com/spatie/temporary-directory/tree/2.2.0" }, "funding": [ { @@ -5862,20 +6291,20 @@ "type": "github" } ], - "time": "2023-04-28T07:47:42+00:00" + "time": "2023-09-25T07:13:36+00:00" }, { "name": "symfony/config", - "version": "v6.3.2", + "version": "v6.3.8", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "b47ca238b03e7b0d7880ffd1cf06e8d637ca1467" + "reference": "b7a63887960359e5b59b15826fa9f9be10acbe88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/b47ca238b03e7b0d7880ffd1cf06e8d637ca1467", - "reference": "b47ca238b03e7b0d7880ffd1cf06e8d637ca1467", + "url": "https://api.github.com/repos/symfony/config/zipball/b7a63887960359e5b59b15826fa9f9be10acbe88", + "reference": "b7a63887960359e5b59b15826fa9f9be10acbe88", "shasum": "" }, "require": { @@ -5921,7 +6350,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v6.3.2" + "source": "https://github.com/symfony/config/tree/v6.3.8" }, "funding": [ { @@ -5937,20 +6366,20 @@ "type": "tidelift" } ], - "time": "2023-07-19T20:22:16+00:00" + "time": "2023-11-09T08:28:21+00:00" }, { "name": "symfony/console", - "version": "v6.3.4", + "version": "v6.3.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6" + "reference": "0d14a9f6d04d4ac38a8cea1171f4554e325dae92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/eca495f2ee845130855ddf1cf18460c38966c8b6", - "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6", + "url": "https://api.github.com/repos/symfony/console/zipball/0d14a9f6d04d4ac38a8cea1171f4554e325dae92", + "reference": "0d14a9f6d04d4ac38a8cea1171f4554e325dae92", "shasum": "" }, "require": { @@ -6011,7 +6440,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.3.4" + "source": "https://github.com/symfony/console/tree/v6.3.8" }, "funding": [ { @@ -6027,7 +6456,7 @@ "type": "tidelift" } ], - "time": "2023-08-16T10:10:12+00:00" + "time": "2023-10-31T08:09:35+00:00" }, { "name": "symfony/css-selector", @@ -6096,16 +6525,16 @@ }, { "name": "symfony/dependency-injection", - "version": "v6.3.4", + "version": "v6.3.8", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "68a5a9570806a087982f383f6109c5e925892a49" + "reference": "1f30f545c4151f611148fc19e28d54d39e0a00bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/68a5a9570806a087982f383f6109c5e925892a49", - "reference": "68a5a9570806a087982f383f6109c5e925892a49", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/1f30f545c4151f611148fc19e28d54d39e0a00bc", + "reference": "1f30f545c4151f611148fc19e28d54d39e0a00bc", "shasum": "" }, "require": { @@ -6157,7 +6586,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.3.4" + "source": "https://github.com/symfony/dependency-injection/tree/v6.3.8" }, "funding": [ { @@ -6173,11 +6602,11 @@ "type": "tidelift" } ], - "time": "2023-08-16T17:55:17+00:00" + "time": "2023-10-31T08:07:48+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.3.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", @@ -6224,7 +6653,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" }, "funding": [ { @@ -6311,16 +6740,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.3.2", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "85fd65ed295c4078367c784e8a5a6cee30348b7a" + "reference": "1f69476b64fb47105c06beef757766c376b548c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/85fd65ed295c4078367c784e8a5a6cee30348b7a", - "reference": "85fd65ed295c4078367c784e8a5a6cee30348b7a", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/1f69476b64fb47105c06beef757766c376b548c4", + "reference": "1f69476b64fb47105c06beef757766c376b548c4", "shasum": "" }, "require": { @@ -6365,7 +6794,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.3.2" + "source": "https://github.com/symfony/error-handler/tree/v6.3.5" }, "funding": [ { @@ -6381,7 +6810,7 @@ "type": "tidelift" } ], - "time": "2023-07-16T17:05:46+00:00" + "time": "2023-09-12T06:57:20+00:00" }, { "name": "symfony/event-dispatcher", @@ -6465,7 +6894,7 @@ }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.3.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", @@ -6521,7 +6950,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0" }, "funding": [ { @@ -6604,16 +7033,16 @@ }, { "name": "symfony/finder", - "version": "v6.3.3", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9915db259f67d21eefee768c1abcf1cc61b1fc9e" + "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9915db259f67d21eefee768c1abcf1cc61b1fc9e", - "reference": "9915db259f67d21eefee768c1abcf1cc61b1fc9e", + "url": "https://api.github.com/repos/symfony/finder/zipball/a1b31d88c0e998168ca7792f222cbecee47428c4", + "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4", "shasum": "" }, "require": { @@ -6648,7 +7077,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.3.3" + "source": "https://github.com/symfony/finder/tree/v6.3.5" }, "funding": [ { @@ -6664,20 +7093,20 @@ "type": "tidelift" } ], - "time": "2023-07-31T08:31:44+00:00" + "time": "2023-09-26T12:56:25+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.3.4", + "version": "v6.3.8", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "cac1556fdfdf6719668181974104e6fcfa60e844" + "reference": "ce332676de1912c4389222987193c3ef38033df6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/cac1556fdfdf6719668181974104e6fcfa60e844", - "reference": "cac1556fdfdf6719668181974104e6fcfa60e844", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ce332676de1912c4389222987193c3ef38033df6", + "reference": "ce332676de1912c4389222987193c3ef38033df6", "shasum": "" }, "require": { @@ -6687,12 +7116,12 @@ "symfony/polyfill-php83": "^1.27" }, "conflict": { - "symfony/cache": "<6.2" + "symfony/cache": "<6.3" }, "require-dev": { - "doctrine/dbal": "^2.13.1|^3.0", + "doctrine/dbal": "^2.13.1|^3|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^5.4|^6.0", + "symfony/cache": "^6.3", "symfony/dependency-injection": "^5.4|^6.0", "symfony/expression-language": "^5.4|^6.0", "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", @@ -6725,7 +7154,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.3.4" + "source": "https://github.com/symfony/http-foundation/tree/v6.3.8" }, "funding": [ { @@ -6741,20 +7170,20 @@ "type": "tidelift" } ], - "time": "2023-08-22T08:20:46+00:00" + "time": "2023-11-07T10:17:15+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.3.4", + "version": "v6.3.8", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "36abb425b4af863ae1fe54d8a8b8b4c76a2bccdb" + "reference": "929202375ccf44a309c34aeca8305408442ebcc1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/36abb425b4af863ae1fe54d8a8b8b4c76a2bccdb", - "reference": "36abb425b4af863ae1fe54d8a8b8b4c76a2bccdb", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/929202375ccf44a309c34aeca8305408442ebcc1", + "reference": "929202375ccf44a309c34aeca8305408442ebcc1", "shasum": "" }, "require": { @@ -6838,7 +7267,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.3.4" + "source": "https://github.com/symfony/http-kernel/tree/v6.3.8" }, "funding": [ { @@ -6854,20 +7283,20 @@ "type": "tidelift" } ], - "time": "2023-08-26T13:54:49+00:00" + "time": "2023-11-10T13:47:32+00:00" }, { "name": "symfony/mailer", - "version": "v6.3.0", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "7b03d9be1dea29bfec0a6c7b603f5072a4c97435" + "reference": "d89611a7830d51b5e118bca38e390dea92f9ea06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/7b03d9be1dea29bfec0a6c7b603f5072a4c97435", - "reference": "7b03d9be1dea29bfec0a6c7b603f5072a4c97435", + "url": "https://api.github.com/repos/symfony/mailer/zipball/d89611a7830d51b5e118bca38e390dea92f9ea06", + "reference": "d89611a7830d51b5e118bca38e390dea92f9ea06", "shasum": "" }, "require": { @@ -6918,7 +7347,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.3.0" + "source": "https://github.com/symfony/mailer/tree/v6.3.5" }, "funding": [ { @@ -6934,20 +7363,20 @@ "type": "tidelift" } ], - "time": "2023-05-29T12:49:39+00:00" + "time": "2023-09-06T09:47:15+00:00" }, { "name": "symfony/mime", - "version": "v6.3.3", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "9a0cbd52baa5ba5a5b1f0cacc59466f194730f98" + "reference": "d5179eedf1cb2946dbd760475ebf05c251ef6a6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/9a0cbd52baa5ba5a5b1f0cacc59466f194730f98", - "reference": "9a0cbd52baa5ba5a5b1f0cacc59466f194730f98", + "url": "https://api.github.com/repos/symfony/mime/zipball/d5179eedf1cb2946dbd760475ebf05c251ef6a6e", + "reference": "d5179eedf1cb2946dbd760475ebf05c251ef6a6e", "shasum": "" }, "require": { @@ -7002,7 +7431,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.3.3" + "source": "https://github.com/symfony/mime/tree/v6.3.5" }, "funding": [ { @@ -7018,7 +7447,7 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-09-29T06:59:36+00:00" }, { "name": "symfony/polyfill-ctype", @@ -7821,16 +8250,16 @@ }, { "name": "symfony/routing", - "version": "v6.3.3", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "e7243039ab663822ff134fbc46099b5fdfa16f6a" + "reference": "82616e59acd3e3d9c916bba798326cb7796d7d31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/e7243039ab663822ff134fbc46099b5fdfa16f6a", - "reference": "e7243039ab663822ff134fbc46099b5fdfa16f6a", + "url": "https://api.github.com/repos/symfony/routing/zipball/82616e59acd3e3d9c916bba798326cb7796d7d31", + "reference": "82616e59acd3e3d9c916bba798326cb7796d7d31", "shasum": "" }, "require": { @@ -7884,7 +8313,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.3.3" + "source": "https://github.com/symfony/routing/tree/v6.3.5" }, "funding": [ { @@ -7900,20 +8329,20 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-09-20T16:05:51+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.3.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4" + "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", - "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b3313c2dbffaf71c8de2934e2ea56ed2291a3838", + "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838", "shasum": "" }, "require": { @@ -7966,7 +8395,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.4.0" }, "funding": [ { @@ -7982,20 +8411,20 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2023-07-30T20:28:31+00:00" }, { "name": "symfony/string", - "version": "v6.3.2", + "version": "v6.3.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "53d1a83225002635bca3482fcbf963001313fb68" + "reference": "13880a87790c76ef994c91e87efb96134522577a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/53d1a83225002635bca3482fcbf963001313fb68", - "reference": "53d1a83225002635bca3482fcbf963001313fb68", + "url": "https://api.github.com/repos/symfony/string/zipball/13880a87790c76ef994c91e87efb96134522577a", + "reference": "13880a87790c76ef994c91e87efb96134522577a", "shasum": "" }, "require": { @@ -8052,7 +8481,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.3.2" + "source": "https://github.com/symfony/string/tree/v6.3.8" }, "funding": [ { @@ -8068,20 +8497,20 @@ "type": "tidelift" } ], - "time": "2023-07-05T08:41:27+00:00" + "time": "2023-11-09T08:28:21+00:00" }, { "name": "symfony/translation", - "version": "v6.3.3", + "version": "v6.3.7", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd" + "reference": "30212e7c87dcb79c83f6362b00bde0e0b1213499" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd", - "reference": "3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd", + "url": "https://api.github.com/repos/symfony/translation/zipball/30212e7c87dcb79c83f6362b00bde0e0b1213499", + "reference": "30212e7c87dcb79c83f6362b00bde0e0b1213499", "shasum": "" }, "require": { @@ -8147,7 +8576,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.3.3" + "source": "https://github.com/symfony/translation/tree/v6.3.7" }, "funding": [ { @@ -8163,20 +8592,20 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-10-28T23:11:45+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.3.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86" + "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/02c24deb352fb0d79db5486c0c79905a85e37e86", - "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/dee0c6e5b4c07ce851b462530088e64b255ac9c5", + "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5", "shasum": "" }, "require": { @@ -8225,7 +8654,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.4.0" }, "funding": [ { @@ -8241,20 +8670,20 @@ "type": "tidelift" } ], - "time": "2023-05-30T17:17:10+00:00" + "time": "2023-07-25T15:08:44+00:00" }, { "name": "symfony/uid", - "version": "v6.3.0", + "version": "v6.3.8", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "01b0f20b1351d997711c56f1638f7a8c3061e384" + "reference": "819fa5ac210fb7ddda4752b91a82f50be7493dd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/01b0f20b1351d997711c56f1638f7a8c3061e384", - "reference": "01b0f20b1351d997711c56f1638f7a8c3061e384", + "url": "https://api.github.com/repos/symfony/uid/zipball/819fa5ac210fb7ddda4752b91a82f50be7493dd9", + "reference": "819fa5ac210fb7ddda4752b91a82f50be7493dd9", "shasum": "" }, "require": { @@ -8299,7 +8728,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v6.3.0" + "source": "https://github.com/symfony/uid/tree/v6.3.8" }, "funding": [ { @@ -8315,20 +8744,20 @@ "type": "tidelift" } ], - "time": "2023-04-08T07:25:02+00:00" + "time": "2023-10-31T08:07:48+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.3.4", + "version": "v6.3.8", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "2027be14f8ae8eae999ceadebcda5b4909b81d45" + "reference": "81acabba9046550e89634876ca64bfcd3c06aa0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2027be14f8ae8eae999ceadebcda5b4909b81d45", - "reference": "2027be14f8ae8eae999ceadebcda5b4909b81d45", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/81acabba9046550e89634876ca64bfcd3c06aa0a", + "reference": "81acabba9046550e89634876ca64bfcd3c06aa0a", "shasum": "" }, "require": { @@ -8383,7 +8812,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.3.4" + "source": "https://github.com/symfony/var-dumper/tree/v6.3.8" }, "funding": [ { @@ -8399,20 +8828,20 @@ "type": "tidelift" } ], - "time": "2023-08-24T14:51:05+00:00" + "time": "2023-11-08T10:42:36+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.3.4", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "df1f8aac5751871b83d30bf3e2c355770f8f0691" + "reference": "374d289c13cb989027274c86206ddc63b16a2441" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/df1f8aac5751871b83d30bf3e2c355770f8f0691", - "reference": "df1f8aac5751871b83d30bf3e2c355770f8f0691", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/374d289c13cb989027274c86206ddc63b16a2441", + "reference": "374d289c13cb989027274c86206ddc63b16a2441", "shasum": "" }, "require": { @@ -8457,7 +8886,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.3.4" + "source": "https://github.com/symfony/var-exporter/tree/v6.3.6" }, "funding": [ { @@ -8473,20 +8902,20 @@ "type": "tidelift" } ], - "time": "2023-08-16T18:14:47+00:00" + "time": "2023-10-13T09:16:49+00:00" }, { "name": "tightenco/ziggy", - "version": "v1.6.2", + "version": "v1.8.1", "source": { "type": "git", "url": "https://github.com/tighten/ziggy.git", - "reference": "41eb6384a9f9ae85cf54d6dc8f98dab282b07890" + "reference": "22dafc51f3f5ae5ed51f7cb6b566e6b9537f6937" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tighten/ziggy/zipball/41eb6384a9f9ae85cf54d6dc8f98dab282b07890", - "reference": "41eb6384a9f9ae85cf54d6dc8f98dab282b07890", + "url": "https://api.github.com/repos/tighten/ziggy/zipball/22dafc51f3f5ae5ed51f7cb6b566e6b9537f6937", + "reference": "22dafc51f3f5ae5ed51f7cb6b566e6b9537f6937", "shasum": "" }, "require": { @@ -8538,9 +8967,9 @@ ], "support": { "issues": "https://github.com/tighten/ziggy/issues", - "source": "https://github.com/tighten/ziggy/tree/v1.6.2" + "source": "https://github.com/tighten/ziggy/tree/v1.8.1" }, - "time": "2023-08-18T20:28:21+00:00" + "time": "2023-10-12T18:31:26+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -8652,31 +9081,31 @@ }, { "name": "vlucas/phpdotenv", - "version": "v5.5.0", + "version": "v5.6.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7" + "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", - "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", + "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", "shasum": "" }, "require": { "ext-pcre": "*", - "graham-campbell/result-type": "^1.0.2", - "php": "^7.1.3 || ^8.0", - "phpoption/phpoption": "^1.8", - "symfony/polyfill-ctype": "^1.23", - "symfony/polyfill-mbstring": "^1.23.1", - "symfony/polyfill-php80": "^1.23.1" + "graham-campbell/result-type": "^1.1.2", + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.2", + "symfony/polyfill-ctype": "^1.24", + "symfony/polyfill-mbstring": "^1.24", + "symfony/polyfill-php80": "^1.24" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", + "bamarni/composer-bin-plugin": "^1.8.2", "ext-filter": "*", - "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25" + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" }, "suggest": { "ext-filter": "Required to use the boolean validator." @@ -8688,7 +9117,7 @@ "forward-command": true }, "branch-alias": { - "dev-master": "5.5-dev" + "dev-master": "5.6-dev" } }, "autoload": { @@ -8720,7 +9149,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0" }, "funding": [ { @@ -8732,7 +9161,7 @@ "type": "tidelift" } ], - "time": "2022-10-16T01:01:54+00:00" + "time": "2023-11-12T22:43:29+00:00" }, { "name": "voku/portable-ascii", @@ -8931,6 +9360,55 @@ "source": "https://github.com/webmozarts/assert/tree/1.11.0" }, "time": "2022-06-03T18:03:27+00:00" + }, + { + "name": "yethee/tiktoken", + "version": "0.1.2", + "source": { + "type": "git", + "url": "https://github.com/yethee/tiktoken-php.git", + "reference": "549cfaa2fa5336037f0f6b0b8aff1cc0663e3754" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yethee/tiktoken-php/zipball/549cfaa2fa5336037f0f6b0b8aff1cc0663e3754", + "reference": "549cfaa2fa5336037f0f6b0b8aff1cc0663e3754", + "shasum": "" + }, + "require": { + "php": "^8.1", + "symfony/service-contracts": "^2.5 || ^3.0" + }, + "require-dev": { + "doctrine/coding-standard": "^11.1", + "phpunit/phpunit": "^10.0", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "5.9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Yethee\\Tiktoken\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHP version of tiktoken", + "keywords": [ + "bpe", + "decode", + "encode", + "openai", + "tiktoken", + "tokenizer" + ], + "support": { + "issues": "https://github.com/yethee/tiktoken-php/issues", + "source": "https://github.com/yethee/tiktoken-php/tree/0.1.2" + }, + "time": "2023-04-06T10:16:09+00:00" } ], "packages-dev": [ @@ -9020,16 +9498,16 @@ }, { "name": "brianium/paratest", - "version": "v7.2.7", + "version": "v7.3.1", "source": { "type": "git", "url": "https://github.com/paratestphp/paratest.git", - "reference": "1526eb4fd195f65075456dee394d14742ae0a66c" + "reference": "551f46f52a93177d873f3be08a1649ae886b4a30" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/1526eb4fd195f65075456dee394d14742ae0a66c", - "reference": "1526eb4fd195f65075456dee394d14742ae0a66c", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/551f46f52a93177d873f3be08a1649ae886b4a30", + "reference": "551f46f52a93177d873f3be08a1649ae886b4a30", "shasum": "" }, "require": { @@ -9037,28 +9515,28 @@ "ext-pcre": "*", "ext-reflection": "*", "ext-simplexml": "*", - "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1", + "fidry/cpu-core-counter": "^0.5.1 || ^1.0.0", "jean85/pretty-package-versions": "^2.0.5", "php": "~8.1.0 || ~8.2.0 || ~8.3.0", - "phpunit/php-code-coverage": "^10.1.3", - "phpunit/php-file-iterator": "^4.0.2", + "phpunit/php-code-coverage": "^10.1.7", + "phpunit/php-file-iterator": "^4.1.0", "phpunit/php-timer": "^6.0", - "phpunit/phpunit": "^10.3.2", + "phpunit/phpunit": "^10.4.2", "sebastian/environment": "^6.0.1", - "symfony/console": "^6.3.4", - "symfony/process": "^6.3.4" + "symfony/console": "^6.3.4 || ^7.0.0", + "symfony/process": "^6.3.4 || ^7.0.0" }, "require-dev": { "doctrine/coding-standard": "^12.0.0", "ext-pcov": "*", "ext-posix": "*", - "infection/infection": "^0.27.0", - "phpstan/phpstan": "^1.10.32", + "infection/infection": "^0.27.6", + "phpstan/phpstan": "^1.10.40", "phpstan/phpstan-deprecation-rules": "^1.1.4", - "phpstan/phpstan-phpunit": "^1.3.14", - "phpstan/phpstan-strict-rules": "^1.5.1", + "phpstan/phpstan-phpunit": "^1.3.15", + "phpstan/phpstan-strict-rules": "^1.5.2", "squizlabs/php_codesniffer": "^3.7.2", - "symfony/filesystem": "^6.3.1" + "symfony/filesystem": "^6.3.1 || ^7.0.0" }, "bin": [ "bin/paratest", @@ -9099,7 +9577,7 @@ ], "support": { "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v7.2.7" + "source": "https://github.com/paratestphp/paratest/tree/v7.3.1" }, "funding": [ { @@ -9111,7 +9589,7 @@ "type": "paypal" } ], - "time": "2023-09-14T14:10:09+00:00" + "time": "2023-10-31T09:24:17+00:00" }, { "name": "doctrine/cache", @@ -9208,16 +9686,16 @@ }, { "name": "doctrine/dbal", - "version": "3.6.6", + "version": "3.7.1", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "63646ffd71d1676d2f747f871be31b7e921c7864" + "reference": "5b7bd66c9ff58c04c5474ab85edce442f8081cb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/63646ffd71d1676d2f747f871be31b7e921c7864", - "reference": "63646ffd71d1676d2f747f871be31b7e921c7864", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/5b7bd66c9ff58c04c5474ab85edce442f8081cb2", + "reference": "5b7bd66c9ff58c04c5474ab85edce442f8081cb2", "shasum": "" }, "require": { @@ -9233,9 +9711,9 @@ "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.10.29", + "phpstan/phpstan": "1.10.35", "phpstan/phpstan-strict-rules": "^1.5", - "phpunit/phpunit": "9.6.9", + "phpunit/phpunit": "9.6.13", "psalm/plugin-phpunit": "0.18.4", "slevomat/coding-standard": "8.13.1", "squizlabs/php_codesniffer": "3.7.2", @@ -9301,7 +9779,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.6.6" + "source": "https://github.com/doctrine/dbal/tree/3.7.1" }, "funding": [ { @@ -9317,20 +9795,20 @@ "type": "tidelift" } ], - "time": "2023-08-17T05:38:17+00:00" + "time": "2023-10-06T05:06:20+00:00" }, { "name": "doctrine/deprecations", - "version": "v1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3" + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", - "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", "shasum": "" }, "require": { @@ -9362,9 +9840,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v1.1.1" + "source": "https://github.com/doctrine/deprecations/tree/1.1.2" }, - "time": "2023-06-03T09:27:29+00:00" + "time": "2023-09-27T20:04:15+00:00" }, { "name": "doctrine/event-manager", @@ -9527,16 +10005,16 @@ }, { "name": "fidry/cpu-core-counter", - "version": "0.5.1", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623" + "reference": "85193c0b0cb5c47894b5eaec906e946f054e7077" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/b58e5a3933e541dc286cc91fc4f3898bbc6f1623", - "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/85193c0b0cb5c47894b5eaec906e946f054e7077", + "reference": "85193c0b0cb5c47894b5eaec906e946f054e7077", "shasum": "" }, "require": { @@ -9544,13 +10022,13 @@ }, "require-dev": { "fidry/makefile": "^0.2.0", + "fidry/php-cs-fixer-config": "^1.1.2", "phpstan/extension-installer": "^1.2.0", "phpstan/phpstan": "^1.9.2", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-phpunit": "^1.2.2", "phpstan/phpstan-strict-rules": "^1.4.4", - "phpunit/phpunit": "^9.5.26 || ^8.5.31", - "theofidry/php-cs-fixer-config": "^1.0", + "phpunit/phpunit": "^8.5.31 || ^9.5.26", "webmozarts/strict-phpunit": "^7.5" }, "type": "library", @@ -9576,7 +10054,7 @@ ], "support": { "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/0.5.1" + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.0.0" }, "funding": [ { @@ -9584,20 +10062,20 @@ "type": "github" } ], - "time": "2022-12-24T12:35:10+00:00" + "time": "2023-09-17T21:38:23+00:00" }, { "name": "filp/whoops", - "version": "2.15.3", + "version": "2.15.4", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "c83e88a30524f9360b11f585f71e6b17313b7187" + "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/c83e88a30524f9360b11f585f71e6b17313b7187", - "reference": "c83e88a30524f9360b11f585f71e6b17313b7187", + "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546", + "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546", "shasum": "" }, "require": { @@ -9647,7 +10125,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.15.3" + "source": "https://github.com/filp/whoops/tree/2.15.4" }, "funding": [ { @@ -9655,7 +10133,7 @@ "type": "github" } ], - "time": "2023-07-13T12:00:00+00:00" + "time": "2023-11-03T12:00:00+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -9769,16 +10247,16 @@ }, { "name": "laravel/pint", - "version": "v1.13.2", + "version": "v1.13.6", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "bbb13460d7f8c5c0cd9a58109beedd79cd7331ff" + "reference": "3e3d2ab01c7d8b484c18e6100ecf53639c744fa7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/bbb13460d7f8c5c0cd9a58109beedd79cd7331ff", - "reference": "bbb13460d7f8c5c0cd9a58109beedd79cd7331ff", + "url": "https://api.github.com/repos/laravel/pint/zipball/3e3d2ab01c7d8b484c18e6100ecf53639c744fa7", + "reference": "3e3d2ab01c7d8b484c18e6100ecf53639c744fa7", "shasum": "" }, "require": { @@ -9789,13 +10267,13 @@ "php": "^8.1.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.26.1", - "illuminate/view": "^10.23.1", - "laravel-zero/framework": "^10.1.2", + "friendsofphp/php-cs-fixer": "^3.38.0", + "illuminate/view": "^10.30.1", + "laravel-zero/framework": "^10.3.0", "mockery/mockery": "^1.6.6", "nunomaduro/larastan": "^2.6.4", "nunomaduro/termwind": "^1.15.1", - "pestphp/pest": "^2.18.2" + "pestphp/pest": "^2.24.2" }, "bin": [ "builds/pint" @@ -9831,31 +10309,31 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2023-09-19T15:55:02+00:00" + "time": "2023-11-07T17:59:57+00:00" }, { "name": "laravel/sail", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "e81a7bd7ac1a745ccb25572830fecf74a89bb48a" + "reference": "c60fe037004e272efd0d81f416ed2bfc623d70b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/e81a7bd7ac1a745ccb25572830fecf74a89bb48a", - "reference": "e81a7bd7ac1a745ccb25572830fecf74a89bb48a", + "url": "https://api.github.com/repos/laravel/sail/zipball/c60fe037004e272efd0d81f416ed2bfc623d70b4", + "reference": "c60fe037004e272efd0d81f416ed2bfc623d70b4", "shasum": "" }, "require": { - "illuminate/console": "^8.0|^9.0|^10.0", - "illuminate/contracts": "^8.0|^9.0|^10.0", - "illuminate/support": "^8.0|^9.0|^10.0", + "illuminate/console": "^9.0|^10.0|^11.0", + "illuminate/contracts": "^9.0|^10.0|^11.0", + "illuminate/support": "^9.0|^10.0|^11.0", "php": "^8.0", - "symfony/yaml": "^6.0" + "symfony/yaml": "^6.0|^7.0" }, "require-dev": { - "orchestra/testbench": "^6.0|^7.0|^8.0", + "orchestra/testbench": "^7.0|^8.0|^9.0", "phpstan/phpstan": "^1.10" }, "bin": [ @@ -9896,20 +10374,20 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2023-09-11T17:37:09+00:00" + "time": "2023-10-18T13:57:15+00:00" }, { "name": "maximebf/debugbar", - "version": "v1.19.0", + "version": "v1.19.1", "source": { "type": "git", "url": "https://github.com/maximebf/php-debugbar.git", - "reference": "30f65f18f7ac086255a77a079f8e0dcdd35e828e" + "reference": "03dd40a1826f4d585ef93ef83afa2a9874a00523" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/30f65f18f7ac086255a77a079f8e0dcdd35e828e", - "reference": "30f65f18f7ac086255a77a079f8e0dcdd35e828e", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/03dd40a1826f4d585ef93ef83afa2a9874a00523", + "reference": "03dd40a1826f4d585ef93ef83afa2a9874a00523", "shasum": "" }, "require": { @@ -9960,9 +10438,9 @@ ], "support": { "issues": "https://github.com/maximebf/php-debugbar/issues", - "source": "https://github.com/maximebf/php-debugbar/tree/v1.19.0" + "source": "https://github.com/maximebf/php-debugbar/tree/v1.19.1" }, - "time": "2023-09-19T19:53:10+00:00" + "time": "2023-10-12T08:10:52+00:00" }, { "name": "mockery/mockery", @@ -10110,16 +10588,16 @@ }, { "name": "nunomaduro/collision", - "version": "v7.9.0", + "version": "v7.10.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "296d0cf9fe462837ac0da8a568b56fc026b132da" + "reference": "49ec67fa7b002712da8526678abd651c09f375b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/296d0cf9fe462837ac0da8a568b56fc026b132da", - "reference": "296d0cf9fe462837ac0da8a568b56fc026b132da", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/49ec67fa7b002712da8526678abd651c09f375b2", + "reference": "49ec67fa7b002712da8526678abd651c09f375b2", "shasum": "" }, "require": { @@ -10128,19 +10606,22 @@ "php": "^8.1.0", "symfony/console": "^6.3.4" }, + "conflict": { + "laravel/framework": ">=11.0.0" + }, "require-dev": { - "brianium/paratest": "^7.2.7", - "laravel/framework": "^10.23.1", - "laravel/pint": "^1.13.1", + "brianium/paratest": "^7.3.0", + "laravel/framework": "^10.28.0", + "laravel/pint": "^1.13.3", "laravel/sail": "^1.25.0", "laravel/sanctum": "^3.3.1", "laravel/tinker": "^2.8.2", "nunomaduro/larastan": "^2.6.4", - "orchestra/testbench-core": "^8.11.0", - "pestphp/pest": "^2.19.1", - "phpunit/phpunit": "^10.3.5", + "orchestra/testbench-core": "^8.13.0", + "pestphp/pest": "^2.23.2", + "phpunit/phpunit": "^10.4.1", "sebastian/environment": "^6.0.1", - "spatie/laravel-ignition": "^2.3.0" + "spatie/laravel-ignition": "^2.3.1" }, "type": "library", "extra": { @@ -10199,39 +10680,39 @@ "type": "patreon" } ], - "time": "2023-09-19T10:45:09+00:00" + "time": "2023-10-11T15:45:01+00:00" }, { "name": "pestphp/pest", - "version": "v2.19.2", + "version": "v2.24.3", "source": { "type": "git", "url": "https://github.com/pestphp/pest.git", - "reference": "6bc9da3fe1154d75a65262618b4a7032f267c04f" + "reference": "f235d84d95aca83425d83e64792352a7424a89d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/6bc9da3fe1154d75a65262618b4a7032f267c04f", - "reference": "6bc9da3fe1154d75a65262618b4a7032f267c04f", + "url": "https://api.github.com/repos/pestphp/pest/zipball/f235d84d95aca83425d83e64792352a7424a89d5", + "reference": "f235d84d95aca83425d83e64792352a7424a89d5", "shasum": "" }, "require": { - "brianium/paratest": "^7.2.7", - "nunomaduro/collision": "^7.9.0", - "nunomaduro/termwind": "^1.15.1", + "brianium/paratest": "^7.3.1", + "nunomaduro/collision": "^7.10.0|^8.0.0", + "nunomaduro/termwind": "^1.15.1|^2.0.0", "pestphp/pest-plugin": "^2.1.1", - "pestphp/pest-plugin-arch": "^2.3.3", + "pestphp/pest-plugin-arch": "^2.4.1", "php": "^8.1.0", - "phpunit/phpunit": "^10.3.5" + "phpunit/phpunit": "^10.4.2" }, "conflict": { - "phpunit/phpunit": ">10.3.5", + "phpunit/phpunit": ">10.4.2", "sebastian/exporter": "<5.1.0", "webmozart/assert": "<1.11.0" }, "require-dev": { "pestphp/pest-dev-tools": "^2.16.0", - "pestphp/pest-plugin-type-coverage": "^2.2.0", + "pestphp/pest-plugin-type-coverage": "^2.4.0", "symfony/process": "^6.3.4" }, "bin": [ @@ -10258,6 +10739,11 @@ "Pest\\Plugins\\Version", "Pest\\Plugins\\Parallel" ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] } }, "autoload": { @@ -10290,7 +10776,7 @@ ], "support": { "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v2.19.2" + "source": "https://github.com/pestphp/pest/tree/v2.24.3" }, "funding": [ { @@ -10302,7 +10788,7 @@ "type": "github" } ], - "time": "2023-09-19T10:48:16+00:00" + "time": "2023-11-08T09:47:14+00:00" }, { "name": "pestphp/pest-plugin", @@ -10376,26 +10862,26 @@ }, { "name": "pestphp/pest-plugin-arch", - "version": "v2.3.3", + "version": "v2.4.1", "source": { "type": "git", "url": "https://github.com/pestphp/pest-plugin-arch.git", - "reference": "b758990e83f89daba3c45672398579cf8692213f" + "reference": "59698f0a381c5bc4fa2cd5b6ed331067c4501fdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin-arch/zipball/b758990e83f89daba3c45672398579cf8692213f", - "reference": "b758990e83f89daba3c45672398579cf8692213f", + "url": "https://api.github.com/repos/pestphp/pest-plugin-arch/zipball/59698f0a381c5bc4fa2cd5b6ed331067c4501fdb", + "reference": "59698f0a381c5bc4fa2cd5b6ed331067c4501fdb", "shasum": "" }, "require": { - "nunomaduro/collision": "^7.8.1", - "pestphp/pest-plugin": "^2.0.1", + "nunomaduro/collision": "^7.10.0|^8.0.0", + "pestphp/pest-plugin": "^2.1.1", "php": "^8.1", - "ta-tikoma/phpunit-architecture-test": "^0.7.4" + "ta-tikoma/phpunit-architecture-test": "^0.7.5" }, "require-dev": { - "pestphp/pest": "^2.16.0", + "pestphp/pest": "^2.23.2", "pestphp/pest-dev-tools": "^2.16.0" }, "type": "library", @@ -10424,7 +10910,7 @@ "unit" ], "support": { - "source": "https://github.com/pestphp/pest-plugin-arch/tree/v2.3.3" + "source": "https://github.com/pestphp/pest-plugin-arch/tree/v2.4.1" }, "funding": [ { @@ -10436,7 +10922,7 @@ "type": "github" } ], - "time": "2023-08-21T16:06:30+00:00" + "time": "2023-10-12T15:35:38+00:00" }, { "name": "pestphp/pest-plugin-laravel", @@ -10788,16 +11274,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.24.1", + "version": "1.24.2", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "9f854d275c2dbf84915a5c0ec9a2d17d2cd86b01" + "reference": "bcad8d995980440892759db0c32acae7c8e79442" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/9f854d275c2dbf84915a5c0ec9a2d17d2cd86b01", - "reference": "9f854d275c2dbf84915a5c0ec9a2d17d2cd86b01", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bcad8d995980440892759db0c32acae7c8e79442", + "reference": "bcad8d995980440892759db0c32acae7c8e79442", "shasum": "" }, "require": { @@ -10829,22 +11315,22 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.2" }, - "time": "2023-09-18T12:18:02+00:00" + "time": "2023-09-26T12:28:12+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "10.1.6", + "version": "10.1.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "56f33548fe522c8d82da7ff3824b42829d324364" + "reference": "84838eed9ded511f61dc3e8b5944a52d9017b297" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/56f33548fe522c8d82da7ff3824b42829d324364", - "reference": "56f33548fe522c8d82da7ff3824b42829d324364", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/84838eed9ded511f61dc3e8b5944a52d9017b297", + "reference": "84838eed9ded511f61dc3e8b5944a52d9017b297", "shasum": "" }, "require": { @@ -10901,7 +11387,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.6" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.8" }, "funding": [ { @@ -10909,7 +11395,7 @@ "type": "github" } ], - "time": "2023-09-19T04:59:03+00:00" + "time": "2023-11-15T13:31:15+00:00" }, { "name": "phpunit/php-file-iterator", @@ -11156,16 +11642,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.3.5", + "version": "10.4.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "747c3b2038f1139e3dcd9886a3f5a948648b7503" + "reference": "cacd8b9dd224efa8eb28beb69004126c7ca1a1a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/747c3b2038f1139e3dcd9886a3f5a948648b7503", - "reference": "747c3b2038f1139e3dcd9886a3f5a948648b7503", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/cacd8b9dd224efa8eb28beb69004126c7ca1a1a1", + "reference": "cacd8b9dd224efa8eb28beb69004126c7ca1a1a1", "shasum": "" }, "require": { @@ -11205,7 +11691,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.3-dev" + "dev-main": "10.4-dev" } }, "autoload": { @@ -11237,7 +11723,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.3.5" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.4.2" }, "funding": [ { @@ -11253,7 +11739,7 @@ "type": "tidelift" } ], - "time": "2023-09-19T05:42:37+00:00" + "time": "2023-10-26T07:21:45+00:00" }, { "name": "reliese/laravel", @@ -11564,16 +12050,16 @@ }, { "name": "sebastian/complexity", - "version": "3.0.1", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "c70b73893e10757af9c6a48929fa6a333b56a97a" + "reference": "68cfb347a44871f01e33ab0ef8215966432f6957" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/c70b73893e10757af9c6a48929fa6a333b56a97a", - "reference": "c70b73893e10757af9c6a48929fa6a333b56a97a", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68cfb347a44871f01e33ab0ef8215966432f6957", + "reference": "68cfb347a44871f01e33ab0ef8215966432f6957", "shasum": "" }, "require": { @@ -11586,7 +12072,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "3.1-dev" } }, "autoload": { @@ -11610,7 +12096,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/3.0.1" + "source": "https://github.com/sebastianbergmann/complexity/tree/3.1.0" }, "funding": [ { @@ -11618,7 +12104,7 @@ "type": "github" } ], - "time": "2023-08-31T09:55:53+00:00" + "time": "2023-09-28T11:50:59+00:00" }, { "name": "sebastian/diff", @@ -11753,16 +12239,16 @@ }, { "name": "sebastian/exporter", - "version": "5.1.0", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "c3fa8483f9539b190f7cd4bfc4a07631dd1df344" + "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c3fa8483f9539b190f7cd4bfc4a07631dd1df344", - "reference": "c3fa8483f9539b190f7cd4bfc4a07631dd1df344", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc", + "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc", "shasum": "" }, "require": { @@ -11776,7 +12262,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -11819,7 +12305,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.0" + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1" }, "funding": [ { @@ -11827,7 +12313,7 @@ "type": "github" } ], - "time": "2023-09-18T07:15:37+00:00" + "time": "2023-09-24T13:22:09+00:00" }, { "name": "sebastian/global-state", @@ -12297,35 +12783,35 @@ }, { "name": "spatie/flare-client-php", - "version": "1.4.2", + "version": "1.4.3", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "5f2c6a7a0d2c1d90c12559dc7828fd942911a544" + "reference": "5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/5f2c6a7a0d2c1d90c12559dc7828fd942911a544", - "reference": "5f2c6a7a0d2c1d90c12559dc7828fd942911a544", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec", + "reference": "5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec", "shasum": "" }, "require": { - "illuminate/pipeline": "^8.0|^9.0|^10.0", + "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0", "nesbot/carbon": "^2.62.1", "php": "^8.0", "spatie/backtrace": "^1.5.2", - "symfony/http-foundation": "^5.0|^6.0", - "symfony/mime": "^5.2|^6.0", - "symfony/process": "^5.2|^6.0", - "symfony/var-dumper": "^5.2|^6.0" + "symfony/http-foundation": "^5.2|^6.0|^7.0", + "symfony/mime": "^5.2|^6.0|^7.0", + "symfony/process": "^5.2|^6.0|^7.0", + "symfony/var-dumper": "^5.2|^6.0|^7.0" }, "require-dev": { - "dms/phpunit-arraysubset-asserts": "^0.3.0", - "pestphp/pest": "^1.20", + "dms/phpunit-arraysubset-asserts": "^0.5.0", + "pestphp/pest": "^1.20|^2.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-phpunit": "^1.0", - "spatie/phpunit-snapshot-assertions": "^4.0" + "spatie/phpunit-snapshot-assertions": "^4.0|^5.0" }, "type": "library", "extra": { @@ -12355,7 +12841,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.4.2" + "source": "https://github.com/spatie/flare-client-php/tree/1.4.3" }, "funding": [ { @@ -12363,20 +12849,20 @@ "type": "github" } ], - "time": "2023-07-28T08:07:24+00:00" + "time": "2023-10-17T15:54:07+00:00" }, { "name": "spatie/ignition", - "version": "1.11.2", + "version": "1.11.3", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "48b23411ca4bfbc75c75dfc638b6b36159c375aa" + "reference": "3d886de644ff7a5b42e4d27c1e1f67c8b5f00044" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/48b23411ca4bfbc75c75dfc638b6b36159c375aa", - "reference": "48b23411ca4bfbc75c75dfc638b6b36159c375aa", + "url": "https://api.github.com/repos/spatie/ignition/zipball/3d886de644ff7a5b42e4d27c1e1f67c8b5f00044", + "reference": "3d886de644ff7a5b42e4d27c1e1f67c8b5f00044", "shasum": "" }, "require": { @@ -12385,19 +12871,19 @@ "php": "^8.0", "spatie/backtrace": "^1.5.3", "spatie/flare-client-php": "^1.4.0", - "symfony/console": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "require-dev": { - "illuminate/cache": "^9.52", + "illuminate/cache": "^9.52|^10.0|^11.0", "mockery/mockery": "^1.4", - "pestphp/pest": "^1.20", + "pestphp/pest": "^1.20|^2.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-phpunit": "^1.0", "psr/simple-cache-implementation": "*", - "symfony/cache": "^6.0", - "symfony/process": "^5.4|^6.0", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", "vlucas/phpdotenv": "^5.5" }, "suggest": { @@ -12446,20 +12932,20 @@ "type": "github" } ], - "time": "2023-09-19T15:29:52+00:00" + "time": "2023-10-18T14:09:40+00:00" }, { "name": "spatie/laravel-ignition", - "version": "2.3.0", + "version": "2.3.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "4ed813d16edb5a1ab0d7f4b1d116c37ee8cdf3c0" + "reference": "bf21cd15aa47fa4ec5d73bbc932005c70261efc8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/4ed813d16edb5a1ab0d7f4b1d116c37ee8cdf3c0", - "reference": "4ed813d16edb5a1ab0d7f4b1d116c37ee8cdf3c0", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/bf21cd15aa47fa4ec5d73bbc932005c70261efc8", + "reference": "bf21cd15aa47fa4ec5d73bbc932005c70261efc8", "shasum": "" }, "require": { @@ -12538,20 +13024,20 @@ "type": "github" } ], - "time": "2023-08-23T06:24:34+00:00" + "time": "2023-10-09T12:55:26+00:00" }, { "name": "symfony/yaml", - "version": "v6.3.3", + "version": "v6.3.8", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add" + "reference": "3493af8a8dad7fa91c77fa473ba23ecd95334a92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/e23292e8c07c85b971b44c1c4b87af52133e2add", - "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add", + "url": "https://api.github.com/repos/symfony/yaml/zipball/3493af8a8dad7fa91c77fa473ba23ecd95334a92", + "reference": "3493af8a8dad7fa91c77fa473ba23ecd95334a92", "shasum": "" }, "require": { @@ -12594,7 +13080,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.3.3" + "source": "https://github.com/symfony/yaml/tree/v6.3.8" }, "funding": [ { @@ -12610,20 +13096,20 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-11-06T10:58:05+00:00" }, { "name": "ta-tikoma/phpunit-architecture-test", - "version": "0.7.4", + "version": "0.7.5", "source": { "type": "git", "url": "https://github.com/ta-tikoma/phpunit-architecture-test.git", - "reference": "abe1f8a5f4635e7cbe0a8a37d6b8d20c687af0f2" + "reference": "9eb08437e8f0c0c75cc947a373cf49672c335827" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ta-tikoma/phpunit-architecture-test/zipball/abe1f8a5f4635e7cbe0a8a37d6b8d20c687af0f2", - "reference": "abe1f8a5f4635e7cbe0a8a37d6b8d20c687af0f2", + "url": "https://api.github.com/repos/ta-tikoma/phpunit-architecture-test/zipball/9eb08437e8f0c0c75cc947a373cf49672c335827", + "reference": "9eb08437e8f0c0c75cc947a373cf49672c335827", "shasum": "" }, "require": { @@ -12631,7 +13117,7 @@ "php": "^8.1.0", "phpdocumentor/reflection-docblock": "^5.3.0", "phpunit/phpunit": "^10.1.1", - "symfony/finder": "^6.2.7" + "symfony/finder": "^6.2.7 || ^7.0.0" }, "require-dev": { "laravel/pint": "^1.9.0", @@ -12667,9 +13153,9 @@ ], "support": { "issues": "https://github.com/ta-tikoma/phpunit-architecture-test/issues", - "source": "https://github.com/ta-tikoma/phpunit-architecture-test/tree/0.7.4" + "source": "https://github.com/ta-tikoma/phpunit-architecture-test/tree/0.7.5" }, - "time": "2023-08-03T06:50:14+00:00" + "time": "2023-10-12T15:31:50+00:00" }, { "name": "theseer/tokenizer", diff --git a/config/feed.php b/config/feed.php index b5b1f50..7fa1817 100644 --- a/config/feed.php +++ b/config/feed.php @@ -18,8 +18,8 @@ */ 'url' => '/posts-feed', - 'title' => 'Latest News from EchoScoop', - 'description' => 'Bite-sized scoop for world news.', + 'title' => 'Latest News from FutureWalker', + 'description' => 'AI & technology news you should not miss.', 'language' => 'en-US', /* diff --git a/config/laravel-google-indexing.php b/config/laravel-google-indexing.php index 4f5a595..2a1e938 100644 --- a/config/laravel-google-indexing.php +++ b/config/laravel-google-indexing.php @@ -2,7 +2,7 @@ return [ 'google' => [ - 'auth_config' => storage_path('echoscoop-90d335332507.json'), + 'auth_config' => storage_path('futurewalker-8a2531e98458.json'), 'scopes' => [ \Google_Service_Indexing::INDEXING, diff --git a/config/laravelpwa.php b/config/laravelpwa.php index 6d2d1de..985b44b 100644 --- a/config/laravelpwa.php +++ b/config/laravelpwa.php @@ -1,10 +1,10 @@ 'EchoScoop', + 'name' => 'FutureWalker', 'manifest' => [ - 'name' => env('APP_NAME', 'EchoScoop'), - 'short_name' => 'EchoScoop', + 'name' => env('APP_NAME', 'FutureWalker'), + 'short_name' => 'FutureWalker', 'start_url' => '/', 'background_color' => '#ffffff', 'theme_color' => '#000000', diff --git a/config/platform/ai.php b/config/platform/ai.php index c30e042..cd35fa8 100644 --- a/config/platform/ai.php +++ b/config/platform/ai.php @@ -6,4 +6,42 @@ 'api_key' => env('OPENAI_API_KEY'), ], + // GPT 4 + 'openai-gpt-4-turbo' => [ + 'tokens' => 128000, + 'model' => 'gpt-4-1106-preview', + 'input_cost_per_thousand_tokens' => 0.01, + 'output_cost_per_thousand_tokens' => 0.03, + ], + + 'openai-gpt-4' => [ + 'tokens' => 8192, + 'model' => 'gpt-4-0613', + 'input_cost_per_thousand_tokens' => 0.03, + 'output_cost_per_thousand_tokens' => 0.06, + ], + + // GPT 3.5 + + 'openai-gpt-3-5-turbo-1106' => [ + 'tokens' => 16385, + 'model' => 'gpt-3.5-turbo-1106', + 'input_cost_per_thousand_tokens' => 0.0010, + 'output_cost_per_thousand_tokens' => 0.002, + ], + + 'openai-3-5-turbo' => [ + 'tokens' => 4096, + 'model' => 'gpt-3.5-turbo', + 'input_cost_per_thousand_tokens' => 0.0015, + 'output_cost_per_thousand_tokens' => 0.002, + ], + + 'openai-3-5-turbo-16k' => [ + 'tokens' => 16385, + 'model' => 'gpt-3.5-turbo-16k', + 'input_cost_per_thousand_tokens' => 0.003, + 'output_cost_per_thousand_tokens' => 0.004, + ], + ]; diff --git a/config/platform/global.php b/config/platform/global.php index a8b2c99..c476ea2 100644 --- a/config/platform/global.php +++ b/config/platform/global.php @@ -2,6 +2,95 @@ return [ + 'indexing' => env('ENABLE_INDEXING', false), + 'launched_epoch' => '1695513600', // 24-09-2023 00:00:00 GMT +0 + 'blacklist_domains_serp' => $paywalled_domains = [ + + ], + + 'blacklist_keywords_serp' => [ + 'government', + 'usa', + 'china', + 'policy', + 'trade', + 'deal', + 'fake', + 'nude', + 'risk', + 'disclosure', + 'politic', + 'contract', + 'negotiat', + 'complete', + 'gun', + 'safety', + 'wrest', + 'control', + 'opinion', + 'cop', + 'race', + 'porn', + 'regulat', + 'rule', + 'stock', + 'WSJ', + 'complicated', + 'leverag', + 'attack', + 'defend', + 'concern', + 'biden', + ':', + 'surviv', + 'tackl', + 'compet', + 'legal', + 'securit', + 'alert', + 'state of', + 'error', + 'licens', + 'department of', + 'threat', + 'democra', + 'asia', + 'japan', + 'doubt', + 'agenc', + 'presiden', + 'avoid', + 'study', + 'expert', + 'agreement', + 'protection', + 'survey', + 'law', + 'military', + 'lose', + 'destroy', + 'humanity', + 'lose', + 'concern', + 'ignore', + 'contradic', + 'wishful', + 'scammer', + 'fear', + '?', + 'paranoid', + 'copyright', + 'capitaliz', + 'strike', + '$', + 'weapon', + 'concern', + 'ethic', + 'underage', + 'guide', + + ], + ]; diff --git a/config/platform/proxy.php b/config/platform/proxy.php new file mode 100644 index 0000000..e5bf1e2 --- /dev/null +++ b/config/platform/proxy.php @@ -0,0 +1,25 @@ + 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246', + + 'smartproxy' => [ + 'rotating_global' => [ + 'user' => 'sp5bbkzj7e', + 'password' => 'yTtk2cc5kg23kIkSSr', + 'server' => 'gate.smartproxy.com:7000', + 'reproxy' => '157.230.194.206:7000', + 'reproxy_enable' => false, + 'cost_per_gb' => 7, + ], + 'unblocker' => [ + 'user' => 'U0000123412', + 'password' => 'P$W1bda906aee53c2022d94e22ff1a1142a1', + 'server' => 'unblock.smartproxy.com:60000', + 'reproxy' => '157.230.194.206:7000', + 'reproxy_enable' => false, + 'cost_per_gb' => 20.14, + ], + ], +]; diff --git a/config/seotools.php b/config/seotools.php index 66d971e..4c0c11e 100644 --- a/config/seotools.php +++ b/config/seotools.php @@ -12,9 +12,9 @@ * The default configurations to be used by the meta generator. */ 'defaults' => [ - 'title' => 'EchoScoop: Bite-sized world news', // set false to total remove + 'title' => 'FutureWalker: Daily AI & tech news', // set false to total remove 'titleBefore' => false, // Put defaults.title before page title, like 'It's Over 9000! - Dashboard' - 'description' => 'Distilling world news into bite-sized scoops.', // set false to total remove + 'description' => 'Stay updated with critical AI & tech news to build your future.', // set false to total remove 'separator' => ' - ', 'keywords' => [], 'canonical' => 'current', // Set to null or 'full' to use Url::full(), set to 'current' to use Url::current(), set false to total remove @@ -39,12 +39,12 @@ * The default configurations to be used by the opengraph generator. */ 'defaults' => [ - 'title' => 'EchoScoop: Bite-sized world news', // set false to total remove - 'description' => 'Distilling world news into bite-sized scoops.', // set false to total remove + 'title' => 'FutureWalker: Daily AI & tech news', // set false to total remove + 'description' => 'Stay updated with critical AI & tech news to build your future.', // set false to total remove 'url' => false, // Set null for using Url::current(), set false to total remove 'type' => false, 'site_name' => false, - 'images' => ['https://echoscoop.com/pwa/icon-512x512.png'], + //'images' => ['https://FutureWalker.com/pwa/icon-512x512.png'], ], ], 'twitter' => [ @@ -61,11 +61,11 @@ * The default configurations to be used by the json-ld generator. */ 'defaults' => [ - 'title' => 'EchoScoop: Bite-sized world news', // set false to total remove - 'description' => 'Distilling world news into bite-sized scoops.', // set false to total remove + 'title' => 'FutureWalker: Daily AI & tech news', // set false to total remove + 'description' => 'Stay updated with critical AI & tech news to build your future.', // set false to total remove 'url' => false, // Set to null or 'full' to use Url::full(), set to 'current' to use Url::current(), set false to total remove 'type' => 'WebPage', - 'images' => ['https://echoscoop.com/pwa/icon-512x512.png'], + //'images' => ['https://FutureWalker.com/pwa/icon-512x512.png'], ], ], ]; diff --git a/config/services.php b/config/services.php index 0ace530..0f58929 100644 --- a/config/services.php +++ b/config/services.php @@ -31,4 +31,8 @@ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), ], + 'telegram-bot-api' => [ + 'token' => env('TELEGRAM_BOT_TOKEN'), + ], + ]; diff --git a/config/tiktoken.php b/config/tiktoken.php new file mode 100644 index 0000000..77be58f --- /dev/null +++ b/config/tiktoken.php @@ -0,0 +1,15 @@ + storage_path('framework/cache/tiktoken'), + + /** + * The default encoder + * cl100k_base: gpt-4, gpt-3.5-turbo, text-embedding-ada-002 + * p50k_base: Codex models, text-davinci-002, text-davinci-003 + * r50k_base: text-davinci-001 + */ + 'default_encoder' => 'cl100k_base', +]; diff --git a/database/migrations/2023_09_24_144901_create_jobs_table.php b/database/migrations/2023_08_24_144901_create_jobs_table.php similarity index 100% rename from database/migrations/2023_09_24_144901_create_jobs_table.php rename to database/migrations/2023_08_24_144901_create_jobs_table.php diff --git a/database/migrations/2023_09_21_143948_create_categories_table.php b/database/migrations/2023_08_25_165058_create_categories_table.php similarity index 100% rename from database/migrations/2023_09_21_143948_create_categories_table.php rename to database/migrations/2023_08_25_165058_create_categories_table.php diff --git a/database/migrations/2023_09_22_154137_create_serp_urls_table.php b/database/migrations/2023_09_22_154137_create_serp_urls_table.php index e997a5c..1a2e73f 100644 --- a/database/migrations/2023_09_22_154137_create_serp_urls_table.php +++ b/database/migrations/2023_09_22_154137_create_serp_urls_table.php @@ -14,13 +14,19 @@ public function up(): void Schema::create('serp_urls', function (Blueprint $table) { $table->id(); $table->foreignId('news_serp_result_id'); - $table->foreignId('category_id'); - $table->string('category_name'); + $table->foreignId('category_id')->nullable(); + $table->string('category_name')->nullable(); $table->string('source')->default('serp'); $table->string('url'); $table->string('country_iso'); $table->string('title')->nullable(); $table->text('description')->nullable(); + $table->boolean('picked')->default(false); + $table->boolean('processed')->default(false); + $table->boolean('crawled')->default(false); + $table->boolean('written')->default(false); + $table->json('suggestion_data')->nullable(); + $table->datetime('url_posted_at'); $table->timestamp('serp_at')->nullable(); $table->enum('status', ['initial', 'processing', 'complete', 'failed', 'blocked', 'limited'])->default('initial'); $table->tinyInteger('process_status')->nullable(); diff --git a/database/migrations/2023_11_09_163626_create_serp_url_researches_table.php b/database/migrations/2023_11_09_163626_create_serp_url_researches_table.php new file mode 100644 index 0000000..1034245 --- /dev/null +++ b/database/migrations/2023_11_09_163626_create_serp_url_researches_table.php @@ -0,0 +1,34 @@ +id(); + $table->foreignId('serp_url_id'); + $table->string('url'); + $table->string('query'); + $table->text('content')->nullable(); + $table->mediumText('main_image')->nullable(); + $table->timestamps(); + + $table->foreign('serp_url_id')->references('id')->on('serp_urls'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('serp_url_researches'); + } +}; diff --git a/database/migrations/2023_11_09_173830_create_service_cost_usages_table.php b/database/migrations/2023_11_09_173830_create_service_cost_usages_table.php new file mode 100644 index 0000000..ab7d01d --- /dev/null +++ b/database/migrations/2023_11_09_173830_create_service_cost_usages_table.php @@ -0,0 +1,34 @@ +id(); + $table->double('cost', 5, 5); + $table->string('name'); + $table->string('reference_1')->nullable(); + $table->string('reference_2')->nullable(); + $table->jsonb('output'); + $table->text('input_1')->nullable(); + $table->text('input_2')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('service_cost_usages'); + } +}; diff --git a/database/migrations/2023_09_22_165059_create_authors_table.php b/database/migrations/2023_11_19_121000_create_authors_table.php similarity index 100% rename from database/migrations/2023_09_22_165059_create_authors_table.php rename to database/migrations/2023_11_19_121000_create_authors_table.php diff --git a/database/migrations/2023_09_22_165123_create_posts_table.php b/database/migrations/2023_11_19_121001_create_posts_table.php similarity index 71% rename from database/migrations/2023_09_22_165123_create_posts_table.php rename to database/migrations/2023_11_19_121001_create_posts_table.php index 2bad7e5..a8a48fc 100644 --- a/database/migrations/2023_09_22_165123_create_posts_table.php +++ b/database/migrations/2023_11_19_121001_create_posts_table.php @@ -13,23 +13,25 @@ public function up(): void { Schema::create('posts', function (Blueprint $table) { $table->id(); + $table->foreignId('serp_url_id')->nullable(); $table->string('title')->nullable(); - $table->string('short_title')->nullable(); $table->string('slug')->nullable(); - $table->string('type')->nullable(); $table->string('main_keyword')->nullable(); $table->json('keywords')->nullable(); - $table->mediumText('excerpt')->nullable(); + $table->mediumText('bites')->nullable(); + $table->mediumText('society_impact')->nullable(); + $table->enum('society_impact_level', ['low','medium','high'])->default('low'); $table->foreignId('author_id')->nullable(); - $table->boolean('featured')->default(false); - $table->string('featured_image')->nullable(); + $table->mediumText('featured_image')->nullable(); $table->text('body')->nullable(); + $table->json('metadata')->nullable(); $table->integer('views_count')->default(0); $table->enum('status', ['publish', 'future', 'draft', 'private', 'trash'])->default('draft'); $table->timestamp('published_at')->nullable(); $table->timestamps(); $table->foreign('author_id')->references('id')->on('authors'); + $table->foreign('serp_url_id')->references('id')->on('serp_urls'); }); } diff --git a/database/migrations/2023_09_22_165255_create_post_categories_table.php b/database/migrations/2023_11_19_121002_create_post_categories_table.php similarity index 100% rename from database/migrations/2023_09_22_165255_create_post_categories_table.php rename to database/migrations/2023_11_19_121002_create_post_categories_table.php diff --git a/database/migrations/2023_11_19_123443_create_entities_table.php b/database/migrations/2023_11_19_123443_create_entities_table.php new file mode 100644 index 0000000..a01d014 --- /dev/null +++ b/database/migrations/2023_11_19_123443_create_entities_table.php @@ -0,0 +1,30 @@ +id(); + $table->string('name'); + $table->string('slug'); + $table->mediumText('description')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('entities'); + } +}; diff --git a/database/migrations/2023_11_19_123490_create_post_entities_table.php b/database/migrations/2023_11_19_123490_create_post_entities_table.php new file mode 100644 index 0000000..2108d68 --- /dev/null +++ b/database/migrations/2023_11_19_123490_create_post_entities_table.php @@ -0,0 +1,32 @@ +id(); + $table->foreignId('post_id'); + $table->foreignId('entity_id'); + $table->timestamps(); + + $table->foreign('post_id')->references('id')->on('posts'); + $table->foreign('entity_id')->references('id')->on('entities'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('post_entities'); + } +}; diff --git a/database/seeders/AuthorSeeder.php b/database/seeders/AuthorSeeder.php index 3ae3023..4bf102a 100644 --- a/database/seeders/AuthorSeeder.php +++ b/database/seeders/AuthorSeeder.php @@ -13,7 +13,7 @@ class AuthorSeeder extends Seeder public function run(): void { Author::create([ - 'name' => 'EchoScoop Team', + 'name' => 'FutureWalker Team', 'bio' => null, 'avatar' => null, 'enabled' => true, // Assuming you want this author to be enabled by default diff --git a/database/seeders/CategorySeeder.php b/database/seeders/CategorySeeder.php index f92b086..fae2031 100644 --- a/database/seeders/CategorySeeder.php +++ b/database/seeders/CategorySeeder.php @@ -13,92 +13,12 @@ class CategorySeeder extends Seeder public function run(): void { $categories = [ - ['name' => 'Automotive', 'short_name' => 'Automotive'], - [ - 'name' => 'Business', - 'short_name' => 'Business', - 'children' => [ - ['name' => 'Trading', 'short_name' => 'Trading'], - ['name' => 'Information Technology', 'short_name' => 'IT'], - ['name' => 'Marketing', 'short_name' => 'Marketing'], - ['name' => 'Office', 'short_name' => 'Office'], - ['name' => 'Telecommunications', 'short_name' => 'Telecom'], - ], - ], - ['name' => 'Food & Drink', 'short_name' => 'Food'], - [ - 'name' => 'Hobbies & Gifts', - 'short_name' => 'Hobbies', - 'children' => [ - ['name' => 'Collectibles', 'short_name' => 'Collectibles'], - ['name' => 'Pets', 'short_name' => 'Pets'], - ['name' => 'Photography', 'short_name' => 'Photography'], - ['name' => 'Hunting & Fishing', 'short_name' => 'Hunting'], - ], - ], - ['name' => 'Law', 'short_name' => 'Law'], - ['name' => 'Politics', 'short_name' => 'Politics'], - [ - 'name' => 'Shopping', - 'short_name' => 'Shopping', - 'children' => [ - ['name' => 'Home & Garden', 'short_name' => 'Home'], - ['name' => 'Fashion & Clothing', 'short_name' => 'Fashion'], - ], - ], - ['name' => 'Real Estate', 'short_name' => 'Real Estate'], - [ - 'name' => 'Society', - 'short_name' => 'Society', - 'children' => [ - ['name' => 'Family', 'short_name' => 'Family'], - ['name' => 'Wedding', 'short_name' => 'Wedding'], - ['name' => 'Immigration', 'short_name' => 'Immigration'], - [ - 'name' => 'Education', - 'short_name' => 'Education', - 'children' => [ - ['name' => 'Languages', 'short_name' => 'Languages'], - ], - ], - ], - ], - [ - 'name' => 'Wellness', - 'short_name' => 'Wellness', - 'children' => [ - ['name' => 'Health', 'short_name' => 'Health'], - ['name' => 'Beauty', 'short_name' => 'Beauty'], - ['name' => 'Psychology', 'short_name' => 'Psychology'], - ['name' => 'Religion & Spirituality', 'short_name' => 'Religion'], - ], - ], - [ - 'name' => 'Tips & Tricks', - 'short_name' => 'Tips', - 'children' => [ - ['name' => 'How to', 'short_name' => 'How to'], - ], - ], - [ - 'name' => 'Travel', - 'short_name' => 'Travel', - 'children' => [ - ['name' => 'Holiday', 'short_name' => 'Holiday'], - ['name' => 'World Festivals', 'short_name' => 'Festivals'], - ['name' => 'Outdoors', 'short_name' => 'Outdoors'], - ], - ], - [ - 'name' => 'Technology', - 'short_name' => 'Tech', - 'children' => [ - ['name' => 'Computer', 'short_name' => 'Computer'], - ['name' => 'Phones', 'short_name' => 'Phones'], - ['name' => 'Gadgets', 'short_name' => 'Gadgets'], - ['name' => 'Social Networks', 'short_name' => 'Social Networks'], - ], - ], + ['name' => 'Updates', 'short_name' => 'Updates'], + ['name' => 'Opinions', 'short_name' => 'Opinions'], + ['name' => 'Features', 'short_name' => 'Features'], + ['name' => 'New Launches', 'short_name' => 'New Launches'], + ['name' => 'How Tos', 'short_name' => 'How Tos'], + ['name' => 'Reviews', 'short_name' => 'Reviews'], ]; foreach ($categories as $category) { diff --git a/package-lock.json b/package-lock.json index 7d02c92..1aa7c8b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "echoscoop", + "name": "futurewalker", "lockfileVersion": 3, "requires": true, "packages": { @@ -1827,9 +1827,9 @@ } }, "node_modules/postcss": { - "version": "8.4.30", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.30.tgz", - "integrity": "sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", diff --git a/prod.sh b/prod.sh index 8f042fa..f546d61 100644 --- a/prod.sh +++ b/prod.sh @@ -3,7 +3,7 @@ # eval 'php artisan optimize:clear'; # eval 'php artisan responsecache:clear'; # eval 'php artisan opcache:clear'; -eval 'APP_URL=https://echoscoop.com php artisan ziggy:generate'; +eval 'APP_URL=https://FutureWalker.com php artisan ziggy:generate'; eval 'blade-formatter --write resources/**/*.blade.php'; eval './vendor/bin/pint'; eval 'npm run build'; \ No newline at end of file diff --git a/public/.DS_Store b/public/.DS_Store new file mode 100644 index 0000000..9ab51ea Binary files /dev/null and b/public/.DS_Store differ diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png new file mode 100644 index 0000000..7ea9831 Binary files /dev/null and b/public/android-chrome-192x192.png differ diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png new file mode 100644 index 0000000..4ba3000 Binary files /dev/null and b/public/android-chrome-512x512.png differ diff --git a/public/build/assets/vue-7b541fc9.js b/public/build/assets/vue-7b541fc9.js index a5b6828..e974195 100644 --- a/public/build/assets/vue-7b541fc9.js +++ b/public/build/assets/vue-7b541fc9.js @@ -1,13 +1,12062 @@ -function Le(e,t){const n=Object.create(null),r=e.split(",");for(let s=0;s!!n[s.toLowerCase()]:s=>!!n[s]}const oe={},fn=[],Pe=()=>{},xr=()=>!1,Lf=/^on[^a-z]/,Xt=e=>Lf.test(e),to=e=>e.startsWith("onUpdate:"),ee=Object.assign,no=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Df=Object.prototype.hasOwnProperty,re=(e,t)=>Df.call(e,t),$=Array.isArray,dn=e=>Nn(e)==="[object Map]",en=e=>Nn(e)==="[object Set]",gl=e=>Nn(e)==="[object Date]",Bf=e=>Nn(e)==="[object RegExp]",z=e=>typeof e=="function",Z=e=>typeof e=="string",Pt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",ro=e=>le(e)&&z(e.then)&&z(e.catch),Dc=Object.prototype.toString,Nn=e=>Dc.call(e),xf=e=>Nn(e).slice(8,-1),Bc=e=>Nn(e)==="[object Object]",so=e=>Z(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Vt=Le(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),jf=Le("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),ys=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Hf=/-(\w)/g,ye=ys(e=>e.replace(Hf,(t,n)=>n?n.toUpperCase():"")),$f=/\B([A-Z])/g,je=ys(e=>e.replace($f,"-$1").toLowerCase()),tn=ys(e=>e.charAt(0).toUpperCase()+e.slice(1)),pn=ys(e=>e?`on${tn(e)}`:""),bn=(e,t)=>!Object.is(e,t),hn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Jr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Gr=e=>{const t=Z(e)?Number(e):NaN;return isNaN(t)?e:t};let yl;const vi=()=>yl||(yl=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}),Uf="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console",Vf=Le(Uf);function ar(e){if($(e)){const t={};for(let n=0;n{if(n){const r=n.split(Kf);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ur(e){let t="";if(Z(e))t=e;else if($(e))for(let n=0;nIt(n,t))}const rd=e=>Z(e)?e:e==null?"":$(e)||le(e)&&(e.toString===Dc||!z(e.toString))?JSON.stringify(e,Hc,2):String(e),Hc=(e,t)=>t&&t.__v_isRef?Hc(e,t.value):dn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s])=>(n[`${r} =>`]=s,n),{})}:en(t)?{[`Set(${t.size})`]:[...t.values()]}:le(t)&&!$(t)&&!Bc(t)?String(t):t;let Be;class io{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Be,!t&&Be&&(this.index=(Be.scopes||(Be.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Be;try{return Be=this,t()}finally{Be=n}}}on(){Be=this}off(){Be=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},Vc=e=>(e.w&Ft)>0,qc=e=>(e.n&Ft)>0,sd=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(u==="length"||u>=c)&&l.push(a)})}else switch(n!==void 0&&l.push(o.get(n)),t){case"add":$(e)?so(n)&&l.push(o.get("length")):(l.push(o.get(qt)),dn(e)&&l.push(o.get(Ei)));break;case"delete":$(e)||(l.push(o.get(qt)),dn(e)&&l.push(o.get(Ei)));break;case"set":dn(e)&&l.push(o.get(qt));break}if(l.length===1)l[0]&&Si(l[0]);else{const c=[];for(const a of l)a&&c.push(...a);Si(co(c))}}function Si(e,t){const n=$(e)?e:[...e];for(const r of n)r.computed&&vl(r);for(const r of n)r.computed||vl(r)}function vl(e,t){(e!==Qe||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function cd(e,t){var n;return(n=Zr.get(e))==null?void 0:n.get(t)}const ad=Le("__proto__,__v_isRef,__isVue"),zc=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Pt)),ud=vs(),fd=vs(!1,!0),dd=vs(!0),pd=vs(!0,!0),_l=hd();function hd(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=X(this);for(let i=0,o=this.length;i{e[t]=function(...n){An();const r=X(this)[t].apply(this,n);return Rn(),r}}),e}function md(e){const t=X(this);return Me(t,"has",e),t.hasOwnProperty(e)}function vs(e=!1,t=!1){return function(r,s,i){if(s==="__v_isReactive")return!e;if(s==="__v_isReadonly")return e;if(s==="__v_isShallow")return t;if(s==="__v_raw"&&i===(e?t?ea:Xc:t?Yc:Qc).get(r))return r;const o=$(r);if(!e){if(o&&re(_l,s))return Reflect.get(_l,s,i);if(s==="hasOwnProperty")return md}const l=Reflect.get(r,s,i);return(Pt(s)?zc.has(s):ad(s))||(e||Me(r,"get",s),t)?l:de(l)?o&&so(s)?l:l.value:le(l)?e?uo(l):ot(l):l}}const gd=Jc(),yd=Jc(!0);function Jc(e=!1){return function(n,r,s,i){let o=n[r];if(Jt(o)&&de(o)&&!de(s))return!1;if(!e&&(!Jn(s)&&!Jt(s)&&(o=X(o),s=X(s)),!$(n)&&de(o)&&!de(s)))return o.value=s,!0;const l=$(n)&&so(r)?Number(r)e,_s=e=>Reflect.getPrototypeOf(e);function wr(e,t,n=!1,r=!1){e=e.__v_raw;const s=X(e),i=X(t);n||(t!==i&&Me(s,"get",t),Me(s,"get",i));const{has:o}=_s(s),l=r?ao:n?po:Gn;if(o.call(s,t))return l(e.get(t));if(o.call(s,i))return l(e.get(i));e!==s&&e.get(t)}function Tr(e,t=!1){const n=this.__v_raw,r=X(n),s=X(e);return t||(e!==s&&Me(r,"has",e),Me(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function Cr(e,t=!1){return e=e.__v_raw,!t&&Me(X(e),"iterate",qt),Reflect.get(e,"size",e)}function El(e){e=X(e);const t=X(this);return _s(t).has.call(t,e)||(t.add(e),mt(t,"add",e,e)),this}function Sl(e,t){t=X(t);const n=X(this),{has:r,get:s}=_s(n);let i=r.call(n,e);i||(e=X(e),i=r.call(n,e));const o=s.call(n,e);return n.set(e,t),i?bn(t,o)&&mt(n,"set",e,t):mt(n,"add",e,t),this}function wl(e){const t=X(this),{has:n,get:r}=_s(t);let s=n.call(t,e);s||(e=X(e),s=n.call(t,e)),r&&r.call(t,e);const i=t.delete(e);return s&&mt(t,"delete",e,void 0),i}function Tl(){const e=X(this),t=e.size!==0,n=e.clear();return t&&mt(e,"clear",void 0,void 0),n}function Or(e,t){return function(r,s){const i=this,o=i.__v_raw,l=X(o),c=t?ao:e?po:Gn;return!e&&Me(l,"iterate",qt),o.forEach((a,u)=>r.call(s,c(a),c(u),i))}}function Nr(e,t,n){return function(...r){const s=this.__v_raw,i=X(s),o=dn(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,a=s[e](...r),u=n?ao:t?po:Gn;return!t&&Me(i,"iterate",c?Ei:qt),{next(){const{value:d,done:v}=a.next();return v?{value:d,done:v}:{value:l?[u(d[0]),u(d[1])]:u(d),done:v}},[Symbol.iterator](){return this}}}}function bt(e){return function(...t){return e==="delete"?!1:this}}function wd(){const e={get(i){return wr(this,i)},get size(){return Cr(this)},has:Tr,add:El,set:Sl,delete:wl,clear:Tl,forEach:Or(!1,!1)},t={get(i){return wr(this,i,!1,!0)},get size(){return Cr(this)},has:Tr,add:El,set:Sl,delete:wl,clear:Tl,forEach:Or(!1,!0)},n={get(i){return wr(this,i,!0)},get size(){return Cr(this,!0)},has(i){return Tr.call(this,i,!0)},add:bt("add"),set:bt("set"),delete:bt("delete"),clear:bt("clear"),forEach:Or(!0,!1)},r={get(i){return wr(this,i,!0,!0)},get size(){return Cr(this,!0)},has(i){return Tr.call(this,i,!0)},add:bt("add"),set:bt("set"),delete:bt("delete"),clear:bt("clear"),forEach:Or(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=Nr(i,!1,!1),n[i]=Nr(i,!0,!1),t[i]=Nr(i,!1,!0),r[i]=Nr(i,!0,!0)}),[e,n,t,r]}const[Td,Cd,Od,Nd]=wd();function Es(e,t){const n=t?e?Nd:Od:e?Cd:Td;return(r,s,i)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(re(n,s)&&s in r?n:r,s,i)}const Ad={get:Es(!1,!1)},Rd={get:Es(!1,!0)},Pd={get:Es(!0,!1)},Id={get:Es(!0,!0)},Qc=new WeakMap,Yc=new WeakMap,Xc=new WeakMap,ea=new WeakMap;function Fd(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function kd(e){return e.__v_skip||!Object.isExtensible(e)?0:Fd(xf(e))}function ot(e){return Jt(e)?e:Ss(e,!1,Gc,Ad,Qc)}function ta(e){return Ss(e,!1,Ed,Rd,Yc)}function uo(e){return Ss(e,!0,Zc,Pd,Xc)}function Md(e){return Ss(e,!0,Sd,Id,ea)}function Ss(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=s.get(e);if(i)return i;const o=kd(e);if(o===0)return e;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function dt(e){return Jt(e)?dt(e.__v_raw):!!(e&&e.__v_isReactive)}function Jt(e){return!!(e&&e.__v_isReadonly)}function Jn(e){return!!(e&&e.__v_isShallow)}function fo(e){return dt(e)||Jt(e)}function X(e){const t=e&&e.__v_raw;return t?X(t):e}function dr(e){return zr(e,"__v_skip",!0),e}const Gn=e=>le(e)?ot(e):e,po=e=>le(e)?uo(e):e;function ho(e){Ct&&Qe&&(e=X(e),Wc(e.dep||(e.dep=co())))}function ws(e,t){e=X(e);const n=e.dep;n&&Si(n)}function de(e){return!!(e&&e.__v_isRef===!0)}function Ot(e){return na(e,!1)}function Ld(e){return na(e,!0)}function na(e,t){return de(e)?e:new Dd(e,t)}class Dd{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:X(t),this._value=n?t:Gn(t)}get value(){return ho(this),this._value}set value(t){const n=this.__v_isShallow||Jn(t)||Jt(t);t=n?t:X(t),bn(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Gn(t),ws(this))}}function Bd(e){ws(e)}function mo(e){return de(e)?e.value:e}function xd(e){return z(e)?e():mo(e)}const jd={get:(e,t,n)=>mo(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function go(e){return dt(e)?e:new Proxy(e,jd)}class Hd{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>ho(this),()=>ws(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function $d(e){return new Hd(e)}function ra(e){const t=$(e)?new Array(e.length):{};for(const n in e)t[n]=sa(e,n);return t}class Ud{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return cd(X(this._object),this._key)}}class Vd{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function qd(e,t,n){return de(e)?e:z(e)?new Vd(e):le(e)&&arguments.length>1?sa(e,t,n):Ot(e)}function sa(e,t,n){const r=e[t];return de(r)?r:new Ud(e,t,n)}class Kd{constructor(t,n,r,s){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new fr(t,()=>{this._dirty||(this._dirty=!0,ws(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=r}get value(){const t=X(this);return ho(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function Wd(e,t,n=!1){let r,s;const i=z(e);return i?(r=e,s=Pe):(r=e.get,s=e.set),new Kd(r,s,i||!s,n)}function zd(e,...t){}function Jd(e,t){}function pt(e,t,n,r){let s;try{s=r?e(...r):e()}catch(i){nn(i,t,n)}return s}function He(e,t,n,r){if(z(e)){const i=pt(e,t,n,r);return i&&ro(i)&&i.catch(o=>{nn(o,t,n)}),i}const s=[];for(let i=0;i>>1;Qn(Ce[r])st&&Ce.splice(t,1)}function bo(e){$(e)?mn.push(...e):(!ut||!ut.includes(e,e.allowRecurse?jt+1:jt))&&mn.push(e),oa()}function Cl(e,t=Zn?st+1:0){for(;tQn(n)-Qn(r)),jt=0;jte.id==null?1/0:e.id,Qd=(e,t)=>{const n=Qn(e)-Qn(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function la(e){wi=!1,Zn=!0,Ce.sort(Qd);const t=Pe;try{for(st=0;stan.emit(s,...i)),Ar=[]):typeof window<"u"&&window.HTMLElement&&!((r=(n=window.navigator)==null?void 0:n.userAgent)!=null&&r.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(i=>{ca(i,t)}),setTimeout(()=>{an||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,Ar=[])},3e3)):Ar=[]}function Yd(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||oe;let s=n;const i=t.startsWith("update:"),o=i&&t.slice(7);if(o&&o in r){const u=`${o==="modelValue"?"model":o}Modifiers`,{number:d,trim:v}=r[u]||oe;v&&(s=n.map(h=>Z(h)?h.trim():h)),d&&(s=n.map(Jr))}let l,c=r[l=pn(t)]||r[l=pn(ye(t))];!c&&i&&(c=r[l=pn(je(t))]),c&&He(c,e,6,s);const a=r[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,He(a,e,6,s)}}function aa(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const i=e.emits;let o={},l=!1;if(!z(e)){const c=a=>{const u=aa(a,t,!0);u&&(l=!0,ee(o,u))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(le(e)&&r.set(e,null),null):($(i)?i.forEach(c=>o[c]=null):ee(o,i),le(e)&&r.set(e,o),o)}function Os(e,t){return!e||!Xt(t)?!1:(t=t.slice(2).replace(/Once$/,""),re(e,t[0].toLowerCase()+t.slice(1))||re(e,je(t))||re(e,t))}let Ee=null,Ns=null;function Yn(e){const t=Ee;return Ee=e,Ns=e&&e.type.__scopeId||null,t}function Xd(e){Ns=e}function ep(){Ns=null}const tp=e=>vo;function vo(e,t=Ee,n){if(!t||e._n)return e;const r=(...s)=>{r._d&&Pi(-1);const i=Yn(t);let o;try{o=e(...s)}finally{Yn(i),r._d&&Pi(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function jr(e){const{type:t,vnode:n,proxy:r,withProxy:s,props:i,propsOptions:[o],slots:l,attrs:c,emit:a,render:u,renderCache:d,data:v,setupState:h,ctx:g,inheritAttrs:p}=e;let b,m;const f=Yn(e);try{if(n.shapeFlag&4){const y=s||r;b=xe(u.call(y,y,d,i,h,v,g)),m=c}else{const y=t;b=xe(y.length>1?y(i,{attrs:c,slots:l,emit:a}):y(i,null)),m=t.props?c:rp(c)}}catch(y){Vn.length=0,nn(y,e,1),b=ae(Ne)}let E=b;if(m&&p!==!1){const y=Object.keys(m),{shapeFlag:w}=E;y.length&&w&7&&(o&&y.some(to)&&(m=sp(m,o)),E=it(E,m))}return n.dirs&&(E=it(E),E.dirs=E.dirs?E.dirs.concat(n.dirs):n.dirs),n.transition&&(E.transition=n.transition),b=E,Yn(f),b}function np(e){let t;for(let n=0;n{let t;for(const n in e)(n==="class"||n==="style"||Xt(n))&&((t||(t={}))[n]=e[n]);return t},sp=(e,t)=>{const n={};for(const r in e)(!to(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function ip(e,t,n){const{props:r,children:s,component:i}=e,{props:o,children:l,patchFlag:c}=t,a=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Ol(r,o,a):!!o;if(c&8){const u=t.dynamicProps;for(let d=0;de.__isSuspense,op={name:"Suspense",__isSuspense:!0,process(e,t,n,r,s,i,o,l,c,a){e==null?cp(t,n,r,s,i,o,l,c,a):ap(e,t,n,r,s,o,l,c,a)},hydrate:up,create:Eo,normalize:fp},lp=op;function Xn(e,t){const n=e.props&&e.props[t];z(n)&&n()}function cp(e,t,n,r,s,i,o,l,c){const{p:a,o:{createElement:u}}=c,d=u("div"),v=e.suspense=Eo(e,s,r,t,d,n,i,o,l,c);a(null,v.pendingBranch=e.ssContent,d,null,r,v,i,o),v.deps>0?(Xn(e,"onPending"),Xn(e,"onFallback"),a(null,e.ssFallback,t,n,r,null,i,o),gn(v,e.ssFallback)):v.resolve(!1,!0)}function ap(e,t,n,r,s,i,o,l,{p:c,um:a,o:{createElement:u}}){const d=t.suspense=e.suspense;d.vnode=t,t.el=e.el;const v=t.ssContent,h=t.ssFallback,{activeBranch:g,pendingBranch:p,isInFallback:b,isHydrating:m}=d;if(p)d.pendingBranch=v,Ye(v,p)?(c(p,v,d.hiddenContainer,null,s,d,i,o,l),d.deps<=0?d.resolve():b&&(c(g,h,n,r,s,null,i,o,l),gn(d,h))):(d.pendingId++,m?(d.isHydrating=!1,d.activeBranch=p):a(p,s,d),d.deps=0,d.effects.length=0,d.hiddenContainer=u("div"),b?(c(null,v,d.hiddenContainer,null,s,d,i,o,l),d.deps<=0?d.resolve():(c(g,h,n,r,s,null,i,o,l),gn(d,h))):g&&Ye(v,g)?(c(g,v,n,r,s,d,i,o,l),d.resolve(!0)):(c(null,v,d.hiddenContainer,null,s,d,i,o,l),d.deps<=0&&d.resolve()));else if(g&&Ye(v,g))c(g,v,n,r,s,d,i,o,l),gn(d,v);else if(Xn(t,"onPending"),d.pendingBranch=v,d.pendingId++,c(null,v,d.hiddenContainer,null,s,d,i,o,l),d.deps<=0)d.resolve();else{const{timeout:f,pendingId:E}=d;f>0?setTimeout(()=>{d.pendingId===E&&d.fallback(h)},f):f===0&&d.fallback(h)}}function Eo(e,t,n,r,s,i,o,l,c,a,u=!1){const{p:d,m:v,um:h,n:g,o:{parentNode:p,remove:b}}=a;let m;const f=dp(e);f&&t!=null&&t.pendingBranch&&(m=t.pendingId,t.deps++);const E=e.props?Gr(e.props.timeout):void 0,y={vnode:e,parent:t,parentComponent:n,isSVG:o,container:r,hiddenContainer:s,anchor:i,deps:0,pendingId:0,timeout:typeof E=="number"?E:-1,activeBranch:null,pendingBranch:null,isInFallback:!0,isHydrating:u,isUnmounted:!1,effects:[],resolve(w=!1,O=!1){const{vnode:N,activeBranch:_,pendingBranch:C,pendingId:A,effects:P,parentComponent:I,container:L}=y;if(y.isHydrating)y.isHydrating=!1;else if(!w){const W=_&&C.transition&&C.transition.mode==="out-in";W&&(_.transition.afterLeave=()=>{A===y.pendingId&&v(C,L,te,0)});let{anchor:te}=y;_&&(te=g(_),h(_,I,y,!0)),W||v(C,L,te,0)}gn(y,C),y.pendingBranch=null,y.isInFallback=!1;let B=y.parent,G=!1;for(;B;){if(B.pendingBranch){B.effects.push(...P),G=!0;break}B=B.parent}G||bo(P),y.effects=[],f&&t&&t.pendingBranch&&m===t.pendingId&&(t.deps--,t.deps===0&&!O&&t.resolve()),Xn(N,"onResolve")},fallback(w){if(!y.pendingBranch)return;const{vnode:O,activeBranch:N,parentComponent:_,container:C,isSVG:A}=y;Xn(O,"onFallback");const P=g(N),I=()=>{y.isInFallback&&(d(null,w,C,P,_,null,A,l,c),gn(y,w))},L=w.transition&&w.transition.mode==="out-in";L&&(N.transition.afterLeave=I),y.isInFallback=!0,h(N,_,null,!0),L||I()},move(w,O,N){y.activeBranch&&v(y.activeBranch,w,O,N),y.container=w},next(){return y.activeBranch&&g(y.activeBranch)},registerDep(w,O){const N=!!y.pendingBranch;N&&y.deps++;const _=w.vnode.el;w.asyncDep.catch(C=>{nn(C,w,0)}).then(C=>{if(w.isUnmounted||y.isUnmounted||y.pendingId!==w.suspenseId)return;w.asyncResolved=!0;const{vnode:A}=w;Ii(w,C,!1),_&&(A.el=_);const P=!_&&w.subTree.el;O(w,A,p(_||w.subTree.el),_?null:g(w.subTree),y,o,c),P&&b(P),_o(w,A.el),N&&--y.deps===0&&y.resolve()})},unmount(w,O){y.isUnmounted=!0,y.activeBranch&&h(y.activeBranch,n,w,O),y.pendingBranch&&h(y.pendingBranch,n,w,O)}};return y}function up(e,t,n,r,s,i,o,l,c){const a=t.suspense=Eo(t,r,n,e.parentNode,document.createElement("div"),null,s,i,o,l,!0),u=c(e,a.pendingBranch=t.ssContent,n,a,i,o);return a.deps===0&&a.resolve(!1,!0),u}function fp(e){const{shapeFlag:t,children:n}=e,r=t&32;e.ssContent=Nl(r?n.default:n),e.ssFallback=r?Nl(n.fallback):ae(Ne)}function Nl(e){let t;if(z(e)){const n=Qt&&e._c;n&&(e._d=!1,Ms()),e=e(),n&&(e._d=!0,t=Fe,$a())}return $(e)&&(e=np(e)),e=xe(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function fa(e,t){t&&t.pendingBranch?$(e)?t.effects.push(...e):t.effects.push(e):bo(e)}function gn(e,t){e.activeBranch=t;const{vnode:n,parentComponent:r}=e,s=n.el=t.el;r&&r.subTree===n&&(r.vnode.el=s,_o(r,s))}function dp(e){var t;return((t=e.props)==null?void 0:t.suspensible)!=null&&e.props.suspensible!==!1}function pp(e,t){return pr(e,null,t)}function da(e,t){return pr(e,null,{flush:"post"})}function hp(e,t){return pr(e,null,{flush:"sync"})}const Rr={};function Nt(e,t,n){return pr(e,t,n)}function pr(e,t,{immediate:n,deep:r,flush:s,onTrack:i,onTrigger:o}=oe){var l;const c=lo()===((l=ge)==null?void 0:l.scope)?ge:null;let a,u=!1,d=!1;if(de(e)?(a=()=>e.value,u=Jn(e)):dt(e)?(a=()=>e,r=!0):$(e)?(d=!0,u=e.some(y=>dt(y)||Jn(y)),a=()=>e.map(y=>{if(de(y))return y.value;if(dt(y))return $t(y);if(z(y))return pt(y,c,2)})):z(e)?t?a=()=>pt(e,c,2):a=()=>{if(!(c&&c.isUnmounted))return v&&v(),He(e,c,3,[h])}:a=Pe,t&&r){const y=a;a=()=>$t(y())}let v,h=y=>{v=f.onStop=()=>{pt(y,c,4)}},g;if(_n)if(h=Pe,t?n&&He(t,c,3,[a(),d?[]:void 0,h]):a(),s==="sync"){const y=Xa();g=y.__watcherHandles||(y.__watcherHandles=[])}else return Pe;let p=d?new Array(e.length).fill(Rr):Rr;const b=()=>{if(f.active)if(t){const y=f.run();(r||u||(d?y.some((w,O)=>bn(w,p[O])):bn(y,p)))&&(v&&v(),He(t,c,3,[y,p===Rr?void 0:d&&p[0]===Rr?[]:p,h]),p=y)}else f.run()};b.allowRecurse=!!t;let m;s==="sync"?m=b:s==="post"?m=()=>we(b,c&&c.suspense):(b.pre=!0,c&&(b.id=c.uid),m=()=>Cs(b));const f=new fr(a,m);t?n?b():p=f.run():s==="post"?we(f.run.bind(f),c&&c.suspense):f.run();const E=()=>{f.stop(),c&&c.scope&&no(c.scope.effects,f)};return g&&g.push(E),E}function mp(e,t,n){const r=this.proxy,s=Z(e)?e.includes(".")?pa(r,e):()=>r[e]:e.bind(r,r);let i;z(t)?i=t:(i=t.handler,n=t);const o=ge;Mt(this);const l=pr(s,i.bind(r),n);return o?Mt(o):At(),l}function pa(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s{$t(n,t)});else if(Bc(e))for(const n in e)$t(e[n],t);return e}function gp(e,t){const n=Ee;if(n===null)return e;const r=Ds(n)||n.proxy,s=e.dirs||(e.dirs=[]);for(let i=0;i{e.isMounted=!0}),Fs(()=>{e.isUnmounting=!0}),e}const Ve=[Function,Array],wo={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ve,onEnter:Ve,onAfterEnter:Ve,onEnterCancelled:Ve,onBeforeLeave:Ve,onLeave:Ve,onAfterLeave:Ve,onLeaveCancelled:Ve,onBeforeAppear:Ve,onAppear:Ve,onAfterAppear:Ve,onAppearCancelled:Ve},yp={name:"BaseTransition",props:wo,setup(e,{slots:t}){const n=yt(),r=So();let s;return()=>{const i=t.default&&As(t.default(),!0);if(!i||!i.length)return;let o=i[0];if(i.length>1){for(const p of i)if(p.type!==Ne){o=p;break}}const l=X(e),{mode:c}=l;if(r.isLeaving)return Ys(o);const a=Al(o);if(!a)return Ys(o);const u=vn(a,l,r,n);Gt(a,u);const d=n.subTree,v=d&&Al(d);let h=!1;const{getTransitionKey:g}=a.type;if(g){const p=g();s===void 0?s=p:p!==s&&(s=p,h=!0)}if(v&&v.type!==Ne&&(!Ye(a,v)||h)){const p=vn(v,l,r,n);if(Gt(v,p),c==="out-in")return r.isLeaving=!0,p.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&n.update()},Ys(o);c==="in-out"&&a.type!==Ne&&(p.delayLeave=(b,m,f)=>{const E=ma(r,v);E[String(v.key)]=v,b._leaveCb=()=>{m(),b._leaveCb=void 0,delete u.delayedLeave},u.delayedLeave=f})}return o}}},ha=yp;function ma(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function vn(e,t,n,r){const{appear:s,mode:i,persisted:o=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:a,onEnterCancelled:u,onBeforeLeave:d,onLeave:v,onAfterLeave:h,onLeaveCancelled:g,onBeforeAppear:p,onAppear:b,onAfterAppear:m,onAppearCancelled:f}=t,E=String(e.key),y=ma(n,e),w=(_,C)=>{_&&He(_,r,9,C)},O=(_,C)=>{const A=C[1];w(_,C),$(_)?_.every(P=>P.length<=1)&&A():_.length<=1&&A()},N={mode:i,persisted:o,beforeEnter(_){let C=l;if(!n.isMounted)if(s)C=p||l;else return;_._leaveCb&&_._leaveCb(!0);const A=y[E];A&&Ye(e,A)&&A.el._leaveCb&&A.el._leaveCb(),w(C,[_])},enter(_){let C=c,A=a,P=u;if(!n.isMounted)if(s)C=b||c,A=m||a,P=f||u;else return;let I=!1;const L=_._enterCb=B=>{I||(I=!0,B?w(P,[_]):w(A,[_]),N.delayedLeave&&N.delayedLeave(),_._enterCb=void 0)};C?O(C,[_,L]):L()},leave(_,C){const A=String(e.key);if(_._enterCb&&_._enterCb(!0),n.isUnmounting)return C();w(d,[_]);let P=!1;const I=_._leaveCb=L=>{P||(P=!0,C(),L?w(g,[_]):w(h,[_]),_._leaveCb=void 0,y[A]===e&&delete y[A])};y[A]=e,v?O(v,[_,I]):I()},clone(_){return vn(_,t,n,r)}};return N}function Ys(e){if(hr(e))return e=it(e),e.children=null,e}function Al(e){return hr(e)?e.children?e.children[0]:void 0:e}function Gt(e,t){e.shapeFlag&6&&e.component?Gt(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function As(e,t=!1,n){let r=[],s=0;for(let i=0;i1)for(let i=0;iee({name:e.name},t,{setup:e}))():e}const Kt=e=>!!e.type.__asyncLoader;function bp(e){z(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,timeout:i,suspensible:o=!0,onError:l}=e;let c=null,a,u=0;const d=()=>(u++,c=null,v()),v=()=>{let h;return c||(h=c=t().catch(g=>{if(g=g instanceof Error?g:new Error(String(g)),l)return new Promise((p,b)=>{l(g,()=>p(d()),()=>b(g),u+1)});throw g}).then(g=>h!==c&&c?c:(g&&(g.__esModule||g[Symbol.toStringTag]==="Module")&&(g=g.default),a=g,g)))};return Rs({name:"AsyncComponentWrapper",__asyncLoader:v,get __asyncResolved(){return a},setup(){const h=ge;if(a)return()=>Xs(a,h);const g=f=>{c=null,nn(f,h,13,!r)};if(o&&h.suspense||_n)return v().then(f=>()=>Xs(f,h)).catch(f=>(g(f),()=>r?ae(r,{error:f}):null));const p=Ot(!1),b=Ot(),m=Ot(!!s);return s&&setTimeout(()=>{m.value=!1},s),i!=null&&setTimeout(()=>{if(!p.value&&!b.value){const f=new Error(`Async component timed out after ${i}ms.`);g(f),b.value=f}},i),v().then(()=>{p.value=!0,h.parent&&hr(h.parent.vnode)&&Cs(h.parent.update)}).catch(f=>{g(f),b.value=f}),()=>{if(p.value&&a)return Xs(a,h);if(b.value&&r)return ae(r,{error:b.value});if(n&&!m.value)return ae(n)}}})}function Xs(e,t){const{ref:n,props:r,children:s,ce:i}=t.vnode,o=ae(e,r,s);return o.ref=n,o.ce=i,delete t.vnode.ce,o}const hr=e=>e.type.__isKeepAlive,vp={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=yt(),r=n.ctx;if(!r.renderer)return()=>{const f=t.default&&t.default();return f&&f.length===1?f[0]:f};const s=new Map,i=new Set;let o=null;const l=n.suspense,{renderer:{p:c,m:a,um:u,o:{createElement:d}}}=r,v=d("div");r.activate=(f,E,y,w,O)=>{const N=f.component;a(f,E,y,0,l),c(N.vnode,f,E,y,N,l,w,f.slotScopeIds,O),we(()=>{N.isDeactivated=!1,N.a&&hn(N.a);const _=f.props&&f.props.onVnodeMounted;_&&Ie(_,N.parent,f)},l)},r.deactivate=f=>{const E=f.component;a(f,v,null,1,l),we(()=>{E.da&&hn(E.da);const y=f.props&&f.props.onVnodeUnmounted;y&&Ie(y,E.parent,f),E.isDeactivated=!0},l)};function h(f){ei(f),u(f,n,l,!0)}function g(f){s.forEach((E,y)=>{const w=ki(E.type);w&&(!f||!f(w))&&p(y)})}function p(f){const E=s.get(f);!o||!Ye(E,o)?h(E):o&&ei(o),s.delete(f),i.delete(f)}Nt(()=>[e.include,e.exclude],([f,E])=>{f&&g(y=>jn(f,y)),E&&g(y=>!jn(E,y))},{flush:"post",deep:!0});let b=null;const m=()=>{b!=null&&s.set(b,ti(n.subTree))};return mr(m),Is(m),Fs(()=>{s.forEach(f=>{const{subTree:E,suspense:y}=n,w=ti(E);if(f.type===w.type&&f.key===w.key){ei(w);const O=w.component.da;O&&we(O,y);return}h(f)})}),()=>{if(b=null,!t.default)return null;const f=t.default(),E=f[0];if(f.length>1)return o=null,f;if(!kt(E)||!(E.shapeFlag&4)&&!(E.shapeFlag&128))return o=null,E;let y=ti(E);const w=y.type,O=ki(Kt(y)?y.type.__asyncResolved||{}:w),{include:N,exclude:_,max:C}=e;if(N&&(!O||!jn(N,O))||_&&O&&jn(_,O))return o=y,E;const A=y.key==null?w:y.key,P=s.get(A);return y.el&&(y=it(y),E.shapeFlag&128&&(E.ssContent=y)),b=A,P?(y.el=P.el,y.component=P.component,y.transition&&Gt(y,y.transition),y.shapeFlag|=512,i.delete(A),i.add(A)):(i.add(A),C&&i.size>parseInt(C,10)&&p(i.values().next().value)),y.shapeFlag|=256,o=y,ua(E.type)?E:y}}},_p=vp;function jn(e,t){return $(e)?e.some(n=>jn(n,t)):Z(e)?e.split(",").includes(t):Bf(e)?e.test(t):!1}function ga(e,t){ba(e,"a",t)}function ya(e,t){ba(e,"da",t)}function ba(e,t,n=ge){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Ps(t,r,n),n){let s=n.parent;for(;s&&s.parent;)hr(s.parent.vnode)&&Ep(r,t,n,s),s=s.parent}}function Ep(e,t,n,r){const s=Ps(t,e,r,!0);ks(()=>{no(r[t],s)},n)}function ei(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function ti(e){return e.shapeFlag&128?e.ssContent:e}function Ps(e,t,n=ge,r=!1){if(n){const s=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;An(),Mt(n);const l=He(t,n,e,o);return At(),Rn(),l});return r?s.unshift(i):s.push(i),i}}const gt=e=>(t,n=ge)=>(!_n||e==="sp")&&Ps(e,(...r)=>t(...r),n),va=gt("bm"),mr=gt("m"),_a=gt("bu"),Is=gt("u"),Fs=gt("bum"),ks=gt("um"),Ea=gt("sp"),Sa=gt("rtg"),wa=gt("rtc");function Ta(e,t=ge){Ps("ec",e,t)}const To="components",Sp="directives";function wp(e,t){return Co(To,e,!0,t)||e}const Ca=Symbol.for("v-ndc");function Tp(e){return Z(e)?Co(To,e,!1)||e:e||Ca}function Cp(e){return Co(Sp,e)}function Co(e,t,n=!0,r=!1){const s=Ee||ge;if(s){const i=s.type;if(e===To){const l=ki(i,!1);if(l&&(l===t||l===ye(t)||l===tn(ye(t))))return i}const o=Rl(s[e]||i[e],t)||Rl(s.appContext[e],t);return!o&&r?i:o}}function Rl(e,t){return e&&(e[t]||e[ye(t)]||e[tn(ye(t))])}function Op(e,t,n,r){let s;const i=n&&n[r];if($(e)||Z(e)){s=new Array(e.length);for(let o=0,l=e.length;ot(o,l,void 0,i&&i[l]));else{const o=Object.keys(e);s=new Array(o.length);for(let l=0,c=o.length;l{const i=r.fn(...s);return i&&(i.key=r.key),i}:r.fn)}return e}function Ap(e,t,n={},r,s){if(Ee.isCE||Ee.parent&&Kt(Ee.parent)&&Ee.parent.isCE)return t!=="default"&&(n.name=t),ae("slot",n,r&&r());let i=e[t];i&&i._c&&(i._d=!1),Ms();const o=i&&Oa(i(n)),l=Ro(Te,{key:n.key||o&&o.key||`_${t}`},o||(r?r():[]),o&&e._===1?64:-2);return!s&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),i&&i._c&&(i._d=!0),l}function Oa(e){return e.some(t=>kt(t)?!(t.type===Ne||t.type===Te&&!Oa(t.children)):!0)?e:null}function Rp(e,t){const n={};for(const r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:pn(r)]=e[r];return n}const Ti=e=>e?Wa(e)?Ds(e)||e.proxy:Ti(e.parent):null,$n=ee(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ti(e.parent),$root:e=>Ti(e.root),$emit:e=>e.emit,$options:e=>Oo(e),$forceUpdate:e=>e.f||(e.f=()=>Cs(e.update)),$nextTick:e=>e.n||(e.n=Ts.bind(e.proxy)),$watch:e=>mp.bind(e)}),ni=(e,t)=>e!==oe&&!e.__isScriptSetup&&re(e,t),Ci={get({_:e},t){const{ctx:n,setupState:r,data:s,props:i,accessCache:o,type:l,appContext:c}=e;let a;if(t[0]!=="$"){const h=o[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return i[t]}else{if(ni(r,t))return o[t]=1,r[t];if(s!==oe&&re(s,t))return o[t]=2,s[t];if((a=e.propsOptions[0])&&re(a,t))return o[t]=3,i[t];if(n!==oe&&re(n,t))return o[t]=4,n[t];Oi&&(o[t]=0)}}const u=$n[t];let d,v;if(u)return t==="$attrs"&&Me(e,"get",t),u(e);if((d=l.__cssModules)&&(d=d[t]))return d;if(n!==oe&&re(n,t))return o[t]=4,n[t];if(v=c.config.globalProperties,re(v,t))return v[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:i}=e;return ni(s,t)?(s[t]=n,!0):r!==oe&&re(r,t)?(r[t]=n,!0):re(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:i}},o){let l;return!!n[o]||e!==oe&&re(e,o)||ni(t,o)||(l=i[0])&&re(l,o)||re(r,o)||re($n,o)||re(s.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:re(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},Pp=ee({},Ci,{get(e,t){if(t!==Symbol.unscopables)return Ci.get(e,t,e)},has(e,t){return t[0]!=="_"&&!Vf(t)}});function Ip(){return null}function Fp(){return null}function kp(e){}function Mp(e){}function Lp(){return null}function Dp(){}function Bp(e,t){return null}function xp(){return Na().slots}function jp(){return Na().attrs}function Hp(e,t,n){const r=yt();if(n&&n.local){const s=Ot(e[t]);return Nt(()=>e[t],i=>s.value=i),Nt(s,i=>{i!==e[t]&&r.emit(`update:${t}`,i)}),s}else return{__v_isRef:!0,get value(){return e[t]},set value(s){r.emit(`update:${t}`,s)}}}function Na(){const e=yt();return e.setupContext||(e.setupContext=Za(e))}function er(e){return $(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function $p(e,t){const n=er(e);for(const r in t){if(r.startsWith("__skip"))continue;let s=n[r];s?$(s)||z(s)?s=n[r]={type:s,default:t[r]}:s.default=t[r]:s===null&&(s=n[r]={default:t[r]}),s&&t[`__skip_${r}`]&&(s.skipFactory=!0)}return n}function Up(e,t){return!e||!t?e||t:$(e)&&$(t)?e.concat(t):ee({},er(e),er(t))}function Vp(e,t){const n={};for(const r in e)t.includes(r)||Object.defineProperty(n,r,{enumerable:!0,get:()=>e[r]});return n}function qp(e){const t=yt();let n=e();return At(),ro(n)&&(n=n.catch(r=>{throw Mt(t),r})),[n,()=>Mt(t)]}let Oi=!0;function Kp(e){const t=Oo(e),n=e.proxy,r=e.ctx;Oi=!1,t.beforeCreate&&Pl(t.beforeCreate,e,"bc");const{data:s,computed:i,methods:o,watch:l,provide:c,inject:a,created:u,beforeMount:d,mounted:v,beforeUpdate:h,updated:g,activated:p,deactivated:b,beforeDestroy:m,beforeUnmount:f,destroyed:E,unmounted:y,render:w,renderTracked:O,renderTriggered:N,errorCaptured:_,serverPrefetch:C,expose:A,inheritAttrs:P,components:I,directives:L,filters:B}=t;if(a&&Wp(a,r,null),o)for(const te in o){const ne=o[te];z(ne)&&(r[te]=ne.bind(n))}if(s){const te=s.call(n,n);le(te)&&(e.data=ot(te))}if(Oi=!0,i)for(const te in i){const ne=i[te],Se=z(ne)?ne.bind(n,n):z(ne.get)?ne.get.bind(n,n):Pe,Dt=!z(ne)&&z(ne.set)?ne.set.bind(n):Pe,Ge=Lo({get:Se,set:Dt});Object.defineProperty(r,te,{enumerable:!0,configurable:!0,get:()=>Ge.value,set:_e=>Ge.value=_e})}if(l)for(const te in l)Aa(l[te],r,n,te);if(c){const te=z(c)?c.call(n):c;Reflect.ownKeys(te).forEach(ne=>{Pa(ne,te[ne])})}u&&Pl(u,e,"c");function W(te,ne){$(ne)?ne.forEach(Se=>te(Se.bind(n))):ne&&te(ne.bind(n))}if(W(va,d),W(mr,v),W(_a,h),W(Is,g),W(ga,p),W(ya,b),W(Ta,_),W(wa,O),W(Sa,N),W(Fs,f),W(ks,y),W(Ea,C),$(A))if(A.length){const te=e.exposed||(e.exposed={});A.forEach(ne=>{Object.defineProperty(te,ne,{get:()=>n[ne],set:Se=>n[ne]=Se})})}else e.exposed||(e.exposed={});w&&e.render===Pe&&(e.render=w),P!=null&&(e.inheritAttrs=P),I&&(e.components=I),L&&(e.directives=L)}function Wp(e,t,n=Pe){$(e)&&(e=Ni(e));for(const r in e){const s=e[r];let i;le(s)?"default"in s?i=yn(s.from||r,s.default,!0):i=yn(s.from||r):i=yn(s),de(i)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[r]=i}}function Pl(e,t,n){He($(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Aa(e,t,n,r){const s=r.includes(".")?pa(n,r):()=>n[r];if(Z(e)){const i=t[e];z(i)&&Nt(s,i)}else if(z(e))Nt(s,e.bind(n));else if(le(e))if($(e))e.forEach(i=>Aa(i,t,n,r));else{const i=z(e.handler)?e.handler.bind(n):t[e.handler];z(i)&&Nt(s,i,e)}}function Oo(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(a=>Yr(c,a,o,!0)),Yr(c,t,o)),le(t)&&i.set(t,c),c}function Yr(e,t,n,r=!1){const{mixins:s,extends:i}=t;i&&Yr(e,i,n,!0),s&&s.forEach(o=>Yr(e,o,n,!0));for(const o in t)if(!(r&&o==="expose")){const l=zp[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const zp={data:Il,props:Fl,emits:Fl,methods:Hn,computed:Hn,beforeCreate:Re,created:Re,beforeMount:Re,mounted:Re,beforeUpdate:Re,updated:Re,beforeDestroy:Re,beforeUnmount:Re,destroyed:Re,unmounted:Re,activated:Re,deactivated:Re,errorCaptured:Re,serverPrefetch:Re,components:Hn,directives:Hn,watch:Gp,provide:Il,inject:Jp};function Il(e,t){return t?e?function(){return ee(z(e)?e.call(this,this):e,z(t)?t.call(this,this):t)}:t:e}function Jp(e,t){return Hn(Ni(e),Ni(t))}function Ni(e){if($(e)){const t={};for(let n=0;n1)return n&&z(t)?t.call(r&&r.proxy):t}}function Ia(){return!!(ge||Ee||tr)}function Yp(e,t,n,r=!1){const s={},i={};zr(i,Ls,1),e.propsDefaults=Object.create(null),Fa(e,t,s,i);for(const o in e.propsOptions[0])o in s||(s[o]=void 0);n?e.props=r?s:ta(s):e.type.props?e.props=s:e.props=i,e.attrs=i}function Xp(e,t,n,r){const{props:s,attrs:i,vnode:{patchFlag:o}}=e,l=X(s),[c]=e.propsOptions;let a=!1;if((r||o>0)&&!(o&16)){if(o&8){const u=e.vnode.dynamicProps;for(let d=0;d{c=!0;const[v,h]=ka(d,t,!0);ee(o,v),h&&l.push(...h)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!i&&!c)return le(e)&&r.set(e,fn),fn;if($(i))for(let u=0;u-1,h[1]=p<0||g-1||re(h,"default"))&&l.push(d)}}}const a=[o,l];return le(e)&&r.set(e,a),a}function kl(e){return e[0]!=="$"}function Ml(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function Ll(e,t){return Ml(e)===Ml(t)}function Dl(e,t){return $(t)?t.findIndex(n=>Ll(n,e)):z(t)&&Ll(t,e)?0:-1}const Ma=e=>e[0]==="_"||e==="$stable",No=e=>$(e)?e.map(xe):[xe(e)],eh=(e,t,n)=>{if(t._n)return t;const r=vo((...s)=>No(t(...s)),n);return r._c=!1,r},La=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Ma(s))continue;const i=e[s];if(z(i))t[s]=eh(s,i,r);else if(i!=null){const o=No(i);t[s]=()=>o}}},Da=(e,t)=>{const n=No(t);e.slots.default=()=>n},th=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=X(t),zr(t,"_",n)):La(t,e.slots={})}else e.slots={},t&&Da(e,t);zr(e.slots,Ls,1)},nh=(e,t,n)=>{const{vnode:r,slots:s}=e;let i=!0,o=oe;if(r.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:(ee(s,t),!n&&l===1&&delete s._):(i=!t.$stable,La(t,s)),o=t}else t&&(Da(e,t),o={default:1});if(i)for(const l in s)!Ma(l)&&!(l in o)&&delete s[l]};function Xr(e,t,n,r,s=!1){if($(e)){e.forEach((v,h)=>Xr(v,t&&($(t)?t[h]:t),n,r,s));return}if(Kt(r)&&!s)return;const i=r.shapeFlag&4?Ds(r.component)||r.component.proxy:r.el,o=s?null:i,{i:l,r:c}=e,a=t&&t.r,u=l.refs===oe?l.refs={}:l.refs,d=l.setupState;if(a!=null&&a!==c&&(Z(a)?(u[a]=null,re(d,a)&&(d[a]=null)):de(a)&&(a.value=null)),z(c))pt(c,l,12,[o,u]);else{const v=Z(c),h=de(c);if(v||h){const g=()=>{if(e.f){const p=v?re(d,c)?d[c]:u[c]:c.value;s?$(p)&&no(p,i):$(p)?p.includes(i)||p.push(i):v?(u[c]=[i],re(d,c)&&(d[c]=u[c])):(c.value=[i],e.k&&(u[e.k]=c.value))}else v?(u[c]=o,re(d,c)&&(d[c]=o)):h&&(c.value=o,e.k&&(u[e.k]=o))};o?(g.id=-1,we(g,n)):g()}}}let vt=!1;const Pr=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Ir=e=>e.nodeType===8;function rh(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:a}}=e,u=(m,f)=>{if(!f.hasChildNodes()){n(null,m,f),Qr(),f._vnode=m;return}vt=!1,d(f.firstChild,m,null,null,null),Qr(),f._vnode=m},d=(m,f,E,y,w,O=!1)=>{const N=Ir(m)&&m.data==="[",_=()=>p(m,f,E,y,w,N),{type:C,ref:A,shapeFlag:P,patchFlag:I}=f;let L=m.nodeType;f.el=m,I===-2&&(O=!1,f.dynamicChildren=null);let B=null;switch(C){case Zt:L!==3?f.children===""?(c(f.el=s(""),o(m),m),B=m):B=_():(m.data!==f.children&&(vt=!0,m.data=f.children),B=i(m));break;case Ne:L!==8||N?B=_():B=i(m);break;case Wt:if(N&&(m=i(m),L=m.nodeType),L===1||L===3){B=m;const G=!f.children.length;for(let W=0;W{O=O||!!f.dynamicChildren;const{type:N,props:_,patchFlag:C,shapeFlag:A,dirs:P}=f,I=N==="input"&&P||N==="option";if(I||C!==-1){if(P&&rt(f,null,E,"created"),_)if(I||!O||C&48)for(const B in _)(I&&B.endsWith("value")||Xt(B)&&!Vt(B))&&r(m,B,null,_[B],!1,void 0,E);else _.onClick&&r(m,"onClick",null,_.onClick,!1,void 0,E);let L;if((L=_&&_.onVnodeBeforeMount)&&Ie(L,E,f),P&&rt(f,null,E,"beforeMount"),((L=_&&_.onVnodeMounted)||P)&&fa(()=>{L&&Ie(L,E,f),P&&rt(f,null,E,"mounted")},y),A&16&&!(_&&(_.innerHTML||_.textContent))){let B=h(m.firstChild,f,m,E,y,w,O);for(;B;){vt=!0;const G=B;B=B.nextSibling,l(G)}}else A&8&&m.textContent!==f.children&&(vt=!0,m.textContent=f.children)}return m.nextSibling},h=(m,f,E,y,w,O,N)=>{N=N||!!f.dynamicChildren;const _=f.children,C=_.length;for(let A=0;A{const{slotScopeIds:N}=f;N&&(w=w?w.concat(N):N);const _=o(m),C=h(i(m),f,_,E,y,w,O);return C&&Ir(C)&&C.data==="]"?i(f.anchor=C):(vt=!0,c(f.anchor=a("]"),_,C),C)},p=(m,f,E,y,w,O)=>{if(vt=!0,f.el=null,O){const C=b(m);for(;;){const A=i(m);if(A&&A!==C)l(A);else break}}const N=i(m),_=o(m);return l(m),n(null,f,_,N,E,y,Pr(_),w),N},b=m=>{let f=0;for(;m;)if(m=i(m),m&&Ir(m)&&(m.data==="["&&f++,m.data==="]")){if(f===0)return i(m);f--}return m};return[u,d]}const we=fa;function Ba(e){return ja(e)}function xa(e){return ja(e,rh)}function ja(e,t){const n=vi();n.__VUE__=!0;const{insert:r,remove:s,patchProp:i,createElement:o,createText:l,createComment:c,setText:a,setElementText:u,parentNode:d,nextSibling:v,setScopeId:h=Pe,insertStaticContent:g}=e,p=(S,T,R,M=null,k=null,j=null,U=!1,x=null,H=!!T.dynamicChildren)=>{if(S===T)return;S&&!Ye(S,T)&&(M=Sr(S),_e(S,k,j,!0),S=null),T.patchFlag===-2&&(H=!1,T.dynamicChildren=null);const{type:D,ref:q,shapeFlag:V}=T;switch(D){case Zt:b(S,T,R,M);break;case Ne:m(S,T,R,M);break;case Wt:S==null&&f(T,R,M,U);break;case Te:I(S,T,R,M,k,j,U,x,H);break;default:V&1?w(S,T,R,M,k,j,U,x,H):V&6?L(S,T,R,M,k,j,U,x,H):(V&64||V&128)&&D.process(S,T,R,M,k,j,U,x,H,rn)}q!=null&&k&&Xr(q,S&&S.ref,j,T||S,!T)},b=(S,T,R,M)=>{if(S==null)r(T.el=l(T.children),R,M);else{const k=T.el=S.el;T.children!==S.children&&a(k,T.children)}},m=(S,T,R,M)=>{S==null?r(T.el=c(T.children||""),R,M):T.el=S.el},f=(S,T,R,M)=>{[S.el,S.anchor]=g(S.children,T,R,M,S.el,S.anchor)},E=({el:S,anchor:T},R,M)=>{let k;for(;S&&S!==T;)k=v(S),r(S,R,M),S=k;r(T,R,M)},y=({el:S,anchor:T})=>{let R;for(;S&&S!==T;)R=v(S),s(S),S=R;s(T)},w=(S,T,R,M,k,j,U,x,H)=>{U=U||T.type==="svg",S==null?O(T,R,M,k,j,U,x,H):C(S,T,k,j,U,x,H)},O=(S,T,R,M,k,j,U,x)=>{let H,D;const{type:q,props:V,shapeFlag:K,transition:J,dirs:Y}=S;if(H=S.el=o(S.type,j,V&&V.is,V),K&8?u(H,S.children):K&16&&_(S.children,H,null,M,k,j&&q!=="foreignObject",U,x),Y&&rt(S,null,M,"created"),N(H,S,S.scopeId,U,M),V){for(const ce in V)ce!=="value"&&!Vt(ce)&&i(H,ce,null,V[ce],j,S.children,M,k,ct);"value"in V&&i(H,"value",null,V.value),(D=V.onVnodeBeforeMount)&&Ie(D,M,S)}Y&&rt(S,null,M,"beforeMount");const ue=(!k||k&&!k.pendingBranch)&&J&&!J.persisted;ue&&J.beforeEnter(H),r(H,T,R),((D=V&&V.onVnodeMounted)||ue||Y)&&we(()=>{D&&Ie(D,M,S),ue&&J.enter(H),Y&&rt(S,null,M,"mounted")},k)},N=(S,T,R,M,k)=>{if(R&&h(S,R),M)for(let j=0;j{for(let D=H;D{const x=T.el=S.el;let{patchFlag:H,dynamicChildren:D,dirs:q}=T;H|=S.patchFlag&16;const V=S.props||oe,K=T.props||oe;let J;R&&Bt(R,!1),(J=K.onVnodeBeforeUpdate)&&Ie(J,R,T,S),q&&rt(T,S,R,"beforeUpdate"),R&&Bt(R,!0);const Y=k&&T.type!=="foreignObject";if(D?A(S.dynamicChildren,D,x,R,M,Y,j):U||ne(S,T,x,null,R,M,Y,j,!1),H>0){if(H&16)P(x,T,V,K,R,M,k);else if(H&2&&V.class!==K.class&&i(x,"class",null,K.class,k),H&4&&i(x,"style",V.style,K.style,k),H&8){const ue=T.dynamicProps;for(let ce=0;ce{J&&Ie(J,R,T,S),q&&rt(T,S,R,"updated")},M)},A=(S,T,R,M,k,j,U)=>{for(let x=0;x{if(R!==M){if(R!==oe)for(const x in R)!Vt(x)&&!(x in M)&&i(S,x,R[x],null,U,T.children,k,j,ct);for(const x in M){if(Vt(x))continue;const H=M[x],D=R[x];H!==D&&x!=="value"&&i(S,x,D,H,U,T.children,k,j,ct)}"value"in M&&i(S,"value",R.value,M.value)}},I=(S,T,R,M,k,j,U,x,H)=>{const D=T.el=S?S.el:l(""),q=T.anchor=S?S.anchor:l("");let{patchFlag:V,dynamicChildren:K,slotScopeIds:J}=T;J&&(x=x?x.concat(J):J),S==null?(r(D,R,M),r(q,R,M),_(T.children,R,q,k,j,U,x,H)):V>0&&V&64&&K&&S.dynamicChildren?(A(S.dynamicChildren,K,R,k,j,U,x),(T.key!=null||k&&T===k.subTree)&&Ao(S,T,!0)):ne(S,T,R,q,k,j,U,x,H)},L=(S,T,R,M,k,j,U,x,H)=>{T.slotScopeIds=x,S==null?T.shapeFlag&512?k.ctx.activate(T,R,M,U,H):B(T,R,M,k,j,U,H):G(S,T,H)},B=(S,T,R,M,k,j,U)=>{const x=S.component=Ka(S,M,k);if(hr(S)&&(x.ctx.renderer=rn),za(x),x.asyncDep){if(k&&k.registerDep(x,W),!S.el){const H=x.subTree=ae(Ne);m(null,H,T,R)}return}W(x,S,T,R,k,j,U)},G=(S,T,R)=>{const M=T.component=S.component;if(ip(S,T,R))if(M.asyncDep&&!M.asyncResolved){te(M,T,R);return}else M.next=T,Zd(M.update),M.update();else T.el=S.el,M.vnode=T},W=(S,T,R,M,k,j,U)=>{const x=()=>{if(S.isMounted){let{next:q,bu:V,u:K,parent:J,vnode:Y}=S,ue=q,ce;Bt(S,!1),q?(q.el=Y.el,te(S,q,U)):q=Y,V&&hn(V),(ce=q.props&&q.props.onVnodeBeforeUpdate)&&Ie(ce,J,q,Y),Bt(S,!0);const he=jr(S),Ze=S.subTree;S.subTree=he,p(Ze,he,d(Ze.el),Sr(Ze),S,k,j),q.el=he.el,ue===null&&_o(S,he.el),K&&we(K,k),(ce=q.props&&q.props.onVnodeUpdated)&&we(()=>Ie(ce,J,q,Y),k)}else{let q;const{el:V,props:K}=T,{bm:J,m:Y,parent:ue}=S,ce=Kt(T);if(Bt(S,!1),J&&hn(J),!ce&&(q=K&&K.onVnodeBeforeMount)&&Ie(q,ue,T),Bt(S,!0),V&&Qs){const he=()=>{S.subTree=jr(S),Qs(V,S.subTree,S,k,null)};ce?T.type.__asyncLoader().then(()=>!S.isUnmounted&&he()):he()}else{const he=S.subTree=jr(S);p(null,he,R,M,S,k,j),T.el=he.el}if(Y&&we(Y,k),!ce&&(q=K&&K.onVnodeMounted)){const he=T;we(()=>Ie(q,ue,he),k)}(T.shapeFlag&256||ue&&Kt(ue.vnode)&&ue.vnode.shapeFlag&256)&&S.a&&we(S.a,k),S.isMounted=!0,T=R=M=null}},H=S.effect=new fr(x,()=>Cs(D),S.scope),D=S.update=()=>H.run();D.id=S.uid,Bt(S,!0),D()},te=(S,T,R)=>{T.component=S;const M=S.vnode.props;S.vnode=T,S.next=null,Xp(S,T.props,M,R),nh(S,T.children,R),An(),Cl(),Rn()},ne=(S,T,R,M,k,j,U,x,H=!1)=>{const D=S&&S.children,q=S?S.shapeFlag:0,V=T.children,{patchFlag:K,shapeFlag:J}=T;if(K>0){if(K&128){Dt(D,V,R,M,k,j,U,x,H);return}else if(K&256){Se(D,V,R,M,k,j,U,x,H);return}}J&8?(q&16&&ct(D,k,j),V!==D&&u(R,V)):q&16?J&16?Dt(D,V,R,M,k,j,U,x,H):ct(D,k,j,!0):(q&8&&u(R,""),J&16&&_(V,R,M,k,j,U,x,H))},Se=(S,T,R,M,k,j,U,x,H)=>{S=S||fn,T=T||fn;const D=S.length,q=T.length,V=Math.min(D,q);let K;for(K=0;Kq?ct(S,k,j,!0,!1,V):_(T,R,M,k,j,U,x,H,V)},Dt=(S,T,R,M,k,j,U,x,H)=>{let D=0;const q=T.length;let V=S.length-1,K=q-1;for(;D<=V&&D<=K;){const J=S[D],Y=T[D]=H?Tt(T[D]):xe(T[D]);if(Ye(J,Y))p(J,Y,R,null,k,j,U,x,H);else break;D++}for(;D<=V&&D<=K;){const J=S[V],Y=T[K]=H?Tt(T[K]):xe(T[K]);if(Ye(J,Y))p(J,Y,R,null,k,j,U,x,H);else break;V--,K--}if(D>V){if(D<=K){const J=K+1,Y=JK)for(;D<=V;)_e(S[D],k,j,!0),D++;else{const J=D,Y=D,ue=new Map;for(D=Y;D<=K;D++){const De=T[D]=H?Tt(T[D]):xe(T[D]);De.key!=null&&ue.set(De.key,D)}let ce,he=0;const Ze=K-Y+1;let sn=!1,pl=0;const kn=new Array(Ze);for(D=0;D=Ze){_e(De,k,j,!0);continue}let nt;if(De.key!=null)nt=ue.get(De.key);else for(ce=Y;ce<=K;ce++)if(kn[ce-Y]===0&&Ye(De,T[ce])){nt=ce;break}nt===void 0?_e(De,k,j,!0):(kn[nt-Y]=D+1,nt>=pl?pl=nt:sn=!0,p(De,T[nt],R,null,k,j,U,x,H),he++)}const hl=sn?sh(kn):fn;for(ce=hl.length-1,D=Ze-1;D>=0;D--){const De=Y+D,nt=T[De],ml=De+1{const{el:j,type:U,transition:x,children:H,shapeFlag:D}=S;if(D&6){Ge(S.component.subTree,T,R,M);return}if(D&128){S.suspense.move(T,R,M);return}if(D&64){U.move(S,T,R,rn);return}if(U===Te){r(j,T,R);for(let V=0;Vx.enter(j),k);else{const{leave:V,delayLeave:K,afterLeave:J}=x,Y=()=>r(j,T,R),ue=()=>{V(j,()=>{Y(),J&&J()})};K?K(j,Y,ue):ue()}else r(j,T,R)},_e=(S,T,R,M=!1,k=!1)=>{const{type:j,props:U,ref:x,children:H,dynamicChildren:D,shapeFlag:q,patchFlag:V,dirs:K}=S;if(x!=null&&Xr(x,null,R,S,!0),q&256){T.ctx.deactivate(S);return}const J=q&1&&K,Y=!Kt(S);let ue;if(Y&&(ue=U&&U.onVnodeBeforeUnmount)&&Ie(ue,T,S),q&6)Fn(S.component,R,M);else{if(q&128){S.suspense.unmount(R,M);return}J&&rt(S,null,T,"beforeUnmount"),q&64?S.type.remove(S,T,R,k,rn,M):D&&(j!==Te||V>0&&V&64)?ct(D,T,R,!1,!0):(j===Te&&V&384||!k&&q&16)&&ct(H,T,R),M&&In(S)}(Y&&(ue=U&&U.onVnodeUnmounted)||J)&&we(()=>{ue&&Ie(ue,T,S),J&&rt(S,null,T,"unmounted")},R)},In=S=>{const{type:T,el:R,anchor:M,transition:k}=S;if(T===Te){Gs(R,M);return}if(T===Wt){y(S);return}const j=()=>{s(R),k&&!k.persisted&&k.afterLeave&&k.afterLeave()};if(S.shapeFlag&1&&k&&!k.persisted){const{leave:U,delayLeave:x}=k,H=()=>U(R,j);x?x(S.el,j,H):H()}else j()},Gs=(S,T)=>{let R;for(;S!==T;)R=v(S),s(S),S=R;s(T)},Fn=(S,T,R)=>{const{bum:M,scope:k,update:j,subTree:U,um:x}=S;M&&hn(M),k.stop(),j&&(j.active=!1,_e(U,S,T,R)),x&&we(x,T),we(()=>{S.isUnmounted=!0},T),T&&T.pendingBranch&&!T.isUnmounted&&S.asyncDep&&!S.asyncResolved&&S.suspenseId===T.pendingId&&(T.deps--,T.deps===0&&T.resolve())},ct=(S,T,R,M=!1,k=!1,j=0)=>{for(let U=j;US.shapeFlag&6?Sr(S.component.subTree):S.shapeFlag&128?S.suspense.next():v(S.anchor||S.el),dl=(S,T,R)=>{S==null?T._vnode&&_e(T._vnode,null,null,!0):p(T._vnode||null,S,T,null,null,null,R),Cl(),Qr(),T._vnode=S},rn={p,um:_e,m:Ge,r:In,mt:B,mc:_,pc:ne,pbc:A,n:Sr,o:e};let Zs,Qs;return t&&([Zs,Qs]=t(rn)),{render:dl,hydrate:Zs,createApp:Qp(dl,Zs)}}function Bt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Ao(e,t,n=!1){const r=e.children,s=t.children;if($(r)&&$(s))for(let i=0;i>1,e[n[l]]0&&(t[r]=n[i-1]),n[i]=r)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}const ih=e=>e.__isTeleport,Un=e=>e&&(e.disabled||e.disabled===""),Bl=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Ri=(e,t)=>{const n=e&&e.to;return Z(n)?t?t(n):null:n},oh={__isTeleport:!0,process(e,t,n,r,s,i,o,l,c,a){const{mc:u,pc:d,pbc:v,o:{insert:h,querySelector:g,createText:p,createComment:b}}=a,m=Un(t.props);let{shapeFlag:f,children:E,dynamicChildren:y}=t;if(e==null){const w=t.el=p(""),O=t.anchor=p("");h(w,n,r),h(O,n,r);const N=t.target=Ri(t.props,g),_=t.targetAnchor=p("");N&&(h(_,N),o=o||Bl(N));const C=(A,P)=>{f&16&&u(E,A,P,s,i,o,l,c)};m?C(n,O):N&&C(N,_)}else{t.el=e.el;const w=t.anchor=e.anchor,O=t.target=e.target,N=t.targetAnchor=e.targetAnchor,_=Un(e.props),C=_?n:O,A=_?w:N;if(o=o||Bl(O),y?(v(e.dynamicChildren,y,C,s,i,o,l),Ao(e,t,!0)):c||d(e,t,C,A,s,i,o,l,!1),m)_||Fr(t,n,w,a,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const P=t.target=Ri(t.props,g);P&&Fr(t,P,null,a,0)}else _&&Fr(t,O,N,a,1)}Ha(t)},remove(e,t,n,r,{um:s,o:{remove:i}},o){const{shapeFlag:l,children:c,anchor:a,targetAnchor:u,target:d,props:v}=e;if(d&&i(u),(o||!Un(v))&&(i(a),l&16))for(let h=0;h0?Fe||fn:null,$a(),Qt>0&&Fe&&Fe.push(e),e}function ah(e,t,n,r,s,i){return Ua(Po(e,t,n,r,s,i,!0))}function Ro(e,t,n,r,s){return Ua(ae(e,t,n,r,s,!0))}function kt(e){return e?e.__v_isVNode===!0:!1}function Ye(e,t){return e.type===t.type&&e.key===t.key}function uh(e){}const Ls="__vInternal",Va=({key:e})=>e??null,Hr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Z(e)||de(e)||z(e)?{i:Ee,r:e,k:t,f:!!n}:e:null);function Po(e,t=null,n=null,r=0,s=null,i=e===Te?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Va(t),ref:t&&Hr(t),scopeId:Ns,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Ee};return l?(Fo(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=Z(n)?8:16),Qt>0&&!o&&Fe&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Fe.push(c),c}const ae=fh;function fh(e,t=null,n=null,r=0,s=null,i=!1){if((!e||e===Ca)&&(e=Ne),kt(e)){const l=it(e,t,!0);return n&&Fo(l,n),Qt>0&&!i&&Fe&&(l.shapeFlag&6?Fe[Fe.indexOf(e)]=l:Fe.push(l)),l.patchFlag|=-2,l}if(vh(e)&&(e=e.__vccOpts),t){t=qa(t);let{class:l,style:c}=t;l&&!Z(l)&&(t.class=ur(l)),le(c)&&(fo(c)&&!$(c)&&(c=ee({},c)),t.style=ar(c))}const o=Z(e)?1:ua(e)?128:ih(e)?64:le(e)?4:z(e)?2:0;return Po(e,t,n,r,s,o,i,!0)}function qa(e){return e?fo(e)||Ls in e?ee({},e):e:null}function it(e,t,n=!1){const{props:r,ref:s,patchFlag:i,children:o}=e,l=t?ko(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Va(l),ref:t&&t.ref?n&&s?$(s)?s.concat(Hr(t)):[s,Hr(t)]:Hr(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Te?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&it(e.ssContent),ssFallback:e.ssFallback&&it(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Io(e=" ",t=0){return ae(Zt,null,e,t)}function dh(e,t){const n=ae(Wt,null,e);return n.staticCount=t,n}function ph(e="",t=!1){return t?(Ms(),Ro(Ne,null,e)):ae(Ne,null,e)}function xe(e){return e==null||typeof e=="boolean"?ae(Ne):$(e)?ae(Te,null,e.slice()):typeof e=="object"?Tt(e):ae(Zt,null,String(e))}function Tt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:it(e)}function Fo(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if($(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Fo(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!(Ls in t)?t._ctx=Ee:s===3&&Ee&&(Ee.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else z(t)?(t={default:t,_ctx:Ee},n=32):(t=String(t),r&64?(n=16,t=[Io(t)]):n=8);e.children=t,e.shapeFlag|=n}function ko(...e){const t={};for(let n=0;nge||Ee;let Mo,on,xl="__VUE_INSTANCE_SETTERS__";(on=vi()[xl])||(on=vi()[xl]=[]),on.push(e=>ge=e),Mo=e=>{on.length>1?on.forEach(t=>t(e)):on[0](e)};const Mt=e=>{Mo(e),e.scope.on()},At=()=>{ge&&ge.scope.off(),Mo(null)};function Wa(e){return e.vnode.shapeFlag&4}let _n=!1;function za(e,t=!1){_n=t;const{props:n,children:r}=e.vnode,s=Wa(e);Yp(e,n,s,t),th(e,r);const i=s?gh(e,t):void 0;return _n=!1,i}function gh(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=dr(new Proxy(e.ctx,Ci));const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?Za(e):null;Mt(e),An();const i=pt(r,e,0,[e.props,s]);if(Rn(),At(),ro(i)){if(i.then(At,At),t)return i.then(o=>{Ii(e,o,t)}).catch(o=>{nn(o,e,0)});e.asyncDep=i}else Ii(e,i,t)}else Ga(e,t)}function Ii(e,t,n){z(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=go(t)),Ga(e,n)}let es,Fi;function Ja(e){es=e,Fi=t=>{t.render._rc&&(t.withProxy=new Proxy(t.ctx,Pp))}}const yh=()=>!es;function Ga(e,t,n){const r=e.type;if(!e.render){if(!t&&es&&!r.render){const s=r.template||Oo(e).template;if(s){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,a=ee(ee({isCustomElement:i,delimiters:l},o),c);r.render=es(s,a)}}e.render=r.render||Pe,Fi&&Fi(e)}Mt(e),An(),Kp(e),Rn(),At()}function bh(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return Me(e,"get","$attrs"),t[n]}}))}function Za(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return bh(e)},slots:e.slots,emit:e.emit,expose:t}}function Ds(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(go(dr(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in $n)return $n[n](e)},has(t,n){return n in t||n in $n}}))}function ki(e,t=!0){return z(e)?e.displayName||e.name:e.name||t&&e.__name}function vh(e){return z(e)&&"__vccOpts"in e}const Lo=(e,t)=>Wd(e,t,_n);function Qa(e,t,n){const r=arguments.length;return r===2?le(t)&&!$(t)?kt(t)?ae(e,null,[t]):ae(e,t):ae(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&kt(n)&&(n=[n]),ae(e,t,n))}const Ya=Symbol.for("v-scx"),Xa=()=>yn(Ya);function _h(){}function Eh(e,t,n,r){const s=n[r];if(s&&eu(s,e))return s;const i=t();return i.memo=e.slice(),n[r]=i}function eu(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let r=0;r0&&Fe&&Fe.push(e),!0}const tu="3.3.4",Sh={createComponentInstance:Ka,setupComponent:za,renderComponentRoot:jr,setCurrentRenderingInstance:Yn,isVNode:kt,normalizeVNode:xe},wh=Sh,Th=null,Ch=null,Oh="http://www.w3.org/2000/svg",Ht=typeof document<"u"?document:null,jl=Ht&&Ht.createElement("template"),Nh={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t?Ht.createElementNS(Oh,e):Ht.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Ht.createTextNode(e),createComment:e=>Ht.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ht.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,i){const o=n?n.previousSibling:t.lastChild;if(s&&(s===i||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===i||!(s=s.nextSibling)););else{jl.innerHTML=r?`${e}`:e;const l=jl.content;if(r){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Ah(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Rh(e,t,n){const r=e.style,s=Z(n);if(n&&!s){if(t&&!Z(t))for(const i in t)n[i]==null&&Mi(r,i,"");for(const i in n)Mi(r,i,n[i])}else{const i=r.display;s?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=i)}}const Hl=/\s*!important$/;function Mi(e,t,n){if($(n))n.forEach(r=>Mi(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Ph(e,t);Hl.test(n)?e.setProperty(je(r),n.replace(Hl,""),"important"):e[r]=n}}const $l=["Webkit","Moz","ms"],ri={};function Ph(e,t){const n=ri[t];if(n)return n;let r=ye(t);if(r!=="filter"&&r in e)return ri[t]=r;r=tn(r);for(let s=0;s<$l.length;s++){const i=$l[s]+r;if(i in e)return ri[t]=i}return t}const Ul="http://www.w3.org/1999/xlink";function Ih(e,t,n,r,s){if(r&&t.startsWith("xlink:"))n==null?e.removeAttributeNS(Ul,t.slice(6,t.length)):e.setAttributeNS(Ul,t,n);else{const i=td(t);n==null||i&&!jc(n)?e.removeAttribute(t):e.setAttribute(t,i?"":n)}}function Fh(e,t,n,r,s,i,o){if(t==="innerHTML"||t==="textContent"){r&&o(r,s,i),e[t]=n??"";return}const l=e.tagName;if(t==="value"&&l!=="PROGRESS"&&!l.includes("-")){e._value=n;const a=l==="OPTION"?e.getAttribute("value"):e.value,u=n??"";a!==u&&(e.value=u),n==null&&e.removeAttribute(t);return}let c=!1;if(n===""||n==null){const a=typeof e[t];a==="boolean"?n=jc(n):n==null&&a==="string"?(n="",c=!0):a==="number"&&(n=0,c=!0)}try{e[t]=n}catch{}c&&e.removeAttribute(t)}function ft(e,t,n,r){e.addEventListener(t,n,r)}function kh(e,t,n,r){e.removeEventListener(t,n,r)}function Mh(e,t,n,r,s=null){const i=e._vei||(e._vei={}),o=i[t];if(r&&o)o.value=r;else{const[l,c]=Lh(t);if(r){const a=i[t]=xh(r,s);ft(e,l,a,c)}else o&&(kh(e,l,o,c),i[t]=void 0)}}const Vl=/(?:Once|Passive|Capture)$/;function Lh(e){let t;if(Vl.test(e)){t={};let r;for(;r=e.match(Vl);)e=e.slice(0,e.length-r[0].length),t[r[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):je(e.slice(2)),t]}let si=0;const Dh=Promise.resolve(),Bh=()=>si||(Dh.then(()=>si=0),si=Date.now());function xh(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;He(jh(r,n.value),t,5,[r])};return n.value=e,n.attached=Bh(),n}function jh(e,t){if($(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const ql=/^on[a-z]/,Hh=(e,t,n,r,s=!1,i,o,l,c)=>{t==="class"?Ah(e,r,s):t==="style"?Rh(e,n,r):Xt(t)?to(t)||Mh(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):$h(e,t,r,s))?Fh(e,t,r,i,o,l,c):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Ih(e,t,r,s))};function $h(e,t,n,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&ql.test(t)&&z(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||ql.test(t)&&Z(n)?!1:t in e}function nu(e,t){const n=Rs(e);class r extends Bs{constructor(i){super(n,i,t)}}return r.def=n,r}const Uh=e=>nu(e,bu),Vh=typeof HTMLElement<"u"?HTMLElement:class{};class Bs extends Vh{constructor(t,n={},r){super(),this._def=t,this._props=n,this._instance=null,this._connected=!1,this._resolved=!1,this._numberProps=null,this.shadowRoot&&r?r(this._createVNode(),this.shadowRoot):(this.attachShadow({mode:"open"}),this._def.__asyncLoader||this._resolveProps(this._def))}connectedCallback(){this._connected=!0,this._instance||(this._resolved?this._update():this._resolveDef())}disconnectedCallback(){this._connected=!1,Ts(()=>{this._connected||(Bi(null,this.shadowRoot),this._instance=null)})}_resolveDef(){this._resolved=!0;for(let r=0;r{for(const s of r)this._setAttr(s.attributeName)}).observe(this,{attributes:!0});const t=(r,s=!1)=>{const{props:i,styles:o}=r;let l;if(i&&!$(i))for(const c in i){const a=i[c];(a===Number||a&&a.type===Number)&&(c in this._props&&(this._props[c]=Gr(this._props[c])),(l||(l=Object.create(null)))[ye(c)]=!0)}this._numberProps=l,s&&this._resolveProps(r),this._applyStyles(o),this._update()},n=this._def.__asyncLoader;n?n().then(r=>t(r,!0)):t(this._def)}_resolveProps(t){const{props:n}=t,r=$(n)?n:Object.keys(n||{});for(const s of Object.keys(this))s[0]!=="_"&&r.includes(s)&&this._setProp(s,this[s],!0,!1);for(const s of r.map(ye))Object.defineProperty(this,s,{get(){return this._getProp(s)},set(i){this._setProp(s,i)}})}_setAttr(t){let n=this.getAttribute(t);const r=ye(t);this._numberProps&&this._numberProps[r]&&(n=Gr(n)),this._setProp(r,n,!1)}_getProp(t){return this._props[t]}_setProp(t,n,r=!0,s=!0){n!==this._props[t]&&(this._props[t]=n,s&&this._instance&&this._update(),r&&(n===!0?this.setAttribute(je(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(je(t),n+""):n||this.removeAttribute(je(t))))}_update(){Bi(this._createVNode(),this.shadowRoot)}_createVNode(){const t=ae(this._def,ee({},this._props));return this._instance||(t.ce=n=>{this._instance=n,n.isCE=!0;const r=(i,o)=>{this.dispatchEvent(new CustomEvent(i,{detail:o}))};n.emit=(i,...o)=>{r(i,o),je(i)!==i&&r(je(i),o)};let s=this;for(;s=s&&(s.parentNode||s.host);)if(s instanceof Bs){n.parent=s._instance,n.provides=s._instance.provides;break}}),t}_applyStyles(t){t&&t.forEach(n=>{const r=document.createElement("style");r.textContent=n,this.shadowRoot.appendChild(r)})}}function qh(e="$style"){{const t=yt();if(!t)return oe;const n=t.type.__cssModules;if(!n)return oe;const r=n[e];return r||oe}}function Kh(e){const t=yt();if(!t)return;const n=t.ut=(s=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(i=>Di(i,s))},r=()=>{const s=e(t.proxy);Li(t.subTree,s),n(s)};da(r),mr(()=>{const s=new MutationObserver(r);s.observe(t.subTree.el.parentNode,{childList:!0}),ks(()=>s.disconnect())})}function Li(e,t){if(e.shapeFlag&128){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{Li(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)Di(e.el,t);else if(e.type===Te)e.children.forEach(n=>Li(n,t));else if(e.type===Wt){let{el:n,anchor:r}=e;for(;n&&(Di(n,t),n!==r);)n=n.nextSibling}}function Di(e,t){if(e.nodeType===1){const n=e.style;for(const r in t)n.setProperty(`--${r}`,t[r])}}const _t="transition",Mn="animation",Do=(e,{slots:t})=>Qa(ha,su(e),t);Do.displayName="Transition";const ru={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Wh=Do.props=ee({},wo,ru),xt=(e,t=[])=>{$(e)?e.forEach(n=>n(...t)):e&&e(...t)},Kl=e=>e?$(e)?e.some(t=>t.length>1):e.length>1:!1;function su(e){const t={};for(const I in e)I in ru||(t[I]=e[I]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:a=o,appearToClass:u=l,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:v=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,g=zh(s),p=g&&g[0],b=g&&g[1],{onBeforeEnter:m,onEnter:f,onEnterCancelled:E,onLeave:y,onLeaveCancelled:w,onBeforeAppear:O=m,onAppear:N=f,onAppearCancelled:_=E}=t,C=(I,L,B)=>{St(I,L?u:l),St(I,L?a:o),B&&B()},A=(I,L)=>{I._isLeaving=!1,St(I,d),St(I,h),St(I,v),L&&L()},P=I=>(L,B)=>{const G=I?N:f,W=()=>C(L,I,B);xt(G,[L,W]),Wl(()=>{St(L,I?c:i),at(L,I?u:l),Kl(G)||zl(L,r,p,W)})};return ee(t,{onBeforeEnter(I){xt(m,[I]),at(I,i),at(I,o)},onBeforeAppear(I){xt(O,[I]),at(I,c),at(I,a)},onEnter:P(!1),onAppear:P(!0),onLeave(I,L){I._isLeaving=!0;const B=()=>A(I,L);at(I,d),ou(),at(I,v),Wl(()=>{I._isLeaving&&(St(I,d),at(I,h),Kl(y)||zl(I,r,b,B))}),xt(y,[I,B])},onEnterCancelled(I){C(I,!1),xt(E,[I])},onAppearCancelled(I){C(I,!0),xt(_,[I])},onLeaveCancelled(I){A(I),xt(w,[I])}})}function zh(e){if(e==null)return null;if(le(e))return[ii(e.enter),ii(e.leave)];{const t=ii(e);return[t,t]}}function ii(e){return Gr(e)}function at(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function St(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function Wl(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Jh=0;function zl(e,t,n,r){const s=e._endId=++Jh,i=()=>{s===e._endId&&r()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=iu(e,t);if(!o)return r();const a=o+"end";let u=0;const d=()=>{e.removeEventListener(a,v),i()},v=h=>{h.target===e&&++u>=c&&d()};setTimeout(()=>{u(n[g]||"").split(", "),s=r(`${_t}Delay`),i=r(`${_t}Duration`),o=Jl(s,i),l=r(`${Mn}Delay`),c=r(`${Mn}Duration`),a=Jl(l,c);let u=null,d=0,v=0;t===_t?o>0&&(u=_t,d=o,v=i.length):t===Mn?a>0&&(u=Mn,d=a,v=c.length):(d=Math.max(o,a),u=d>0?o>a?_t:Mn:null,v=u?u===_t?i.length:c.length:0);const h=u===_t&&/\b(transform|all)(,|$)/.test(r(`${_t}Property`).toString());return{type:u,timeout:d,propCount:v,hasTransform:h}}function Jl(e,t){for(;e.lengthGl(n)+Gl(e[r])))}function Gl(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function ou(){return document.body.offsetHeight}const lu=new WeakMap,cu=new WeakMap,au={name:"TransitionGroup",props:ee({},Wh,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=yt(),r=So();let s,i;return Is(()=>{if(!s.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!em(s[0].el,n.vnode.el,o))return;s.forEach(Qh),s.forEach(Yh);const l=s.filter(Xh);ou(),l.forEach(c=>{const a=c.el,u=a.style;at(a,o),u.transform=u.webkitTransform=u.transitionDuration="";const d=a._moveCb=v=>{v&&v.target!==a||(!v||/transform$/.test(v.propertyName))&&(a.removeEventListener("transitionend",d),a._moveCb=null,St(a,o))};a.addEventListener("transitionend",d)})}),()=>{const o=X(e),l=su(o);let c=o.tag||Te;s=i,i=t.default?As(t.default()):[];for(let a=0;adelete e.mode;au.props;const Zh=au;function Qh(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function Yh(e){cu.set(e,e.el.getBoundingClientRect())}function Xh(e){const t=lu.get(e),n=cu.get(e),r=t.left-n.left,s=t.top-n.top;if(r||s){const i=e.el.style;return i.transform=i.webkitTransform=`translate(${r}px,${s}px)`,i.transitionDuration="0s",e}}function em(e,t,n){const r=e.cloneNode();e._vtc&&e._vtc.forEach(o=>{o.split(/\s+/).forEach(l=>l&&r.classList.remove(l))}),n.split(/\s+/).forEach(o=>o&&r.classList.add(o)),r.style.display="none";const s=t.nodeType===1?t:t.parentNode;s.appendChild(r);const{hasTransform:i}=iu(r);return s.removeChild(r),i}const Lt=e=>{const t=e.props["onUpdate:modelValue"]||!1;return $(t)?n=>hn(t,n):t};function tm(e){e.target.composing=!0}function Zl(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ts={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e._assign=Lt(s);const i=r||s.props&&s.props.type==="number";ft(e,t?"change":"input",o=>{if(o.target.composing)return;let l=e.value;n&&(l=l.trim()),i&&(l=Jr(l)),e._assign(l)}),n&&ft(e,"change",()=>{e.value=e.value.trim()}),t||(ft(e,"compositionstart",tm),ft(e,"compositionend",Zl),ft(e,"change",Zl))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:r,number:s}},i){if(e._assign=Lt(i),e.composing||document.activeElement===e&&e.type!=="range"&&(n||r&&e.value.trim()===t||(s||e.type==="number")&&Jr(e.value)===t))return;const o=t??"";e.value!==o&&(e.value=o)}},Bo={deep:!0,created(e,t,n){e._assign=Lt(n),ft(e,"change",()=>{const r=e._modelValue,s=En(e),i=e.checked,o=e._assign;if($(r)){const l=bs(r,s),c=l!==-1;if(i&&!c)o(r.concat(s));else if(!i&&c){const a=[...r];a.splice(l,1),o(a)}}else if(en(r)){const l=new Set(r);i?l.add(s):l.delete(s),o(l)}else o(fu(e,i))})},mounted:Ql,beforeUpdate(e,t,n){e._assign=Lt(n),Ql(e,t,n)}};function Ql(e,{value:t,oldValue:n},r){e._modelValue=t,$(t)?e.checked=bs(t,r.props.value)>-1:en(t)?e.checked=t.has(r.props.value):t!==n&&(e.checked=It(t,fu(e,!0)))}const xo={created(e,{value:t},n){e.checked=It(t,n.props.value),e._assign=Lt(n),ft(e,"change",()=>{e._assign(En(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e._assign=Lt(r),t!==n&&(e.checked=It(t,r.props.value))}},uu={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const s=en(t);ft(e,"change",()=>{const i=Array.prototype.filter.call(e.options,o=>o.selected).map(o=>n?Jr(En(o)):En(o));e._assign(e.multiple?s?new Set(i):i:i[0])}),e._assign=Lt(r)},mounted(e,{value:t}){Yl(e,t)},beforeUpdate(e,t,n){e._assign=Lt(n)},updated(e,{value:t}){Yl(e,t)}};function Yl(e,t){const n=e.multiple;if(!(n&&!$(t)&&!en(t))){for(let r=0,s=e.options.length;r-1:i.selected=t.has(o);else if(It(En(i),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function En(e){return"_value"in e?e._value:e.value}function fu(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const du={created(e,t,n){kr(e,t,n,null,"created")},mounted(e,t,n){kr(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){kr(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){kr(e,t,n,r,"updated")}};function pu(e,t){switch(e){case"SELECT":return uu;case"TEXTAREA":return ts;default:switch(t){case"checkbox":return Bo;case"radio":return xo;default:return ts}}}function kr(e,t,n,r,s){const o=pu(e.tagName,n.props&&n.props.type)[s];o&&o(e,t,n,r)}function nm(){ts.getSSRProps=({value:e})=>({value:e}),xo.getSSRProps=({value:e},t)=>{if(t.props&&It(t.props.value,e))return{checked:!0}},Bo.getSSRProps=({value:e},t)=>{if($(e)){if(t.props&&bs(e,t.props.value)>-1)return{checked:!0}}else if(en(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}},du.getSSRProps=(e,t)=>{if(typeof t.type!="string")return;const n=pu(t.type.toUpperCase(),t.props&&t.props.type);if(n.getSSRProps)return n.getSSRProps(e,t)}}const rm=["ctrl","shift","alt","meta"],sm={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>rm.some(n=>e[`${n}Key`]&&!t.includes(n))},im=(e,t)=>(n,...r)=>{for(let s=0;sn=>{if(!("key"in n))return;const r=je(n.key);if(t.some(s=>s===r||om[s]===r))return e(n)},hu={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Ln(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Ln(e,!0),r.enter(e)):r.leave(e,()=>{Ln(e,!1)}):Ln(e,t))},beforeUnmount(e,{value:t}){Ln(e,t)}};function Ln(e,t){e.style.display=t?e._vod:"none"}function cm(){hu.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}}}const mu=ee({patchProp:Hh},Nh);let qn,Xl=!1;function gu(){return qn||(qn=Ba(mu))}function yu(){return qn=Xl?qn:xa(mu),Xl=!0,qn}const Bi=(...e)=>{gu().render(...e)},bu=(...e)=>{yu().hydrate(...e)},am=(...e)=>{const t=gu().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=vu(r);if(!s)return;const i=t._component;!z(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.innerHTML="";const o=n(s,!1,s instanceof SVGElement);return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),o},t},um=(...e)=>{const t=yu().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=vu(r);if(s)return n(s,!0,s instanceof SVGElement)},t};function vu(e){return Z(e)?document.querySelector(e):e}let ec=!1;const fm=()=>{ec||(ec=!0,nm(),cm())},dm=Object.freeze(Object.defineProperty({__proto__:null,BaseTransition:ha,BaseTransitionPropsValidators:wo,Comment:Ne,EffectScope:io,Fragment:Te,KeepAlive:_p,ReactiveEffect:fr,Static:Wt,Suspense:lp,Teleport:ch,Text:Zt,Transition:Do,TransitionGroup:Zh,VueElement:Bs,assertNumber:Jd,callWithAsyncErrorHandling:He,callWithErrorHandling:pt,camelize:ye,capitalize:tn,cloneVNode:it,compatUtils:Ch,computed:Lo,createApp:am,createBlock:Ro,createCommentVNode:ph,createElementBlock:ah,createElementVNode:Po,createHydrationRenderer:xa,createPropsRestProxy:Vp,createRenderer:Ba,createSSRApp:um,createSlots:Np,createStaticVNode:dh,createTextVNode:Io,createVNode:ae,customRef:$d,defineAsyncComponent:bp,defineComponent:Rs,defineCustomElement:nu,defineEmits:Fp,defineExpose:kp,defineModel:Dp,defineOptions:Mp,defineProps:Ip,defineSSRCustomElement:Uh,defineSlots:Lp,get devtools(){return an},effect:od,effectScope:oo,getCurrentInstance:yt,getCurrentScope:lo,getTransitionRawChildren:As,guardReactiveProps:qa,h:Qa,handleError:nn,hasInjectionContext:Ia,hydrate:bu,initCustomFormatter:_h,initDirectivesForSSR:fm,inject:yn,isMemoSame:eu,isProxy:fo,isReactive:dt,isReadonly:Jt,isRef:de,isRuntimeOnly:yh,isShallow:Jn,isVNode:kt,markRaw:dr,mergeDefaults:$p,mergeModels:Up,mergeProps:ko,nextTick:Ts,normalizeClass:ur,normalizeProps:zf,normalizeStyle:ar,onActivated:ga,onBeforeMount:va,onBeforeUnmount:Fs,onBeforeUpdate:_a,onDeactivated:ya,onErrorCaptured:Ta,onMounted:mr,onRenderTracked:wa,onRenderTriggered:Sa,onScopeDispose:Uc,onServerPrefetch:Ea,onUnmounted:ks,onUpdated:Is,openBlock:Ms,popScopeId:ep,provide:Pa,proxyRefs:go,pushScopeId:Xd,queuePostFlushCb:bo,reactive:ot,readonly:uo,ref:Ot,registerRuntimeCompiler:Ja,render:Bi,renderList:Op,renderSlot:Ap,resolveComponent:wp,resolveDirective:Cp,resolveDynamicComponent:Tp,resolveFilter:Th,resolveTransitionHooks:vn,setBlockTracking:Pi,setDevtoolsHook:ca,setTransitionHooks:Gt,shallowReactive:ta,shallowReadonly:Md,shallowRef:Ld,ssrContextKey:Ya,ssrUtils:wh,stop:ld,toDisplayString:rd,toHandlerKey:pn,toHandlers:Rp,toRaw:X,toRef:qd,toRefs:ra,toValue:xd,transformVNodeArgs:uh,triggerRef:Bd,unref:mo,useAttrs:jp,useCssModule:qh,useCssVars:Kh,useModel:Hp,useSSRContext:Xa,useSlots:xp,useTransitionState:So,vModelCheckbox:Bo,vModelDynamic:du,vModelRadio:xo,vModelSelect:uu,vModelText:ts,vShow:hu,version:tu,warn:zd,watch:Nt,watchEffect:pp,watchPostEffect:da,watchSyncEffect:hp,withAsyncContext:qp,withCtx:vo,withDefaults:Bp,withDirectives:gp,withKeys:lm,withMemo:Eh,withModifiers:im,withScopeId:tp},Symbol.toStringTag,{value:"Module"}));function jo(e){throw e}function _u(e){}function fe(e,t,n,r){const s=e,i=new SyntaxError(String(s));return i.code=e,i.loc=t,i}const nr=Symbol(""),Kn=Symbol(""),Ho=Symbol(""),ns=Symbol(""),Eu=Symbol(""),Yt=Symbol(""),Su=Symbol(""),wu=Symbol(""),$o=Symbol(""),Uo=Symbol(""),gr=Symbol(""),Vo=Symbol(""),Tu=Symbol(""),qo=Symbol(""),rs=Symbol(""),Ko=Symbol(""),Wo=Symbol(""),zo=Symbol(""),Jo=Symbol(""),Cu=Symbol(""),Ou=Symbol(""),xs=Symbol(""),ss=Symbol(""),Go=Symbol(""),Zo=Symbol(""),rr=Symbol(""),yr=Symbol(""),Qo=Symbol(""),xi=Symbol(""),pm=Symbol(""),ji=Symbol(""),is=Symbol(""),hm=Symbol(""),mm=Symbol(""),Yo=Symbol(""),gm=Symbol(""),ym=Symbol(""),Xo=Symbol(""),Nu=Symbol(""),Sn={[nr]:"Fragment",[Kn]:"Teleport",[Ho]:"Suspense",[ns]:"KeepAlive",[Eu]:"BaseTransition",[Yt]:"openBlock",[Su]:"createBlock",[wu]:"createElementBlock",[$o]:"createVNode",[Uo]:"createElementVNode",[gr]:"createCommentVNode",[Vo]:"createTextVNode",[Tu]:"createStaticVNode",[qo]:"resolveComponent",[rs]:"resolveDynamicComponent",[Ko]:"resolveDirective",[Wo]:"resolveFilter",[zo]:"withDirectives",[Jo]:"renderList",[Cu]:"renderSlot",[Ou]:"createSlots",[xs]:"toDisplayString",[ss]:"mergeProps",[Go]:"normalizeClass",[Zo]:"normalizeStyle",[rr]:"normalizeProps",[yr]:"guardReactiveProps",[Qo]:"toHandlers",[xi]:"camelize",[pm]:"capitalize",[ji]:"toHandlerKey",[is]:"setBlockTracking",[hm]:"pushScopeId",[mm]:"popScopeId",[Yo]:"withCtx",[gm]:"unref",[ym]:"isRef",[Xo]:"withMemo",[Nu]:"isMemoSame"};function bm(e){Object.getOwnPropertySymbols(e).forEach(t=>{Sn[t]=e[t]})}const Ue={source:"",start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0}};function vm(e,t=Ue){return{type:0,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:0,temps:0,codegenNode:void 0,loc:t}}function sr(e,t,n,r,s,i,o,l=!1,c=!1,a=!1,u=Ue){return e&&(l?(e.helper(Yt),e.helper(Cn(e.inSSR,a))):e.helper(Tn(e.inSSR,a)),o&&e.helper(zo)),{type:13,tag:t,props:n,children:r,patchFlag:s,dynamicProps:i,directives:o,isBlock:l,disableTracking:c,isComponent:a,loc:u}}function br(e,t=Ue){return{type:17,loc:t,elements:e}}function Ke(e,t=Ue){return{type:15,loc:t,properties:e}}function pe(e,t){return{type:16,loc:Ue,key:Z(e)?Q(e,!0):e,value:t}}function Q(e,t=!1,n=Ue,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function tt(e,t=Ue){return{type:8,loc:t,children:e}}function me(e,t=[],n=Ue){return{type:14,loc:n,callee:e,arguments:t}}function wn(e,t=void 0,n=!1,r=!1,s=Ue){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:s}}function Hi(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:Ue}}function _m(e,t,n=!1){return{type:20,index:e,value:t,isVNode:n,loc:Ue}}function Em(e){return{type:21,body:e,loc:Ue}}function Tn(e,t){return e||t?$o:Uo}function Cn(e,t){return e||t?Su:wu}function el(e,{helper:t,removeHelper:n,inSSR:r}){e.isBlock||(e.isBlock=!0,n(Tn(r,e.isComponent)),t(Yt),t(Cn(r,e.isComponent)))}const ke=e=>e.type===4&&e.isStatic,un=(e,t)=>e===t||e===je(t);function Au(e){if(un(e,"Teleport"))return Kn;if(un(e,"Suspense"))return Ho;if(un(e,"KeepAlive"))return ns;if(un(e,"BaseTransition"))return Eu}const Sm=/^\d|[^\$\w]/,tl=e=>!Sm.test(e),wm=/[A-Za-z_$\xA0-\uFFFF]/,Tm=/[\.\?\w$\xA0-\uFFFF]/,Cm=/\s+[.[]\s*|\s*[.[]\s+/g,Om=e=>{e=e.trim().replace(Cm,o=>o.trim());let t=0,n=[],r=0,s=0,i=null;for(let o=0;ot.type===7&&t.name==="bind"&&(!t.arg||t.arg.type!==4||!t.arg.isStatic))}function oi(e){return e.type===5||e.type===2}function Am(e){return e.type===7&&e.name==="slot"}function cs(e){return e.type===1&&e.tagType===3}function as(e){return e.type===1&&e.tagType===2}const Rm=new Set([rr,yr]);function Iu(e,t=[]){if(e&&!Z(e)&&e.type===14){const n=e.callee;if(!Z(n)&&Rm.has(n))return Iu(e.arguments[0],t.concat(e))}return[e,t]}function us(e,t,n){let r,s=e.type===13?e.props:e.arguments[2],i=[],o;if(s&&!Z(s)&&s.type===14){const l=Iu(s);s=l[0],i=l[1],o=i[i.length-1]}if(s==null||Z(s))r=Ke([t]);else if(s.type===14){const l=s.arguments[0];!Z(l)&&l.type===15?tc(t,l)||l.properties.unshift(t):s.callee===Qo?r=me(n.helper(ss),[Ke([t]),s]):s.arguments.unshift(Ke([t])),!r&&(r=s)}else s.type===15?(tc(t,s)||s.properties.unshift(t),r=s):(r=me(n.helper(ss),[Ke([t]),s]),o&&o.callee===yr&&(o=i[i.length-2]));e.type===13?o?o.arguments[0]=r:e.props=r:o?o.arguments[0]=r:e.arguments[2]=r}function tc(e,t){let n=!1;if(e.key.type===4){const r=e.key.content;n=t.properties.some(s=>s.key.type===4&&s.key.content===r)}return n}function ir(e,t){return`_${t}_${e.replace(/[^\w]/g,(n,r)=>n==="-"?"_":e.charCodeAt(r).toString())}`}function Pm(e){return e.type===14&&e.callee===Xo?e.arguments[1].returns:e}function nc(e,t){const n=t.options?t.options.compatConfig:t.compatConfig,r=n&&n[e];return e==="MODE"?r||3:r}function zt(e,t){const n=nc("MODE",t),r=nc(e,t);return n===3?r===!0:r!==!1}function or(e,t,n,...r){return zt(e,t)}const Im=/&(gt|lt|amp|apos|quot);/g,Fm={gt:">",lt:"<",amp:"&",apos:"'",quot:'"'},rc={delimiters:["{{","}}"],getNamespace:()=>0,getTextMode:()=>0,isVoidTag:xr,isPreTag:xr,isCustomElement:xr,decodeEntities:e=>e.replace(Im,(t,n)=>Fm[n]),onError:jo,onWarn:_u,comments:!1};function km(e,t={}){const n=Mm(e,t),r=$e(n);return vm(nl(n,0,[]),Je(n,r))}function Mm(e,t){const n=ee({},rc);let r;for(r in t)n[r]=t[r]===void 0?rc[r]:t[r];return{options:n,column:1,line:1,offset:0,originalSource:e,source:e,inPre:!1,inVPre:!1,onWarn:n.onWarn}}function nl(e,t,n){const r=Hs(n),s=r?r.ns:0,i=[];for(;!Vm(e,t,n);){const l=e.source;let c;if(t===0||t===1){if(!e.inVPre&&Oe(l,e.options.delimiters[0]))c=$m(e,t);else if(t===0&&l[0]==="<")if(l.length===1)ie(e,5,1);else if(l[1]==="!")Oe(l,"=0;){const a=o[l];a&&a.type===9&&(c+=a.branches.length)}return()=>{if(i)r.codegenNode=ac(s,c,n);else{const a=pg(r.codegenNode);a.alternate=ac(s,c+r.branches.length-1,n)}}}));function dg(e,t,n,r){if(t.name!=="else"&&(!t.exp||!t.exp.content.trim())){const s=t.exp?t.exp.loc:e.loc;n.onError(fe(28,t.loc)),t.exp=Q("true",!1,s)}if(t.name==="if"){const s=cc(e,t),i={type:9,loc:e.loc,branches:[s]};if(n.replaceNode(i),r)return r(i,s,!0)}else{const s=n.parent.children;let i=s.indexOf(e);for(;i-->=-1;){const o=s[i];if(o&&o.type===3){n.removeNode(o);continue}if(o&&o.type===2&&!o.content.trim().length){n.removeNode(o);continue}if(o&&o.type===9){t.name==="else-if"&&o.branches[o.branches.length-1].condition===void 0&&n.onError(fe(30,e.loc)),n.removeNode();const l=cc(e,t);o.branches.push(l);const c=r&&r(o,l,!1);$s(l,n),c&&c(),n.currentNode=null}else n.onError(fe(30,e.loc));break}}}function cc(e,t){const n=e.tagType===3;return{type:10,loc:e.loc,condition:t.name==="else"?void 0:t.exp,children:n&&!qe(e,"for")?e.children:[e],userKey:js(e,"key"),isTemplateIf:n}}function ac(e,t,n){return e.condition?Hi(e.condition,uc(e,t,n),me(n.helper(gr),['""',"true"])):uc(e,t,n)}function uc(e,t,n){const{helper:r}=n,s=pe("key",Q(`${t}`,!1,Ue,2)),{children:i}=e,o=i[0];if(i.length!==1||o.type!==1)if(i.length===1&&o.type===11){const c=o.codegenNode;return us(c,s,n),c}else{let c=64;return sr(n,r(nr),Ke([s]),i,c+"",void 0,void 0,!0,!1,!1,e.loc)}else{const c=o.codegenNode,a=Pm(c);return a.type===13&&el(a,n),us(a,s,n),c}}function pg(e){for(;;)if(e.type===19)if(e.alternate.type===19)e=e.alternate;else return e;else e.type===20&&(e=e.value)}const hg=xu("for",(e,t,n)=>{const{helper:r,removeHelper:s}=n;return mg(e,t,n,i=>{const o=me(r(Jo),[i.source]),l=cs(e),c=qe(e,"memo"),a=js(e,"key"),u=a&&(a.type===6?Q(a.value.content,!0):a.exp),d=a?pe("key",u):null,v=i.source.type===4&&i.source.constType>0,h=v?64:a?128:256;return i.codegenNode=sr(n,r(nr),void 0,o,h+"",void 0,void 0,!0,!v,!1,e.loc),()=>{let g;const{children:p}=i,b=p.length!==1||p[0].type!==1,m=as(e)?e:l&&e.children.length===1&&as(e.children[0])?e.children[0]:null;if(m?(g=m.codegenNode,l&&d&&us(g,d,n)):b?g=sr(n,r(nr),d?Ke([d]):void 0,e.children,"64",void 0,void 0,!0,void 0,!1):(g=p[0].codegenNode,l&&d&&us(g,d,n),g.isBlock!==!v&&(g.isBlock?(s(Yt),s(Cn(n.inSSR,g.isComponent))):s(Tn(n.inSSR,g.isComponent))),g.isBlock=!v,g.isBlock?(r(Yt),r(Cn(n.inSSR,g.isComponent))):r(Tn(n.inSSR,g.isComponent))),c){const f=wn(Vi(i.parseResult,[Q("_cached")]));f.body=Em([tt(["const _memo = (",c.exp,")"]),tt(["if (_cached",...u?[" && _cached.key === ",u]:[],` && ${n.helperString(Nu)}(_cached, _memo)) return _cached`]),tt(["const _item = ",g]),Q("_item.memo = _memo"),Q("return _item")]),o.arguments.push(f,Q("_cache"),Q(String(n.cached++)))}else o.arguments.push(wn(Vi(i.parseResult),g,!0))}})});function mg(e,t,n,r){if(!t.exp){n.onError(fe(31,t.loc));return}const s=Uu(t.exp);if(!s){n.onError(fe(32,t.loc));return}const{addIdentifiers:i,removeIdentifiers:o,scopes:l}=n,{source:c,value:a,key:u,index:d}=s,v={type:11,loc:t.loc,source:c,valueAlias:a,keyAlias:u,objectIndexAlias:d,parseResult:s,children:cs(e)?e.children:[e]};n.replaceNode(v),l.vFor++;const h=r&&r(v);return()=>{l.vFor--,h&&h()}}const gg=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,fc=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,yg=/^\(|\)$/g;function Uu(e,t){const n=e.loc,r=e.content,s=r.match(gg);if(!s)return;const[,i,o]=s,l={source:Mr(n,o.trim(),r.indexOf(o,i.length)),value:void 0,key:void 0,index:void 0};let c=i.trim().replace(yg,"").trim();const a=i.indexOf(c),u=c.match(fc);if(u){c=c.replace(fc,"").trim();const d=u[1].trim();let v;if(d&&(v=r.indexOf(d,a+c.length),l.key=Mr(n,d,v)),u[2]){const h=u[2].trim();h&&(l.index=Mr(n,h,r.indexOf(h,l.key?v+d.length:a+c.length)))}}return c&&(l.value=Mr(n,c,a)),l}function Mr(e,t,n){return Q(t,!1,Pu(e,n,t.length))}function Vi({value:e,key:t,index:n},r=[]){return bg([e,t,n,...r])}function bg(e){let t=e.length;for(;t--&&!e[t];);return e.slice(0,t+1).map((n,r)=>n||Q("_".repeat(r+1),!1))}const dc=Q("undefined",!1),vg=(e,t)=>{if(e.type===1&&(e.tagType===1||e.tagType===3)){const n=qe(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}},_g=(e,t,n)=>wn(e,t,!1,!0,t.length?t[0].loc:n);function Eg(e,t,n=_g){t.helper(Yo);const{children:r,loc:s}=e,i=[],o=[];let l=t.scopes.vSlot>0||t.scopes.vFor>0;const c=qe(e,"slot",!0);if(c){const{arg:b,exp:m}=c;b&&!ke(b)&&(l=!0),i.push(pe(b||Q("default",!0),n(m,r,s)))}let a=!1,u=!1;const d=[],v=new Set;let h=0;for(let b=0;b{const E=n(m,f,s);return t.compatConfig&&(E.isNonScopedSlot=!0),pe("default",E)};a?d.length&&d.some(m=>Vu(m))&&(u?t.onError(fe(39,d[0].loc)):i.push(b(void 0,d))):i.push(b(void 0,r))}const g=l?2:Ur(e.children)?3:1;let p=Ke(i.concat(pe("_",Q(g+"",!1))),s);return o.length&&(p=me(t.helper(Ou),[p,br(o)])),{slots:p,hasDynamicSlots:l}}function Lr(e,t,n){const r=[pe("name",e),pe("fn",t)];return n!=null&&r.push(pe("key",Q(String(n),!0))),Ke(r)}function Ur(e){for(let t=0;tfunction(){if(e=t.currentNode,!(e.type===1&&(e.tagType===0||e.tagType===1)))return;const{tag:r,props:s}=e,i=e.tagType===1;let o=i?wg(e,t):`"${r}"`;const l=le(o)&&o.callee===rs;let c,a,u,d=0,v,h,g,p=l||o===Kn||o===Ho||!i&&(r==="svg"||r==="foreignObject");if(s.length>0){const b=Ku(e,t,void 0,i,l);c=b.props,d=b.patchFlag,h=b.dynamicPropNames;const m=b.directives;g=m&&m.length?br(m.map(f=>Cg(f,t))):void 0,b.shouldUseBlock&&(p=!0)}if(e.children.length>0)if(o===ns&&(p=!0,d|=1024),i&&o!==Kn&&o!==ns){const{slots:m,hasDynamicSlots:f}=Eg(e,t);a=m,f&&(d|=1024)}else if(e.children.length===1&&o!==Kn){const m=e.children[0],f=m.type,E=f===5||f===8;E&&We(m,t)===0&&(d|=1),E||f===2?a=m:a=e.children}else a=e.children;d!==0&&(u=String(d),h&&h.length&&(v=Og(h))),e.codegenNode=sr(t,o,c,a,u,v,g,!!p,!1,i,e.loc)};function wg(e,t,n=!1){let{tag:r}=e;const s=qi(r),i=js(e,"is");if(i)if(s||zt("COMPILER_IS_ON_ELEMENT",t)){const c=i.type===6?i.value&&Q(i.value.content,!0):i.exp;if(c)return me(t.helper(rs),[c])}else i.type===6&&i.value.content.startsWith("vue:")&&(r=i.value.content.slice(4));const o=!s&&qe(e,"is");if(o&&o.exp)return me(t.helper(rs),[o.exp]);const l=Au(r)||t.isBuiltInComponent(r);return l?(n||t.helper(l),l):(t.helper(qo),t.components.add(r),ir(r,"component"))}function Ku(e,t,n=e.props,r,s,i=!1){const{tag:o,loc:l,children:c}=e;let a=[];const u=[],d=[],v=c.length>0;let h=!1,g=0,p=!1,b=!1,m=!1,f=!1,E=!1,y=!1;const w=[],O=C=>{a.length&&(u.push(Ke(pc(a),l)),a=[]),C&&u.push(C)},N=({key:C,value:A})=>{if(ke(C)){const P=C.content,I=Xt(P);if(I&&(!r||s)&&P.toLowerCase()!=="onclick"&&P!=="onUpdate:modelValue"&&!Vt(P)&&(f=!0),I&&Vt(P)&&(y=!0),A.type===20||(A.type===4||A.type===8)&&We(A,t)>0)return;P==="ref"?p=!0:P==="class"?b=!0:P==="style"?m=!0:P!=="key"&&!w.includes(P)&&w.push(P),r&&(P==="class"||P==="style")&&!w.includes(P)&&w.push(P)}else E=!0};for(let C=0;C0&&a.push(pe(Q("ref_for",!0),Q("true")))),I==="is"&&(qi(o)||L&&L.content.startsWith("vue:")||zt("COMPILER_IS_ON_ELEMENT",t)))continue;a.push(pe(Q(I,!0,Pu(P,0,I.length)),Q(L?L.content:"",B,L?L.loc:P)))}else{const{name:P,arg:I,exp:L,loc:B}=A,G=P==="bind",W=P==="on";if(P==="slot"){r||t.onError(fe(40,B));continue}if(P==="once"||P==="memo"||P==="is"||G&&Ut(I,"is")&&(qi(o)||zt("COMPILER_IS_ON_ELEMENT",t))||W&&i)continue;if((G&&Ut(I,"key")||W&&v&&Ut(I,"vue:before-update"))&&(h=!0),G&&Ut(I,"ref")&&t.scopes.vFor>0&&a.push(pe(Q("ref_for",!0),Q("true"))),!I&&(G||W)){if(E=!0,L)if(G){if(O(),zt("COMPILER_V_BIND_OBJECT_ORDER",t)){u.unshift(L);continue}u.push(L)}else O({type:14,loc:B,callee:t.helper(Qo),arguments:r?[L]:[L,"true"]});else t.onError(fe(G?34:35,B));continue}const te=t.directiveTransforms[P];if(te){const{props:ne,needRuntime:Se}=te(A,e,t);!i&&ne.forEach(N),W&&I&&!ke(I)?O(Ke(ne,l)):a.push(...ne),Se&&(d.push(A),Pt(Se)&&qu.set(A,Se))}else jf(P)||(d.push(A),v&&(h=!0))}}let _;if(u.length?(O(),u.length>1?_=me(t.helper(ss),u,l):_=u[0]):a.length&&(_=Ke(pc(a),l)),E?g|=16:(b&&!r&&(g|=2),m&&!r&&(g|=4),w.length&&(g|=8),f&&(g|=32)),!h&&(g===0||g===32)&&(p||y||d.length>0)&&(g|=512),!t.inSSR&&_)switch(_.type){case 15:let C=-1,A=-1,P=!1;for(let B=0;B<_.properties.length;B++){const G=_.properties[B].key;ke(G)?G.content==="class"?C=B:G.content==="style"&&(A=B):G.isHandlerKey||(P=!0)}const I=_.properties[C],L=_.properties[A];P?_=me(t.helper(rr),[_]):(I&&!ke(I.value)&&(I.value=me(t.helper(Go),[I.value])),L&&(m||L.value.type===4&&L.value.content.trim()[0]==="["||L.value.type===17)&&(L.value=me(t.helper(Zo),[L.value])));break;case 14:break;default:_=me(t.helper(rr),[me(t.helper(yr),[_])]);break}return{props:_,directives:d,patchFlag:g,dynamicPropNames:w,shouldUseBlock:h}}function pc(e){const t=new Map,n=[];for(let r=0;rpe(o,i)),s))}return br(n,e.loc)}function Og(e){let t="[";for(let n=0,r=e.length;n{if(as(e)){const{children:n,loc:r}=e,{slotName:s,slotProps:i}=Ag(e,t),o=[t.prefixIdentifiers?"_ctx.$slots":"$slots",s,"{}","undefined","true"];let l=2;i&&(o[2]=i,l=3),n.length&&(o[3]=wn([],n,!1,!1,r),l=4),t.scopeId&&!t.slotted&&(l=5),o.splice(l),e.codegenNode=me(t.helper(Cu),o,r)}};function Ag(e,t){let n='"default"',r;const s=[];for(let i=0;i0){const{props:i,directives:o}=Ku(e,t,s,!1,!1);r=i,o.length&&t.onError(fe(36,o[0].loc))}return{slotName:n,slotProps:r}}const Rg=/^\s*([\w$_]+|(async\s*)?\([^)]*?\))\s*(:[^=]+)?=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/,Wu=(e,t,n,r)=>{const{loc:s,modifiers:i,arg:o}=e;!e.exp&&!i.length&&n.onError(fe(35,s));let l;if(o.type===4)if(o.isStatic){let d=o.content;d.startsWith("vue:")&&(d=`vnode-${d.slice(4)}`);const v=t.tagType!==0||d.startsWith("vnode")||!/[A-Z]/.test(d)?pn(ye(d)):`on:${d}`;l=Q(v,!0,o.loc)}else l=tt([`${n.helperString(ji)}(`,o,")"]);else l=o,l.children.unshift(`${n.helperString(ji)}(`),l.children.push(")");let c=e.exp;c&&!c.content.trim()&&(c=void 0);let a=n.cacheHandlers&&!c&&!n.inVOnce;if(c){const d=Ru(c.content),v=!(d||Rg.test(c.content)),h=c.content.includes(";");(v||a&&d)&&(c=tt([`${v?"$event":"(...args)"} => ${h?"{":"("}`,c,h?"}":")"]))}let u={props:[pe(l,c||Q("() => {}",!1,s))]};return r&&(u=r(u)),a&&(u.props[0].value=n.cache(u.props[0].value)),u.props.forEach(d=>d.key.isHandlerKey=!0),u},Pg=(e,t,n)=>{const{exp:r,modifiers:s,loc:i}=e,o=e.arg;return o.type!==4?(o.children.unshift("("),o.children.push(') || ""')):o.isStatic||(o.content=`${o.content} || ""`),s.includes("camel")&&(o.type===4?o.isStatic?o.content=ye(o.content):o.content=`${n.helperString(xi)}(${o.content})`:(o.children.unshift(`${n.helperString(xi)}(`),o.children.push(")"))),n.inSSR||(s.includes("prop")&&hc(o,"."),s.includes("attr")&&hc(o,"^")),!r||r.type===4&&!r.content.trim()?(n.onError(fe(34,i)),{props:[pe(o,Q("",!0,i))]}):{props:[pe(o,r)]}},hc=(e,t)=>{e.type===4?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},Ig=(e,t)=>{if(e.type===0||e.type===1||e.type===11||e.type===10)return()=>{const n=e.children;let r,s=!1;for(let i=0;ii.type===7&&!t.directiveTransforms[i.name])&&e.tag!=="template")))for(let i=0;i{if(e.type===1&&qe(e,"once",!0))return mc.has(e)||t.inVOnce||t.inSSR?void 0:(mc.add(e),t.inVOnce=!0,t.helper(is),()=>{t.inVOnce=!1;const n=t.currentNode;n.codegenNode&&(n.codegenNode=t.cache(n.codegenNode,!0))})},zu=(e,t,n)=>{const{exp:r,arg:s}=e;if(!r)return n.onError(fe(41,e.loc)),Dr();const i=r.loc.source,o=r.type===4?r.content:i,l=n.bindingMetadata[i];if(l==="props"||l==="props-aliased")return n.onError(fe(44,r.loc)),Dr();const c=!1;if(!o.trim()||!Ru(o)&&!c)return n.onError(fe(42,r.loc)),Dr();const a=s||Q("modelValue",!0),u=s?ke(s)?`onUpdate:${ye(s.content)}`:tt(['"onUpdate:" + ',s]):"onUpdate:modelValue";let d;const v=n.isTS?"($event: any)":"$event";d=tt([`${v} => ((`,r,") = $event)"]);const h=[pe(a,e.exp),pe(u,d)];if(e.modifiers.length&&t.tagType===1){const g=e.modifiers.map(b=>(tl(b)?b:JSON.stringify(b))+": true").join(", "),p=s?ke(s)?`${s.content}Modifiers`:tt([s,' + "Modifiers"']):"modelModifiers";h.push(pe(p,Q(`{ ${g} }`,!1,e.loc,2)))}return Dr(h)};function Dr(e=[]){return{props:e}}const kg=/[\w).+\-_$\]]/,Mg=(e,t)=>{zt("COMPILER_FILTER",t)&&(e.type===5&&ds(e.content,t),e.type===1&&e.props.forEach(n=>{n.type===7&&n.name!=="for"&&n.exp&&ds(n.exp,t)}))};function ds(e,t){if(e.type===4)gc(e,t);else for(let n=0;n=0&&(f=n.charAt(m),f===" ");m--);(!f||!kg.test(f))&&(o=!0)}}g===void 0?g=n.slice(0,h).trim():u!==0&&b();function b(){p.push(n.slice(u,h).trim()),u=h+1}if(p.length){for(h=0;h{if(e.type===1){const n=qe(e,"memo");return!n||yc.has(e)?void 0:(yc.add(e),()=>{const r=e.codegenNode||t.currentNode.codegenNode;r&&r.type===13&&(e.tagType!==1&&el(r,t),e.codegenNode=me(t.helper(Xo),[n.exp,wn(void 0,r),"_cache",String(t.cached++)]))})}};function Bg(e){return[[Fg,fg,Dg,hg,Mg,Ng,Sg,vg,Ig],{on:Wu,bind:Pg,model:zu}]}function xg(e,t={}){const n=t.onError||jo,r=t.mode==="module";t.prefixIdentifiers===!0?n(fe(47)):r&&n(fe(48));const s=!1;t.cacheHandlers&&n(fe(49)),t.scopeId&&!r&&n(fe(50));const i=Z(e)?km(e,t):e,[o,l]=Bg();return zm(i,ee({},t,{prefixIdentifiers:s,nodeTransforms:[...o,...t.nodeTransforms||[]],directiveTransforms:ee({},l,t.directiveTransforms||{})})),Zm(i,ee({},t,{prefixIdentifiers:s}))}const jg=()=>({props:[]}),Ju=Symbol(""),Gu=Symbol(""),Zu=Symbol(""),Qu=Symbol(""),Ki=Symbol(""),Yu=Symbol(""),Xu=Symbol(""),ef=Symbol(""),tf=Symbol(""),nf=Symbol("");bm({[Ju]:"vModelRadio",[Gu]:"vModelCheckbox",[Zu]:"vModelText",[Qu]:"vModelSelect",[Ki]:"vModelDynamic",[Yu]:"withModifiers",[Xu]:"withKeys",[ef]:"vShow",[tf]:"Transition",[nf]:"TransitionGroup"});let ln;function Hg(e,t=!1){return ln||(ln=document.createElement("div")),t?(ln.innerHTML=`
`,ln.children[0].getAttribute("foo")):(ln.innerHTML=e,ln.textContent)}const $g=Le("style,iframe,script,noscript",!0),Ug={isVoidTag:Xf,isNativeTag:e=>Qf(e)||Yf(e),isPreTag:e=>e==="pre",decodeEntities:Hg,isBuiltInComponent:e=>{if(un(e,"Transition"))return tf;if(un(e,"TransitionGroup"))return nf},getNamespace(e,t){let n=t?t.ns:0;if(t&&n===2)if(t.tag==="annotation-xml"){if(e==="svg")return 1;t.props.some(r=>r.type===6&&r.name==="encoding"&&r.value!=null&&(r.value.content==="text/html"||r.value.content==="application/xhtml+xml"))&&(n=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&e!=="mglyph"&&e!=="malignmark"&&(n=0);else t&&n===1&&(t.tag==="foreignObject"||t.tag==="desc"||t.tag==="title")&&(n=0);if(n===0){if(e==="svg")return 1;if(e==="math")return 2}return n},getTextMode({tag:e,ns:t}){if(t===0){if(e==="textarea"||e==="title")return 1;if($g(e))return 2}return 0}},Vg=e=>{e.type===1&&e.props.forEach((t,n)=>{t.type===6&&t.name==="style"&&t.value&&(e.props[n]={type:7,name:"bind",arg:Q("style",!0,t.loc),exp:qg(t.value.content,t.loc),modifiers:[],loc:t.loc})})},qg=(e,t)=>{const n=xc(e);return Q(JSON.stringify(n),!1,t,3)};function Rt(e,t){return fe(e,t)}const Kg=(e,t,n)=>{const{exp:r,loc:s}=e;return r||n.onError(Rt(53,s)),t.children.length&&(n.onError(Rt(54,s)),t.children.length=0),{props:[pe(Q("innerHTML",!0,s),r||Q("",!0))]}},Wg=(e,t,n)=>{const{exp:r,loc:s}=e;return r||n.onError(Rt(55,s)),t.children.length&&(n.onError(Rt(56,s)),t.children.length=0),{props:[pe(Q("textContent",!0),r?We(r,n)>0?r:me(n.helperString(xs),[r],s):Q("",!0))]}},zg=(e,t,n)=>{const r=zu(e,t,n);if(!r.props.length||t.tagType===1)return r;e.arg&&n.onError(Rt(58,e.arg.loc));const{tag:s}=t,i=n.isCustomElement(s);if(s==="input"||s==="textarea"||s==="select"||i){let o=Zu,l=!1;if(s==="input"||i){const c=js(t,"type");if(c){if(c.type===7)o=Ki;else if(c.value)switch(c.value.content){case"radio":o=Ju;break;case"checkbox":o=Gu;break;case"file":l=!0,n.onError(Rt(59,e.loc));break}}else Nm(t)&&(o=Ki)}else s==="select"&&(o=Qu);l||(r.needRuntime=n.helper(o))}else n.onError(Rt(57,e.loc));return r.props=r.props.filter(o=>!(o.key.type===4&&o.key.content==="modelValue")),r},Jg=Le("passive,once,capture"),Gg=Le("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),Zg=Le("left,right"),rf=Le("onkeyup,onkeydown,onkeypress",!0),Qg=(e,t,n,r)=>{const s=[],i=[],o=[];for(let l=0;lke(e)&&e.content.toLowerCase()==="onclick"?Q(t,!0):e.type!==4?tt(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,Yg=(e,t,n)=>Wu(e,t,n,r=>{const{modifiers:s}=e;if(!s.length)return r;let{key:i,value:o}=r.props[0];const{keyModifiers:l,nonKeyModifiers:c,eventOptionModifiers:a}=Qg(i,s,n,e.loc);if(c.includes("right")&&(i=bc(i,"onContextmenu")),c.includes("middle")&&(i=bc(i,"onMouseup")),c.length&&(o=me(n.helper(Yu),[o,JSON.stringify(c)])),l.length&&(!ke(i)||rf(i.content))&&(o=me(n.helper(Xu),[o,JSON.stringify(l)])),a.length){const u=a.map(tn).join("");i=ke(i)?Q(`${i.content}${u}`,!0):tt(["(",i,`) + "${u}"`])}return{props:[pe(i,o)]}}),Xg=(e,t,n)=>{const{exp:r,loc:s}=e;return r||n.onError(Rt(61,s)),{props:[],needRuntime:n.helper(ef)}},ey=(e,t)=>{e.type===1&&e.tagType===0&&(e.tag==="script"||e.tag==="style")&&t.removeNode()},ty=[Vg],ny={cloak:jg,html:Kg,text:Wg,model:zg,on:Yg,show:Xg};function ry(e,t={}){return xg(e,ee({},Ug,t,{nodeTransforms:[ey,...ty,...t.nodeTransforms||[]],directiveTransforms:ee({},ny,t.directiveTransforms||{}),transformHoist:null}))}const vc=Object.create(null);function sy(e,t){if(!Z(e))if(e.nodeType)e=e.innerHTML;else return Pe;const n=e,r=vc[n];if(r)return r;if(e[0]==="#"){const l=document.querySelector(e);e=l?l.innerHTML:""}const s=ee({hoistStatic:!0,onError:void 0,onWarn:Pe},t);!s.isCustomElement&&typeof customElements<"u"&&(s.isCustomElement=l=>!!customElements.get(l));const{code:i}=ry(e,s),o=new Function("Vue",i)(dm);return o._rc=!0,vc[n]=o}Ja(sy);const Kb=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n};var iy=!1;/*! +function Le(e, t) { + const n = Object.create(null), + r = e.split(","); + for (let s = 0; s < r.length; s++) n[r[s]] = !0; + return t ? (s) => !!n[s.toLowerCase()] : (s) => !!n[s]; +} +const oe = {}, + fn = [], + Pe = () => {}, + xr = () => !1, + Lf = /^on[^a-z]/, + Xt = (e) => Lf.test(e), + to = (e) => e.startsWith("onUpdate:"), + ee = Object.assign, + no = (e, t) => { + const n = e.indexOf(t); + n > -1 && e.splice(n, 1); + }, + Df = Object.prototype.hasOwnProperty, + re = (e, t) => Df.call(e, t), + $ = Array.isArray, + dn = (e) => Nn(e) === "[object Map]", + en = (e) => Nn(e) === "[object Set]", + gl = (e) => Nn(e) === "[object Date]", + Bf = (e) => Nn(e) === "[object RegExp]", + z = (e) => typeof e == "function", + Z = (e) => typeof e == "string", + Pt = (e) => typeof e == "symbol", + le = (e) => e !== null && typeof e == "object", + ro = (e) => le(e) && z(e.then) && z(e.catch), + Dc = Object.prototype.toString, + Nn = (e) => Dc.call(e), + xf = (e) => Nn(e).slice(8, -1), + Bc = (e) => Nn(e) === "[object Object]", + so = (e) => Z(e) && e !== "NaN" && e[0] !== "-" && "" + parseInt(e, 10) === e, + Vt = Le( + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted", + ), + jf = Le( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo", + ), + ys = (e) => { + const t = Object.create(null); + return (n) => t[n] || (t[n] = e(n)); + }, + Hf = /-(\w)/g, + ye = ys((e) => e.replace(Hf, (t, n) => (n ? n.toUpperCase() : ""))), + $f = /\B([A-Z])/g, + je = ys((e) => e.replace($f, "-$1").toLowerCase()), + tn = ys((e) => e.charAt(0).toUpperCase() + e.slice(1)), + pn = ys((e) => (e ? `on${tn(e)}` : "")), + bn = (e, t) => !Object.is(e, t), + hn = (e, t) => { + for (let n = 0; n < e.length; n++) e[n](t); + }, + zr = (e, t, n) => { + Object.defineProperty(e, t, { configurable: !0, enumerable: !1, value: n }); + }, + Jr = (e) => { + const t = parseFloat(e); + return isNaN(t) ? e : t; + }, + Gr = (e) => { + const t = Z(e) ? Number(e) : NaN; + return isNaN(t) ? e : t; + }; +let yl; +const vi = () => + yl || + (yl = + typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : typeof window < "u" + ? window + : typeof global < "u" + ? global + : {}), + Uf = + "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console", + Vf = Le(Uf); +function ar(e) { + if ($(e)) { + const t = {}; + for (let n = 0; n < e.length; n++) { + const r = e[n], + s = Z(r) ? xc(r) : ar(r); + if (s) for (const i in s) t[i] = s[i]; + } + return t; + } else { + if (Z(e)) return e; + if (le(e)) return e; + } +} +const qf = /;(?![^(]*\))/g, + Kf = /:([^]+)/, + Wf = /\/\*[^]*?\*\//g; +function xc(e) { + const t = {}; + return ( + e + .replace(Wf, "") + .split(qf) + .forEach((n) => { + if (n) { + const r = n.split(Kf); + r.length > 1 && (t[r[0].trim()] = r[1].trim()); + } + }), + t + ); +} +function ur(e) { + let t = ""; + if (Z(e)) t = e; + else if ($(e)) + for (let n = 0; n < e.length; n++) { + const r = ur(e[n]); + r && (t += r + " "); + } + else if (le(e)) for (const n in e) e[n] && (t += n + " "); + return t.trim(); +} +function zf(e) { + if (!e) return null; + let { class: t, style: n } = e; + return t && !Z(t) && (e.class = ur(t)), n && (e.style = ar(n)), e; +} +const Jf = + "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot", + Gf = + "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view", + Zf = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr", + Qf = Le(Jf), + Yf = Le(Gf), + Xf = Le(Zf), + ed = + "itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly", + td = Le(ed); +function jc(e) { + return !!e || e === ""; +} +function nd(e, t) { + if (e.length !== t.length) return !1; + let n = !0; + for (let r = 0; n && r < e.length; r++) n = It(e[r], t[r]); + return n; +} +function It(e, t) { + if (e === t) return !0; + let n = gl(e), + r = gl(t); + if (n || r) return n && r ? e.getTime() === t.getTime() : !1; + if (((n = Pt(e)), (r = Pt(t)), n || r)) return e === t; + if (((n = $(e)), (r = $(t)), n || r)) return n && r ? nd(e, t) : !1; + if (((n = le(e)), (r = le(t)), n || r)) { + if (!n || !r) return !1; + const s = Object.keys(e).length, + i = Object.keys(t).length; + if (s !== i) return !1; + for (const o in e) { + const l = e.hasOwnProperty(o), + c = t.hasOwnProperty(o); + if ((l && !c) || (!l && c) || !It(e[o], t[o])) return !1; + } + } + return String(e) === String(t); +} +function bs(e, t) { + return e.findIndex((n) => It(n, t)); +} +const rd = (e) => + Z(e) + ? e + : e == null + ? "" + : $(e) || (le(e) && (e.toString === Dc || !z(e.toString))) + ? JSON.stringify(e, Hc, 2) + : String(e), + Hc = (e, t) => + t && t.__v_isRef + ? Hc(e, t.value) + : dn(t) + ? { + [`Map(${t.size})`]: [...t.entries()].reduce( + (n, [r, s]) => ((n[`${r} =>`] = s), n), + {}, + ), + } + : en(t) + ? { [`Set(${t.size})`]: [...t.values()] } + : le(t) && !$(t) && !Bc(t) + ? String(t) + : t; +let Be; +class io { + constructor(t = !1) { + (this.detached = t), + (this._active = !0), + (this.effects = []), + (this.cleanups = []), + (this.parent = Be), + !t && Be && (this.index = (Be.scopes || (Be.scopes = [])).push(this) - 1); + } + get active() { + return this._active; + } + run(t) { + if (this._active) { + const n = Be; + try { + return (Be = this), t(); + } finally { + Be = n; + } + } + } + on() { + Be = this; + } + off() { + Be = this.parent; + } + stop(t) { + if (this._active) { + let n, r; + for (n = 0, r = this.effects.length; n < r; n++) this.effects[n].stop(); + for (n = 0, r = this.cleanups.length; n < r; n++) this.cleanups[n](); + if (this.scopes) + for (n = 0, r = this.scopes.length; n < r; n++) this.scopes[n].stop(!0); + if (!this.detached && this.parent && !t) { + const s = this.parent.scopes.pop(); + s && + s !== this && + ((this.parent.scopes[this.index] = s), (s.index = this.index)); + } + (this.parent = void 0), (this._active = !1); + } + } +} +function oo(e) { + return new io(e); +} +function $c(e, t = Be) { + t && t.active && t.effects.push(e); +} +function lo() { + return Be; +} +function Uc(e) { + Be && Be.cleanups.push(e); +} +const co = (e) => { + const t = new Set(e); + return (t.w = 0), (t.n = 0), t; + }, + Vc = (e) => (e.w & Ft) > 0, + qc = (e) => (e.n & Ft) > 0, + sd = ({ deps: e }) => { + if (e.length) for (let t = 0; t < e.length; t++) e[t].w |= Ft; + }, + id = (e) => { + const { deps: t } = e; + if (t.length) { + let n = 0; + for (let r = 0; r < t.length; r++) { + const s = t[r]; + Vc(s) && !qc(s) ? s.delete(e) : (t[n++] = s), + (s.w &= ~Ft), + (s.n &= ~Ft); + } + t.length = n; + } + }, + Zr = new WeakMap(); +let xn = 0, + Ft = 1; +const _i = 30; +let Qe; +const qt = Symbol(""), + Ei = Symbol(""); +class fr { + constructor(t, n = null, r) { + (this.fn = t), + (this.scheduler = n), + (this.active = !0), + (this.deps = []), + (this.parent = void 0), + $c(this, r); + } + run() { + if (!this.active) return this.fn(); + let t = Qe, + n = Ct; + for (; t; ) { + if (t === this) return; + t = t.parent; + } + try { + return ( + (this.parent = Qe), + (Qe = this), + (Ct = !0), + (Ft = 1 << ++xn), + xn <= _i ? sd(this) : bl(this), + this.fn() + ); + } finally { + xn <= _i && id(this), + (Ft = 1 << --xn), + (Qe = this.parent), + (Ct = n), + (this.parent = void 0), + this.deferStop && this.stop(); + } + } + stop() { + Qe === this + ? (this.deferStop = !0) + : this.active && + (bl(this), this.onStop && this.onStop(), (this.active = !1)); + } +} +function bl(e) { + const { deps: t } = e; + if (t.length) { + for (let n = 0; n < t.length; n++) t[n].delete(e); + t.length = 0; + } +} +function od(e, t) { + e.effect && (e = e.effect.fn); + const n = new fr(e); + t && (ee(n, t), t.scope && $c(n, t.scope)), (!t || !t.lazy) && n.run(); + const r = n.run.bind(n); + return (r.effect = n), r; +} +function ld(e) { + e.effect.stop(); +} +let Ct = !0; +const Kc = []; +function An() { + Kc.push(Ct), (Ct = !1); +} +function Rn() { + const e = Kc.pop(); + Ct = e === void 0 ? !0 : e; +} +function Me(e, t, n) { + if (Ct && Qe) { + let r = Zr.get(e); + r || Zr.set(e, (r = new Map())); + let s = r.get(n); + s || r.set(n, (s = co())), Wc(s); + } +} +function Wc(e, t) { + let n = !1; + xn <= _i ? qc(e) || ((e.n |= Ft), (n = !Vc(e))) : (n = !e.has(Qe)), + n && (e.add(Qe), Qe.deps.push(e)); +} +function mt(e, t, n, r, s, i) { + const o = Zr.get(e); + if (!o) return; + let l = []; + if (t === "clear") l = [...o.values()]; + else if (n === "length" && $(e)) { + const c = Number(r); + o.forEach((a, u) => { + (u === "length" || u >= c) && l.push(a); + }); + } else + switch ((n !== void 0 && l.push(o.get(n)), t)) { + case "add": + $(e) + ? so(n) && l.push(o.get("length")) + : (l.push(o.get(qt)), dn(e) && l.push(o.get(Ei))); + break; + case "delete": + $(e) || (l.push(o.get(qt)), dn(e) && l.push(o.get(Ei))); + break; + case "set": + dn(e) && l.push(o.get(qt)); + break; + } + if (l.length === 1) l[0] && Si(l[0]); + else { + const c = []; + for (const a of l) a && c.push(...a); + Si(co(c)); + } +} +function Si(e, t) { + const n = $(e) ? e : [...e]; + for (const r of n) r.computed && vl(r); + for (const r of n) r.computed || vl(r); +} +function vl(e, t) { + (e !== Qe || e.allowRecurse) && (e.scheduler ? e.scheduler() : e.run()); +} +function cd(e, t) { + var n; + return (n = Zr.get(e)) == null ? void 0 : n.get(t); +} +const ad = Le("__proto__,__v_isRef,__isVue"), + zc = new Set( + Object.getOwnPropertyNames(Symbol) + .filter((e) => e !== "arguments" && e !== "caller") + .map((e) => Symbol[e]) + .filter(Pt), + ), + ud = vs(), + fd = vs(!1, !0), + dd = vs(!0), + pd = vs(!0, !0), + _l = hd(); +function hd() { + const e = {}; + return ( + ["includes", "indexOf", "lastIndexOf"].forEach((t) => { + e[t] = function (...n) { + const r = X(this); + for (let i = 0, o = this.length; i < o; i++) Me(r, "get", i + ""); + const s = r[t](...n); + return s === -1 || s === !1 ? r[t](...n.map(X)) : s; + }; + }), + ["push", "pop", "shift", "unshift", "splice"].forEach((t) => { + e[t] = function (...n) { + An(); + const r = X(this)[t].apply(this, n); + return Rn(), r; + }; + }), + e + ); +} +function md(e) { + const t = X(this); + return Me(t, "has", e), t.hasOwnProperty(e); +} +function vs(e = !1, t = !1) { + return function (r, s, i) { + if (s === "__v_isReactive") return !e; + if (s === "__v_isReadonly") return e; + if (s === "__v_isShallow") return t; + if (s === "__v_raw" && i === (e ? (t ? ea : Xc) : t ? Yc : Qc).get(r)) + return r; + const o = $(r); + if (!e) { + if (o && re(_l, s)) return Reflect.get(_l, s, i); + if (s === "hasOwnProperty") return md; + } + const l = Reflect.get(r, s, i); + return (Pt(s) ? zc.has(s) : ad(s)) || (e || Me(r, "get", s), t) + ? l + : de(l) + ? o && so(s) + ? l + : l.value + : le(l) + ? e + ? uo(l) + : ot(l) + : l; + }; +} +const gd = Jc(), + yd = Jc(!0); +function Jc(e = !1) { + return function (n, r, s, i) { + let o = n[r]; + if (Jt(o) && de(o) && !de(s)) return !1; + if ( + !e && + (!Jn(s) && !Jt(s) && ((o = X(o)), (s = X(s))), !$(n) && de(o) && !de(s)) + ) + return (o.value = s), !0; + const l = $(n) && so(r) ? Number(r) < n.length : re(n, r), + c = Reflect.set(n, r, s, i); + return ( + n === X(i) && (l ? bn(s, o) && mt(n, "set", r, s) : mt(n, "add", r, s)), c + ); + }; +} +function bd(e, t) { + const n = re(e, t); + e[t]; + const r = Reflect.deleteProperty(e, t); + return r && n && mt(e, "delete", t, void 0), r; +} +function vd(e, t) { + const n = Reflect.has(e, t); + return (!Pt(t) || !zc.has(t)) && Me(e, "has", t), n; +} +function _d(e) { + return Me(e, "iterate", $(e) ? "length" : qt), Reflect.ownKeys(e); +} +const Gc = { get: ud, set: gd, deleteProperty: bd, has: vd, ownKeys: _d }, + Zc = { + get: dd, + set(e, t) { + return !0; + }, + deleteProperty(e, t) { + return !0; + }, + }, + Ed = ee({}, Gc, { get: fd, set: yd }), + Sd = ee({}, Zc, { get: pd }), + ao = (e) => e, + _s = (e) => Reflect.getPrototypeOf(e); +function wr(e, t, n = !1, r = !1) { + e = e.__v_raw; + const s = X(e), + i = X(t); + n || (t !== i && Me(s, "get", t), Me(s, "get", i)); + const { has: o } = _s(s), + l = r ? ao : n ? po : Gn; + if (o.call(s, t)) return l(e.get(t)); + if (o.call(s, i)) return l(e.get(i)); + e !== s && e.get(t); +} +function Tr(e, t = !1) { + const n = this.__v_raw, + r = X(n), + s = X(e); + return ( + t || (e !== s && Me(r, "has", e), Me(r, "has", s)), + e === s ? n.has(e) : n.has(e) || n.has(s) + ); +} +function Cr(e, t = !1) { + return ( + (e = e.__v_raw), !t && Me(X(e), "iterate", qt), Reflect.get(e, "size", e) + ); +} +function El(e) { + e = X(e); + const t = X(this); + return _s(t).has.call(t, e) || (t.add(e), mt(t, "add", e, e)), this; +} +function Sl(e, t) { + t = X(t); + const n = X(this), + { has: r, get: s } = _s(n); + let i = r.call(n, e); + i || ((e = X(e)), (i = r.call(n, e))); + const o = s.call(n, e); + return ( + n.set(e, t), i ? bn(t, o) && mt(n, "set", e, t) : mt(n, "add", e, t), this + ); +} +function wl(e) { + const t = X(this), + { has: n, get: r } = _s(t); + let s = n.call(t, e); + s || ((e = X(e)), (s = n.call(t, e))), r && r.call(t, e); + const i = t.delete(e); + return s && mt(t, "delete", e, void 0), i; +} +function Tl() { + const e = X(this), + t = e.size !== 0, + n = e.clear(); + return t && mt(e, "clear", void 0, void 0), n; +} +function Or(e, t) { + return function (r, s) { + const i = this, + o = i.__v_raw, + l = X(o), + c = t ? ao : e ? po : Gn; + return ( + !e && Me(l, "iterate", qt), o.forEach((a, u) => r.call(s, c(a), c(u), i)) + ); + }; +} +function Nr(e, t, n) { + return function (...r) { + const s = this.__v_raw, + i = X(s), + o = dn(i), + l = e === "entries" || (e === Symbol.iterator && o), + c = e === "keys" && o, + a = s[e](...r), + u = n ? ao : t ? po : Gn; + return ( + !t && Me(i, "iterate", c ? Ei : qt), + { + next() { + const { value: d, done: v } = a.next(); + return v + ? { value: d, done: v } + : { value: l ? [u(d[0]), u(d[1])] : u(d), done: v }; + }, + [Symbol.iterator]() { + return this; + }, + } + ); + }; +} +function bt(e) { + return function (...t) { + return e === "delete" ? !1 : this; + }; +} +function wd() { + const e = { + get(i) { + return wr(this, i); + }, + get size() { + return Cr(this); + }, + has: Tr, + add: El, + set: Sl, + delete: wl, + clear: Tl, + forEach: Or(!1, !1), + }, + t = { + get(i) { + return wr(this, i, !1, !0); + }, + get size() { + return Cr(this); + }, + has: Tr, + add: El, + set: Sl, + delete: wl, + clear: Tl, + forEach: Or(!1, !0), + }, + n = { + get(i) { + return wr(this, i, !0); + }, + get size() { + return Cr(this, !0); + }, + has(i) { + return Tr.call(this, i, !0); + }, + add: bt("add"), + set: bt("set"), + delete: bt("delete"), + clear: bt("clear"), + forEach: Or(!0, !1), + }, + r = { + get(i) { + return wr(this, i, !0, !0); + }, + get size() { + return Cr(this, !0); + }, + has(i) { + return Tr.call(this, i, !0); + }, + add: bt("add"), + set: bt("set"), + delete: bt("delete"), + clear: bt("clear"), + forEach: Or(!0, !0), + }; + return ( + ["keys", "values", "entries", Symbol.iterator].forEach((i) => { + (e[i] = Nr(i, !1, !1)), + (n[i] = Nr(i, !0, !1)), + (t[i] = Nr(i, !1, !0)), + (r[i] = Nr(i, !0, !0)); + }), + [e, n, t, r] + ); +} +const [Td, Cd, Od, Nd] = wd(); +function Es(e, t) { + const n = t ? (e ? Nd : Od) : e ? Cd : Td; + return (r, s, i) => + s === "__v_isReactive" + ? !e + : s === "__v_isReadonly" + ? e + : s === "__v_raw" + ? r + : Reflect.get(re(n, s) && s in r ? n : r, s, i); +} +const Ad = { get: Es(!1, !1) }, + Rd = { get: Es(!1, !0) }, + Pd = { get: Es(!0, !1) }, + Id = { get: Es(!0, !0) }, + Qc = new WeakMap(), + Yc = new WeakMap(), + Xc = new WeakMap(), + ea = new WeakMap(); +function Fd(e) { + switch (e) { + case "Object": + case "Array": + return 1; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2; + default: + return 0; + } +} +function kd(e) { + return e.__v_skip || !Object.isExtensible(e) ? 0 : Fd(xf(e)); +} +function ot(e) { + return Jt(e) ? e : Ss(e, !1, Gc, Ad, Qc); +} +function ta(e) { + return Ss(e, !1, Ed, Rd, Yc); +} +function uo(e) { + return Ss(e, !0, Zc, Pd, Xc); +} +function Md(e) { + return Ss(e, !0, Sd, Id, ea); +} +function Ss(e, t, n, r, s) { + if (!le(e) || (e.__v_raw && !(t && e.__v_isReactive))) return e; + const i = s.get(e); + if (i) return i; + const o = kd(e); + if (o === 0) return e; + const l = new Proxy(e, o === 2 ? r : n); + return s.set(e, l), l; +} +function dt(e) { + return Jt(e) ? dt(e.__v_raw) : !!(e && e.__v_isReactive); +} +function Jt(e) { + return !!(e && e.__v_isReadonly); +} +function Jn(e) { + return !!(e && e.__v_isShallow); +} +function fo(e) { + return dt(e) || Jt(e); +} +function X(e) { + const t = e && e.__v_raw; + return t ? X(t) : e; +} +function dr(e) { + return zr(e, "__v_skip", !0), e; +} +const Gn = (e) => (le(e) ? ot(e) : e), + po = (e) => (le(e) ? uo(e) : e); +function ho(e) { + Ct && Qe && ((e = X(e)), Wc(e.dep || (e.dep = co()))); +} +function ws(e, t) { + e = X(e); + const n = e.dep; + n && Si(n); +} +function de(e) { + return !!(e && e.__v_isRef === !0); +} +function Ot(e) { + return na(e, !1); +} +function Ld(e) { + return na(e, !0); +} +function na(e, t) { + return de(e) ? e : new Dd(e, t); +} +class Dd { + constructor(t, n) { + (this.__v_isShallow = n), + (this.dep = void 0), + (this.__v_isRef = !0), + (this._rawValue = n ? t : X(t)), + (this._value = n ? t : Gn(t)); + } + get value() { + return ho(this), this._value; + } + set value(t) { + const n = this.__v_isShallow || Jn(t) || Jt(t); + (t = n ? t : X(t)), + bn(t, this._rawValue) && + ((this._rawValue = t), (this._value = n ? t : Gn(t)), ws(this)); + } +} +function Bd(e) { + ws(e); +} +function mo(e) { + return de(e) ? e.value : e; +} +function xd(e) { + return z(e) ? e() : mo(e); +} +const jd = { + get: (e, t, n) => mo(Reflect.get(e, t, n)), + set: (e, t, n, r) => { + const s = e[t]; + return de(s) && !de(n) ? ((s.value = n), !0) : Reflect.set(e, t, n, r); + }, +}; +function go(e) { + return dt(e) ? e : new Proxy(e, jd); +} +class Hd { + constructor(t) { + (this.dep = void 0), (this.__v_isRef = !0); + const { get: n, set: r } = t( + () => ho(this), + () => ws(this), + ); + (this._get = n), (this._set = r); + } + get value() { + return this._get(); + } + set value(t) { + this._set(t); + } +} +function $d(e) { + return new Hd(e); +} +function ra(e) { + const t = $(e) ? new Array(e.length) : {}; + for (const n in e) t[n] = sa(e, n); + return t; +} +class Ud { + constructor(t, n, r) { + (this._object = t), + (this._key = n), + (this._defaultValue = r), + (this.__v_isRef = !0); + } + get value() { + const t = this._object[this._key]; + return t === void 0 ? this._defaultValue : t; + } + set value(t) { + this._object[this._key] = t; + } + get dep() { + return cd(X(this._object), this._key); + } +} +class Vd { + constructor(t) { + (this._getter = t), (this.__v_isRef = !0), (this.__v_isReadonly = !0); + } + get value() { + return this._getter(); + } +} +function qd(e, t, n) { + return de(e) + ? e + : z(e) + ? new Vd(e) + : le(e) && arguments.length > 1 + ? sa(e, t, n) + : Ot(e); +} +function sa(e, t, n) { + const r = e[t]; + return de(r) ? r : new Ud(e, t, n); +} +class Kd { + constructor(t, n, r, s) { + (this._setter = n), + (this.dep = void 0), + (this.__v_isRef = !0), + (this.__v_isReadonly = !1), + (this._dirty = !0), + (this.effect = new fr(t, () => { + this._dirty || ((this._dirty = !0), ws(this)); + })), + (this.effect.computed = this), + (this.effect.active = this._cacheable = !s), + (this.__v_isReadonly = r); + } + get value() { + const t = X(this); + return ( + ho(t), + (t._dirty || !t._cacheable) && + ((t._dirty = !1), (t._value = t.effect.run())), + t._value + ); + } + set value(t) { + this._setter(t); + } +} +function Wd(e, t, n = !1) { + let r, s; + const i = z(e); + return ( + i ? ((r = e), (s = Pe)) : ((r = e.get), (s = e.set)), + new Kd(r, s, i || !s, n) + ); +} +function zd(e, ...t) {} +function Jd(e, t) {} +function pt(e, t, n, r) { + let s; + try { + s = r ? e(...r) : e(); + } catch (i) { + nn(i, t, n); + } + return s; +} +function He(e, t, n, r) { + if (z(e)) { + const i = pt(e, t, n, r); + return ( + i && + ro(i) && + i.catch((o) => { + nn(o, t, n); + }), + i + ); + } + const s = []; + for (let i = 0; i < e.length; i++) s.push(He(e[i], t, n, r)); + return s; +} +function nn(e, t, n, r = !0) { + const s = t ? t.vnode : null; + if (t) { + let i = t.parent; + const o = t.proxy, + l = n; + for (; i; ) { + const a = i.ec; + if (a) { + for (let u = 0; u < a.length; u++) if (a[u](e, o, l) === !1) return; + } + i = i.parent; + } + const c = t.appContext.config.errorHandler; + if (c) { + pt(c, null, 10, [e, o, l]); + return; + } + } +} +let Zn = !1, + wi = !1; +const Ce = []; +let st = 0; +const mn = []; +let ut = null, + jt = 0; +const ia = Promise.resolve(); +let yo = null; +function Ts(e) { + const t = yo || ia; + return e ? t.then(this ? e.bind(this) : e) : t; +} +function Gd(e) { + let t = st + 1, + n = Ce.length; + for (; t < n; ) { + const r = (t + n) >>> 1; + Qn(Ce[r]) < e ? (t = r + 1) : (n = r); + } + return t; +} +function Cs(e) { + (!Ce.length || !Ce.includes(e, Zn && e.allowRecurse ? st + 1 : st)) && + (e.id == null ? Ce.push(e) : Ce.splice(Gd(e.id), 0, e), oa()); +} +function oa() { + !Zn && !wi && ((wi = !0), (yo = ia.then(la))); +} +function Zd(e) { + const t = Ce.indexOf(e); + t > st && Ce.splice(t, 1); +} +function bo(e) { + $(e) + ? mn.push(...e) + : (!ut || !ut.includes(e, e.allowRecurse ? jt + 1 : jt)) && mn.push(e), + oa(); +} +function Cl(e, t = Zn ? st + 1 : 0) { + for (; t < Ce.length; t++) { + const n = Ce[t]; + n && n.pre && (Ce.splice(t, 1), t--, n()); + } +} +function Qr(e) { + if (mn.length) { + const t = [...new Set(mn)]; + if (((mn.length = 0), ut)) { + ut.push(...t); + return; + } + for (ut = t, ut.sort((n, r) => Qn(n) - Qn(r)), jt = 0; jt < ut.length; jt++) + ut[jt](); + (ut = null), (jt = 0); + } +} +const Qn = (e) => (e.id == null ? 1 / 0 : e.id), + Qd = (e, t) => { + const n = Qn(e) - Qn(t); + if (n === 0) { + if (e.pre && !t.pre) return -1; + if (t.pre && !e.pre) return 1; + } + return n; + }; +function la(e) { + (wi = !1), (Zn = !0), Ce.sort(Qd); + const t = Pe; + try { + for (st = 0; st < Ce.length; st++) { + const n = Ce[st]; + n && n.active !== !1 && pt(n, null, 14); + } + } finally { + (st = 0), + (Ce.length = 0), + Qr(), + (Zn = !1), + (yo = null), + (Ce.length || mn.length) && la(); + } +} +let an, + Ar = []; +function ca(e, t) { + var n, r; + (an = e), + an + ? ((an.enabled = !0), + Ar.forEach(({ event: s, args: i }) => an.emit(s, ...i)), + (Ar = [])) + : typeof window < "u" && + window.HTMLElement && + !( + (r = (n = window.navigator) == null ? void 0 : n.userAgent) != null && + r.includes("jsdom") + ) + ? ((t.__VUE_DEVTOOLS_HOOK_REPLAY__ = + t.__VUE_DEVTOOLS_HOOK_REPLAY__ || []).push((i) => { + ca(i, t); + }), + setTimeout(() => { + an || ((t.__VUE_DEVTOOLS_HOOK_REPLAY__ = null), (Ar = [])); + }, 3e3)) + : (Ar = []); +} +function Yd(e, t, ...n) { + if (e.isUnmounted) return; + const r = e.vnode.props || oe; + let s = n; + const i = t.startsWith("update:"), + o = i && t.slice(7); + if (o && o in r) { + const u = `${o === "modelValue" ? "model" : o}Modifiers`, + { number: d, trim: v } = r[u] || oe; + v && (s = n.map((h) => (Z(h) ? h.trim() : h))), d && (s = n.map(Jr)); + } + let l, + c = r[(l = pn(t))] || r[(l = pn(ye(t)))]; + !c && i && (c = r[(l = pn(je(t)))]), c && He(c, e, 6, s); + const a = r[l + "Once"]; + if (a) { + if (!e.emitted) e.emitted = {}; + else if (e.emitted[l]) return; + (e.emitted[l] = !0), He(a, e, 6, s); + } +} +function aa(e, t, n = !1) { + const r = t.emitsCache, + s = r.get(e); + if (s !== void 0) return s; + const i = e.emits; + let o = {}, + l = !1; + if (!z(e)) { + const c = (a) => { + const u = aa(a, t, !0); + u && ((l = !0), ee(o, u)); + }; + !n && t.mixins.length && t.mixins.forEach(c), + e.extends && c(e.extends), + e.mixins && e.mixins.forEach(c); + } + return !i && !l + ? (le(e) && r.set(e, null), null) + : ($(i) ? i.forEach((c) => (o[c] = null)) : ee(o, i), + le(e) && r.set(e, o), + o); +} +function Os(e, t) { + return !e || !Xt(t) + ? !1 + : ((t = t.slice(2).replace(/Once$/, "")), + re(e, t[0].toLowerCase() + t.slice(1)) || re(e, je(t)) || re(e, t)); +} +let Ee = null, + Ns = null; +function Yn(e) { + const t = Ee; + return (Ee = e), (Ns = (e && e.type.__scopeId) || null), t; +} +function Xd(e) { + Ns = e; +} +function ep() { + Ns = null; +} +const tp = (e) => vo; +function vo(e, t = Ee, n) { + if (!t || e._n) return e; + const r = (...s) => { + r._d && Pi(-1); + const i = Yn(t); + let o; + try { + o = e(...s); + } finally { + Yn(i), r._d && Pi(1); + } + return o; + }; + return (r._n = !0), (r._c = !0), (r._d = !0), r; +} +function jr(e) { + const { + type: t, + vnode: n, + proxy: r, + withProxy: s, + props: i, + propsOptions: [o], + slots: l, + attrs: c, + emit: a, + render: u, + renderCache: d, + data: v, + setupState: h, + ctx: g, + inheritAttrs: p, + } = e; + let b, m; + const f = Yn(e); + try { + if (n.shapeFlag & 4) { + const y = s || r; + (b = xe(u.call(y, y, d, i, h, v, g))), (m = c); + } else { + const y = t; + (b = xe( + y.length > 1 ? y(i, { attrs: c, slots: l, emit: a }) : y(i, null), + )), + (m = t.props ? c : rp(c)); + } + } catch (y) { + (Vn.length = 0), nn(y, e, 1), (b = ae(Ne)); + } + let E = b; + if (m && p !== !1) { + const y = Object.keys(m), + { shapeFlag: w } = E; + y.length && w & 7 && (o && y.some(to) && (m = sp(m, o)), (E = it(E, m))); + } + return ( + n.dirs && ((E = it(E)), (E.dirs = E.dirs ? E.dirs.concat(n.dirs) : n.dirs)), + n.transition && (E.transition = n.transition), + (b = E), + Yn(f), + b + ); +} +function np(e) { + let t; + for (let n = 0; n < e.length; n++) { + const r = e[n]; + if (kt(r)) { + if (r.type !== Ne || r.children === "v-if") { + if (t) return; + t = r; + } + } else return; + } + return t; +} +const rp = (e) => { + let t; + for (const n in e) + (n === "class" || n === "style" || Xt(n)) && ((t || (t = {}))[n] = e[n]); + return t; + }, + sp = (e, t) => { + const n = {}; + for (const r in e) (!to(r) || !(r.slice(9) in t)) && (n[r] = e[r]); + return n; + }; +function ip(e, t, n) { + const { props: r, children: s, component: i } = e, + { props: o, children: l, patchFlag: c } = t, + a = i.emitsOptions; + if (t.dirs || t.transition) return !0; + if (n && c >= 0) { + if (c & 1024) return !0; + if (c & 16) return r ? Ol(r, o, a) : !!o; + if (c & 8) { + const u = t.dynamicProps; + for (let d = 0; d < u.length; d++) { + const v = u[d]; + if (o[v] !== r[v] && !Os(a, v)) return !0; + } + } + } else + return (s || l) && (!l || !l.$stable) + ? !0 + : r === o + ? !1 + : r + ? o + ? Ol(r, o, a) + : !0 + : !!o; + return !1; +} +function Ol(e, t, n) { + const r = Object.keys(t); + if (r.length !== Object.keys(e).length) return !0; + for (let s = 0; s < r.length; s++) { + const i = r[s]; + if (t[i] !== e[i] && !Os(n, i)) return !0; + } + return !1; +} +function _o({ vnode: e, parent: t }, n) { + for (; t && t.subTree === e; ) ((e = t.vnode).el = n), (t = t.parent); +} +const ua = (e) => e.__isSuspense, + op = { + name: "Suspense", + __isSuspense: !0, + process(e, t, n, r, s, i, o, l, c, a) { + e == null ? cp(t, n, r, s, i, o, l, c, a) : ap(e, t, n, r, s, o, l, c, a); + }, + hydrate: up, + create: Eo, + normalize: fp, + }, + lp = op; +function Xn(e, t) { + const n = e.props && e.props[t]; + z(n) && n(); +} +function cp(e, t, n, r, s, i, o, l, c) { + const { + p: a, + o: { createElement: u }, + } = c, + d = u("div"), + v = (e.suspense = Eo(e, s, r, t, d, n, i, o, l, c)); + a(null, (v.pendingBranch = e.ssContent), d, null, r, v, i, o), + v.deps > 0 + ? (Xn(e, "onPending"), + Xn(e, "onFallback"), + a(null, e.ssFallback, t, n, r, null, i, o), + gn(v, e.ssFallback)) + : v.resolve(!1, !0); +} +function ap(e, t, n, r, s, i, o, l, { p: c, um: a, o: { createElement: u } }) { + const d = (t.suspense = e.suspense); + (d.vnode = t), (t.el = e.el); + const v = t.ssContent, + h = t.ssFallback, + { activeBranch: g, pendingBranch: p, isInFallback: b, isHydrating: m } = d; + if (p) + (d.pendingBranch = v), + Ye(v, p) + ? (c(p, v, d.hiddenContainer, null, s, d, i, o, l), + d.deps <= 0 + ? d.resolve() + : b && (c(g, h, n, r, s, null, i, o, l), gn(d, h))) + : (d.pendingId++, + m ? ((d.isHydrating = !1), (d.activeBranch = p)) : a(p, s, d), + (d.deps = 0), + (d.effects.length = 0), + (d.hiddenContainer = u("div")), + b + ? (c(null, v, d.hiddenContainer, null, s, d, i, o, l), + d.deps <= 0 + ? d.resolve() + : (c(g, h, n, r, s, null, i, o, l), gn(d, h))) + : g && Ye(v, g) + ? (c(g, v, n, r, s, d, i, o, l), d.resolve(!0)) + : (c(null, v, d.hiddenContainer, null, s, d, i, o, l), + d.deps <= 0 && d.resolve())); + else if (g && Ye(v, g)) c(g, v, n, r, s, d, i, o, l), gn(d, v); + else if ( + (Xn(t, "onPending"), + (d.pendingBranch = v), + d.pendingId++, + c(null, v, d.hiddenContainer, null, s, d, i, o, l), + d.deps <= 0) + ) + d.resolve(); + else { + const { timeout: f, pendingId: E } = d; + f > 0 + ? setTimeout(() => { + d.pendingId === E && d.fallback(h); + }, f) + : f === 0 && d.fallback(h); + } +} +function Eo(e, t, n, r, s, i, o, l, c, a, u = !1) { + const { + p: d, + m: v, + um: h, + n: g, + o: { parentNode: p, remove: b }, + } = a; + let m; + const f = dp(e); + f && t != null && t.pendingBranch && ((m = t.pendingId), t.deps++); + const E = e.props ? Gr(e.props.timeout) : void 0, + y = { + vnode: e, + parent: t, + parentComponent: n, + isSVG: o, + container: r, + hiddenContainer: s, + anchor: i, + deps: 0, + pendingId: 0, + timeout: typeof E == "number" ? E : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: !0, + isHydrating: u, + isUnmounted: !1, + effects: [], + resolve(w = !1, O = !1) { + const { + vnode: N, + activeBranch: _, + pendingBranch: C, + pendingId: A, + effects: P, + parentComponent: I, + container: L, + } = y; + if (y.isHydrating) y.isHydrating = !1; + else if (!w) { + const W = _ && C.transition && C.transition.mode === "out-in"; + W && + (_.transition.afterLeave = () => { + A === y.pendingId && v(C, L, te, 0); + }); + let { anchor: te } = y; + _ && ((te = g(_)), h(_, I, y, !0)), W || v(C, L, te, 0); + } + gn(y, C), (y.pendingBranch = null), (y.isInFallback = !1); + let B = y.parent, + G = !1; + for (; B; ) { + if (B.pendingBranch) { + B.effects.push(...P), (G = !0); + break; + } + B = B.parent; + } + G || bo(P), + (y.effects = []), + f && + t && + t.pendingBranch && + m === t.pendingId && + (t.deps--, t.deps === 0 && !O && t.resolve()), + Xn(N, "onResolve"); + }, + fallback(w) { + if (!y.pendingBranch) return; + const { + vnode: O, + activeBranch: N, + parentComponent: _, + container: C, + isSVG: A, + } = y; + Xn(O, "onFallback"); + const P = g(N), + I = () => { + y.isInFallback && (d(null, w, C, P, _, null, A, l, c), gn(y, w)); + }, + L = w.transition && w.transition.mode === "out-in"; + L && (N.transition.afterLeave = I), + (y.isInFallback = !0), + h(N, _, null, !0), + L || I(); + }, + move(w, O, N) { + y.activeBranch && v(y.activeBranch, w, O, N), (y.container = w); + }, + next() { + return y.activeBranch && g(y.activeBranch); + }, + registerDep(w, O) { + const N = !!y.pendingBranch; + N && y.deps++; + const _ = w.vnode.el; + w.asyncDep + .catch((C) => { + nn(C, w, 0); + }) + .then((C) => { + if (w.isUnmounted || y.isUnmounted || y.pendingId !== w.suspenseId) + return; + w.asyncResolved = !0; + const { vnode: A } = w; + Ii(w, C, !1), _ && (A.el = _); + const P = !_ && w.subTree.el; + O(w, A, p(_ || w.subTree.el), _ ? null : g(w.subTree), y, o, c), + P && b(P), + _o(w, A.el), + N && --y.deps === 0 && y.resolve(); + }); + }, + unmount(w, O) { + (y.isUnmounted = !0), + y.activeBranch && h(y.activeBranch, n, w, O), + y.pendingBranch && h(y.pendingBranch, n, w, O); + }, + }; + return y; +} +function up(e, t, n, r, s, i, o, l, c) { + const a = (t.suspense = Eo( + t, + r, + n, + e.parentNode, + document.createElement("div"), + null, + s, + i, + o, + l, + !0, + )), + u = c(e, (a.pendingBranch = t.ssContent), n, a, i, o); + return a.deps === 0 && a.resolve(!1, !0), u; +} +function fp(e) { + const { shapeFlag: t, children: n } = e, + r = t & 32; + (e.ssContent = Nl(r ? n.default : n)), + (e.ssFallback = r ? Nl(n.fallback) : ae(Ne)); +} +function Nl(e) { + let t; + if (z(e)) { + const n = Qt && e._c; + n && ((e._d = !1), Ms()), (e = e()), n && ((e._d = !0), (t = Fe), $a()); + } + return ( + $(e) && (e = np(e)), + (e = xe(e)), + t && !e.dynamicChildren && (e.dynamicChildren = t.filter((n) => n !== e)), + e + ); +} +function fa(e, t) { + t && t.pendingBranch + ? $(e) + ? t.effects.push(...e) + : t.effects.push(e) + : bo(e); +} +function gn(e, t) { + e.activeBranch = t; + const { vnode: n, parentComponent: r } = e, + s = (n.el = t.el); + r && r.subTree === n && ((r.vnode.el = s), _o(r, s)); +} +function dp(e) { + var t; + return ( + ((t = e.props) == null ? void 0 : t.suspensible) != null && + e.props.suspensible !== !1 + ); +} +function pp(e, t) { + return pr(e, null, t); +} +function da(e, t) { + return pr(e, null, { flush: "post" }); +} +function hp(e, t) { + return pr(e, null, { flush: "sync" }); +} +const Rr = {}; +function Nt(e, t, n) { + return pr(e, t, n); +} +function pr( + e, + t, + { immediate: n, deep: r, flush: s, onTrack: i, onTrigger: o } = oe, +) { + var l; + const c = lo() === ((l = ge) == null ? void 0 : l.scope) ? ge : null; + let a, + u = !1, + d = !1; + if ( + (de(e) + ? ((a = () => e.value), (u = Jn(e))) + : dt(e) + ? ((a = () => e), (r = !0)) + : $(e) + ? ((d = !0), + (u = e.some((y) => dt(y) || Jn(y))), + (a = () => + e.map((y) => { + if (de(y)) return y.value; + if (dt(y)) return $t(y); + if (z(y)) return pt(y, c, 2); + }))) + : z(e) + ? t + ? (a = () => pt(e, c, 2)) + : (a = () => { + if (!(c && c.isUnmounted)) return v && v(), He(e, c, 3, [h]); + }) + : (a = Pe), + t && r) + ) { + const y = a; + a = () => $t(y()); + } + let v, + h = (y) => { + v = f.onStop = () => { + pt(y, c, 4); + }; + }, + g; + if (_n) + if ( + ((h = Pe), + t ? n && He(t, c, 3, [a(), d ? [] : void 0, h]) : a(), + s === "sync") + ) { + const y = Xa(); + g = y.__watcherHandles || (y.__watcherHandles = []); + } else return Pe; + let p = d ? new Array(e.length).fill(Rr) : Rr; + const b = () => { + if (f.active) + if (t) { + const y = f.run(); + (r || u || (d ? y.some((w, O) => bn(w, p[O])) : bn(y, p))) && + (v && v(), + He(t, c, 3, [y, p === Rr ? void 0 : d && p[0] === Rr ? [] : p, h]), + (p = y)); + } else f.run(); + }; + b.allowRecurse = !!t; + let m; + s === "sync" + ? (m = b) + : s === "post" + ? (m = () => we(b, c && c.suspense)) + : ((b.pre = !0), c && (b.id = c.uid), (m = () => Cs(b))); + const f = new fr(a, m); + t + ? n + ? b() + : (p = f.run()) + : s === "post" + ? we(f.run.bind(f), c && c.suspense) + : f.run(); + const E = () => { + f.stop(), c && c.scope && no(c.scope.effects, f); + }; + return g && g.push(E), E; +} +function mp(e, t, n) { + const r = this.proxy, + s = Z(e) ? (e.includes(".") ? pa(r, e) : () => r[e]) : e.bind(r, r); + let i; + z(t) ? (i = t) : ((i = t.handler), (n = t)); + const o = ge; + Mt(this); + const l = pr(s, i.bind(r), n); + return o ? Mt(o) : At(), l; +} +function pa(e, t) { + const n = t.split("."); + return () => { + let r = e; + for (let s = 0; s < n.length && r; s++) r = r[n[s]]; + return r; + }; +} +function $t(e, t) { + if (!le(e) || e.__v_skip || ((t = t || new Set()), t.has(e))) return e; + if ((t.add(e), de(e))) $t(e.value, t); + else if ($(e)) for (let n = 0; n < e.length; n++) $t(e[n], t); + else if (en(e) || dn(e)) + e.forEach((n) => { + $t(n, t); + }); + else if (Bc(e)) for (const n in e) $t(e[n], t); + return e; +} +function gp(e, t) { + const n = Ee; + if (n === null) return e; + const r = Ds(n) || n.proxy, + s = e.dirs || (e.dirs = []); + for (let i = 0; i < t.length; i++) { + let [o, l, c, a = oe] = t[i]; + o && + (z(o) && (o = { mounted: o, updated: o }), + o.deep && $t(l), + s.push({ + dir: o, + instance: r, + value: l, + oldValue: void 0, + arg: c, + modifiers: a, + })); + } + return e; +} +function rt(e, t, n, r) { + const s = e.dirs, + i = t && t.dirs; + for (let o = 0; o < s.length; o++) { + const l = s[o]; + i && (l.oldValue = i[o].value); + let c = l.dir[r]; + c && (An(), He(c, n, 8, [e.el, l, e, t]), Rn()); + } +} +function So() { + const e = { + isMounted: !1, + isLeaving: !1, + isUnmounting: !1, + leavingVNodes: new Map(), + }; + return ( + mr(() => { + e.isMounted = !0; + }), + Fs(() => { + e.isUnmounting = !0; + }), + e + ); +} +const Ve = [Function, Array], + wo = { + mode: String, + appear: Boolean, + persisted: Boolean, + onBeforeEnter: Ve, + onEnter: Ve, + onAfterEnter: Ve, + onEnterCancelled: Ve, + onBeforeLeave: Ve, + onLeave: Ve, + onAfterLeave: Ve, + onLeaveCancelled: Ve, + onBeforeAppear: Ve, + onAppear: Ve, + onAfterAppear: Ve, + onAppearCancelled: Ve, + }, + yp = { + name: "BaseTransition", + props: wo, + setup(e, { slots: t }) { + const n = yt(), + r = So(); + let s; + return () => { + const i = t.default && As(t.default(), !0); + if (!i || !i.length) return; + let o = i[0]; + if (i.length > 1) { + for (const p of i) + if (p.type !== Ne) { + o = p; + break; + } + } + const l = X(e), + { mode: c } = l; + if (r.isLeaving) return Ys(o); + const a = Al(o); + if (!a) return Ys(o); + const u = vn(a, l, r, n); + Gt(a, u); + const d = n.subTree, + v = d && Al(d); + let h = !1; + const { getTransitionKey: g } = a.type; + if (g) { + const p = g(); + s === void 0 ? (s = p) : p !== s && ((s = p), (h = !0)); + } + if (v && v.type !== Ne && (!Ye(a, v) || h)) { + const p = vn(v, l, r, n); + if ((Gt(v, p), c === "out-in")) + return ( + (r.isLeaving = !0), + (p.afterLeave = () => { + (r.isLeaving = !1), n.update.active !== !1 && n.update(); + }), + Ys(o) + ); + c === "in-out" && + a.type !== Ne && + (p.delayLeave = (b, m, f) => { + const E = ma(r, v); + (E[String(v.key)] = v), + (b._leaveCb = () => { + m(), (b._leaveCb = void 0), delete u.delayedLeave; + }), + (u.delayedLeave = f); + }); + } + return o; + }; + }, + }, + ha = yp; +function ma(e, t) { + const { leavingVNodes: n } = e; + let r = n.get(t.type); + return r || ((r = Object.create(null)), n.set(t.type, r)), r; +} +function vn(e, t, n, r) { + const { + appear: s, + mode: i, + persisted: o = !1, + onBeforeEnter: l, + onEnter: c, + onAfterEnter: a, + onEnterCancelled: u, + onBeforeLeave: d, + onLeave: v, + onAfterLeave: h, + onLeaveCancelled: g, + onBeforeAppear: p, + onAppear: b, + onAfterAppear: m, + onAppearCancelled: f, + } = t, + E = String(e.key), + y = ma(n, e), + w = (_, C) => { + _ && He(_, r, 9, C); + }, + O = (_, C) => { + const A = C[1]; + w(_, C), + $(_) ? _.every((P) => P.length <= 1) && A() : _.length <= 1 && A(); + }, + N = { + mode: i, + persisted: o, + beforeEnter(_) { + let C = l; + if (!n.isMounted) + if (s) C = p || l; + else return; + _._leaveCb && _._leaveCb(!0); + const A = y[E]; + A && Ye(e, A) && A.el._leaveCb && A.el._leaveCb(), w(C, [_]); + }, + enter(_) { + let C = c, + A = a, + P = u; + if (!n.isMounted) + if (s) (C = b || c), (A = m || a), (P = f || u); + else return; + let I = !1; + const L = (_._enterCb = (B) => { + I || + ((I = !0), + B ? w(P, [_]) : w(A, [_]), + N.delayedLeave && N.delayedLeave(), + (_._enterCb = void 0)); + }); + C ? O(C, [_, L]) : L(); + }, + leave(_, C) { + const A = String(e.key); + if ((_._enterCb && _._enterCb(!0), n.isUnmounting)) return C(); + w(d, [_]); + let P = !1; + const I = (_._leaveCb = (L) => { + P || + ((P = !0), + C(), + L ? w(g, [_]) : w(h, [_]), + (_._leaveCb = void 0), + y[A] === e && delete y[A]); + }); + (y[A] = e), v ? O(v, [_, I]) : I(); + }, + clone(_) { + return vn(_, t, n, r); + }, + }; + return N; +} +function Ys(e) { + if (hr(e)) return (e = it(e)), (e.children = null), e; +} +function Al(e) { + return hr(e) ? (e.children ? e.children[0] : void 0) : e; +} +function Gt(e, t) { + e.shapeFlag & 6 && e.component + ? Gt(e.component.subTree, t) + : e.shapeFlag & 128 + ? ((e.ssContent.transition = t.clone(e.ssContent)), + (e.ssFallback.transition = t.clone(e.ssFallback))) + : (e.transition = t); +} +function As(e, t = !1, n) { + let r = [], + s = 0; + for (let i = 0; i < e.length; i++) { + let o = e[i]; + const l = n == null ? o.key : String(n) + String(o.key != null ? o.key : i); + o.type === Te + ? (o.patchFlag & 128 && s++, (r = r.concat(As(o.children, t, l)))) + : (t || o.type !== Ne) && r.push(l != null ? it(o, { key: l }) : o); + } + if (s > 1) for (let i = 0; i < r.length; i++) r[i].patchFlag = -2; + return r; +} +function Rs(e, t) { + return z(e) ? (() => ee({ name: e.name }, t, { setup: e }))() : e; +} +const Kt = (e) => !!e.type.__asyncLoader; +function bp(e) { + z(e) && (e = { loader: e }); + const { + loader: t, + loadingComponent: n, + errorComponent: r, + delay: s = 200, + timeout: i, + suspensible: o = !0, + onError: l, + } = e; + let c = null, + a, + u = 0; + const d = () => (u++, (c = null), v()), + v = () => { + let h; + return ( + c || + (h = c = + t() + .catch((g) => { + if (((g = g instanceof Error ? g : new Error(String(g))), l)) + return new Promise((p, b) => { + l( + g, + () => p(d()), + () => b(g), + u + 1, + ); + }); + throw g; + }) + .then((g) => + h !== c && c + ? c + : (g && + (g.__esModule || g[Symbol.toStringTag] === "Module") && + (g = g.default), + (a = g), + g), + )) + ); + }; + return Rs({ + name: "AsyncComponentWrapper", + __asyncLoader: v, + get __asyncResolved() { + return a; + }, + setup() { + const h = ge; + if (a) return () => Xs(a, h); + const g = (f) => { + (c = null), nn(f, h, 13, !r); + }; + if ((o && h.suspense) || _n) + return v() + .then((f) => () => Xs(f, h)) + .catch((f) => (g(f), () => (r ? ae(r, { error: f }) : null))); + const p = Ot(!1), + b = Ot(), + m = Ot(!!s); + return ( + s && + setTimeout(() => { + m.value = !1; + }, s), + i != null && + setTimeout(() => { + if (!p.value && !b.value) { + const f = new Error(`Async component timed out after ${i}ms.`); + g(f), (b.value = f); + } + }, i), + v() + .then(() => { + (p.value = !0), + h.parent && hr(h.parent.vnode) && Cs(h.parent.update); + }) + .catch((f) => { + g(f), (b.value = f); + }), + () => { + if (p.value && a) return Xs(a, h); + if (b.value && r) return ae(r, { error: b.value }); + if (n && !m.value) return ae(n); + } + ); + }, + }); +} +function Xs(e, t) { + const { ref: n, props: r, children: s, ce: i } = t.vnode, + o = ae(e, r, s); + return (o.ref = n), (o.ce = i), delete t.vnode.ce, o; +} +const hr = (e) => e.type.__isKeepAlive, + vp = { + name: "KeepAlive", + __isKeepAlive: !0, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number], + }, + setup(e, { slots: t }) { + const n = yt(), + r = n.ctx; + if (!r.renderer) + return () => { + const f = t.default && t.default(); + return f && f.length === 1 ? f[0] : f; + }; + const s = new Map(), + i = new Set(); + let o = null; + const l = n.suspense, + { + renderer: { + p: c, + m: a, + um: u, + o: { createElement: d }, + }, + } = r, + v = d("div"); + (r.activate = (f, E, y, w, O) => { + const N = f.component; + a(f, E, y, 0, l), + c(N.vnode, f, E, y, N, l, w, f.slotScopeIds, O), + we(() => { + (N.isDeactivated = !1), N.a && hn(N.a); + const _ = f.props && f.props.onVnodeMounted; + _ && Ie(_, N.parent, f); + }, l); + }), + (r.deactivate = (f) => { + const E = f.component; + a(f, v, null, 1, l), + we(() => { + E.da && hn(E.da); + const y = f.props && f.props.onVnodeUnmounted; + y && Ie(y, E.parent, f), (E.isDeactivated = !0); + }, l); + }); + function h(f) { + ei(f), u(f, n, l, !0); + } + function g(f) { + s.forEach((E, y) => { + const w = ki(E.type); + w && (!f || !f(w)) && p(y); + }); + } + function p(f) { + const E = s.get(f); + !o || !Ye(E, o) ? h(E) : o && ei(o), s.delete(f), i.delete(f); + } + Nt( + () => [e.include, e.exclude], + ([f, E]) => { + f && g((y) => jn(f, y)), E && g((y) => !jn(E, y)); + }, + { flush: "post", deep: !0 }, + ); + let b = null; + const m = () => { + b != null && s.set(b, ti(n.subTree)); + }; + return ( + mr(m), + Is(m), + Fs(() => { + s.forEach((f) => { + const { subTree: E, suspense: y } = n, + w = ti(E); + if (f.type === w.type && f.key === w.key) { + ei(w); + const O = w.component.da; + O && we(O, y); + return; + } + h(f); + }); + }), + () => { + if (((b = null), !t.default)) return null; + const f = t.default(), + E = f[0]; + if (f.length > 1) return (o = null), f; + if (!kt(E) || (!(E.shapeFlag & 4) && !(E.shapeFlag & 128))) + return (o = null), E; + let y = ti(E); + const w = y.type, + O = ki(Kt(y) ? y.type.__asyncResolved || {} : w), + { include: N, exclude: _, max: C } = e; + if ((N && (!O || !jn(N, O))) || (_ && O && jn(_, O))) + return (o = y), E; + const A = y.key == null ? w : y.key, + P = s.get(A); + return ( + y.el && ((y = it(y)), E.shapeFlag & 128 && (E.ssContent = y)), + (b = A), + P + ? ((y.el = P.el), + (y.component = P.component), + y.transition && Gt(y, y.transition), + (y.shapeFlag |= 512), + i.delete(A), + i.add(A)) + : (i.add(A), + C && i.size > parseInt(C, 10) && p(i.values().next().value)), + (y.shapeFlag |= 256), + (o = y), + ua(E.type) ? E : y + ); + } + ); + }, + }, + _p = vp; +function jn(e, t) { + return $(e) + ? e.some((n) => jn(n, t)) + : Z(e) + ? e.split(",").includes(t) + : Bf(e) + ? e.test(t) + : !1; +} +function ga(e, t) { + ba(e, "a", t); +} +function ya(e, t) { + ba(e, "da", t); +} +function ba(e, t, n = ge) { + const r = + e.__wdc || + (e.__wdc = () => { + let s = n; + for (; s; ) { + if (s.isDeactivated) return; + s = s.parent; + } + return e(); + }); + if ((Ps(t, r, n), n)) { + let s = n.parent; + for (; s && s.parent; ) + hr(s.parent.vnode) && Ep(r, t, n, s), (s = s.parent); + } +} +function Ep(e, t, n, r) { + const s = Ps(t, e, r, !0); + ks(() => { + no(r[t], s); + }, n); +} +function ei(e) { + (e.shapeFlag &= -257), (e.shapeFlag &= -513); +} +function ti(e) { + return e.shapeFlag & 128 ? e.ssContent : e; +} +function Ps(e, t, n = ge, r = !1) { + if (n) { + const s = n[e] || (n[e] = []), + i = + t.__weh || + (t.__weh = (...o) => { + if (n.isUnmounted) return; + An(), Mt(n); + const l = He(t, n, e, o); + return At(), Rn(), l; + }); + return r ? s.unshift(i) : s.push(i), i; + } +} +const gt = + (e) => + (t, n = ge) => + (!_n || e === "sp") && Ps(e, (...r) => t(...r), n), + va = gt("bm"), + mr = gt("m"), + _a = gt("bu"), + Is = gt("u"), + Fs = gt("bum"), + ks = gt("um"), + Ea = gt("sp"), + Sa = gt("rtg"), + wa = gt("rtc"); +function Ta(e, t = ge) { + Ps("ec", e, t); +} +const To = "components", + Sp = "directives"; +function wp(e, t) { + return Co(To, e, !0, t) || e; +} +const Ca = Symbol.for("v-ndc"); +function Tp(e) { + return Z(e) ? Co(To, e, !1) || e : e || Ca; +} +function Cp(e) { + return Co(Sp, e); +} +function Co(e, t, n = !0, r = !1) { + const s = Ee || ge; + if (s) { + const i = s.type; + if (e === To) { + const l = ki(i, !1); + if (l && (l === t || l === ye(t) || l === tn(ye(t)))) return i; + } + const o = Rl(s[e] || i[e], t) || Rl(s.appContext[e], t); + return !o && r ? i : o; + } +} +function Rl(e, t) { + return e && (e[t] || e[ye(t)] || e[tn(ye(t))]); +} +function Op(e, t, n, r) { + let s; + const i = n && n[r]; + if ($(e) || Z(e)) { + s = new Array(e.length); + for (let o = 0, l = e.length; o < l; o++) + s[o] = t(e[o], o, void 0, i && i[o]); + } else if (typeof e == "number") { + s = new Array(e); + for (let o = 0; o < e; o++) s[o] = t(o + 1, o, void 0, i && i[o]); + } else if (le(e)) + if (e[Symbol.iterator]) + s = Array.from(e, (o, l) => t(o, l, void 0, i && i[l])); + else { + const o = Object.keys(e); + s = new Array(o.length); + for (let l = 0, c = o.length; l < c; l++) { + const a = o[l]; + s[l] = t(e[a], a, l, i && i[l]); + } + } + else s = []; + return n && (n[r] = s), s; +} +function Np(e, t) { + for (let n = 0; n < t.length; n++) { + const r = t[n]; + if ($(r)) for (let s = 0; s < r.length; s++) e[r[s].name] = r[s].fn; + else + r && + (e[r.name] = r.key + ? (...s) => { + const i = r.fn(...s); + return i && (i.key = r.key), i; + } + : r.fn); + } + return e; +} +function Ap(e, t, n = {}, r, s) { + if (Ee.isCE || (Ee.parent && Kt(Ee.parent) && Ee.parent.isCE)) + return t !== "default" && (n.name = t), ae("slot", n, r && r()); + let i = e[t]; + i && i._c && (i._d = !1), Ms(); + const o = i && Oa(i(n)), + l = Ro( + Te, + { key: n.key || (o && o.key) || `_${t}` }, + o || (r ? r() : []), + o && e._ === 1 ? 64 : -2, + ); + return ( + !s && l.scopeId && (l.slotScopeIds = [l.scopeId + "-s"]), + i && i._c && (i._d = !0), + l + ); +} +function Oa(e) { + return e.some((t) => + kt(t) ? !(t.type === Ne || (t.type === Te && !Oa(t.children))) : !0, + ) + ? e + : null; +} +function Rp(e, t) { + const n = {}; + for (const r in e) n[t && /[A-Z]/.test(r) ? `on:${r}` : pn(r)] = e[r]; + return n; +} +const Ti = (e) => (e ? (Wa(e) ? Ds(e) || e.proxy : Ti(e.parent)) : null), + $n = ee(Object.create(null), { + $: (e) => e, + $el: (e) => e.vnode.el, + $data: (e) => e.data, + $props: (e) => e.props, + $attrs: (e) => e.attrs, + $slots: (e) => e.slots, + $refs: (e) => e.refs, + $parent: (e) => Ti(e.parent), + $root: (e) => Ti(e.root), + $emit: (e) => e.emit, + $options: (e) => Oo(e), + $forceUpdate: (e) => e.f || (e.f = () => Cs(e.update)), + $nextTick: (e) => e.n || (e.n = Ts.bind(e.proxy)), + $watch: (e) => mp.bind(e), + }), + ni = (e, t) => e !== oe && !e.__isScriptSetup && re(e, t), + Ci = { + get({ _: e }, t) { + const { + ctx: n, + setupState: r, + data: s, + props: i, + accessCache: o, + type: l, + appContext: c, + } = e; + let a; + if (t[0] !== "$") { + const h = o[t]; + if (h !== void 0) + switch (h) { + case 1: + return r[t]; + case 2: + return s[t]; + case 4: + return n[t]; + case 3: + return i[t]; + } + else { + if (ni(r, t)) return (o[t] = 1), r[t]; + if (s !== oe && re(s, t)) return (o[t] = 2), s[t]; + if ((a = e.propsOptions[0]) && re(a, t)) return (o[t] = 3), i[t]; + if (n !== oe && re(n, t)) return (o[t] = 4), n[t]; + Oi && (o[t] = 0); + } + } + const u = $n[t]; + let d, v; + if (u) return t === "$attrs" && Me(e, "get", t), u(e); + if ((d = l.__cssModules) && (d = d[t])) return d; + if (n !== oe && re(n, t)) return (o[t] = 4), n[t]; + if (((v = c.config.globalProperties), re(v, t))) return v[t]; + }, + set({ _: e }, t, n) { + const { data: r, setupState: s, ctx: i } = e; + return ni(s, t) + ? ((s[t] = n), !0) + : r !== oe && re(r, t) + ? ((r[t] = n), !0) + : re(e.props, t) || (t[0] === "$" && t.slice(1) in e) + ? !1 + : ((i[t] = n), !0); + }, + has( + { + _: { + data: e, + setupState: t, + accessCache: n, + ctx: r, + appContext: s, + propsOptions: i, + }, + }, + o, + ) { + let l; + return ( + !!n[o] || + (e !== oe && re(e, o)) || + ni(t, o) || + ((l = i[0]) && re(l, o)) || + re(r, o) || + re($n, o) || + re(s.config.globalProperties, o) + ); + }, + defineProperty(e, t, n) { + return ( + n.get != null + ? (e._.accessCache[t] = 0) + : re(n, "value") && this.set(e, t, n.value, null), + Reflect.defineProperty(e, t, n) + ); + }, + }, + Pp = ee({}, Ci, { + get(e, t) { + if (t !== Symbol.unscopables) return Ci.get(e, t, e); + }, + has(e, t) { + return t[0] !== "_" && !Vf(t); + }, + }); +function Ip() { + return null; +} +function Fp() { + return null; +} +function kp(e) {} +function Mp(e) {} +function Lp() { + return null; +} +function Dp() {} +function Bp(e, t) { + return null; +} +function xp() { + return Na().slots; +} +function jp() { + return Na().attrs; +} +function Hp(e, t, n) { + const r = yt(); + if (n && n.local) { + const s = Ot(e[t]); + return ( + Nt( + () => e[t], + (i) => (s.value = i), + ), + Nt(s, (i) => { + i !== e[t] && r.emit(`update:${t}`, i); + }), + s + ); + } else + return { + __v_isRef: !0, + get value() { + return e[t]; + }, + set value(s) { + r.emit(`update:${t}`, s); + }, + }; +} +function Na() { + const e = yt(); + return e.setupContext || (e.setupContext = Za(e)); +} +function er(e) { + return $(e) ? e.reduce((t, n) => ((t[n] = null), t), {}) : e; +} +function $p(e, t) { + const n = er(e); + for (const r in t) { + if (r.startsWith("__skip")) continue; + let s = n[r]; + s + ? $(s) || z(s) + ? (s = n[r] = { type: s, default: t[r] }) + : (s.default = t[r]) + : s === null && (s = n[r] = { default: t[r] }), + s && t[`__skip_${r}`] && (s.skipFactory = !0); + } + return n; +} +function Up(e, t) { + return !e || !t ? e || t : $(e) && $(t) ? e.concat(t) : ee({}, er(e), er(t)); +} +function Vp(e, t) { + const n = {}; + for (const r in e) + t.includes(r) || + Object.defineProperty(n, r, { enumerable: !0, get: () => e[r] }); + return n; +} +function qp(e) { + const t = yt(); + let n = e(); + return ( + At(), + ro(n) && + (n = n.catch((r) => { + throw (Mt(t), r); + })), + [n, () => Mt(t)] + ); +} +let Oi = !0; +function Kp(e) { + const t = Oo(e), + n = e.proxy, + r = e.ctx; + (Oi = !1), t.beforeCreate && Pl(t.beforeCreate, e, "bc"); + const { + data: s, + computed: i, + methods: o, + watch: l, + provide: c, + inject: a, + created: u, + beforeMount: d, + mounted: v, + beforeUpdate: h, + updated: g, + activated: p, + deactivated: b, + beforeDestroy: m, + beforeUnmount: f, + destroyed: E, + unmounted: y, + render: w, + renderTracked: O, + renderTriggered: N, + errorCaptured: _, + serverPrefetch: C, + expose: A, + inheritAttrs: P, + components: I, + directives: L, + filters: B, + } = t; + if ((a && Wp(a, r, null), o)) + for (const te in o) { + const ne = o[te]; + z(ne) && (r[te] = ne.bind(n)); + } + if (s) { + const te = s.call(n, n); + le(te) && (e.data = ot(te)); + } + if (((Oi = !0), i)) + for (const te in i) { + const ne = i[te], + Se = z(ne) ? ne.bind(n, n) : z(ne.get) ? ne.get.bind(n, n) : Pe, + Dt = !z(ne) && z(ne.set) ? ne.set.bind(n) : Pe, + Ge = Lo({ get: Se, set: Dt }); + Object.defineProperty(r, te, { + enumerable: !0, + configurable: !0, + get: () => Ge.value, + set: (_e) => (Ge.value = _e), + }); + } + if (l) for (const te in l) Aa(l[te], r, n, te); + if (c) { + const te = z(c) ? c.call(n) : c; + Reflect.ownKeys(te).forEach((ne) => { + Pa(ne, te[ne]); + }); + } + u && Pl(u, e, "c"); + function W(te, ne) { + $(ne) ? ne.forEach((Se) => te(Se.bind(n))) : ne && te(ne.bind(n)); + } + if ( + (W(va, d), + W(mr, v), + W(_a, h), + W(Is, g), + W(ga, p), + W(ya, b), + W(Ta, _), + W(wa, O), + W(Sa, N), + W(Fs, f), + W(ks, y), + W(Ea, C), + $(A)) + ) + if (A.length) { + const te = e.exposed || (e.exposed = {}); + A.forEach((ne) => { + Object.defineProperty(te, ne, { + get: () => n[ne], + set: (Se) => (n[ne] = Se), + }); + }); + } else e.exposed || (e.exposed = {}); + w && e.render === Pe && (e.render = w), + P != null && (e.inheritAttrs = P), + I && (e.components = I), + L && (e.directives = L); +} +function Wp(e, t, n = Pe) { + $(e) && (e = Ni(e)); + for (const r in e) { + const s = e[r]; + let i; + le(s) + ? "default" in s + ? (i = yn(s.from || r, s.default, !0)) + : (i = yn(s.from || r)) + : (i = yn(s)), + de(i) + ? Object.defineProperty(t, r, { + enumerable: !0, + configurable: !0, + get: () => i.value, + set: (o) => (i.value = o), + }) + : (t[r] = i); + } +} +function Pl(e, t, n) { + He($(e) ? e.map((r) => r.bind(t.proxy)) : e.bind(t.proxy), t, n); +} +function Aa(e, t, n, r) { + const s = r.includes(".") ? pa(n, r) : () => n[r]; + if (Z(e)) { + const i = t[e]; + z(i) && Nt(s, i); + } else if (z(e)) Nt(s, e.bind(n)); + else if (le(e)) + if ($(e)) e.forEach((i) => Aa(i, t, n, r)); + else { + const i = z(e.handler) ? e.handler.bind(n) : t[e.handler]; + z(i) && Nt(s, i, e); + } +} +function Oo(e) { + const t = e.type, + { mixins: n, extends: r } = t, + { + mixins: s, + optionsCache: i, + config: { optionMergeStrategies: o }, + } = e.appContext, + l = i.get(t); + let c; + return ( + l + ? (c = l) + : !s.length && !n && !r + ? (c = t) + : ((c = {}), s.length && s.forEach((a) => Yr(c, a, o, !0)), Yr(c, t, o)), + le(t) && i.set(t, c), + c + ); +} +function Yr(e, t, n, r = !1) { + const { mixins: s, extends: i } = t; + i && Yr(e, i, n, !0), s && s.forEach((o) => Yr(e, o, n, !0)); + for (const o in t) + if (!(r && o === "expose")) { + const l = zp[o] || (n && n[o]); + e[o] = l ? l(e[o], t[o]) : t[o]; + } + return e; +} +const zp = { + data: Il, + props: Fl, + emits: Fl, + methods: Hn, + computed: Hn, + beforeCreate: Re, + created: Re, + beforeMount: Re, + mounted: Re, + beforeUpdate: Re, + updated: Re, + beforeDestroy: Re, + beforeUnmount: Re, + destroyed: Re, + unmounted: Re, + activated: Re, + deactivated: Re, + errorCaptured: Re, + serverPrefetch: Re, + components: Hn, + directives: Hn, + watch: Gp, + provide: Il, + inject: Jp, +}; +function Il(e, t) { + return t + ? e + ? function () { + return ee( + z(e) ? e.call(this, this) : e, + z(t) ? t.call(this, this) : t, + ); + } + : t + : e; +} +function Jp(e, t) { + return Hn(Ni(e), Ni(t)); +} +function Ni(e) { + if ($(e)) { + const t = {}; + for (let n = 0; n < e.length; n++) t[e[n]] = e[n]; + return t; + } + return e; +} +function Re(e, t) { + return e ? [...new Set([].concat(e, t))] : t; +} +function Hn(e, t) { + return e ? ee(Object.create(null), e, t) : t; +} +function Fl(e, t) { + return e + ? $(e) && $(t) + ? [...new Set([...e, ...t])] + : ee(Object.create(null), er(e), er(t ?? {})) + : t; +} +function Gp(e, t) { + if (!e) return t; + if (!t) return e; + const n = ee(Object.create(null), e); + for (const r in t) n[r] = Re(e[r], t[r]); + return n; +} +function Ra() { + return { + app: null, + config: { + isNativeTag: xr, + performance: !1, + globalProperties: {}, + optionMergeStrategies: {}, + errorHandler: void 0, + warnHandler: void 0, + compilerOptions: {}, + }, + mixins: [], + components: {}, + directives: {}, + provides: Object.create(null), + optionsCache: new WeakMap(), + propsCache: new WeakMap(), + emitsCache: new WeakMap(), + }; +} +let Zp = 0; +function Qp(e, t) { + return function (r, s = null) { + z(r) || (r = ee({}, r)), s != null && !le(s) && (s = null); + const i = Ra(), + o = new Set(); + let l = !1; + const c = (i.app = { + _uid: Zp++, + _component: r, + _props: s, + _container: null, + _context: i, + _instance: null, + version: tu, + get config() { + return i.config; + }, + set config(a) {}, + use(a, ...u) { + return ( + o.has(a) || + (a && z(a.install) + ? (o.add(a), a.install(c, ...u)) + : z(a) && (o.add(a), a(c, ...u))), + c + ); + }, + mixin(a) { + return i.mixins.includes(a) || i.mixins.push(a), c; + }, + component(a, u) { + return u ? ((i.components[a] = u), c) : i.components[a]; + }, + directive(a, u) { + return u ? ((i.directives[a] = u), c) : i.directives[a]; + }, + mount(a, u, d) { + if (!l) { + const v = ae(r, s); + return ( + (v.appContext = i), + u && t ? t(v, a) : e(v, a, d), + (l = !0), + (c._container = a), + (a.__vue_app__ = c), + Ds(v.component) || v.component.proxy + ); + } + }, + unmount() { + l && (e(null, c._container), delete c._container.__vue_app__); + }, + provide(a, u) { + return (i.provides[a] = u), c; + }, + runWithContext(a) { + tr = c; + try { + return a(); + } finally { + tr = null; + } + }, + }); + return c; + }; +} +let tr = null; +function Pa(e, t) { + if (ge) { + let n = ge.provides; + const r = ge.parent && ge.parent.provides; + r === n && (n = ge.provides = Object.create(r)), (n[e] = t); + } +} +function yn(e, t, n = !1) { + const r = ge || Ee; + if (r || tr) { + const s = r + ? r.parent == null + ? r.vnode.appContext && r.vnode.appContext.provides + : r.parent.provides + : tr._context.provides; + if (s && e in s) return s[e]; + if (arguments.length > 1) return n && z(t) ? t.call(r && r.proxy) : t; + } +} +function Ia() { + return !!(ge || Ee || tr); +} +function Yp(e, t, n, r = !1) { + const s = {}, + i = {}; + zr(i, Ls, 1), (e.propsDefaults = Object.create(null)), Fa(e, t, s, i); + for (const o in e.propsOptions[0]) o in s || (s[o] = void 0); + n ? (e.props = r ? s : ta(s)) : e.type.props ? (e.props = s) : (e.props = i), + (e.attrs = i); +} +function Xp(e, t, n, r) { + const { + props: s, + attrs: i, + vnode: { patchFlag: o }, + } = e, + l = X(s), + [c] = e.propsOptions; + let a = !1; + if ((r || o > 0) && !(o & 16)) { + if (o & 8) { + const u = e.vnode.dynamicProps; + for (let d = 0; d < u.length; d++) { + let v = u[d]; + if (Os(e.emitsOptions, v)) continue; + const h = t[v]; + if (c) + if (re(i, v)) h !== i[v] && ((i[v] = h), (a = !0)); + else { + const g = ye(v); + s[g] = Ai(c, l, g, h, e, !1); + } + else h !== i[v] && ((i[v] = h), (a = !0)); + } + } + } else { + Fa(e, t, s, i) && (a = !0); + let u; + for (const d in l) + (!t || (!re(t, d) && ((u = je(d)) === d || !re(t, u)))) && + (c + ? n && + (n[d] !== void 0 || n[u] !== void 0) && + (s[d] = Ai(c, l, d, void 0, e, !0)) + : delete s[d]); + if (i !== l) + for (const d in i) (!t || !re(t, d)) && (delete i[d], (a = !0)); + } + a && mt(e, "set", "$attrs"); +} +function Fa(e, t, n, r) { + const [s, i] = e.propsOptions; + let o = !1, + l; + if (t) + for (let c in t) { + if (Vt(c)) continue; + const a = t[c]; + let u; + s && re(s, (u = ye(c))) + ? !i || !i.includes(u) + ? (n[u] = a) + : ((l || (l = {}))[u] = a) + : Os(e.emitsOptions, c) || + ((!(c in r) || a !== r[c]) && ((r[c] = a), (o = !0))); + } + if (i) { + const c = X(n), + a = l || oe; + for (let u = 0; u < i.length; u++) { + const d = i[u]; + n[d] = Ai(s, c, d, a[d], e, !re(a, d)); + } + } + return o; +} +function Ai(e, t, n, r, s, i) { + const o = e[n]; + if (o != null) { + const l = re(o, "default"); + if (l && r === void 0) { + const c = o.default; + if (o.type !== Function && !o.skipFactory && z(c)) { + const { propsDefaults: a } = s; + n in a ? (r = a[n]) : (Mt(s), (r = a[n] = c.call(null, t)), At()); + } else r = c; + } + o[0] && + (i && !l ? (r = !1) : o[1] && (r === "" || r === je(n)) && (r = !0)); + } + return r; +} +function ka(e, t, n = !1) { + const r = t.propsCache, + s = r.get(e); + if (s) return s; + const i = e.props, + o = {}, + l = []; + let c = !1; + if (!z(e)) { + const u = (d) => { + c = !0; + const [v, h] = ka(d, t, !0); + ee(o, v), h && l.push(...h); + }; + !n && t.mixins.length && t.mixins.forEach(u), + e.extends && u(e.extends), + e.mixins && e.mixins.forEach(u); + } + if (!i && !c) return le(e) && r.set(e, fn), fn; + if ($(i)) + for (let u = 0; u < i.length; u++) { + const d = ye(i[u]); + kl(d) && (o[d] = oe); + } + else if (i) + for (const u in i) { + const d = ye(u); + if (kl(d)) { + const v = i[u], + h = (o[d] = $(v) || z(v) ? { type: v } : ee({}, v)); + if (h) { + const g = Dl(Boolean, h.type), + p = Dl(String, h.type); + (h[0] = g > -1), + (h[1] = p < 0 || g < p), + (g > -1 || re(h, "default")) && l.push(d); + } + } + } + const a = [o, l]; + return le(e) && r.set(e, a), a; +} +function kl(e) { + return e[0] !== "$"; +} +function Ml(e) { + const t = e && e.toString().match(/^\s*(function|class) (\w+)/); + return t ? t[2] : e === null ? "null" : ""; +} +function Ll(e, t) { + return Ml(e) === Ml(t); +} +function Dl(e, t) { + return $(t) ? t.findIndex((n) => Ll(n, e)) : z(t) && Ll(t, e) ? 0 : -1; +} +const Ma = (e) => e[0] === "_" || e === "$stable", + No = (e) => ($(e) ? e.map(xe) : [xe(e)]), + eh = (e, t, n) => { + if (t._n) return t; + const r = vo((...s) => No(t(...s)), n); + return (r._c = !1), r; + }, + La = (e, t, n) => { + const r = e._ctx; + for (const s in e) { + if (Ma(s)) continue; + const i = e[s]; + if (z(i)) t[s] = eh(s, i, r); + else if (i != null) { + const o = No(i); + t[s] = () => o; + } + } + }, + Da = (e, t) => { + const n = No(t); + e.slots.default = () => n; + }, + th = (e, t) => { + if (e.vnode.shapeFlag & 32) { + const n = t._; + n ? ((e.slots = X(t)), zr(t, "_", n)) : La(t, (e.slots = {})); + } else (e.slots = {}), t && Da(e, t); + zr(e.slots, Ls, 1); + }, + nh = (e, t, n) => { + const { vnode: r, slots: s } = e; + let i = !0, + o = oe; + if (r.shapeFlag & 32) { + const l = t._; + l + ? n && l === 1 + ? (i = !1) + : (ee(s, t), !n && l === 1 && delete s._) + : ((i = !t.$stable), La(t, s)), + (o = t); + } else t && (Da(e, t), (o = { default: 1 })); + if (i) for (const l in s) !Ma(l) && !(l in o) && delete s[l]; + }; +function Xr(e, t, n, r, s = !1) { + if ($(e)) { + e.forEach((v, h) => Xr(v, t && ($(t) ? t[h] : t), n, r, s)); + return; + } + if (Kt(r) && !s) return; + const i = r.shapeFlag & 4 ? Ds(r.component) || r.component.proxy : r.el, + o = s ? null : i, + { i: l, r: c } = e, + a = t && t.r, + u = l.refs === oe ? (l.refs = {}) : l.refs, + d = l.setupState; + if ( + (a != null && + a !== c && + (Z(a) + ? ((u[a] = null), re(d, a) && (d[a] = null)) + : de(a) && (a.value = null)), + z(c)) + ) + pt(c, l, 12, [o, u]); + else { + const v = Z(c), + h = de(c); + if (v || h) { + const g = () => { + if (e.f) { + const p = v ? (re(d, c) ? d[c] : u[c]) : c.value; + s + ? $(p) && no(p, i) + : $(p) + ? p.includes(i) || p.push(i) + : v + ? ((u[c] = [i]), re(d, c) && (d[c] = u[c])) + : ((c.value = [i]), e.k && (u[e.k] = c.value)); + } else + v + ? ((u[c] = o), re(d, c) && (d[c] = o)) + : h && ((c.value = o), e.k && (u[e.k] = o)); + }; + o ? ((g.id = -1), we(g, n)) : g(); + } + } +} +let vt = !1; +const Pr = (e) => /svg/.test(e.namespaceURI) && e.tagName !== "foreignObject", + Ir = (e) => e.nodeType === 8; +function rh(e) { + const { + mt: t, + p: n, + o: { + patchProp: r, + createText: s, + nextSibling: i, + parentNode: o, + remove: l, + insert: c, + createComment: a, + }, + } = e, + u = (m, f) => { + if (!f.hasChildNodes()) { + n(null, m, f), Qr(), (f._vnode = m); + return; + } + (vt = !1), d(f.firstChild, m, null, null, null), Qr(), (f._vnode = m); + }, + d = (m, f, E, y, w, O = !1) => { + const N = Ir(m) && m.data === "[", + _ = () => p(m, f, E, y, w, N), + { type: C, ref: A, shapeFlag: P, patchFlag: I } = f; + let L = m.nodeType; + (f.el = m), I === -2 && ((O = !1), (f.dynamicChildren = null)); + let B = null; + switch (C) { + case Zt: + L !== 3 + ? f.children === "" + ? (c((f.el = s("")), o(m), m), (B = m)) + : (B = _()) + : (m.data !== f.children && ((vt = !0), (m.data = f.children)), + (B = i(m))); + break; + case Ne: + L !== 8 || N ? (B = _()) : (B = i(m)); + break; + case Wt: + if ((N && ((m = i(m)), (L = m.nodeType)), L === 1 || L === 3)) { + B = m; + const G = !f.children.length; + for (let W = 0; W < f.staticCount; W++) + G && (f.children += B.nodeType === 1 ? B.outerHTML : B.data), + W === f.staticCount - 1 && (f.anchor = B), + (B = i(B)); + return N ? i(B) : B; + } else _(); + break; + case Te: + N ? (B = g(m, f, E, y, w, O)) : (B = _()); + break; + default: + if (P & 1) + L !== 1 || f.type.toLowerCase() !== m.tagName.toLowerCase() + ? (B = _()) + : (B = v(m, f, E, y, w, O)); + else if (P & 6) { + f.slotScopeIds = w; + const G = o(m); + if ( + (t(f, G, null, E, y, Pr(G), O), + (B = N ? b(m) : i(m)), + B && Ir(B) && B.data === "teleport end" && (B = i(B)), + Kt(f)) + ) { + let W; + N + ? ((W = ae(Te)), + (W.anchor = B ? B.previousSibling : G.lastChild)) + : (W = m.nodeType === 3 ? Io("") : ae("div")), + (W.el = m), + (f.component.subTree = W); + } + } else + P & 64 + ? L !== 8 + ? (B = _()) + : (B = f.type.hydrate(m, f, E, y, w, O, e, h)) + : P & 128 && + (B = f.type.hydrate(m, f, E, y, Pr(o(m)), w, O, e, d)); + } + return A != null && Xr(A, null, y, f), B; + }, + v = (m, f, E, y, w, O) => { + O = O || !!f.dynamicChildren; + const { type: N, props: _, patchFlag: C, shapeFlag: A, dirs: P } = f, + I = (N === "input" && P) || N === "option"; + if (I || C !== -1) { + if ((P && rt(f, null, E, "created"), _)) + if (I || !O || C & 48) + for (const B in _) + ((I && B.endsWith("value")) || (Xt(B) && !Vt(B))) && + r(m, B, null, _[B], !1, void 0, E); + else _.onClick && r(m, "onClick", null, _.onClick, !1, void 0, E); + let L; + if ( + ((L = _ && _.onVnodeBeforeMount) && Ie(L, E, f), + P && rt(f, null, E, "beforeMount"), + ((L = _ && _.onVnodeMounted) || P) && + fa(() => { + L && Ie(L, E, f), P && rt(f, null, E, "mounted"); + }, y), + A & 16 && !(_ && (_.innerHTML || _.textContent))) + ) { + let B = h(m.firstChild, f, m, E, y, w, O); + for (; B; ) { + vt = !0; + const G = B; + (B = B.nextSibling), l(G); + } + } else + A & 8 && + m.textContent !== f.children && + ((vt = !0), (m.textContent = f.children)); + } + return m.nextSibling; + }, + h = (m, f, E, y, w, O, N) => { + N = N || !!f.dynamicChildren; + const _ = f.children, + C = _.length; + for (let A = 0; A < C; A++) { + const P = N ? _[A] : (_[A] = xe(_[A])); + if (m) m = d(m, P, y, w, O, N); + else { + if (P.type === Zt && !P.children) continue; + (vt = !0), n(null, P, E, null, y, w, Pr(E), O); + } + } + return m; + }, + g = (m, f, E, y, w, O) => { + const { slotScopeIds: N } = f; + N && (w = w ? w.concat(N) : N); + const _ = o(m), + C = h(i(m), f, _, E, y, w, O); + return C && Ir(C) && C.data === "]" + ? i((f.anchor = C)) + : ((vt = !0), c((f.anchor = a("]")), _, C), C); + }, + p = (m, f, E, y, w, O) => { + if (((vt = !0), (f.el = null), O)) { + const C = b(m); + for (;;) { + const A = i(m); + if (A && A !== C) l(A); + else break; + } + } + const N = i(m), + _ = o(m); + return l(m), n(null, f, _, N, E, y, Pr(_), w), N; + }, + b = (m) => { + let f = 0; + for (; m; ) + if ( + ((m = i(m)), m && Ir(m) && (m.data === "[" && f++, m.data === "]")) + ) { + if (f === 0) return i(m); + f--; + } + return m; + }; + return [u, d]; +} +const we = fa; +function Ba(e) { + return ja(e); +} +function xa(e) { + return ja(e, rh); +} +function ja(e, t) { + const n = vi(); + n.__VUE__ = !0; + const { + insert: r, + remove: s, + patchProp: i, + createElement: o, + createText: l, + createComment: c, + setText: a, + setElementText: u, + parentNode: d, + nextSibling: v, + setScopeId: h = Pe, + insertStaticContent: g, + } = e, + p = ( + S, + T, + R, + M = null, + k = null, + j = null, + U = !1, + x = null, + H = !!T.dynamicChildren, + ) => { + if (S === T) return; + S && !Ye(S, T) && ((M = Sr(S)), _e(S, k, j, !0), (S = null)), + T.patchFlag === -2 && ((H = !1), (T.dynamicChildren = null)); + const { type: D, ref: q, shapeFlag: V } = T; + switch (D) { + case Zt: + b(S, T, R, M); + break; + case Ne: + m(S, T, R, M); + break; + case Wt: + S == null && f(T, R, M, U); + break; + case Te: + I(S, T, R, M, k, j, U, x, H); + break; + default: + V & 1 + ? w(S, T, R, M, k, j, U, x, H) + : V & 6 + ? L(S, T, R, M, k, j, U, x, H) + : (V & 64 || V & 128) && D.process(S, T, R, M, k, j, U, x, H, rn); + } + q != null && k && Xr(q, S && S.ref, j, T || S, !T); + }, + b = (S, T, R, M) => { + if (S == null) r((T.el = l(T.children)), R, M); + else { + const k = (T.el = S.el); + T.children !== S.children && a(k, T.children); + } + }, + m = (S, T, R, M) => { + S == null ? r((T.el = c(T.children || "")), R, M) : (T.el = S.el); + }, + f = (S, T, R, M) => { + [S.el, S.anchor] = g(S.children, T, R, M, S.el, S.anchor); + }, + E = ({ el: S, anchor: T }, R, M) => { + let k; + for (; S && S !== T; ) (k = v(S)), r(S, R, M), (S = k); + r(T, R, M); + }, + y = ({ el: S, anchor: T }) => { + let R; + for (; S && S !== T; ) (R = v(S)), s(S), (S = R); + s(T); + }, + w = (S, T, R, M, k, j, U, x, H) => { + (U = U || T.type === "svg"), + S == null ? O(T, R, M, k, j, U, x, H) : C(S, T, k, j, U, x, H); + }, + O = (S, T, R, M, k, j, U, x) => { + let H, D; + const { type: q, props: V, shapeFlag: K, transition: J, dirs: Y } = S; + if ( + ((H = S.el = o(S.type, j, V && V.is, V)), + K & 8 + ? u(H, S.children) + : K & 16 && + _(S.children, H, null, M, k, j && q !== "foreignObject", U, x), + Y && rt(S, null, M, "created"), + N(H, S, S.scopeId, U, M), + V) + ) { + for (const ce in V) + ce !== "value" && + !Vt(ce) && + i(H, ce, null, V[ce], j, S.children, M, k, ct); + "value" in V && i(H, "value", null, V.value), + (D = V.onVnodeBeforeMount) && Ie(D, M, S); + } + Y && rt(S, null, M, "beforeMount"); + const ue = (!k || (k && !k.pendingBranch)) && J && !J.persisted; + ue && J.beforeEnter(H), + r(H, T, R), + ((D = V && V.onVnodeMounted) || ue || Y) && + we(() => { + D && Ie(D, M, S), ue && J.enter(H), Y && rt(S, null, M, "mounted"); + }, k); + }, + N = (S, T, R, M, k) => { + if ((R && h(S, R), M)) for (let j = 0; j < M.length; j++) h(S, M[j]); + if (k) { + let j = k.subTree; + if (T === j) { + const U = k.vnode; + N(S, U, U.scopeId, U.slotScopeIds, k.parent); + } + } + }, + _ = (S, T, R, M, k, j, U, x, H = 0) => { + for (let D = H; D < S.length; D++) { + const q = (S[D] = x ? Tt(S[D]) : xe(S[D])); + p(null, q, T, R, M, k, j, U, x); + } + }, + C = (S, T, R, M, k, j, U) => { + const x = (T.el = S.el); + let { patchFlag: H, dynamicChildren: D, dirs: q } = T; + H |= S.patchFlag & 16; + const V = S.props || oe, + K = T.props || oe; + let J; + R && Bt(R, !1), + (J = K.onVnodeBeforeUpdate) && Ie(J, R, T, S), + q && rt(T, S, R, "beforeUpdate"), + R && Bt(R, !0); + const Y = k && T.type !== "foreignObject"; + if ( + (D + ? A(S.dynamicChildren, D, x, R, M, Y, j) + : U || ne(S, T, x, null, R, M, Y, j, !1), + H > 0) + ) { + if (H & 16) P(x, T, V, K, R, M, k); + else if ( + (H & 2 && V.class !== K.class && i(x, "class", null, K.class, k), + H & 4 && i(x, "style", V.style, K.style, k), + H & 8) + ) { + const ue = T.dynamicProps; + for (let ce = 0; ce < ue.length; ce++) { + const he = ue[ce], + Ze = V[he], + sn = K[he]; + (sn !== Ze || he === "value") && + i(x, he, Ze, sn, k, S.children, R, M, ct); + } + } + H & 1 && S.children !== T.children && u(x, T.children); + } else !U && D == null && P(x, T, V, K, R, M, k); + ((J = K.onVnodeUpdated) || q) && + we(() => { + J && Ie(J, R, T, S), q && rt(T, S, R, "updated"); + }, M); + }, + A = (S, T, R, M, k, j, U) => { + for (let x = 0; x < T.length; x++) { + const H = S[x], + D = T[x], + q = + H.el && (H.type === Te || !Ye(H, D) || H.shapeFlag & 70) + ? d(H.el) + : R; + p(H, D, q, null, M, k, j, U, !0); + } + }, + P = (S, T, R, M, k, j, U) => { + if (R !== M) { + if (R !== oe) + for (const x in R) + !Vt(x) && !(x in M) && i(S, x, R[x], null, U, T.children, k, j, ct); + for (const x in M) { + if (Vt(x)) continue; + const H = M[x], + D = R[x]; + H !== D && x !== "value" && i(S, x, D, H, U, T.children, k, j, ct); + } + "value" in M && i(S, "value", R.value, M.value); + } + }, + I = (S, T, R, M, k, j, U, x, H) => { + const D = (T.el = S ? S.el : l("")), + q = (T.anchor = S ? S.anchor : l("")); + let { patchFlag: V, dynamicChildren: K, slotScopeIds: J } = T; + J && (x = x ? x.concat(J) : J), + S == null + ? (r(D, R, M), r(q, R, M), _(T.children, R, q, k, j, U, x, H)) + : V > 0 && V & 64 && K && S.dynamicChildren + ? (A(S.dynamicChildren, K, R, k, j, U, x), + (T.key != null || (k && T === k.subTree)) && Ao(S, T, !0)) + : ne(S, T, R, q, k, j, U, x, H); + }, + L = (S, T, R, M, k, j, U, x, H) => { + (T.slotScopeIds = x), + S == null + ? T.shapeFlag & 512 + ? k.ctx.activate(T, R, M, U, H) + : B(T, R, M, k, j, U, H) + : G(S, T, H); + }, + B = (S, T, R, M, k, j, U) => { + const x = (S.component = Ka(S, M, k)); + if ((hr(S) && (x.ctx.renderer = rn), za(x), x.asyncDep)) { + if ((k && k.registerDep(x, W), !S.el)) { + const H = (x.subTree = ae(Ne)); + m(null, H, T, R); + } + return; + } + W(x, S, T, R, k, j, U); + }, + G = (S, T, R) => { + const M = (T.component = S.component); + if (ip(S, T, R)) + if (M.asyncDep && !M.asyncResolved) { + te(M, T, R); + return; + } else (M.next = T), Zd(M.update), M.update(); + else (T.el = S.el), (M.vnode = T); + }, + W = (S, T, R, M, k, j, U) => { + const x = () => { + if (S.isMounted) { + let { next: q, bu: V, u: K, parent: J, vnode: Y } = S, + ue = q, + ce; + Bt(S, !1), + q ? ((q.el = Y.el), te(S, q, U)) : (q = Y), + V && hn(V), + (ce = q.props && q.props.onVnodeBeforeUpdate) && Ie(ce, J, q, Y), + Bt(S, !0); + const he = jr(S), + Ze = S.subTree; + (S.subTree = he), + p(Ze, he, d(Ze.el), Sr(Ze), S, k, j), + (q.el = he.el), + ue === null && _o(S, he.el), + K && we(K, k), + (ce = q.props && q.props.onVnodeUpdated) && + we(() => Ie(ce, J, q, Y), k); + } else { + let q; + const { el: V, props: K } = T, + { bm: J, m: Y, parent: ue } = S, + ce = Kt(T); + if ( + (Bt(S, !1), + J && hn(J), + !ce && (q = K && K.onVnodeBeforeMount) && Ie(q, ue, T), + Bt(S, !0), + V && Qs) + ) { + const he = () => { + (S.subTree = jr(S)), Qs(V, S.subTree, S, k, null); + }; + ce + ? T.type.__asyncLoader().then(() => !S.isUnmounted && he()) + : he(); + } else { + const he = (S.subTree = jr(S)); + p(null, he, R, M, S, k, j), (T.el = he.el); + } + if ((Y && we(Y, k), !ce && (q = K && K.onVnodeMounted))) { + const he = T; + we(() => Ie(q, ue, he), k); + } + (T.shapeFlag & 256 || + (ue && Kt(ue.vnode) && ue.vnode.shapeFlag & 256)) && + S.a && + we(S.a, k), + (S.isMounted = !0), + (T = R = M = null); + } + }, + H = (S.effect = new fr(x, () => Cs(D), S.scope)), + D = (S.update = () => H.run()); + (D.id = S.uid), Bt(S, !0), D(); + }, + te = (S, T, R) => { + T.component = S; + const M = S.vnode.props; + (S.vnode = T), + (S.next = null), + Xp(S, T.props, M, R), + nh(S, T.children, R), + An(), + Cl(), + Rn(); + }, + ne = (S, T, R, M, k, j, U, x, H = !1) => { + const D = S && S.children, + q = S ? S.shapeFlag : 0, + V = T.children, + { patchFlag: K, shapeFlag: J } = T; + if (K > 0) { + if (K & 128) { + Dt(D, V, R, M, k, j, U, x, H); + return; + } else if (K & 256) { + Se(D, V, R, M, k, j, U, x, H); + return; + } + } + J & 8 + ? (q & 16 && ct(D, k, j), V !== D && u(R, V)) + : q & 16 + ? J & 16 + ? Dt(D, V, R, M, k, j, U, x, H) + : ct(D, k, j, !0) + : (q & 8 && u(R, ""), J & 16 && _(V, R, M, k, j, U, x, H)); + }, + Se = (S, T, R, M, k, j, U, x, H) => { + (S = S || fn), (T = T || fn); + const D = S.length, + q = T.length, + V = Math.min(D, q); + let K; + for (K = 0; K < V; K++) { + const J = (T[K] = H ? Tt(T[K]) : xe(T[K])); + p(S[K], J, R, null, k, j, U, x, H); + } + D > q ? ct(S, k, j, !0, !1, V) : _(T, R, M, k, j, U, x, H, V); + }, + Dt = (S, T, R, M, k, j, U, x, H) => { + let D = 0; + const q = T.length; + let V = S.length - 1, + K = q - 1; + for (; D <= V && D <= K; ) { + const J = S[D], + Y = (T[D] = H ? Tt(T[D]) : xe(T[D])); + if (Ye(J, Y)) p(J, Y, R, null, k, j, U, x, H); + else break; + D++; + } + for (; D <= V && D <= K; ) { + const J = S[V], + Y = (T[K] = H ? Tt(T[K]) : xe(T[K])); + if (Ye(J, Y)) p(J, Y, R, null, k, j, U, x, H); + else break; + V--, K--; + } + if (D > V) { + if (D <= K) { + const J = K + 1, + Y = J < q ? T[J].el : M; + for (; D <= K; ) + p(null, (T[D] = H ? Tt(T[D]) : xe(T[D])), R, Y, k, j, U, x, H), D++; + } + } else if (D > K) for (; D <= V; ) _e(S[D], k, j, !0), D++; + else { + const J = D, + Y = D, + ue = new Map(); + for (D = Y; D <= K; D++) { + const De = (T[D] = H ? Tt(T[D]) : xe(T[D])); + De.key != null && ue.set(De.key, D); + } + let ce, + he = 0; + const Ze = K - Y + 1; + let sn = !1, + pl = 0; + const kn = new Array(Ze); + for (D = 0; D < Ze; D++) kn[D] = 0; + for (D = J; D <= V; D++) { + const De = S[D]; + if (he >= Ze) { + _e(De, k, j, !0); + continue; + } + let nt; + if (De.key != null) nt = ue.get(De.key); + else + for (ce = Y; ce <= K; ce++) + if (kn[ce - Y] === 0 && Ye(De, T[ce])) { + nt = ce; + break; + } + nt === void 0 + ? _e(De, k, j, !0) + : ((kn[nt - Y] = D + 1), + nt >= pl ? (pl = nt) : (sn = !0), + p(De, T[nt], R, null, k, j, U, x, H), + he++); + } + const hl = sn ? sh(kn) : fn; + for (ce = hl.length - 1, D = Ze - 1; D >= 0; D--) { + const De = Y + D, + nt = T[De], + ml = De + 1 < q ? T[De + 1].el : M; + kn[D] === 0 + ? p(null, nt, R, ml, k, j, U, x, H) + : sn && (ce < 0 || D !== hl[ce] ? Ge(nt, R, ml, 2) : ce--); + } + } + }, + Ge = (S, T, R, M, k = null) => { + const { el: j, type: U, transition: x, children: H, shapeFlag: D } = S; + if (D & 6) { + Ge(S.component.subTree, T, R, M); + return; + } + if (D & 128) { + S.suspense.move(T, R, M); + return; + } + if (D & 64) { + U.move(S, T, R, rn); + return; + } + if (U === Te) { + r(j, T, R); + for (let V = 0; V < H.length; V++) Ge(H[V], T, R, M); + r(S.anchor, T, R); + return; + } + if (U === Wt) { + E(S, T, R); + return; + } + if (M !== 2 && D & 1 && x) + if (M === 0) x.beforeEnter(j), r(j, T, R), we(() => x.enter(j), k); + else { + const { leave: V, delayLeave: K, afterLeave: J } = x, + Y = () => r(j, T, R), + ue = () => { + V(j, () => { + Y(), J && J(); + }); + }; + K ? K(j, Y, ue) : ue(); + } + else r(j, T, R); + }, + _e = (S, T, R, M = !1, k = !1) => { + const { + type: j, + props: U, + ref: x, + children: H, + dynamicChildren: D, + shapeFlag: q, + patchFlag: V, + dirs: K, + } = S; + if ((x != null && Xr(x, null, R, S, !0), q & 256)) { + T.ctx.deactivate(S); + return; + } + const J = q & 1 && K, + Y = !Kt(S); + let ue; + if ((Y && (ue = U && U.onVnodeBeforeUnmount) && Ie(ue, T, S), q & 6)) + Fn(S.component, R, M); + else { + if (q & 128) { + S.suspense.unmount(R, M); + return; + } + J && rt(S, null, T, "beforeUnmount"), + q & 64 + ? S.type.remove(S, T, R, k, rn, M) + : D && (j !== Te || (V > 0 && V & 64)) + ? ct(D, T, R, !1, !0) + : ((j === Te && V & 384) || (!k && q & 16)) && ct(H, T, R), + M && In(S); + } + ((Y && (ue = U && U.onVnodeUnmounted)) || J) && + we(() => { + ue && Ie(ue, T, S), J && rt(S, null, T, "unmounted"); + }, R); + }, + In = (S) => { + const { type: T, el: R, anchor: M, transition: k } = S; + if (T === Te) { + Gs(R, M); + return; + } + if (T === Wt) { + y(S); + return; + } + const j = () => { + s(R), k && !k.persisted && k.afterLeave && k.afterLeave(); + }; + if (S.shapeFlag & 1 && k && !k.persisted) { + const { leave: U, delayLeave: x } = k, + H = () => U(R, j); + x ? x(S.el, j, H) : H(); + } else j(); + }, + Gs = (S, T) => { + let R; + for (; S !== T; ) (R = v(S)), s(S), (S = R); + s(T); + }, + Fn = (S, T, R) => { + const { bum: M, scope: k, update: j, subTree: U, um: x } = S; + M && hn(M), + k.stop(), + j && ((j.active = !1), _e(U, S, T, R)), + x && we(x, T), + we(() => { + S.isUnmounted = !0; + }, T), + T && + T.pendingBranch && + !T.isUnmounted && + S.asyncDep && + !S.asyncResolved && + S.suspenseId === T.pendingId && + (T.deps--, T.deps === 0 && T.resolve()); + }, + ct = (S, T, R, M = !1, k = !1, j = 0) => { + for (let U = j; U < S.length; U++) _e(S[U], T, R, M, k); + }, + Sr = (S) => + S.shapeFlag & 6 + ? Sr(S.component.subTree) + : S.shapeFlag & 128 + ? S.suspense.next() + : v(S.anchor || S.el), + dl = (S, T, R) => { + S == null + ? T._vnode && _e(T._vnode, null, null, !0) + : p(T._vnode || null, S, T, null, null, null, R), + Cl(), + Qr(), + (T._vnode = S); + }, + rn = { p, um: _e, m: Ge, r: In, mt: B, mc: _, pc: ne, pbc: A, n: Sr, o: e }; + let Zs, Qs; + return ( + t && ([Zs, Qs] = t(rn)), { render: dl, hydrate: Zs, createApp: Qp(dl, Zs) } + ); +} +function Bt({ effect: e, update: t }, n) { + e.allowRecurse = t.allowRecurse = n; +} +function Ao(e, t, n = !1) { + const r = e.children, + s = t.children; + if ($(r) && $(s)) + for (let i = 0; i < r.length; i++) { + const o = r[i]; + let l = s[i]; + l.shapeFlag & 1 && + !l.dynamicChildren && + ((l.patchFlag <= 0 || l.patchFlag === 32) && + ((l = s[i] = Tt(s[i])), (l.el = o.el)), + n || Ao(o, l)), + l.type === Zt && (l.el = o.el); + } +} +function sh(e) { + const t = e.slice(), + n = [0]; + let r, s, i, o, l; + const c = e.length; + for (r = 0; r < c; r++) { + const a = e[r]; + if (a !== 0) { + if (((s = n[n.length - 1]), e[s] < a)) { + (t[r] = s), n.push(r); + continue; + } + for (i = 0, o = n.length - 1; i < o; ) + (l = (i + o) >> 1), e[n[l]] < a ? (i = l + 1) : (o = l); + a < e[n[i]] && (i > 0 && (t[r] = n[i - 1]), (n[i] = r)); + } + } + for (i = n.length, o = n[i - 1]; i-- > 0; ) (n[i] = o), (o = t[o]); + return n; +} +const ih = (e) => e.__isTeleport, + Un = (e) => e && (e.disabled || e.disabled === ""), + Bl = (e) => typeof SVGElement < "u" && e instanceof SVGElement, + Ri = (e, t) => { + const n = e && e.to; + return Z(n) ? (t ? t(n) : null) : n; + }, + oh = { + __isTeleport: !0, + process(e, t, n, r, s, i, o, l, c, a) { + const { + mc: u, + pc: d, + pbc: v, + o: { insert: h, querySelector: g, createText: p, createComment: b }, + } = a, + m = Un(t.props); + let { shapeFlag: f, children: E, dynamicChildren: y } = t; + if (e == null) { + const w = (t.el = p("")), + O = (t.anchor = p("")); + h(w, n, r), h(O, n, r); + const N = (t.target = Ri(t.props, g)), + _ = (t.targetAnchor = p("")); + N && (h(_, N), (o = o || Bl(N))); + const C = (A, P) => { + f & 16 && u(E, A, P, s, i, o, l, c); + }; + m ? C(n, O) : N && C(N, _); + } else { + t.el = e.el; + const w = (t.anchor = e.anchor), + O = (t.target = e.target), + N = (t.targetAnchor = e.targetAnchor), + _ = Un(e.props), + C = _ ? n : O, + A = _ ? w : N; + if ( + ((o = o || Bl(O)), + y + ? (v(e.dynamicChildren, y, C, s, i, o, l), Ao(e, t, !0)) + : c || d(e, t, C, A, s, i, o, l, !1), + m) + ) + _ || Fr(t, n, w, a, 1); + else if ((t.props && t.props.to) !== (e.props && e.props.to)) { + const P = (t.target = Ri(t.props, g)); + P && Fr(t, P, null, a, 0); + } else _ && Fr(t, O, N, a, 1); + } + Ha(t); + }, + remove(e, t, n, r, { um: s, o: { remove: i } }, o) { + const { + shapeFlag: l, + children: c, + anchor: a, + targetAnchor: u, + target: d, + props: v, + } = e; + if ((d && i(u), (o || !Un(v)) && (i(a), l & 16))) + for (let h = 0; h < c.length; h++) { + const g = c[h]; + s(g, t, n, !0, !!g.dynamicChildren); + } + }, + move: Fr, + hydrate: lh, + }; +function Fr(e, t, n, { o: { insert: r }, m: s }, i = 2) { + i === 0 && r(e.targetAnchor, t, n); + const { el: o, anchor: l, shapeFlag: c, children: a, props: u } = e, + d = i === 2; + if ((d && r(o, t, n), (!d || Un(u)) && c & 16)) + for (let v = 0; v < a.length; v++) s(a[v], t, n, 2); + d && r(l, t, n); +} +function lh( + e, + t, + n, + r, + s, + i, + { o: { nextSibling: o, parentNode: l, querySelector: c } }, + a, +) { + const u = (t.target = Ri(t.props, c)); + if (u) { + const d = u._lpa || u.firstChild; + if (t.shapeFlag & 16) + if (Un(t.props)) + (t.anchor = a(o(e), t, l(e), n, r, s, i)), (t.targetAnchor = d); + else { + t.anchor = o(e); + let v = d; + for (; v; ) + if ( + ((v = o(v)), v && v.nodeType === 8 && v.data === "teleport anchor") + ) { + (t.targetAnchor = v), + (u._lpa = t.targetAnchor && o(t.targetAnchor)); + break; + } + a(d, t, u, n, r, s, i); + } + Ha(t); + } + return t.anchor && o(t.anchor); +} +const ch = oh; +function Ha(e) { + const t = e.ctx; + if (t && t.ut) { + let n = e.children[0].el; + for (; n !== e.targetAnchor; ) + n.nodeType === 1 && n.setAttribute("data-v-owner", t.uid), + (n = n.nextSibling); + t.ut(); + } +} +const Te = Symbol.for("v-fgt"), + Zt = Symbol.for("v-txt"), + Ne = Symbol.for("v-cmt"), + Wt = Symbol.for("v-stc"), + Vn = []; +let Fe = null; +function Ms(e = !1) { + Vn.push((Fe = e ? null : [])); +} +function $a() { + Vn.pop(), (Fe = Vn[Vn.length - 1] || null); +} +let Qt = 1; +function Pi(e) { + Qt += e; +} +function Ua(e) { + return ( + (e.dynamicChildren = Qt > 0 ? Fe || fn : null), + $a(), + Qt > 0 && Fe && Fe.push(e), + e + ); +} +function ah(e, t, n, r, s, i) { + return Ua(Po(e, t, n, r, s, i, !0)); +} +function Ro(e, t, n, r, s) { + return Ua(ae(e, t, n, r, s, !0)); +} +function kt(e) { + return e ? e.__v_isVNode === !0 : !1; +} +function Ye(e, t) { + return e.type === t.type && e.key === t.key; +} +function uh(e) {} +const Ls = "__vInternal", + Va = ({ key: e }) => e ?? null, + Hr = ({ ref: e, ref_key: t, ref_for: n }) => ( + typeof e == "number" && (e = "" + e), + e != null + ? Z(e) || de(e) || z(e) + ? { i: Ee, r: e, k: t, f: !!n } + : e + : null + ); +function Po( + e, + t = null, + n = null, + r = 0, + s = null, + i = e === Te ? 0 : 1, + o = !1, + l = !1, +) { + const c = { + __v_isVNode: !0, + __v_skip: !0, + type: e, + props: t, + key: t && Va(t), + ref: t && Hr(t), + scopeId: Ns, + slotScopeIds: null, + children: n, + component: null, + suspense: null, + ssContent: null, + ssFallback: null, + dirs: null, + transition: null, + el: null, + anchor: null, + target: null, + targetAnchor: null, + staticCount: 0, + shapeFlag: i, + patchFlag: r, + dynamicProps: s, + dynamicChildren: null, + appContext: null, + ctx: Ee, + }; + return ( + l + ? (Fo(c, n), i & 128 && e.normalize(c)) + : n && (c.shapeFlag |= Z(n) ? 8 : 16), + Qt > 0 && + !o && + Fe && + (c.patchFlag > 0 || i & 6) && + c.patchFlag !== 32 && + Fe.push(c), + c + ); +} +const ae = fh; +function fh(e, t = null, n = null, r = 0, s = null, i = !1) { + if (((!e || e === Ca) && (e = Ne), kt(e))) { + const l = it(e, t, !0); + return ( + n && Fo(l, n), + Qt > 0 && + !i && + Fe && + (l.shapeFlag & 6 ? (Fe[Fe.indexOf(e)] = l) : Fe.push(l)), + (l.patchFlag |= -2), + l + ); + } + if ((vh(e) && (e = e.__vccOpts), t)) { + t = qa(t); + let { class: l, style: c } = t; + l && !Z(l) && (t.class = ur(l)), + le(c) && (fo(c) && !$(c) && (c = ee({}, c)), (t.style = ar(c))); + } + const o = Z(e) ? 1 : ua(e) ? 128 : ih(e) ? 64 : le(e) ? 4 : z(e) ? 2 : 0; + return Po(e, t, n, r, s, o, i, !0); +} +function qa(e) { + return e ? (fo(e) || Ls in e ? ee({}, e) : e) : null; +} +function it(e, t, n = !1) { + const { props: r, ref: s, patchFlag: i, children: o } = e, + l = t ? ko(r || {}, t) : r; + return { + __v_isVNode: !0, + __v_skip: !0, + type: e.type, + props: l, + key: l && Va(l), + ref: + t && t.ref ? (n && s ? ($(s) ? s.concat(Hr(t)) : [s, Hr(t)]) : Hr(t)) : s, + scopeId: e.scopeId, + slotScopeIds: e.slotScopeIds, + children: o, + target: e.target, + targetAnchor: e.targetAnchor, + staticCount: e.staticCount, + shapeFlag: e.shapeFlag, + patchFlag: t && e.type !== Te ? (i === -1 ? 16 : i | 16) : i, + dynamicProps: e.dynamicProps, + dynamicChildren: e.dynamicChildren, + appContext: e.appContext, + dirs: e.dirs, + transition: e.transition, + component: e.component, + suspense: e.suspense, + ssContent: e.ssContent && it(e.ssContent), + ssFallback: e.ssFallback && it(e.ssFallback), + el: e.el, + anchor: e.anchor, + ctx: e.ctx, + ce: e.ce, + }; +} +function Io(e = " ", t = 0) { + return ae(Zt, null, e, t); +} +function dh(e, t) { + const n = ae(Wt, null, e); + return (n.staticCount = t), n; +} +function ph(e = "", t = !1) { + return t ? (Ms(), Ro(Ne, null, e)) : ae(Ne, null, e); +} +function xe(e) { + return e == null || typeof e == "boolean" + ? ae(Ne) + : $(e) + ? ae(Te, null, e.slice()) + : typeof e == "object" + ? Tt(e) + : ae(Zt, null, String(e)); +} +function Tt(e) { + return (e.el === null && e.patchFlag !== -1) || e.memo ? e : it(e); +} +function Fo(e, t) { + let n = 0; + const { shapeFlag: r } = e; + if (t == null) t = null; + else if ($(t)) n = 16; + else if (typeof t == "object") + if (r & 65) { + const s = t.default; + s && (s._c && (s._d = !1), Fo(e, s()), s._c && (s._d = !0)); + return; + } else { + n = 32; + const s = t._; + !s && !(Ls in t) + ? (t._ctx = Ee) + : s === 3 && + Ee && + (Ee.slots._ === 1 ? (t._ = 1) : ((t._ = 2), (e.patchFlag |= 1024))); + } + else + z(t) + ? ((t = { default: t, _ctx: Ee }), (n = 32)) + : ((t = String(t)), r & 64 ? ((n = 16), (t = [Io(t)])) : (n = 8)); + (e.children = t), (e.shapeFlag |= n); +} +function ko(...e) { + const t = {}; + for (let n = 0; n < e.length; n++) { + const r = e[n]; + for (const s in r) + if (s === "class") + t.class !== r.class && (t.class = ur([t.class, r.class])); + else if (s === "style") t.style = ar([t.style, r.style]); + else if (Xt(s)) { + const i = t[s], + o = r[s]; + o && + i !== o && + !($(i) && i.includes(o)) && + (t[s] = i ? [].concat(i, o) : o); + } else s !== "" && (t[s] = r[s]); + } + return t; +} +function Ie(e, t, n, r = null) { + He(e, t, 7, [n, r]); +} +const hh = Ra(); +let mh = 0; +function Ka(e, t, n) { + const r = e.type, + s = (t ? t.appContext : e.appContext) || hh, + i = { + uid: mh++, + vnode: e, + type: r, + parent: t, + appContext: s, + root: null, + next: null, + subTree: null, + effect: null, + update: null, + scope: new io(!0), + render: null, + proxy: null, + exposed: null, + exposeProxy: null, + withProxy: null, + provides: t ? t.provides : Object.create(s.provides), + accessCache: null, + renderCache: [], + components: null, + directives: null, + propsOptions: ka(r, s), + emitsOptions: aa(r, s), + emit: null, + emitted: null, + propsDefaults: oe, + inheritAttrs: r.inheritAttrs, + ctx: oe, + data: oe, + props: oe, + attrs: oe, + slots: oe, + refs: oe, + setupState: oe, + setupContext: null, + attrsProxy: null, + slotsProxy: null, + suspense: n, + suspenseId: n ? n.pendingId : 0, + asyncDep: null, + asyncResolved: !1, + isMounted: !1, + isUnmounted: !1, + isDeactivated: !1, + bc: null, + c: null, + bm: null, + m: null, + bu: null, + u: null, + um: null, + bum: null, + da: null, + a: null, + rtg: null, + rtc: null, + ec: null, + sp: null, + }; + return ( + (i.ctx = { _: i }), + (i.root = t ? t.root : i), + (i.emit = Yd.bind(null, i)), + e.ce && e.ce(i), + i + ); +} +let ge = null; +const yt = () => ge || Ee; +let Mo, + on, + xl = "__VUE_INSTANCE_SETTERS__"; +(on = vi()[xl]) || (on = vi()[xl] = []), + on.push((e) => (ge = e)), + (Mo = (e) => { + on.length > 1 ? on.forEach((t) => t(e)) : on[0](e); + }); +const Mt = (e) => { + Mo(e), e.scope.on(); + }, + At = () => { + ge && ge.scope.off(), Mo(null); + }; +function Wa(e) { + return e.vnode.shapeFlag & 4; +} +let _n = !1; +function za(e, t = !1) { + _n = t; + const { props: n, children: r } = e.vnode, + s = Wa(e); + Yp(e, n, s, t), th(e, r); + const i = s ? gh(e, t) : void 0; + return (_n = !1), i; +} +function gh(e, t) { + const n = e.type; + (e.accessCache = Object.create(null)), (e.proxy = dr(new Proxy(e.ctx, Ci))); + const { setup: r } = n; + if (r) { + const s = (e.setupContext = r.length > 1 ? Za(e) : null); + Mt(e), An(); + const i = pt(r, e, 0, [e.props, s]); + if ((Rn(), At(), ro(i))) { + if ((i.then(At, At), t)) + return i + .then((o) => { + Ii(e, o, t); + }) + .catch((o) => { + nn(o, e, 0); + }); + e.asyncDep = i; + } else Ii(e, i, t); + } else Ga(e, t); +} +function Ii(e, t, n) { + z(t) + ? e.type.__ssrInlineRender + ? (e.ssrRender = t) + : (e.render = t) + : le(t) && (e.setupState = go(t)), + Ga(e, n); +} +let es, Fi; +function Ja(e) { + (es = e), + (Fi = (t) => { + t.render._rc && (t.withProxy = new Proxy(t.ctx, Pp)); + }); +} +const yh = () => !es; +function Ga(e, t, n) { + const r = e.type; + if (!e.render) { + if (!t && es && !r.render) { + const s = r.template || Oo(e).template; + if (s) { + const { isCustomElement: i, compilerOptions: o } = e.appContext.config, + { delimiters: l, compilerOptions: c } = r, + a = ee(ee({ isCustomElement: i, delimiters: l }, o), c); + r.render = es(s, a); + } + } + (e.render = r.render || Pe), Fi && Fi(e); + } + Mt(e), An(), Kp(e), Rn(), At(); +} +function bh(e) { + return ( + e.attrsProxy || + (e.attrsProxy = new Proxy(e.attrs, { + get(t, n) { + return Me(e, "get", "$attrs"), t[n]; + }, + })) + ); +} +function Za(e) { + const t = (n) => { + e.exposed = n || {}; + }; + return { + get attrs() { + return bh(e); + }, + slots: e.slots, + emit: e.emit, + expose: t, + }; +} +function Ds(e) { + if (e.exposed) + return ( + e.exposeProxy || + (e.exposeProxy = new Proxy(go(dr(e.exposed)), { + get(t, n) { + if (n in t) return t[n]; + if (n in $n) return $n[n](e); + }, + has(t, n) { + return n in t || n in $n; + }, + })) + ); +} +function ki(e, t = !0) { + return z(e) ? e.displayName || e.name : e.name || (t && e.__name); +} +function vh(e) { + return z(e) && "__vccOpts" in e; +} +const Lo = (e, t) => Wd(e, t, _n); +function Qa(e, t, n) { + const r = arguments.length; + return r === 2 + ? le(t) && !$(t) + ? kt(t) + ? ae(e, null, [t]) + : ae(e, t) + : ae(e, null, t) + : (r > 3 + ? (n = Array.prototype.slice.call(arguments, 2)) + : r === 3 && kt(n) && (n = [n]), + ae(e, t, n)); +} +const Ya = Symbol.for("v-scx"), + Xa = () => yn(Ya); +function _h() {} +function Eh(e, t, n, r) { + const s = n[r]; + if (s && eu(s, e)) return s; + const i = t(); + return (i.memo = e.slice()), (n[r] = i); +} +function eu(e, t) { + const n = e.memo; + if (n.length != t.length) return !1; + for (let r = 0; r < n.length; r++) if (bn(n[r], t[r])) return !1; + return Qt > 0 && Fe && Fe.push(e), !0; +} +const tu = "3.3.4", + Sh = { + createComponentInstance: Ka, + setupComponent: za, + renderComponentRoot: jr, + setCurrentRenderingInstance: Yn, + isVNode: kt, + normalizeVNode: xe, + }, + wh = Sh, + Th = null, + Ch = null, + Oh = "http://www.w3.org/2000/svg", + Ht = typeof document < "u" ? document : null, + jl = Ht && Ht.createElement("template"), + Nh = { + insert: (e, t, n) => { + t.insertBefore(e, n || null); + }, + remove: (e) => { + const t = e.parentNode; + t && t.removeChild(e); + }, + createElement: (e, t, n, r) => { + const s = t + ? Ht.createElementNS(Oh, e) + : Ht.createElement(e, n ? { is: n } : void 0); + return ( + e === "select" && + r && + r.multiple != null && + s.setAttribute("multiple", r.multiple), + s + ); + }, + createText: (e) => Ht.createTextNode(e), + createComment: (e) => Ht.createComment(e), + setText: (e, t) => { + e.nodeValue = t; + }, + setElementText: (e, t) => { + e.textContent = t; + }, + parentNode: (e) => e.parentNode, + nextSibling: (e) => e.nextSibling, + querySelector: (e) => Ht.querySelector(e), + setScopeId(e, t) { + e.setAttribute(t, ""); + }, + insertStaticContent(e, t, n, r, s, i) { + const o = n ? n.previousSibling : t.lastChild; + if (s && (s === i || s.nextSibling)) + for ( + ; + t.insertBefore(s.cloneNode(!0), n), + !(s === i || !(s = s.nextSibling)); + + ); + else { + jl.innerHTML = r ? `${e}` : e; + const l = jl.content; + if (r) { + const c = l.firstChild; + for (; c.firstChild; ) l.appendChild(c.firstChild); + l.removeChild(c); + } + t.insertBefore(l, n); + } + return [ + o ? o.nextSibling : t.firstChild, + n ? n.previousSibling : t.lastChild, + ]; + }, + }; +function Ah(e, t, n) { + const r = e._vtc; + r && (t = (t ? [t, ...r] : [...r]).join(" ")), + t == null + ? e.removeAttribute("class") + : n + ? e.setAttribute("class", t) + : (e.className = t); +} +function Rh(e, t, n) { + const r = e.style, + s = Z(n); + if (n && !s) { + if (t && !Z(t)) for (const i in t) n[i] == null && Mi(r, i, ""); + for (const i in n) Mi(r, i, n[i]); + } else { + const i = r.display; + s ? t !== n && (r.cssText = n) : t && e.removeAttribute("style"), + "_vod" in e && (r.display = i); + } +} +const Hl = /\s*!important$/; +function Mi(e, t, n) { + if ($(n)) n.forEach((r) => Mi(e, t, r)); + else if ((n == null && (n = ""), t.startsWith("--"))) e.setProperty(t, n); + else { + const r = Ph(e, t); + Hl.test(n) + ? e.setProperty(je(r), n.replace(Hl, ""), "important") + : (e[r] = n); + } +} +const $l = ["Webkit", "Moz", "ms"], + ri = {}; +function Ph(e, t) { + const n = ri[t]; + if (n) return n; + let r = ye(t); + if (r !== "filter" && r in e) return (ri[t] = r); + r = tn(r); + for (let s = 0; s < $l.length; s++) { + const i = $l[s] + r; + if (i in e) return (ri[t] = i); + } + return t; +} +const Ul = "http://www.w3.org/1999/xlink"; +function Ih(e, t, n, r, s) { + if (r && t.startsWith("xlink:")) + n == null + ? e.removeAttributeNS(Ul, t.slice(6, t.length)) + : e.setAttributeNS(Ul, t, n); + else { + const i = td(t); + n == null || (i && !jc(n)) + ? e.removeAttribute(t) + : e.setAttribute(t, i ? "" : n); + } +} +function Fh(e, t, n, r, s, i, o) { + if (t === "innerHTML" || t === "textContent") { + r && o(r, s, i), (e[t] = n ?? ""); + return; + } + const l = e.tagName; + if (t === "value" && l !== "PROGRESS" && !l.includes("-")) { + e._value = n; + const a = l === "OPTION" ? e.getAttribute("value") : e.value, + u = n ?? ""; + a !== u && (e.value = u), n == null && e.removeAttribute(t); + return; + } + let c = !1; + if (n === "" || n == null) { + const a = typeof e[t]; + a === "boolean" + ? (n = jc(n)) + : n == null && a === "string" + ? ((n = ""), (c = !0)) + : a === "number" && ((n = 0), (c = !0)); + } + try { + e[t] = n; + } catch {} + c && e.removeAttribute(t); +} +function ft(e, t, n, r) { + e.addEventListener(t, n, r); +} +function kh(e, t, n, r) { + e.removeEventListener(t, n, r); +} +function Mh(e, t, n, r, s = null) { + const i = e._vei || (e._vei = {}), + o = i[t]; + if (r && o) o.value = r; + else { + const [l, c] = Lh(t); + if (r) { + const a = (i[t] = xh(r, s)); + ft(e, l, a, c); + } else o && (kh(e, l, o, c), (i[t] = void 0)); + } +} +const Vl = /(?:Once|Passive|Capture)$/; +function Lh(e) { + let t; + if (Vl.test(e)) { + t = {}; + let r; + for (; (r = e.match(Vl)); ) + (e = e.slice(0, e.length - r[0].length)), (t[r[0].toLowerCase()] = !0); + } + return [e[2] === ":" ? e.slice(3) : je(e.slice(2)), t]; +} +let si = 0; +const Dh = Promise.resolve(), + Bh = () => si || (Dh.then(() => (si = 0)), (si = Date.now())); +function xh(e, t) { + const n = (r) => { + if (!r._vts) r._vts = Date.now(); + else if (r._vts <= n.attached) return; + He(jh(r, n.value), t, 5, [r]); + }; + return (n.value = e), (n.attached = Bh()), n; +} +function jh(e, t) { + if ($(t)) { + const n = e.stopImmediatePropagation; + return ( + (e.stopImmediatePropagation = () => { + n.call(e), (e._stopped = !0); + }), + t.map((r) => (s) => !s._stopped && r && r(s)) + ); + } else return t; +} +const ql = /^on[a-z]/, + Hh = (e, t, n, r, s = !1, i, o, l, c) => { + t === "class" + ? Ah(e, r, s) + : t === "style" + ? Rh(e, n, r) + : Xt(t) + ? to(t) || Mh(e, t, n, r, o) + : ( + t[0] === "." + ? ((t = t.slice(1)), !0) + : t[0] === "^" + ? ((t = t.slice(1)), !1) + : $h(e, t, r, s) + ) + ? Fh(e, t, r, i, o, l, c) + : (t === "true-value" + ? (e._trueValue = r) + : t === "false-value" && (e._falseValue = r), + Ih(e, t, r, s)); + }; +function $h(e, t, n, r) { + return r + ? !!( + t === "innerHTML" || + t === "textContent" || + (t in e && ql.test(t) && z(n)) + ) + : t === "spellcheck" || + t === "draggable" || + t === "translate" || + t === "form" || + (t === "list" && e.tagName === "INPUT") || + (t === "type" && e.tagName === "TEXTAREA") || + (ql.test(t) && Z(n)) + ? !1 + : t in e; +} +function nu(e, t) { + const n = Rs(e); + class r extends Bs { + constructor(i) { + super(n, i, t); + } + } + return (r.def = n), r; +} +const Uh = (e) => nu(e, bu), + Vh = typeof HTMLElement < "u" ? HTMLElement : class {}; +class Bs extends Vh { + constructor(t, n = {}, r) { + super(), + (this._def = t), + (this._props = n), + (this._instance = null), + (this._connected = !1), + (this._resolved = !1), + (this._numberProps = null), + this.shadowRoot && r + ? r(this._createVNode(), this.shadowRoot) + : (this.attachShadow({ mode: "open" }), + this._def.__asyncLoader || this._resolveProps(this._def)); + } + connectedCallback() { + (this._connected = !0), + this._instance || (this._resolved ? this._update() : this._resolveDef()); + } + disconnectedCallback() { + (this._connected = !1), + Ts(() => { + this._connected || (Bi(null, this.shadowRoot), (this._instance = null)); + }); + } + _resolveDef() { + this._resolved = !0; + for (let r = 0; r < this.attributes.length; r++) + this._setAttr(this.attributes[r].name); + new MutationObserver((r) => { + for (const s of r) this._setAttr(s.attributeName); + }).observe(this, { attributes: !0 }); + const t = (r, s = !1) => { + const { props: i, styles: o } = r; + let l; + if (i && !$(i)) + for (const c in i) { + const a = i[c]; + (a === Number || (a && a.type === Number)) && + (c in this._props && (this._props[c] = Gr(this._props[c])), + ((l || (l = Object.create(null)))[ye(c)] = !0)); + } + (this._numberProps = l), + s && this._resolveProps(r), + this._applyStyles(o), + this._update(); + }, + n = this._def.__asyncLoader; + n ? n().then((r) => t(r, !0)) : t(this._def); + } + _resolveProps(t) { + const { props: n } = t, + r = $(n) ? n : Object.keys(n || {}); + for (const s of Object.keys(this)) + s[0] !== "_" && r.includes(s) && this._setProp(s, this[s], !0, !1); + for (const s of r.map(ye)) + Object.defineProperty(this, s, { + get() { + return this._getProp(s); + }, + set(i) { + this._setProp(s, i); + }, + }); + } + _setAttr(t) { + let n = this.getAttribute(t); + const r = ye(t); + this._numberProps && this._numberProps[r] && (n = Gr(n)), + this._setProp(r, n, !1); + } + _getProp(t) { + return this._props[t]; + } + _setProp(t, n, r = !0, s = !0) { + n !== this._props[t] && + ((this._props[t] = n), + s && this._instance && this._update(), + r && + (n === !0 + ? this.setAttribute(je(t), "") + : typeof n == "string" || typeof n == "number" + ? this.setAttribute(je(t), n + "") + : n || this.removeAttribute(je(t)))); + } + _update() { + Bi(this._createVNode(), this.shadowRoot); + } + _createVNode() { + const t = ae(this._def, ee({}, this._props)); + return ( + this._instance || + (t.ce = (n) => { + (this._instance = n), (n.isCE = !0); + const r = (i, o) => { + this.dispatchEvent(new CustomEvent(i, { detail: o })); + }; + n.emit = (i, ...o) => { + r(i, o), je(i) !== i && r(je(i), o); + }; + let s = this; + for (; (s = s && (s.parentNode || s.host)); ) + if (s instanceof Bs) { + (n.parent = s._instance), (n.provides = s._instance.provides); + break; + } + }), + t + ); + } + _applyStyles(t) { + t && + t.forEach((n) => { + const r = document.createElement("style"); + (r.textContent = n), this.shadowRoot.appendChild(r); + }); + } +} +function qh(e = "$style") { + { + const t = yt(); + if (!t) return oe; + const n = t.type.__cssModules; + if (!n) return oe; + const r = n[e]; + return r || oe; + } +} +function Kh(e) { + const t = yt(); + if (!t) return; + const n = (t.ut = (s = e(t.proxy)) => { + Array.from( + document.querySelectorAll(`[data-v-owner="${t.uid}"]`), + ).forEach((i) => Di(i, s)); + }), + r = () => { + const s = e(t.proxy); + Li(t.subTree, s), n(s); + }; + da(r), + mr(() => { + const s = new MutationObserver(r); + s.observe(t.subTree.el.parentNode, { childList: !0 }), + ks(() => s.disconnect()); + }); +} +function Li(e, t) { + if (e.shapeFlag & 128) { + const n = e.suspense; + (e = n.activeBranch), + n.pendingBranch && + !n.isHydrating && + n.effects.push(() => { + Li(n.activeBranch, t); + }); + } + for (; e.component; ) e = e.component.subTree; + if (e.shapeFlag & 1 && e.el) Di(e.el, t); + else if (e.type === Te) e.children.forEach((n) => Li(n, t)); + else if (e.type === Wt) { + let { el: n, anchor: r } = e; + for (; n && (Di(n, t), n !== r); ) n = n.nextSibling; + } +} +function Di(e, t) { + if (e.nodeType === 1) { + const n = e.style; + for (const r in t) n.setProperty(`--${r}`, t[r]); + } +} +const _t = "transition", + Mn = "animation", + Do = (e, { slots: t }) => Qa(ha, su(e), t); +Do.displayName = "Transition"; +const ru = { + name: String, + type: String, + css: { type: Boolean, default: !0 }, + duration: [String, Number, Object], + enterFromClass: String, + enterActiveClass: String, + enterToClass: String, + appearFromClass: String, + appearActiveClass: String, + appearToClass: String, + leaveFromClass: String, + leaveActiveClass: String, + leaveToClass: String, + }, + Wh = (Do.props = ee({}, wo, ru)), + xt = (e, t = []) => { + $(e) ? e.forEach((n) => n(...t)) : e && e(...t); + }, + Kl = (e) => (e ? ($(e) ? e.some((t) => t.length > 1) : e.length > 1) : !1); +function su(e) { + const t = {}; + for (const I in e) I in ru || (t[I] = e[I]); + if (e.css === !1) return t; + const { + name: n = "v", + type: r, + duration: s, + enterFromClass: i = `${n}-enter-from`, + enterActiveClass: o = `${n}-enter-active`, + enterToClass: l = `${n}-enter-to`, + appearFromClass: c = i, + appearActiveClass: a = o, + appearToClass: u = l, + leaveFromClass: d = `${n}-leave-from`, + leaveActiveClass: v = `${n}-leave-active`, + leaveToClass: h = `${n}-leave-to`, + } = e, + g = zh(s), + p = g && g[0], + b = g && g[1], + { + onBeforeEnter: m, + onEnter: f, + onEnterCancelled: E, + onLeave: y, + onLeaveCancelled: w, + onBeforeAppear: O = m, + onAppear: N = f, + onAppearCancelled: _ = E, + } = t, + C = (I, L, B) => { + St(I, L ? u : l), St(I, L ? a : o), B && B(); + }, + A = (I, L) => { + (I._isLeaving = !1), St(I, d), St(I, h), St(I, v), L && L(); + }, + P = (I) => (L, B) => { + const G = I ? N : f, + W = () => C(L, I, B); + xt(G, [L, W]), + Wl(() => { + St(L, I ? c : i), at(L, I ? u : l), Kl(G) || zl(L, r, p, W); + }); + }; + return ee(t, { + onBeforeEnter(I) { + xt(m, [I]), at(I, i), at(I, o); + }, + onBeforeAppear(I) { + xt(O, [I]), at(I, c), at(I, a); + }, + onEnter: P(!1), + onAppear: P(!0), + onLeave(I, L) { + I._isLeaving = !0; + const B = () => A(I, L); + at(I, d), + ou(), + at(I, v), + Wl(() => { + I._isLeaving && (St(I, d), at(I, h), Kl(y) || zl(I, r, b, B)); + }), + xt(y, [I, B]); + }, + onEnterCancelled(I) { + C(I, !1), xt(E, [I]); + }, + onAppearCancelled(I) { + C(I, !0), xt(_, [I]); + }, + onLeaveCancelled(I) { + A(I), xt(w, [I]); + }, + }); +} +function zh(e) { + if (e == null) return null; + if (le(e)) return [ii(e.enter), ii(e.leave)]; + { + const t = ii(e); + return [t, t]; + } +} +function ii(e) { + return Gr(e); +} +function at(e, t) { + t.split(/\s+/).forEach((n) => n && e.classList.add(n)), + (e._vtc || (e._vtc = new Set())).add(t); +} +function St(e, t) { + t.split(/\s+/).forEach((r) => r && e.classList.remove(r)); + const { _vtc: n } = e; + n && (n.delete(t), n.size || (e._vtc = void 0)); +} +function Wl(e) { + requestAnimationFrame(() => { + requestAnimationFrame(e); + }); +} +let Jh = 0; +function zl(e, t, n, r) { + const s = (e._endId = ++Jh), + i = () => { + s === e._endId && r(); + }; + if (n) return setTimeout(i, n); + const { type: o, timeout: l, propCount: c } = iu(e, t); + if (!o) return r(); + const a = o + "end"; + let u = 0; + const d = () => { + e.removeEventListener(a, v), i(); + }, + v = (h) => { + h.target === e && ++u >= c && d(); + }; + setTimeout(() => { + u < c && d(); + }, l + 1), + e.addEventListener(a, v); +} +function iu(e, t) { + const n = window.getComputedStyle(e), + r = (g) => (n[g] || "").split(", "), + s = r(`${_t}Delay`), + i = r(`${_t}Duration`), + o = Jl(s, i), + l = r(`${Mn}Delay`), + c = r(`${Mn}Duration`), + a = Jl(l, c); + let u = null, + d = 0, + v = 0; + t === _t + ? o > 0 && ((u = _t), (d = o), (v = i.length)) + : t === Mn + ? a > 0 && ((u = Mn), (d = a), (v = c.length)) + : ((d = Math.max(o, a)), + (u = d > 0 ? (o > a ? _t : Mn) : null), + (v = u ? (u === _t ? i.length : c.length) : 0)); + const h = + u === _t && /\b(transform|all)(,|$)/.test(r(`${_t}Property`).toString()); + return { type: u, timeout: d, propCount: v, hasTransform: h }; +} +function Jl(e, t) { + for (; e.length < t.length; ) e = e.concat(e); + return Math.max(...t.map((n, r) => Gl(n) + Gl(e[r]))); +} +function Gl(e) { + return Number(e.slice(0, -1).replace(",", ".")) * 1e3; +} +function ou() { + return document.body.offsetHeight; +} +const lu = new WeakMap(), + cu = new WeakMap(), + au = { + name: "TransitionGroup", + props: ee({}, Wh, { tag: String, moveClass: String }), + setup(e, { slots: t }) { + const n = yt(), + r = So(); + let s, i; + return ( + Is(() => { + if (!s.length) return; + const o = e.moveClass || `${e.name || "v"}-move`; + if (!em(s[0].el, n.vnode.el, o)) return; + s.forEach(Qh), s.forEach(Yh); + const l = s.filter(Xh); + ou(), + l.forEach((c) => { + const a = c.el, + u = a.style; + at(a, o), + (u.transform = u.webkitTransform = u.transitionDuration = ""); + const d = (a._moveCb = (v) => { + (v && v.target !== a) || + ((!v || /transform$/.test(v.propertyName)) && + (a.removeEventListener("transitionend", d), + (a._moveCb = null), + St(a, o))); + }); + a.addEventListener("transitionend", d); + }); + }), + () => { + const o = X(e), + l = su(o); + let c = o.tag || Te; + (s = i), (i = t.default ? As(t.default()) : []); + for (let a = 0; a < i.length; a++) { + const u = i[a]; + u.key != null && Gt(u, vn(u, l, r, n)); + } + if (s) + for (let a = 0; a < s.length; a++) { + const u = s[a]; + Gt(u, vn(u, l, r, n)), lu.set(u, u.el.getBoundingClientRect()); + } + return ae(c, null, i); + } + ); + }, + }, + Gh = (e) => delete e.mode; +au.props; +const Zh = au; +function Qh(e) { + const t = e.el; + t._moveCb && t._moveCb(), t._enterCb && t._enterCb(); +} +function Yh(e) { + cu.set(e, e.el.getBoundingClientRect()); +} +function Xh(e) { + const t = lu.get(e), + n = cu.get(e), + r = t.left - n.left, + s = t.top - n.top; + if (r || s) { + const i = e.el.style; + return ( + (i.transform = i.webkitTransform = `translate(${r}px,${s}px)`), + (i.transitionDuration = "0s"), + e + ); + } +} +function em(e, t, n) { + const r = e.cloneNode(); + e._vtc && + e._vtc.forEach((o) => { + o.split(/\s+/).forEach((l) => l && r.classList.remove(l)); + }), + n.split(/\s+/).forEach((o) => o && r.classList.add(o)), + (r.style.display = "none"); + const s = t.nodeType === 1 ? t : t.parentNode; + s.appendChild(r); + const { hasTransform: i } = iu(r); + return s.removeChild(r), i; +} +const Lt = (e) => { + const t = e.props["onUpdate:modelValue"] || !1; + return $(t) ? (n) => hn(t, n) : t; +}; +function tm(e) { + e.target.composing = !0; +} +function Zl(e) { + const t = e.target; + t.composing && ((t.composing = !1), t.dispatchEvent(new Event("input"))); +} +const ts = { + created(e, { modifiers: { lazy: t, trim: n, number: r } }, s) { + e._assign = Lt(s); + const i = r || (s.props && s.props.type === "number"); + ft(e, t ? "change" : "input", (o) => { + if (o.target.composing) return; + let l = e.value; + n && (l = l.trim()), i && (l = Jr(l)), e._assign(l); + }), + n && + ft(e, "change", () => { + e.value = e.value.trim(); + }), + t || + (ft(e, "compositionstart", tm), + ft(e, "compositionend", Zl), + ft(e, "change", Zl)); + }, + mounted(e, { value: t }) { + e.value = t ?? ""; + }, + beforeUpdate( + e, + { value: t, modifiers: { lazy: n, trim: r, number: s } }, + i, + ) { + if ( + ((e._assign = Lt(i)), + e.composing || + (document.activeElement === e && + e.type !== "range" && + (n || + (r && e.value.trim() === t) || + ((s || e.type === "number") && Jr(e.value) === t)))) + ) + return; + const o = t ?? ""; + e.value !== o && (e.value = o); + }, + }, + Bo = { + deep: !0, + created(e, t, n) { + (e._assign = Lt(n)), + ft(e, "change", () => { + const r = e._modelValue, + s = En(e), + i = e.checked, + o = e._assign; + if ($(r)) { + const l = bs(r, s), + c = l !== -1; + if (i && !c) o(r.concat(s)); + else if (!i && c) { + const a = [...r]; + a.splice(l, 1), o(a); + } + } else if (en(r)) { + const l = new Set(r); + i ? l.add(s) : l.delete(s), o(l); + } else o(fu(e, i)); + }); + }, + mounted: Ql, + beforeUpdate(e, t, n) { + (e._assign = Lt(n)), Ql(e, t, n); + }, + }; +function Ql(e, { value: t, oldValue: n }, r) { + (e._modelValue = t), + $(t) + ? (e.checked = bs(t, r.props.value) > -1) + : en(t) + ? (e.checked = t.has(r.props.value)) + : t !== n && (e.checked = It(t, fu(e, !0))); +} +const xo = { + created(e, { value: t }, n) { + (e.checked = It(t, n.props.value)), + (e._assign = Lt(n)), + ft(e, "change", () => { + e._assign(En(e)); + }); + }, + beforeUpdate(e, { value: t, oldValue: n }, r) { + (e._assign = Lt(r)), t !== n && (e.checked = It(t, r.props.value)); + }, + }, + uu = { + deep: !0, + created(e, { value: t, modifiers: { number: n } }, r) { + const s = en(t); + ft(e, "change", () => { + const i = Array.prototype.filter + .call(e.options, (o) => o.selected) + .map((o) => (n ? Jr(En(o)) : En(o))); + e._assign(e.multiple ? (s ? new Set(i) : i) : i[0]); + }), + (e._assign = Lt(r)); + }, + mounted(e, { value: t }) { + Yl(e, t); + }, + beforeUpdate(e, t, n) { + e._assign = Lt(n); + }, + updated(e, { value: t }) { + Yl(e, t); + }, + }; +function Yl(e, t) { + const n = e.multiple; + if (!(n && !$(t) && !en(t))) { + for (let r = 0, s = e.options.length; r < s; r++) { + const i = e.options[r], + o = En(i); + if (n) $(t) ? (i.selected = bs(t, o) > -1) : (i.selected = t.has(o)); + else if (It(En(i), t)) { + e.selectedIndex !== r && (e.selectedIndex = r); + return; + } + } + !n && e.selectedIndex !== -1 && (e.selectedIndex = -1); + } +} +function En(e) { + return "_value" in e ? e._value : e.value; +} +function fu(e, t) { + const n = t ? "_trueValue" : "_falseValue"; + return n in e ? e[n] : t; +} +const du = { + created(e, t, n) { + kr(e, t, n, null, "created"); + }, + mounted(e, t, n) { + kr(e, t, n, null, "mounted"); + }, + beforeUpdate(e, t, n, r) { + kr(e, t, n, r, "beforeUpdate"); + }, + updated(e, t, n, r) { + kr(e, t, n, r, "updated"); + }, +}; +function pu(e, t) { + switch (e) { + case "SELECT": + return uu; + case "TEXTAREA": + return ts; + default: + switch (t) { + case "checkbox": + return Bo; + case "radio": + return xo; + default: + return ts; + } + } +} +function kr(e, t, n, r, s) { + const o = pu(e.tagName, n.props && n.props.type)[s]; + o && o(e, t, n, r); +} +function nm() { + (ts.getSSRProps = ({ value: e }) => ({ value: e })), + (xo.getSSRProps = ({ value: e }, t) => { + if (t.props && It(t.props.value, e)) return { checked: !0 }; + }), + (Bo.getSSRProps = ({ value: e }, t) => { + if ($(e)) { + if (t.props && bs(e, t.props.value) > -1) return { checked: !0 }; + } else if (en(e)) { + if (t.props && e.has(t.props.value)) return { checked: !0 }; + } else if (e) return { checked: !0 }; + }), + (du.getSSRProps = (e, t) => { + if (typeof t.type != "string") return; + const n = pu(t.type.toUpperCase(), t.props && t.props.type); + if (n.getSSRProps) return n.getSSRProps(e, t); + }); +} +const rm = ["ctrl", "shift", "alt", "meta"], + sm = { + stop: (e) => e.stopPropagation(), + prevent: (e) => e.preventDefault(), + self: (e) => e.target !== e.currentTarget, + ctrl: (e) => !e.ctrlKey, + shift: (e) => !e.shiftKey, + alt: (e) => !e.altKey, + meta: (e) => !e.metaKey, + left: (e) => "button" in e && e.button !== 0, + middle: (e) => "button" in e && e.button !== 1, + right: (e) => "button" in e && e.button !== 2, + exact: (e, t) => rm.some((n) => e[`${n}Key`] && !t.includes(n)), + }, + im = + (e, t) => + (n, ...r) => { + for (let s = 0; s < t.length; s++) { + const i = sm[t[s]]; + if (i && i(n, t)) return; + } + return e(n, ...r); + }, + om = { + esc: "escape", + space: " ", + up: "arrow-up", + left: "arrow-left", + right: "arrow-right", + down: "arrow-down", + delete: "backspace", + }, + lm = (e, t) => (n) => { + if (!("key" in n)) return; + const r = je(n.key); + if (t.some((s) => s === r || om[s] === r)) return e(n); + }, + hu = { + beforeMount(e, { value: t }, { transition: n }) { + (e._vod = e.style.display === "none" ? "" : e.style.display), + n && t ? n.beforeEnter(e) : Ln(e, t); + }, + mounted(e, { value: t }, { transition: n }) { + n && t && n.enter(e); + }, + updated(e, { value: t, oldValue: n }, { transition: r }) { + !t != !n && + (r + ? t + ? (r.beforeEnter(e), Ln(e, !0), r.enter(e)) + : r.leave(e, () => { + Ln(e, !1); + }) + : Ln(e, t)); + }, + beforeUnmount(e, { value: t }) { + Ln(e, t); + }, + }; +function Ln(e, t) { + e.style.display = t ? e._vod : "none"; +} +function cm() { + hu.getSSRProps = ({ value: e }) => { + if (!e) return { style: { display: "none" } }; + }; +} +const mu = ee({ patchProp: Hh }, Nh); +let qn, + Xl = !1; +function gu() { + return qn || (qn = Ba(mu)); +} +function yu() { + return (qn = Xl ? qn : xa(mu)), (Xl = !0), qn; +} +const Bi = (...e) => { + gu().render(...e); + }, + bu = (...e) => { + yu().hydrate(...e); + }, + am = (...e) => { + const t = gu().createApp(...e), + { mount: n } = t; + return ( + (t.mount = (r) => { + const s = vu(r); + if (!s) return; + const i = t._component; + !z(i) && !i.render && !i.template && (i.template = s.innerHTML), + (s.innerHTML = ""); + const o = n(s, !1, s instanceof SVGElement); + return ( + s instanceof Element && + (s.removeAttribute("v-cloak"), s.setAttribute("data-v-app", "")), + o + ); + }), + t + ); + }, + um = (...e) => { + const t = yu().createApp(...e), + { mount: n } = t; + return ( + (t.mount = (r) => { + const s = vu(r); + if (s) return n(s, !0, s instanceof SVGElement); + }), + t + ); + }; +function vu(e) { + return Z(e) ? document.querySelector(e) : e; +} +let ec = !1; +const fm = () => { + ec || ((ec = !0), nm(), cm()); + }, + dm = Object.freeze( + Object.defineProperty( + { + __proto__: null, + BaseTransition: ha, + BaseTransitionPropsValidators: wo, + Comment: Ne, + EffectScope: io, + Fragment: Te, + KeepAlive: _p, + ReactiveEffect: fr, + Static: Wt, + Suspense: lp, + Teleport: ch, + Text: Zt, + Transition: Do, + TransitionGroup: Zh, + VueElement: Bs, + assertNumber: Jd, + callWithAsyncErrorHandling: He, + callWithErrorHandling: pt, + camelize: ye, + capitalize: tn, + cloneVNode: it, + compatUtils: Ch, + computed: Lo, + createApp: am, + createBlock: Ro, + createCommentVNode: ph, + createElementBlock: ah, + createElementVNode: Po, + createHydrationRenderer: xa, + createPropsRestProxy: Vp, + createRenderer: Ba, + createSSRApp: um, + createSlots: Np, + createStaticVNode: dh, + createTextVNode: Io, + createVNode: ae, + customRef: $d, + defineAsyncComponent: bp, + defineComponent: Rs, + defineCustomElement: nu, + defineEmits: Fp, + defineExpose: kp, + defineModel: Dp, + defineOptions: Mp, + defineProps: Ip, + defineSSRCustomElement: Uh, + defineSlots: Lp, + get devtools() { + return an; + }, + effect: od, + effectScope: oo, + getCurrentInstance: yt, + getCurrentScope: lo, + getTransitionRawChildren: As, + guardReactiveProps: qa, + h: Qa, + handleError: nn, + hasInjectionContext: Ia, + hydrate: bu, + initCustomFormatter: _h, + initDirectivesForSSR: fm, + inject: yn, + isMemoSame: eu, + isProxy: fo, + isReactive: dt, + isReadonly: Jt, + isRef: de, + isRuntimeOnly: yh, + isShallow: Jn, + isVNode: kt, + markRaw: dr, + mergeDefaults: $p, + mergeModels: Up, + mergeProps: ko, + nextTick: Ts, + normalizeClass: ur, + normalizeProps: zf, + normalizeStyle: ar, + onActivated: ga, + onBeforeMount: va, + onBeforeUnmount: Fs, + onBeforeUpdate: _a, + onDeactivated: ya, + onErrorCaptured: Ta, + onMounted: mr, + onRenderTracked: wa, + onRenderTriggered: Sa, + onScopeDispose: Uc, + onServerPrefetch: Ea, + onUnmounted: ks, + onUpdated: Is, + openBlock: Ms, + popScopeId: ep, + provide: Pa, + proxyRefs: go, + pushScopeId: Xd, + queuePostFlushCb: bo, + reactive: ot, + readonly: uo, + ref: Ot, + registerRuntimeCompiler: Ja, + render: Bi, + renderList: Op, + renderSlot: Ap, + resolveComponent: wp, + resolveDirective: Cp, + resolveDynamicComponent: Tp, + resolveFilter: Th, + resolveTransitionHooks: vn, + setBlockTracking: Pi, + setDevtoolsHook: ca, + setTransitionHooks: Gt, + shallowReactive: ta, + shallowReadonly: Md, + shallowRef: Ld, + ssrContextKey: Ya, + ssrUtils: wh, + stop: ld, + toDisplayString: rd, + toHandlerKey: pn, + toHandlers: Rp, + toRaw: X, + toRef: qd, + toRefs: ra, + toValue: xd, + transformVNodeArgs: uh, + triggerRef: Bd, + unref: mo, + useAttrs: jp, + useCssModule: qh, + useCssVars: Kh, + useModel: Hp, + useSSRContext: Xa, + useSlots: xp, + useTransitionState: So, + vModelCheckbox: Bo, + vModelDynamic: du, + vModelRadio: xo, + vModelSelect: uu, + vModelText: ts, + vShow: hu, + version: tu, + warn: zd, + watch: Nt, + watchEffect: pp, + watchPostEffect: da, + watchSyncEffect: hp, + withAsyncContext: qp, + withCtx: vo, + withDefaults: Bp, + withDirectives: gp, + withKeys: lm, + withMemo: Eh, + withModifiers: im, + withScopeId: tp, + }, + Symbol.toStringTag, + { value: "Module" }, + ), + ); +function jo(e) { + throw e; +} +function _u(e) {} +function fe(e, t, n, r) { + const s = e, + i = new SyntaxError(String(s)); + return (i.code = e), (i.loc = t), i; +} +const nr = Symbol(""), + Kn = Symbol(""), + Ho = Symbol(""), + ns = Symbol(""), + Eu = Symbol(""), + Yt = Symbol(""), + Su = Symbol(""), + wu = Symbol(""), + $o = Symbol(""), + Uo = Symbol(""), + gr = Symbol(""), + Vo = Symbol(""), + Tu = Symbol(""), + qo = Symbol(""), + rs = Symbol(""), + Ko = Symbol(""), + Wo = Symbol(""), + zo = Symbol(""), + Jo = Symbol(""), + Cu = Symbol(""), + Ou = Symbol(""), + xs = Symbol(""), + ss = Symbol(""), + Go = Symbol(""), + Zo = Symbol(""), + rr = Symbol(""), + yr = Symbol(""), + Qo = Symbol(""), + xi = Symbol(""), + pm = Symbol(""), + ji = Symbol(""), + is = Symbol(""), + hm = Symbol(""), + mm = Symbol(""), + Yo = Symbol(""), + gm = Symbol(""), + ym = Symbol(""), + Xo = Symbol(""), + Nu = Symbol(""), + Sn = { + [nr]: "Fragment", + [Kn]: "Teleport", + [Ho]: "Suspense", + [ns]: "KeepAlive", + [Eu]: "BaseTransition", + [Yt]: "openBlock", + [Su]: "createBlock", + [wu]: "createElementBlock", + [$o]: "createVNode", + [Uo]: "createElementVNode", + [gr]: "createCommentVNode", + [Vo]: "createTextVNode", + [Tu]: "createStaticVNode", + [qo]: "resolveComponent", + [rs]: "resolveDynamicComponent", + [Ko]: "resolveDirective", + [Wo]: "resolveFilter", + [zo]: "withDirectives", + [Jo]: "renderList", + [Cu]: "renderSlot", + [Ou]: "createSlots", + [xs]: "toDisplayString", + [ss]: "mergeProps", + [Go]: "normalizeClass", + [Zo]: "normalizeStyle", + [rr]: "normalizeProps", + [yr]: "guardReactiveProps", + [Qo]: "toHandlers", + [xi]: "camelize", + [pm]: "capitalize", + [ji]: "toHandlerKey", + [is]: "setBlockTracking", + [hm]: "pushScopeId", + [mm]: "popScopeId", + [Yo]: "withCtx", + [gm]: "unref", + [ym]: "isRef", + [Xo]: "withMemo", + [Nu]: "isMemoSame", + }; +function bm(e) { + Object.getOwnPropertySymbols(e).forEach((t) => { + Sn[t] = e[t]; + }); +} +const Ue = { + source: "", + start: { line: 1, column: 1, offset: 0 }, + end: { line: 1, column: 1, offset: 0 }, +}; +function vm(e, t = Ue) { + return { + type: 0, + children: e, + helpers: new Set(), + components: [], + directives: [], + hoists: [], + imports: [], + cached: 0, + temps: 0, + codegenNode: void 0, + loc: t, + }; +} +function sr(e, t, n, r, s, i, o, l = !1, c = !1, a = !1, u = Ue) { + return ( + e && + (l ? (e.helper(Yt), e.helper(Cn(e.inSSR, a))) : e.helper(Tn(e.inSSR, a)), + o && e.helper(zo)), + { + type: 13, + tag: t, + props: n, + children: r, + patchFlag: s, + dynamicProps: i, + directives: o, + isBlock: l, + disableTracking: c, + isComponent: a, + loc: u, + } + ); +} +function br(e, t = Ue) { + return { type: 17, loc: t, elements: e }; +} +function Ke(e, t = Ue) { + return { type: 15, loc: t, properties: e }; +} +function pe(e, t) { + return { type: 16, loc: Ue, key: Z(e) ? Q(e, !0) : e, value: t }; +} +function Q(e, t = !1, n = Ue, r = 0) { + return { type: 4, loc: n, content: e, isStatic: t, constType: t ? 3 : r }; +} +function tt(e, t = Ue) { + return { type: 8, loc: t, children: e }; +} +function me(e, t = [], n = Ue) { + return { type: 14, loc: n, callee: e, arguments: t }; +} +function wn(e, t = void 0, n = !1, r = !1, s = Ue) { + return { type: 18, params: e, returns: t, newline: n, isSlot: r, loc: s }; +} +function Hi(e, t, n, r = !0) { + return { + type: 19, + test: e, + consequent: t, + alternate: n, + newline: r, + loc: Ue, + }; +} +function _m(e, t, n = !1) { + return { type: 20, index: e, value: t, isVNode: n, loc: Ue }; +} +function Em(e) { + return { type: 21, body: e, loc: Ue }; +} +function Tn(e, t) { + return e || t ? $o : Uo; +} +function Cn(e, t) { + return e || t ? Su : wu; +} +function el(e, { helper: t, removeHelper: n, inSSR: r }) { + e.isBlock || + ((e.isBlock = !0), n(Tn(r, e.isComponent)), t(Yt), t(Cn(r, e.isComponent))); +} +const ke = (e) => e.type === 4 && e.isStatic, + un = (e, t) => e === t || e === je(t); +function Au(e) { + if (un(e, "Teleport")) return Kn; + if (un(e, "Suspense")) return Ho; + if (un(e, "KeepAlive")) return ns; + if (un(e, "BaseTransition")) return Eu; +} +const Sm = /^\d|[^\$\w]/, + tl = (e) => !Sm.test(e), + wm = /[A-Za-z_$\xA0-\uFFFF]/, + Tm = /[\.\?\w$\xA0-\uFFFF]/, + Cm = /\s+[.[]\s*|\s*[.[]\s+/g, + Om = (e) => { + e = e.trim().replace(Cm, (o) => o.trim()); + let t = 0, + n = [], + r = 0, + s = 0, + i = null; + for (let o = 0; o < e.length; o++) { + const l = e.charAt(o); + switch (t) { + case 0: + if (l === "[") n.push(t), (t = 1), r++; + else if (l === "(") n.push(t), (t = 2), s++; + else if (!(o === 0 ? wm : Tm).test(l)) return !1; + break; + case 1: + l === "'" || l === '"' || l === "`" + ? (n.push(t), (t = 3), (i = l)) + : l === "[" + ? r++ + : l === "]" && (--r || (t = n.pop())); + break; + case 2: + if (l === "'" || l === '"' || l === "`") n.push(t), (t = 3), (i = l); + else if (l === "(") s++; + else if (l === ")") { + if (o === e.length - 1) return !1; + --s || (t = n.pop()); + } + break; + case 3: + l === i && ((t = n.pop()), (i = null)); + break; + } + } + return !r && !s; + }, + Ru = Om; +function Pu(e, t, n) { + const s = { + source: e.source.slice(t, t + n), + start: os(e.start, e.source, t), + end: e.end, + }; + return n != null && (s.end = os(e.start, e.source, t + n)), s; +} +function os(e, t, n = t.length) { + return ls(ee({}, e), t, n); +} +function ls(e, t, n = t.length) { + let r = 0, + s = -1; + for (let i = 0; i < n; i++) t.charCodeAt(i) === 10 && (r++, (s = i)); + return ( + (e.offset += n), + (e.line += r), + (e.column = s === -1 ? e.column + n : n - s), + e + ); +} +function qe(e, t, n = !1) { + for (let r = 0; r < e.props.length; r++) { + const s = e.props[r]; + if (s.type === 7 && (n || s.exp) && (Z(t) ? s.name === t : t.test(s.name))) + return s; + } +} +function js(e, t, n = !1, r = !1) { + for (let s = 0; s < e.props.length; s++) { + const i = e.props[s]; + if (i.type === 6) { + if (n) continue; + if (i.name === t && (i.value || r)) return i; + } else if (i.name === "bind" && (i.exp || r) && Ut(i.arg, t)) return i; + } +} +function Ut(e, t) { + return !!(e && ke(e) && e.content === t); +} +function Nm(e) { + return e.props.some( + (t) => + t.type === 7 && + t.name === "bind" && + (!t.arg || t.arg.type !== 4 || !t.arg.isStatic), + ); +} +function oi(e) { + return e.type === 5 || e.type === 2; +} +function Am(e) { + return e.type === 7 && e.name === "slot"; +} +function cs(e) { + return e.type === 1 && e.tagType === 3; +} +function as(e) { + return e.type === 1 && e.tagType === 2; +} +const Rm = new Set([rr, yr]); +function Iu(e, t = []) { + if (e && !Z(e) && e.type === 14) { + const n = e.callee; + if (!Z(n) && Rm.has(n)) return Iu(e.arguments[0], t.concat(e)); + } + return [e, t]; +} +function us(e, t, n) { + let r, + s = e.type === 13 ? e.props : e.arguments[2], + i = [], + o; + if (s && !Z(s) && s.type === 14) { + const l = Iu(s); + (s = l[0]), (i = l[1]), (o = i[i.length - 1]); + } + if (s == null || Z(s)) r = Ke([t]); + else if (s.type === 14) { + const l = s.arguments[0]; + !Z(l) && l.type === 15 + ? tc(t, l) || l.properties.unshift(t) + : s.callee === Qo + ? (r = me(n.helper(ss), [Ke([t]), s])) + : s.arguments.unshift(Ke([t])), + !r && (r = s); + } else + s.type === 15 + ? (tc(t, s) || s.properties.unshift(t), (r = s)) + : ((r = me(n.helper(ss), [Ke([t]), s])), + o && o.callee === yr && (o = i[i.length - 2])); + e.type === 13 + ? o + ? (o.arguments[0] = r) + : (e.props = r) + : o + ? (o.arguments[0] = r) + : (e.arguments[2] = r); +} +function tc(e, t) { + let n = !1; + if (e.key.type === 4) { + const r = e.key.content; + n = t.properties.some((s) => s.key.type === 4 && s.key.content === r); + } + return n; +} +function ir(e, t) { + return `_${t}_${e.replace(/[^\w]/g, (n, r) => + n === "-" ? "_" : e.charCodeAt(r).toString(), + )}`; +} +function Pm(e) { + return e.type === 14 && e.callee === Xo ? e.arguments[1].returns : e; +} +function nc(e, t) { + const n = t.options ? t.options.compatConfig : t.compatConfig, + r = n && n[e]; + return e === "MODE" ? r || 3 : r; +} +function zt(e, t) { + const n = nc("MODE", t), + r = nc(e, t); + return n === 3 ? r === !0 : r !== !1; +} +function or(e, t, n, ...r) { + return zt(e, t); +} +const Im = /&(gt|lt|amp|apos|quot);/g, + Fm = { gt: ">", lt: "<", amp: "&", apos: "'", quot: '"' }, + rc = { + delimiters: ["{{", "}}"], + getNamespace: () => 0, + getTextMode: () => 0, + isVoidTag: xr, + isPreTag: xr, + isCustomElement: xr, + decodeEntities: (e) => e.replace(Im, (t, n) => Fm[n]), + onError: jo, + onWarn: _u, + comments: !1, + }; +function km(e, t = {}) { + const n = Mm(e, t), + r = $e(n); + return vm(nl(n, 0, []), Je(n, r)); +} +function Mm(e, t) { + const n = ee({}, rc); + let r; + for (r in t) n[r] = t[r] === void 0 ? rc[r] : t[r]; + return { + options: n, + column: 1, + line: 1, + offset: 0, + originalSource: e, + source: e, + inPre: !1, + inVPre: !1, + onWarn: n.onWarn, + }; +} +function nl(e, t, n) { + const r = Hs(n), + s = r ? r.ns : 0, + i = []; + for (; !Vm(e, t, n); ) { + const l = e.source; + let c; + if (t === 0 || t === 1) { + if (!e.inVPre && Oe(l, e.options.delimiters[0])) c = $m(e, t); + else if (t === 0 && l[0] === "<") + if (l.length === 1) ie(e, 5, 1); + else if (l[1] === "!") + Oe(l, "