115不大助手 (full)

Make 115 taerg again!

// ==UserScript==
// @name         115不大助手 (full)
// @namespace    com.cloud115.enhancer
// @version      0.6.23
// @author       生瓜太保
// @description  Make 115 taerg again!
// @license      MIT
// @homepage     https://greasyfork.org/zh-CN/scripts/474231-115不大助手?locale_override=1
// @supportURL   https://greasyfork.org/zh-CN/scripts/474231-115不大助手?locale_override=1
// @match        https://*.115.com/*
// @match        https://115.com/*
// @match        https://v.anxia.com/*
// @connect      *
// @grant        GM_addStyle
// @grant        GM_deleteValue
// @grant        GM_getValue
// @grant        GM_openInTab
// @grant        GM_registerMenuCommand
// @grant        GM_setClipboard
// @grant        GM_setValue
// @grant        GM_xmlhttpRequest
// @grant        unsafeWindow
// @run-at       document-body
// ==/UserScript==

(o=>{const e=document.createElement("style");e.dataset.source="vite-plugin-monkey",e.innerText=o,document.head.appendChild(e)})(`@charset "UTF-8";.pure-button{display:inline-block;line-height:normal;white-space:nowrap;vertical-align:middle;text-align:center;cursor:pointer;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;box-sizing:border-box}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button-group{letter-spacing:-.31em;text-rendering:optimizespeed}.opera-only :-o-prefocus,.pure-button-group{word-spacing:-.43em}.pure-button-group .pure-button{letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-button{font-family:inherit;font-size:100%;padding:.5em 1em;color:#000c;border:none transparent;background-color:#e6e6e6;text-decoration:none;border-radius:2px}.pure-button-hover,.pure-button:focus,.pure-button:hover{background-image:linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1))}.pure-button:focus{outline:0}.pure-button-active,.pure-button:active{box-shadow:0 0 0 1px #00000026 inset,0 0 6px #0003 inset;border-color:#000}.pure-button-disabled,.pure-button-disabled:active,.pure-button-disabled:focus,.pure-button-disabled:hover,.pure-button[disabled]{border:none;background-image:none;opacity:.4;cursor:not-allowed;box-shadow:none;pointer-events:none}.pure-button-hidden{display:none}.pure-button-primary,.pure-button-selected,a.pure-button-primary,a.pure-button-selected{background-color:#0078e7;color:#fff}.pure-button-group .pure-button{margin:0;border-radius:0;border-right:1px solid rgba(0,0,0,.2)}.pure-button-group .pure-button:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.pure-button-group .pure-button:last-child{border-top-right-radius:2px;border-bottom-right-radius:2px;border-right:none}.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:.5em 1em}.pure-table thead{background-color:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child>td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px 0;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child>td{border-bottom-width:0}/*!
Pure v3.0.0
Copyright 2013 Yahoo!
Licensed under the BSD License.
https://github.com/pure-css/pure/blob/master/LICENSE
*/.pure-form input[type=color],.pure-form input[type=date],.pure-form input[type=datetime-local],.pure-form input[type=datetime],.pure-form input[type=email],.pure-form input[type=month],.pure-form input[type=number],.pure-form input[type=password],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=text],.pure-form input[type=time],.pure-form input[type=url],.pure-form input[type=week],.pure-form select,.pure-form textarea{padding:.5em .6em;display:inline-block;border:1px solid #ccc;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;vertical-align:middle;box-sizing:border-box}.pure-form input:not([type]){padding:.5em .6em;display:inline-block;border:1px solid #ccc;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;box-sizing:border-box}.pure-form input[type=color]{padding:.2em .5em}.pure-form input[type=color]:focus,.pure-form input[type=date]:focus,.pure-form input[type=datetime-local]:focus,.pure-form input[type=datetime]:focus,.pure-form input[type=email]:focus,.pure-form input[type=month]:focus,.pure-form input[type=number]:focus,.pure-form input[type=password]:focus,.pure-form input[type=search]:focus,.pure-form input[type=tel]:focus,.pure-form input[type=text]:focus,.pure-form input[type=time]:focus,.pure-form input[type=url]:focus,.pure-form input[type=week]:focus,.pure-form select:focus,.pure-form textarea:focus{outline:0;border-color:#129fea}.pure-form input:not([type]):focus{outline:0;border-color:#129fea}.pure-form input[type=checkbox]:focus,.pure-form input[type=file]:focus,.pure-form input[type=radio]:focus{outline:thin solid #129FEA;outline:1px auto #129FEA}.pure-form .pure-checkbox,.pure-form .pure-radio{margin:.5em 0;display:block}.pure-form input[type=color][disabled],.pure-form input[type=date][disabled],.pure-form input[type=datetime-local][disabled],.pure-form input[type=datetime][disabled],.pure-form input[type=email][disabled],.pure-form input[type=month][disabled],.pure-form input[type=number][disabled],.pure-form input[type=password][disabled],.pure-form input[type=search][disabled],.pure-form input[type=tel][disabled],.pure-form input[type=text][disabled],.pure-form input[type=time][disabled],.pure-form input[type=url][disabled],.pure-form input[type=week][disabled],.pure-form select[disabled],.pure-form textarea[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input:not([type])[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input[readonly],.pure-form select[readonly],.pure-form textarea[readonly]{background-color:#eee;color:#777;border-color:#ccc}.pure-form input:focus:invalid,.pure-form select:focus:invalid,.pure-form textarea:focus:invalid{color:#b94a48;border-color:#e9322d}.pure-form input[type=checkbox]:focus:invalid:focus,.pure-form input[type=file]:focus:invalid:focus,.pure-form input[type=radio]:focus:invalid:focus{outline-color:#e9322d}.pure-form select{height:2.25em;border:1px solid #ccc;background-color:#fff}.pure-form select[multiple]{height:auto}.pure-form label{margin:.5em 0 .2em}.pure-form fieldset{margin:0;padding:.35em 0 .75em;border:0}.pure-form legend{display:block;width:100%;padding:.3em 0;margin-bottom:.3em;color:#333;border-bottom:1px solid #e5e5e5}.pure-form-stacked input[type=color],.pure-form-stacked input[type=date],.pure-form-stacked input[type=datetime-local],.pure-form-stacked input[type=datetime],.pure-form-stacked input[type=email],.pure-form-stacked input[type=file],.pure-form-stacked input[type=month],.pure-form-stacked input[type=number],.pure-form-stacked input[type=password],.pure-form-stacked input[type=search],.pure-form-stacked input[type=tel],.pure-form-stacked input[type=text],.pure-form-stacked input[type=time],.pure-form-stacked input[type=url],.pure-form-stacked input[type=week],.pure-form-stacked label,.pure-form-stacked select,.pure-form-stacked textarea{display:block;margin:.25em 0}.pure-form-stacked input:not([type]){display:block;margin:.25em 0}.pure-form-aligned input,.pure-form-aligned select,.pure-form-aligned textarea,.pure-form-message-inline{display:inline-block;vertical-align:middle}.pure-form-aligned textarea{vertical-align:top}.pure-form-aligned .pure-control-group{margin-bottom:.5em}.pure-form-aligned .pure-control-group label{text-align:right;display:inline-block;vertical-align:middle;width:10em;margin:0 1em 0 0}.pure-form-aligned .pure-controls{margin:1.5em 0 0 11em}.pure-form .pure-input-rounded,.pure-form input.pure-input-rounded{border-radius:2em;padding:.5em 1em}.pure-form .pure-group fieldset{margin-bottom:10px}.pure-form .pure-group input,.pure-form .pure-group textarea{display:block;padding:10px;margin:0 0 -1px;border-radius:0;position:relative;top:-1px}.pure-form .pure-group input:focus,.pure-form .pure-group textarea:focus{z-index:3}.pure-form .pure-group input:first-child,.pure-form .pure-group textarea:first-child{top:1px;border-radius:4px 4px 0 0;margin:0}.pure-form .pure-group input:first-child:last-child,.pure-form .pure-group textarea:first-child:last-child{top:1px;border-radius:4px;margin:0}.pure-form .pure-group input:last-child,.pure-form .pure-group textarea:last-child{top:-2px;border-radius:0 0 4px 4px;margin:0}.pure-form .pure-group button{margin:.35em 0}.pure-form .pure-input-1{width:100%}.pure-form .pure-input-3-4{width:75%}.pure-form .pure-input-2-3{width:66%}.pure-form .pure-input-1-2{width:50%}.pure-form .pure-input-1-3{width:33%}.pure-form .pure-input-1-4{width:25%}.pure-form-message-inline{display:inline-block;padding-left:.3em;color:#666;vertical-align:middle;font-size:.875em}.pure-form-message{display:block;color:#666;font-size:.875em}@media only screen and (max-width :480px){.pure-form button[type=submit]{margin:.7em 0 0}.pure-form input:not([type]),.pure-form input[type=color],.pure-form input[type=date],.pure-form input[type=datetime-local],.pure-form input[type=datetime],.pure-form input[type=email],.pure-form input[type=month],.pure-form input[type=number],.pure-form input[type=password],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=text],.pure-form input[type=time],.pure-form input[type=url],.pure-form input[type=week],.pure-form label{margin-bottom:.3em;display:block}.pure-group input:not([type]),.pure-group input[type=color],.pure-group input[type=date],.pure-group input[type=datetime-local],.pure-group input[type=datetime],.pure-group input[type=email],.pure-group input[type=month],.pure-group input[type=number],.pure-group input[type=password],.pure-group input[type=search],.pure-group input[type=tel],.pure-group input[type=text],.pure-group input[type=time],.pure-group input[type=url],.pure-group input[type=week]{margin-bottom:0}.pure-form-aligned .pure-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.pure-form-aligned .pure-controls{margin:1.5em 0 0}.pure-form-message,.pure-form-message-inline{display:block;font-size:.75em;padding:.2em 0 .8em}}.resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}.v-popper--theme-tooltip .v-popper__inner{background:rgba(0,0,0,.8);color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}.text-center{text-align:center}.text-bold{font-weight:700}.text-cross{text-decoration:line-through}.text-primary{color:#1890ff}.text-success{color:#13ce66}.text-warning{color:#ffba00}.text-danger{color:#ff4949}.text-info{color:#909399}.ce-label{padding:2px 4px;background:#909399;color:#fff;border-radius:4px}.ce-label.ce-label-primary{background:#1890ff}.ce-label.ce-label-warning{background:#ffba00}.ce-label.ce-label-danger{background:#ff4949}.ce-label.ce-label-success{background:#13ce66}.ce-label.ce-label-primary-plain{color:#409eff;background:#ecf5ff}input.ce-checkbox{width:20px;height:20px;cursor:pointer}.ce-hidden{display:none!important}.tabs-component .tabs-component-tabs{border:solid 1px #ddd;border-radius:6px;margin-bottom:5px}@media (min-width: 700px){.tabs-component .tabs-component-tabs{border:0;align-items:stretch;display:flex;justify-content:flex-start;margin-bottom:1px}}.tabs-component .tabs-component-tabs .tabs-component-tab{color:#999;font-size:14px;font-weight:600;margin-right:0;list-style:none;border-bottom:dotted 1px #ddd}.tabs-component .tabs-component-tabs .tabs-component-tab:hover{color:#666}.tabs-component .tabs-component-tabs .tabs-component-tab.is-disabled *{color:#cdcdcd;cursor:not-allowed!important}.tabs-component .tabs-component-tabs .tabs-component-tab.is-active{color:#000}.tabs-component .tabs-component-tabs .tabs-component-tab .tabs-component-tab-a{align-items:center;color:inherit;display:flex;padding:.75em 1em;text-decoration:none}@media (min-width: 700px){.tabs-component .tabs-component-tabs .tabs-component-tab{background-color:#fff;border:solid 1px #ddd;border-radius:3px 3px 0 0;margin-right:.5em;transform:translateY(2px);transition:transform .3s ease}.tabs-component .tabs-component-tabs .tabs-component-tab.is-active{border-bottom:solid 1px #fff;z-index:2;transform:translateY(2px)}}.tabs-component .tabs-component-panels{padding:1em 0}@media (min-width: 700px){.tabs-component .tabs-component-panels{background-color:#fff;border:solid 1px #ddd;border-radius:0 6px 6px;box-shadow:0 0 10px #0000000d;padding:1em 2em}}.tabs-component .tabs-component-btn{cursor:pointer;background:#e1ecf4;border-radius:3px;border:1px solid #7aa7c7;padding:4px 8px;color:#39739d}.tabs-component .tabs-component-btn:hover{background-color:#b3d3ea;color:#2c5777}.tabs-component .tabs-component-btn:active{background-color:#a0c7e4;box-shadow:none;color:#2c5777}.ce-tips{background:#eee;border-radius:4px;padding:4px;font-size:12px;color:#595959;margin-bottom:10px}.ce-hr{border:0;height:1px;background-image:linear-gradient(to right,rgba(0,0,0,0),#ccc,rgba(0,0,0,0))}.ce-config input[type=checkbox]{width:18px;height:18px;cursor:pointer}.ce-config legend{font-size:16px;color:#1890ff}.ce-config-help{font-size:11px;cursor:pointer}.ce-ec-detail{text-align:left;font-size:14px}.ce-ec-detail span{color:#1890ff;display:inline-block;width:90px;text-align:right}.ce-swal-text-left{text-align:left!important}div[class^=fp-].hidden-watermark{display:none!important}.ce-custom-url-help{position:fixed;top:0;left:0;z-index:10000;width:430px;height:100%;background:#fff;font-size:12px}.ce-custom-url-help .ce-custom-url-help-body{height:80%;overflow-y:auto;padding:20px 20px 300px}.ce-custom-url-help h1 a{float:right;color:#1e87f0;font-size:14px}.ce-custom-url-help h1 a:hover{color:#1e87f0;text-decoration:underline}.ce-custom-url-help table{width:100%;margin-bottom:20px}.ce-custom-url-help .ce-variable{cursor:pointer;color:#1e87f0;font-size:14px}.ce-custom-url-help .ce-variable:hover{color:#093d71}.ce-menu:not(.sub-item){background:#fffcea}.ce-menu img.ce-menu-icon{float:left;width:12px;height:12px;margin-right:4px}.ce-menu.list-item-hover-menu i.ce-menu-icon.icon-operate{scale:.75;margin-top:-4px}.ce-menu.list-item-hover-menu.ce-menu-parent{position:relative;float:left;cursor:pointer}.ce-menu.list-item-hover-menu.ce-menu-parent:after{content:"";position:absolute;top:50%;right:0;width:1px;height:14px;margin-top:-7px;background:rgba(39,119,248,.8);pointer-events:none}.ce-menu.list-item-hover-menu.ce-menu-parent .ce-menu-trigger{padding:0 12px;color:#2777f8}.ce-menu.list-item-hover-menu.ce-menu-parent .ce-menu-trigger:before{content:"\\2228";margin-right:4px;font-size:12px}.ce-menu.list-item-hover-menu.ce-menu-parent .ce-menu-dropdown{position:absolute;background:#fff;box-shadow:0 1px 5px #2777f866;z-index:99999999;left:0;padding:4px;border-radius:4px;display:none;text-align:center;width:160px}.ce-menu.list-item-hover-menu.ce-menu-parent .ce-menu-dropdown.ce-menu-dropdown-active{display:block}.ce-menu.list-item-hover-menu.ce-menu-parent .ce-menu-dropdown .list-item-hover-menu-sub{margin:2px 0;background:#eee;color:#2877f8;width:100%;border-radius:4px;padding:6px 12px;line-height:12px;box-sizing:border-box}.ce-menu.list-item-hover-menu.ce-menu-parent .ce-menu-dropdown .list-item-hover-menu-sub:hover{background-color:#f3e882}.ce-menu.list-item-hover-menu.ce-menu-parent .ce-menu-dropdown .list-item-hover-menu-sub:after{display:none}.ce-menu.selection-menu.ce-menu-parent{position:relative;float:left;cursor:pointer}.ce-menu.selection-menu.ce-menu-parent:after{content:"";position:absolute;top:50%;right:0;width:1px;height:14px;margin-top:-7px;background:rgba(39,119,248,.8);pointer-events:none}.ce-menu.selection-menu.ce-menu-parent .ce-menu-trigger{color:#2777f8}.ce-menu.selection-menu.ce-menu-parent .ce-menu-trigger:before{content:"\\2228";margin-right:4px;font-size:12px}.ce-menu.selection-menu.ce-menu-parent.ce-menu-dropdown-opened .ce-menu-trigger{color:#fff}.ce-menu.selection-menu.ce-menu-parent .ce-menu-dropdown{position:absolute;background:#fff;box-shadow:0 1px 5px #2777f866;z-index:99999999;top:30px;left:0;width:160px;padding:4px;border-radius:4px;display:none;text-align:left}.ce-menu.selection-menu.ce-menu-parent .ce-menu-dropdown.ce-menu-dropdown-active{display:block}.ce-menu.selection-menu.ce-menu-parent .ce-menu-dropdown .selection-menu-sub{color:#2877f8;width:60px;border-radius:4px;text-align:left;display:block;width:100%;box-sizing:border-box;padding-left:4px;padding-right:4px;font-size:12px;background:transparent;cursor:pointer}.ce-menu.selection-menu.ce-menu-parent .ce-menu-dropdown .selection-menu-sub span{font-weight:400;float:inherit}.ce-menu.selection-menu.ce-menu-parent .ce-menu-dropdown .selection-menu-sub .ce-menu-icon{float:unset}.ce-menu.selection-menu.ce-menu-parent .ce-menu-dropdown .selection-menu-sub:hover{background-color:#f3e882}.ce-menu.dir-context-menu>a img.ce-menu-icon{float:none;width:18px;height:18px;position:absolute;top:50%;left:14px;margin-top:-10px}.ce-menu.dir-context-menu.ce-menu-parent{position:relative;cursor:pointer;padding:6px 0}.ce-menu.dir-context-menu.ce-menu-parent:after{content:">";position:absolute;opacity:.5;right:10px;pointer-events:none}.ce-menu.dir-context-menu.ce-menu-parent .ce-menu-trigger{margin-left:43px;color:#2777f8}.ce-menu.dir-context-menu.ce-menu-parent.ce-menu-dropdown-opened{background:#f3e882}.ce-menu.dir-context-menu.ce-menu-parent.ce-menu-dropdown-opened .ce-menu-trigger{color:#1c0ccf}.ce-menu.dir-context-menu.ce-menu-parent.ce-menu-dropdown-opened:after{opacity:0}.ce-menu.dir-context-menu.ce-menu-parent .ce-menu-dropdown{position:absolute;background:#fff;box-shadow:0 1px 5px #2777f866;z-index:99999999;top:0;left:100%;width:160px;padding:4px;border-radius:4px;display:none;text-align:left}.ce-menu.dir-context-menu.ce-menu-parent .ce-menu-dropdown.ce-menu-dropdown-active{display:block}.ce-menu.dir-context-menu.ce-menu-parent .ce-menu-dropdown .dir-context-menu-sub{color:#2877f8;width:60px;border-radius:4px;text-align:left;display:block;width:100%;box-sizing:border-box;padding:4px 8px;font-size:12px;background:transparent;cursor:pointer}.ce-menu.dir-context-menu.ce-menu-parent .ce-menu-dropdown .dir-context-menu-sub span{font-weight:400;float:inherit}.ce-menu.dir-context-menu.ce-menu-parent .ce-menu-dropdown .dir-context-menu-sub:hover{background-color:#f3e882}.ce-menu.dir-context-menu.ce-menu-parent .ce-menu-icon{width:18px;height:18px;margin-right:8px}.ce-menu.list-item-context-menu.ce-menu-parent{position:relative;cursor:pointer;padding:6px 0}.ce-menu.list-item-context-menu.ce-menu-parent:after{content:">";position:absolute;opacity:.5;right:10px;pointer-events:none}.ce-menu.list-item-context-menu.ce-menu-parent .ce-menu-trigger{margin-left:43px;color:#2777f8}.ce-menu.list-item-context-menu.ce-menu-parent.ce-menu-dropdown-opened{background:#f3e882}.ce-menu.list-item-context-menu.ce-menu-parent.ce-menu-dropdown-opened .ce-menu-trigger{color:#1c0ccf}.ce-menu.list-item-context-menu.ce-menu-parent.ce-menu-dropdown-opened:after{opacity:0}.ce-menu.list-item-context-menu.ce-menu-parent .ce-menu-dropdown{position:absolute;background:#fff;box-shadow:0 1px 5px #2777f866;z-index:99999999;top:0;left:100%;width:160px;padding:4px;border-radius:4px;display:none;text-align:left}.ce-menu.list-item-context-menu.ce-menu-parent .ce-menu-dropdown.ce-menu-dropdown-active{display:block}.ce-menu.list-item-context-menu.ce-menu-parent .ce-menu-dropdown .list-item-context-menu-sub{color:#2877f8;width:60px;border-radius:4px;text-align:left;display:block;width:100%;box-sizing:border-box;padding:4px 8px;font-size:12px;background:transparent;cursor:pointer}.ce-menu.list-item-context-menu.ce-menu-parent .ce-menu-dropdown .list-item-context-menu-sub span{font-weight:400;float:inherit}.ce-menu.list-item-context-menu.ce-menu-parent .ce-menu-dropdown .list-item-context-menu-sub:hover{background-color:#f3e882}.context-menu.menu-upward{max-height:400px!important;overflow:unset!important}.ce-menu-divider{height:1px!important;display:block!important;background-color:#edeeef!important}.ce-menu-divider:after{display:none!important}.list-item-hover-menu .ce-menu-divider{height:6px!important;background-color:transparent!important}div#js_operate_box.only-icon li[menu] span{display:none}.list-contents{padding-bottom:300px}.header-name a.ce-open-dir-context-menu{cursor:pointer;background:#f2f4f8;border-radius:4px;padding:0 6px;color:#1890ff;margin-left:10px}.header-size a.ce-size-sort{cursor:pointer;background:#f2f4f8;border-radius:4px;padding:0 6px;color:#8c97a0;margin-left:10px}.header-size a.ce-size-sort i{display:none}.header-size a.ce-size-sort.by-desc{background-color:#fdc94a;color:#1a2734}.header-size a.ce-size-sort.by-desc i.icon-sort-desc{display:inline-block}.header-size a.ce-size-sort.by-asc{background-color:#fdc94a;color:#1a2734}.header-size a.ce-size-sort.by-asc i.icon-sort-asc{display:inline-block}.header-size a.ce-size-sort.ce-size-sort-ing{cursor:no-drop}.ce-offline-config{max-height:70vh;overflow-y:auto}.ce-offline-config .ce-tips{margin-top:20px;margin-left:56px}.ce-offline-config .pure-form-message{margin-left:56px}.ce-offline-exporter{position:absolute;left:140px;top:62px;background:#f4f2ff;padding:6px 10px;border-radius:4px}.ce-offline-exporter button{margin-right:6px}.offline-exporter-config-form{width:550px;padding:10px}.swal2-input#swalDeleteFile{width:20px;padding:0;height:20px;margin:0;vertical-align:sub;cursor:pointer}body.ce-list-s #js-main{padding-top:40px}body.ce-list-s .ce-offline-exporter{top:92px}.ce-offline-searcher{position:absolute;left:140px;top:58px;background:#f4f2ff;padding:4px 10px;border-radius:4px}.ce-offline-searcher.loading form{opacity:.5;pointer-events:none;cursor:wait}.ce-offline-searcher fieldset{padding:0}.ce-offline-searcher .clearable-wrap{position:relative;width:320px}.ce-offline-searcher .clearable-wrap.is-empty .btn-clear{display:none}.ce-offline-searcher .clearable-wrap input{width:300px;padding-right:35px!important}.ce-offline-searcher .clearable-wrap .btn-clear{position:absolute;right:30px;top:4px;display:block}.ce-offline-searcher .form-item{display:inline-block;margin-right:10px;vertical-align:middle}.ce-offline-searcher .form-item input{padding:.3em}.ce-offline-searcher .form-item select{height:2em;padding:.1em .3em}.ce-offline-searcher .form-item label{margin-right:5px}.ce-offline-searcher .help-trigger{font-size:12px}.ce-offline-searcher .list{display:none}.ce-offline-searcher .stop-on-found{width:16px;height:16px;vertical-align:middle;cursor:pointer}.ce-offline-searcher .search-tips{position:fixed;top:146px;bottom:30px;left:0;width:100%;background:#fff;z-index:9999}.ce-offline-searcher .search-tips .tips-body{padding:20px;position:absolute;top:70px;left:50%;transform:translate(-50%,-50%);background:#f4f2ff;width:80%;border-radius:6px}.cloud115-page-offline.ce-list-m .list-contents .file-name-wrap .desc-tips{left:75px}.cloud115-page-offline.ce-list-m li.ce-task-trouble .info-hash{left:210px!important}.cloud115-page-offline li .ce-buttons{float:left;margin-right:6px}.cloud115-page-offline .ce-checkbox{width:30px}.cloud115-page-offline .ce-checkbox input{display:block!important;width:20px;height:20px;cursor:pointer}.cloud115-page-offline #js-warp .info-hash{position:absolute;left:47px;top:25px;color:#ababab;cursor:pointer}.cloud115-page-offline #js-warp .info-hash.hover{color:#6ab2ff}.cloud115-page-offline #js-warp li.ce-selected:before{background:#ffe296!important}.cloud115-page-offline #js-warp li.ce-show-checkbox .info-hash{left:60px}.cloud115-page-offline #js-warp li.ce-show-checkbox .file-name{margin-left:15px}.cloud115-page-offline #js-warp li.ce-show-checkbox .file-type{left:25px!important}.cloud115-page-offline #js-warp li .ce-checkbox{width:30px;position:absolute;left:0}.cloud115-page-offline #js-warp li .ce-checkbox input{display:block!important;width:20px;height:20px;cursor:pointer}.cloud115-page-offline #js-warp li .desc-tips{position:absolute;left:60px;top:25px}.cloud115-eh-cleaner-trigger .btn-open{padding:0 6px;vertical-align:text-top;line-height:30px;border-radius:4px;background:#4faa4f}.v-popper.v-popper--theme-dropdown{display:inline-block}.group-manager{width:750px}.group-manager a{font-size:12px;padding:0 4px;margin-right:8px}.group-manager .group-label{color:#fff;font-size:12px;margin-right:10px;border-radius:4px;padding:2px 8px;background:#66acf9}.group-manager .label-readonly{background:#c93c3c;color:#fff;padding:0 4px;border-radius:4px;vertical-align:middle;margin-right:6px}.append-form{background:#fff;width:350px;padding:10px;border-radius:4px}.append-form input,.append-form textarea{width:100%}.group-form{background:#fff;width:540px;padding:10px;border-radius:4px}.group-form input,.group-form textarea{width:100%}.group-form .filter-label{cursor:pointer;padding:0 4px;text-decoration:underline}.group-form input#groupLabel{display:inline-block}.groups-list{background:#fff;width:565px;padding:10px;border-radius:4px;box-shadow:0 0 4px #d8d8d8}.groups-list table th,.groups-list table td{padding:4px 6px}.groups-list ul li{border-bottom:1px solid #eee;padding:4px}.groups-list ul li:nth-last-child(1){border-bottom:none}.groups-list span{display:inline-block}.groups-list .p-index{width:30px}.groups-list .p-label{width:120px}.groups-list .p-actions button{margin-right:8px}.group-confirm-delete{padding:20px}#cloud115Cleaner{margin-left:10px}.cloud115-eh-cleaner .btn-open{padding:0 6px;vertical-align:text-top;line-height:30px;border-radius:4px;background:#4faa4f;display:none}.cloud115-eh-cleaner .actions-bar{padding-bottom:10px}.cloud115-eh-cleaner .actions-bar .title{font-size:18px;font-weight:700;color:#15110c}.cloud115-eh-cleaner .actions-bar .close{margin-left:20px;margin-right:10px;color:#f40}.cloud115-eh-cleaner .actions-bar i.tp-folder{width:18px;height:18px;vertical-align:sub}.cloud115-eh-cleaner-help{position:fixed;top:60px;right:0;bottom:0;width:470px;z-index:1051;padding:10px 10px 150px 8px;background:#fdffdf;overflow-y:auto}.cloud115-eh-cleaner-help ul{list-style:decimal}.cloud115-eh-cleaner-drawer{position:fixed;top:60px;right:0;bottom:0;left:260px;background:#fff;z-index:1050;padding:10px 20px 200px;overflow-y:auto;box-shadow:-2px 2px 6px #bbb}.cloud115-eh-cleaner-drawer.loading{cursor:wait}.cloud115-eh-cleaner-drawer.loading button,.cloud115-eh-cleaner-drawer.loading input{cursor:no-drop;pointer-events:none}.cloud115-eh-cleaner-drawer .config-toggle{display:inline-block;background:#eee;border-radius:4px;opacity:.2;padding:2px 4px;cursor:pointer}.cloud115-eh-cleaner-drawer .config-toggle.hover{opacity:.7}.cloud115-eh-cleaner-drawer .by-box .by-header{padding-bottom:10px}.cloud115-eh-cleaner-drawer .by-box .by-header .title{font-size:16px;margin-right:8px;color:#0078e6;font-weight:400}.cloud115-eh-cleaner-drawer .by-box .by-header .filter-size{width:100px;font-size:14px;font-weight:700;color:#0078e6;text-indent:6px}.cloud115-eh-cleaner-drawer .by-box .pure-button-group{display:inline-block}.cloud115-eh-cleaner-drawer .by-box .pure-button-group .pure-button{vertical-align:inherit}.cloud115-eh-cleaner-drawer .by-box .pattern-groups{width:750px;text-align:right}.cloud115-eh-cleaner-drawer .by-box .pattern-groups a{font-size:12px;padding:0 4px;margin-right:8px}.cloud115-eh-cleaner-drawer .by-box table tr.active{background:#f7ffc3}.cloud115-eh-cleaner-drawer .by-box table tr.is-dir .pattern{color:#f40}.cloud115-eh-cleaner-drawer .by-box table tr th,.cloud115-eh-cleaner-drawer .by-box table tr td{padding:.5em;font-size:12px}.cloud115-eh-cleaner-drawer .by-box table td a{color:#2877f8}.cloud115-eh-cleaner-drawer .by-box table td .tp-folder{width:16px;height:16px;vertical-align:sub}.ce-empty-cleaner-trigger .btn-open{padding:0 6px;vertical-align:text-top;line-height:30px;border-radius:4px;background:#4faa4f}.ce-empty-cleaner-help[data-v-414bf5e0]{position:fixed;top:60px;right:0;bottom:0;width:360px;z-index:1051;padding:10px 10px 150px 8px;background:#fdffdf;overflow-y:auto}.ce-empty-cleaner-help ul[data-v-414bf5e0]{list-style:decimal}#cloud115EmptyCleaner{margin-left:10px}.v-popper__arrow-container{display:none}.ce-empty-cleaner .btn-open{padding:0 6px;vertical-align:text-top;line-height:30px;border-radius:4px;background:#4faa4f;display:none}.ce-empty-cleaner .top-actions .pure-control-group label{width:auto;text-align:left}.ce-empty-cleaner .actions-bar{padding-bottom:10px;width:72%}.ce-empty-cleaner .actions-bar .title{font-size:18px;font-weight:700;color:#15110c}.ce-empty-cleaner .actions-bar .close{margin-left:20px;margin-right:10px;color:#f40}.ce-empty-cleaner .actions-bar i.tp-folder{width:18px;height:18px;vertical-align:sub}.ce-empty-cleaner .actions-bar .ce-path{font-size:14px;margin-top:4px}.ce-empty-cleaner .actions-bar .ce-path a:hover{text-decoration:underline}.ce-empty-cleaner .ec-logs{max-height:250px;overflow-y:auto;max-width:72%;background:#f4f4f4;padding:10px;line-height:22px;font-size:12px;margin-bottom:20px}.ce-empty-cleaner .ec-items{margin-bottom:30px}.ce-empty-cleaner .ec-items table{font-size:12px;width:72%}.ce-empty-cleaner .ec-items table .tr-deleted>td:not(:last-child){text-decoration:line-through}.ce-empty-cleaner-drawer{position:fixed;top:60px;right:0;bottom:0;left:260px;background:#fff;z-index:1050;padding:10px 20px 200px;overflow-y:auto;box-shadow:-2px 2px 6px #bbb}.ce-empty-cleaner-drawer.loading{cursor:wait}.ce-empty-cleaner-drawer.loading button,.ce-empty-cleaner-drawer.loading input{cursor:no-drop;pointer-events:none}.button-xsmall,.button-mini{font-size:12px;padding:.2em .5em}.button-small{font-size:85%}.button-large{font-size:110%}.button-xlarge{font-size:125%}.button-success,.button-error,.button-warning,.button-secondary{color:#fff;border-radius:2px;text-shadow:0 1px 1px rgba(0,0,0,.2)}.button-success{background:rgb(28,184,65)}.button-error{background:rgb(202,60,60)}.button-warning{background:rgb(223,117,20)}.button-secondary{background:rgb(66,184,221)}.pure-form select{height:2.5em;font-size:12px}.pure-form input[type=number]{min-width:100px}.ce-basic-config .pure-form-message{margin-left:82px}.ce-basic-config .avatar-preview{display:inline-block;vertical-align:middle;margin-left:10px}.ce-basic-config .pure-control-group input.input-small{padding:2px 4px;width:auto}.ce-clouddrive-config-item{margin-bottom:20px;border:1px solid #cbcbcb;border-radius:0;padding:4px}.ce-clouddrive-config-item.active{background:#fefcea}.ce-clouddrive-config-item input:not([type]){font-size:12px}.ce-clouddrive-config-item .button-error{float:right}.ce-clouddrive-config .cd-tips a{text-decoration:underline}.ce-clouddrive-config .cd-code{font-size:110%;cursor:pointer;user-select:none}.ce-list-config .pure-control-group label{width:16em}.ce-list-config .pure-form-message{margin-left:3em}.ce-search-config .pure-control-group label{width:15em}.ce-search-config .pure-form-message{margin-left:3em}.ce-tools-config .pure-control-group label{width:15em}.ce-tools-config .pure-form-message{margin-left:3em}.menu-basic-config .pure-control-group label,.official-menu-config .pure-form label{width:170px!important}.official-menu-config .pure-form label small{color:#999}.official-menu-config .pure-form legend .ce-label{cursor:pointer;font-size:12px;float:right}.official-menu-config .pure-form .ce-toggle{font-size:12px;cursor:pointer;color:#909399}.official-menu-config .pure-form .hidden .ce-toggle{color:#1890ff}.ce-menu-config .menu-config-block{display:inline-block;border-radius:6px;margin:4px;vertical-align:top;padding:0 6px;background:#f9f9f9}.ce-menu-config .menu-config-block>form>legend{border:none;text-align:center;font-size:14px;color:#5092ff;padding:4px;margin-bottom:0}.ce-menu-config .menu-config-block>form>fieldset>div{background:#fff;margin-bottom:1px;padding:4px}.ce-menu-config .menu-config-block>form>fieldset>div:hover{background:#fefcea}.ce-menu-config .menu-config-block label{display:inline-block;width:120px;font-size:12px;line-height:20px;vertical-align:middle;cursor:pointer}.ce-menu-config input[type=checkbox]{margin-right:10px;width:18px;height:18px;cursor:pointer;vertical-align:middle}.ce-menu-config .btn-view-info{display:inline-block;margin-right:6px;vertical-align:middle;cursor:help}.ce-custom-url{border-radius:4px;box-shadow:0 0 5px #eee;border:1px solid #eee;margin-bottom:20px;padding:0 10px;background:#fff}.ce-custom-url label{cursor:pointer}.ce-custom-url input:not([type]){font-size:12px}.ce-custom-url textarea{font-size:12px;resize:vertical}.ce-custom-url input[type=checkbox]{width:18px;height:18px;cursor:pointer}.ce-custom-url .ce-custom-url-index{font-size:14px;font-weight:700;margin-right:20px}.ce-custom-url legend .button-error{float:right}.ce-custom-url fieldset>div{margin-bottom:1px;padding:4px}.ce-custom-url fieldset>div:hover{background:#fefcea}.ce-custom-urls{padding-bottom:100px}.ce-custom-urls .item-memo{display:inline-block;width:320px}.ce-play-urls{padding-bottom:100px}.ce-play-urls .item-memo{display:inline-block;width:340px}.ce-play-urls .extra-memo{font-size:12px;margin-left:10px}.ce-play-urls .extra-memo a{text-decoration:underline;color:#337ab7}.ce-anxia-config .pure-control-group label{width:9em}.ce-anxia-config .pure-form-message{margin-left:3em}.ce-drawer{visibility:hidden}.ce-drawer.is-visible{visibility:visible}.ce-drawer.is-open .ce-drawer__overlay{opacity:.5}.ce-drawer.is-open .ce-drawer__content{transform:translate(0)}.ce-drawer__overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;z-index:200;opacity:0;transition-property:opacity;background-color:#000;user-select:none}.ce-drawer__content{position:fixed;top:0;right:0;bottom:0;height:100%;width:100%;z-index:9999;overflow:auto;transition-property:transform;display:flex;flex-direction:column;transform:translate(100%);box-shadow:0 2px 6px #777}.ce-config-main .ce-intro{margin-left:35%;color:#7676ff}.ce-config-main .ce-intro small{color:#999}.ce-config-main .ce-config-main-body{padding:10px}.ce-config-main .ce-config-main-header{padding:10px;position:sticky;top:0;background:#fff;z-index:100000;box-shadow:0 1px 2px #e9e9e9}.ce-config-main .ce-config-main-header h1{display:inline;font-size:18px}.ce-config-main .ce-config-main-header .ce-config-main-close{float:right;vertical-align:top;color:#89929b;cursor:pointer;padding:2px 20px;border-radius:6px}.ce-config-main .ce-config-main-header .ce-config-main-close:hover{background:#fefcea;color:#0275ff}.ce-config-main .ce-offline-config{max-height:unset}.ce-login-page a.ce-entry{display:inline-block;background:#fefcea;padding:2px 6px;border-radius:4px;border:1px solid #234888;margin:0 4px}.list-contents ul li .ce-btn-folder-size{background:#f2f4f8;border-radius:6px;padding:4px;cursor:pointer}.list-contents ul li .ce-file-sha1{position:absolute;top:20px;color:#999;cursor:pointer;font-size:90%}.list-contents ul li.ce-show-sha1 .file-name{height:40px}.list-contents ul li.ce-size-got .ce-btn-folder-size{opacity:.6;margin-left:6px}.list-contents ul li.ce-size-got .ce-btn-folder-size:hover{opacity:1}#js_top_header_file_path_box .ce-path-btn{background-color:#f4f6fc;height:32px}#js_top_header_file_path_box .ce-path-btn#ceGotoPath{margin-right:6px}#js_top_header_file_path_box.ce-goto-path-active{height:60px}#js_top_header_file_path_box.ce-goto-path-active div#js_path_add_dir{height:32px}#js_top_header_file_path_box #ceGotoPathApp{position:absolute;top:40px}.ce-goto-main{position:relative;margin-right:5px}.ce-goto-main.ce-goto-sug-shown .ce-goto-input-wrap{border-radius:6px 6px 0 0}.ce-goto-main.ce-goto-sug-shown .ce-goto-sug{display:block}.ce-goto-main .ce-goto-input-wrap{position:relative;overflow:hidden;border:1px solid #cfcccc;border-radius:6px}.ce-goto-main .ce-goto-input-wrap .ce-goto-input{border-radius:6px 6px 0 0;border:none;padding:4px 10px;width:100%;box-sizing:border-box;color:#2877f8;border-bottom:none}.ce-goto-main .ce-goto-input-wrap .ce-goto-input-btn{position:absolute;border:none}.ce-goto-main .ce-goto-input-wrap .ce-goto-input-btn:hover{color:#ff723e}.ce-goto-main .ce-goto-input-wrap .ce-goto-input-btn[data-cmd]{top:5px;font-size:12px;background:#aeaeae;color:#fff;padding:0 4px;border-radius:4px;cursor:pointer}.ce-goto-main .ce-goto-input-wrap .ce-goto-input-btn[data-cmd]:hover{background:#ff723e}.ce-goto-main .ce-goto-input-wrap .ce-goto-input-btn[data-cmd][disabled]{background:#d7d7d7;cursor:not-allowed}.ce-goto-main .ce-goto-input-wrap .ce-goto-input-btn[data-cmd=clear]{right:10px}.ce-goto-main .ce-goto-input-wrap .ce-goto-input-btn[data-cmd=toggle]{right:50px}.ce-goto-main .ce-goto-sug{display:none;position:absolute;background:#ffffff;width:100%;padding:10px 10px 10px 8px;max-height:250px;z-index:999999;overflow-y:auto;box-shadow:0 5px 8px #ededed;border-radius:0 0 6px 6px;border:1px solid #cfcccc;box-sizing:border-box;border-top:none}.ce-goto-main .ce-goto-sug .ce-goto-sug-item{padding:4px 10px;background:#f4f6fc;margin-bottom:4px;cursor:pointer;border-radius:4px;font-size:12px;color:#353535}.ce-goto-main .ce-goto-sug .ce-goto-sug-item:hover{background:#d7d7d7}.ce-goto-main .ce-goto-sug .ce-goto-sug-item.active{background:#f4e1cf;color:#2877f8}.ce-goto-main .ce-goto-sug .ce-goto-sug-item span.ce-goto-sug-prefix,.ce-goto-main .ce-goto-sug .ce-goto-sug-item span.ce-goto-sep{color:#a4a4a4}.ce-goto-main .ce-goto-sug .ce-goto-sug-item span.ce-goto-sug-index{display:inline-block;background:#6ab2ff;font-size:10px;min-width:20px;color:#fff;border-radius:4px;text-align:center;padding:0 2px;margin-right:4px}.ce-search-page .top-file-path .file-path{float:left}.ce-search-page .dir-tab.ce-btn-select{background:#fffcea;color:#2877f8;display:inline-block;height:32px;line-height:24px;font-size:12px;padding:4px 8px;box-sizing:border-box;border:1px solid #2877f8;border-radius:4px}.ce-search-page .dir-tab.ce-btn-select:hover{background:#ffff00}
`);

var eR=Object.defineProperty;var tR=(Xo,zn,Zo)=>zn in Xo?eR(Xo,zn,{enumerable:!0,configurable:!0,writable:!0,value:Zo}):Xo[zn]=Zo;var _e=(Xo,zn,Zo)=>(tR(Xo,typeof zn!="symbol"?zn+"":zn,Zo),Zo);(function(){"use strict";const Xo="",zn="",Zo="",nR="",oR="",iR="",sR="",hg=typeof btoa=="function",Ea=typeof Buffer=="function";typeof TextDecoder=="function"&&new TextDecoder;const Jc=typeof TextEncoder=="function"?new TextEncoder:void 0,mg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Di=Array.prototype.slice.call(mg);(e=>{let t={};return e.forEach((n,o)=>t[n]=o),t})(Di);const hn=String.fromCharCode.bind(String);typeof Uint8Array.from=="function"&&Uint8Array.from.bind(Uint8Array);const gg=e=>e.replace(/=/g,"").replace(/[+\/]/g,t=>t=="+"?"-":"_"),Qc=hg?e=>btoa(e):Ea?e=>Buffer.from(e,"binary").toString("base64"):e=>{let t,n,o,i,s="";const r=e.length%3;for(let a=0;a<e.length;){if((n=e.charCodeAt(a++))>255||(o=e.charCodeAt(a++))>255||(i=e.charCodeAt(a++))>255)throw new TypeError("invalid character found");t=n<<16|o<<8|i,s+=Di[t>>18&63]+Di[t>>12&63]+Di[t>>6&63]+Di[t&63]}return r?s.slice(0,r-3)+"===".substring(r):s},yg=Ea?e=>Buffer.from(e).toString("base64"):e=>{let n=[];for(let o=0,i=e.length;o<i;o+=4096)n.push(hn.apply(null,e.subarray(o,o+4096)));return Qc(n.join(""))},wg=e=>{if(e.length<2){var t=e.charCodeAt(0);return t<128?e:t<2048?hn(192|t>>>6)+hn(128|t&63):hn(224|t>>>12&15)+hn(128|t>>>6&63)+hn(128|t&63)}else{var t=65536+(e.charCodeAt(0)-55296)*1024+(e.charCodeAt(1)-56320);return hn(240|t>>>18&7)+hn(128|t>>>12&63)+hn(128|t>>>6&63)+hn(128|t&63)}},bg=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,_g=e=>e.replace(bg,wg),Xc=Ea?e=>Buffer.from(e,"utf8").toString("base64"):Jc?e=>yg(Jc.encode(e)):e=>Qc(_g(e)),Zc=(e,t=!1)=>t?gg(Xc(e)):Xc(e);var _o=window,ka=(()=>_o.GM_setValue)(),vg=(()=>_o.GM_deleteValue)(),xg=(()=>_o.GM_openInTab)(),Ms=(()=>_o.GM_registerMenuCommand)(),eu=(()=>_o.GM_xmlhttpRequest)(),Ri=(()=>_o.GM_setClipboard)(),Ds=(()=>_o.GM_getValue)(),Vn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Cg(e){var t=e.default;if(typeof t=="function"){var n=function(){return t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(o){var i=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(n,o,i.get?i:{enumerable:!0,get:function(){return e[o]}})}),n}var tu={exports:{}};/*!
* sweetalert2 v11.7.2
* Released under the MIT License.
*/(function(e,t){(function(n,o){e.exports=o()})(Vn,function(){var n={awaitingPromise:new WeakMap,promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap};const o="swal2-",i=d=>{const p={};for(const y in d)p[d[y]]=o+d[y];return p},s=i(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","default-outline","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error"]),r=i(["success","warning","info","question","error"]),a="SweetAlert2:",l=d=>{const p=[];for(let y=0;y<d.length;y++)p.indexOf(d[y])===-1&&p.push(d[y]);return p},u=d=>d.charAt(0).toUpperCase()+d.slice(1),f=d=>{console.warn(`${a} ${typeof d=="object"?d.join(" "):d}`)},h=d=>{console.error(`${a} ${d}`)},g=[],b=d=>{g.includes(d)||(g.push(d),f(d))},_=(d,p)=>{b(`"${d}" is deprecated and will be removed in the next major release. Please use "${p}" instead.`)},E=d=>typeof d=="function"?d():d,I=d=>d&&typeof d.toPromise=="function",M=d=>I(d)?d.toPromise():Promise.resolve(d),P=d=>d&&Promise.resolve(d)===d,T=()=>document.body.querySelector(`.${s.container}`),H=d=>{const p=T();return p?p.querySelector(d):null},ie=d=>H(`.${d}`),U=()=>ie(s.popup),Z=()=>ie(s.icon),ce=()=>ie(s["icon-content"]),ye=()=>ie(s.title),Ie=()=>ie(s["html-container"]),be=()=>ie(s.image),O=()=>ie(s["progress-steps"]),ae=()=>ie(s["validation-message"]),Q=()=>H(`.${s.actions} .${s.confirm}`),Ee=()=>H(`.${s.actions} .${s.cancel}`),D=()=>H(`.${s.actions} .${s.deny}`),K=()=>ie(s["input-label"]),N=()=>H(`.${s.loader}`),we=()=>ie(s.actions),Ae=()=>ie(s.footer),De=()=>ie(s["timer-progress-bar"]),he=()=>ie(s.close),ue=`
  a[href],
  area[href],
  input:not([disabled]),
  select:not([disabled]),
  textarea:not([disabled]),
  button:not([disabled]),
  iframe,
  object,
  embed,
  [tabindex="0"],
  [contenteditable],
  audio[controls],
  video[controls],
  summary
`,He=()=>{const d=Array.from(U().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort((y,x)=>{const j=parseInt(y.getAttribute("tabindex")),Pe=parseInt(x.getAttribute("tabindex"));return j>Pe?1:j<Pe?-1:0}),p=Array.from(U().querySelectorAll(ue)).filter(y=>y.getAttribute("tabindex")!=="-1");return l(d.concat(p)).filter(y=>q(y))},ot=()=>ut(document.body,s.shown)&&!ut(document.body,s["toast-shown"])&&!ut(document.body,s["no-backdrop"]),Me=()=>U()&&ut(U(),s.toast),tt=()=>U().hasAttribute("data-loading"),it={previousBodyPadding:null},vt=(d,p)=>{if(d.textContent="",p){const x=new DOMParser().parseFromString(p,"text/html");Array.from(x.querySelector("head").childNodes).forEach(j=>{d.appendChild(j)}),Array.from(x.querySelector("body").childNodes).forEach(j=>{j instanceof HTMLVideoElement||j instanceof HTMLAudioElement?d.appendChild(j.cloneNode(!0)):d.appendChild(j)})}},ut=(d,p)=>{if(!p)return!1;const y=p.split(/\s+/);for(let x=0;x<y.length;x++)if(!d.classList.contains(y[x]))return!1;return!0},bo=(d,p)=>{Array.from(d.classList).forEach(y=>{!Object.values(s).includes(y)&&!Object.values(r).includes(y)&&!Object.values(p.showClass).includes(y)&&d.classList.remove(y)})},wt=(d,p,y)=>{if(bo(d,p),p.customClass&&p.customClass[y]){if(typeof p.customClass[y]!="string"&&!p.customClass[y].forEach){f(`Invalid type of customClass.${y}! Expected string or iterable object, got "${typeof p.customClass[y]}"`);return}R(d,p.customClass[y])}},v=(d,p)=>{if(!p)return null;switch(p){case"select":case"textarea":case"file":return d.querySelector(`.${s.popup} > .${s[p]}`);case"checkbox":return d.querySelector(`.${s.popup} > .${s.checkbox} input`);case"radio":return d.querySelector(`.${s.popup} > .${s.radio} input:checked`)||d.querySelector(`.${s.popup} > .${s.radio} input:first-child`);case"range":return d.querySelector(`.${s.popup} > .${s.range} input`);default:return d.querySelector(`.${s.popup} > .${s.input}`)}},A=d=>{if(d.focus(),d.type!=="file"){const p=d.value;d.value="",d.value=p}},F=(d,p,y)=>{!d||!p||(typeof p=="string"&&(p=p.split(/\s+/).filter(Boolean)),p.forEach(x=>{Array.isArray(d)?d.forEach(j=>{y?j.classList.add(x):j.classList.remove(x)}):y?d.classList.add(x):d.classList.remove(x)}))},R=(d,p)=>{F(d,p,!0)},W=(d,p)=>{F(d,p,!1)},se=(d,p)=>{const y=Array.from(d.children);for(let x=0;x<y.length;x++){const j=y[x];if(j instanceof HTMLElement&&ut(j,p))return j}},me=(d,p,y)=>{y===`${parseInt(y)}`&&(y=parseInt(y)),y||parseInt(y)===0?d.style[p]=typeof y=="number"?`${y}px`:y:d.style.removeProperty(p)},X=function(d){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"flex";d.style.display=p},ne=d=>{d.style.display="none"},te=(d,p,y,x)=>{const j=d.querySelector(p);j&&(j.style[y]=x)},ve=function(d,p){let y=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"flex";p?X(d,y):ne(d)},q=d=>!!(d&&(d.offsetWidth||d.offsetHeight||d.getClientRects().length)),xe=()=>!q(Q())&&!q(D())&&!q(Ee()),m=d=>d.scrollHeight>d.clientHeight,w=d=>{const p=window.getComputedStyle(d),y=parseFloat(p.getPropertyValue("animation-duration")||"0"),x=parseFloat(p.getPropertyValue("transition-duration")||"0");return y>0||x>0},C=function(d){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const y=De();q(y)&&(p&&(y.style.transition="none",y.style.width="100%"),setTimeout(()=>{y.style.transition=`width ${d/1e3}s linear`,y.style.width="0%"},10))},k=()=>{const d=De(),p=parseInt(window.getComputedStyle(d).width);d.style.removeProperty("transition"),d.style.width="100%";const y=parseInt(window.getComputedStyle(d).width),x=p/y*100;d.style.width=`${x}%`},L=100,S={},V=()=>{S.previousActiveElement instanceof HTMLElement?(S.previousActiveElement.focus(),S.previousActiveElement=null):document.body&&document.body.focus()},Y=d=>new Promise(p=>{if(!d)return p();const y=window.scrollX,x=window.scrollY;S.restoreFocusTimeout=setTimeout(()=>{V(),p()},L),window.scrollTo(y,x)}),oe=()=>typeof window>"u"||typeof document>"u",Oe=`
 <div aria-labelledby="${s.title}" aria-describedby="${s["html-container"]}" class="${s.popup}" tabindex="-1">
   <button type="button" class="${s.close}"></button>
   <ul class="${s["progress-steps"]}"></ul>
   <div class="${s.icon}"></div>
   <img class="${s.image}" />
   <h2 class="${s.title}" id="${s.title}"></h2>
   <div class="${s["html-container"]}" id="${s["html-container"]}"></div>
   <input class="${s.input}" />
   <input type="file" class="${s.file}" />
   <div class="${s.range}">
     <input type="range" />
     <output></output>
   </div>
   <select class="${s.select}"></select>
   <div class="${s.radio}"></div>
   <label for="${s.checkbox}" class="${s.checkbox}">
     <input type="checkbox" />
     <span class="${s.label}"></span>
   </label>
   <textarea class="${s.textarea}"></textarea>
   <div class="${s["validation-message"]}" id="${s["validation-message"]}"></div>
   <div class="${s.actions}">
     <div class="${s.loader}"></div>
     <button type="button" class="${s.confirm}"></button>
     <button type="button" class="${s.deny}"></button>
     <button type="button" class="${s.cancel}"></button>
   </div>
   <div class="${s.footer}"></div>
   <div class="${s["timer-progress-bar-container"]}">
     <div class="${s["timer-progress-bar"]}"></div>
   </div>
 </div>
`.replace(/(^|\n)\s*/g,""),Te=()=>{const d=T();return d?(d.remove(),W([document.documentElement,document.body],[s["no-backdrop"],s["toast-shown"],s["has-column"]]),!0):!1},$e=()=>{S.currentInstance.resetValidationMessage()},ze=()=>{const d=U(),p=se(d,s.input),y=se(d,s.file),x=d.querySelector(`.${s.range} input`),j=d.querySelector(`.${s.range} output`),Pe=se(d,s.select),Ze=d.querySelector(`.${s.checkbox} input`),Xt=se(d,s.textarea);p.oninput=$e,y.onchange=$e,Pe.onchange=$e,Ze.onchange=$e,Xt.oninput=$e,x.oninput=()=>{$e(),j.value=x.value},x.onchange=()=>{$e(),j.value=x.value}},Nt=d=>typeof d=="string"?document.querySelector(d):d,Et=d=>{const p=U();p.setAttribute("role",d.toast?"alert":"dialog"),p.setAttribute("aria-live",d.toast?"polite":"assertive"),d.toast||p.setAttribute("aria-modal","true")},As=d=>{window.getComputedStyle(d).direction==="rtl"&&R(T(),s.rtl)},Ps=d=>{const p=Te();if(oe()){h("SweetAlert2 requires document to initialize");return}const y=document.createElement("div");y.className=s.container,p&&R(y,s["no-transition"]),vt(y,Oe);const x=Nt(d.target);x.appendChild(y),Et(d),As(x),ze()},Fc=(d,p)=>{d instanceof HTMLElement?p.appendChild(d):typeof d=="object"?TM(d,p):d&&vt(p,d)},TM=(d,p)=>{d.jquery?OM(p,d):vt(p,d.toString())},OM=(d,p)=>{if(d.textContent="",0 in p)for(let y=0;y in p;y++)d.appendChild(p[y].cloneNode(!0));else d.appendChild(p.cloneNode(!0))},Is=(()=>{if(oe())return!1;const d=document.createElement("div"),p={WebkitAnimation:"webkitAnimationEnd",animation:"animationend"};for(const y in p)if(Object.prototype.hasOwnProperty.call(p,y)&&typeof d.style[y]<"u")return p[y];return!1})(),LM=()=>{const d=document.createElement("div");d.className=s["scrollbar-measure"],document.body.appendChild(d);const p=d.getBoundingClientRect().width-d.clientWidth;return document.body.removeChild(d),p},MM=(d,p)=>{const y=we(),x=N();!p.showConfirmButton&&!p.showDenyButton&&!p.showCancelButton?ne(y):X(y),wt(y,p,"actions"),DM(y,x,p),vt(x,p.loaderHtml),wt(x,p,"loader")};function DM(d,p,y){const x=Q(),j=D(),Pe=Ee();Uc(x,"confirm",y),Uc(j,"deny",y),Uc(Pe,"cancel",y),RM(x,j,Pe,y),y.reverseButtons&&(y.toast?(d.insertBefore(Pe,x),d.insertBefore(j,x)):(d.insertBefore(Pe,p),d.insertBefore(j,p),d.insertBefore(x,p)))}function RM(d,p,y,x){if(!x.buttonsStyling){W([d,p,y],s.styled);return}R([d,p,y],s.styled),x.confirmButtonColor&&(d.style.backgroundColor=x.confirmButtonColor,R(d,s["default-outline"])),x.denyButtonColor&&(p.style.backgroundColor=x.denyButtonColor,R(p,s["default-outline"])),x.cancelButtonColor&&(y.style.backgroundColor=x.cancelButtonColor,R(y,s["default-outline"]))}function Uc(d,p,y){ve(d,y[`show${u(p)}Button`],"inline-block"),vt(d,y[`${p}ButtonText`]),d.setAttribute("aria-label",y[`${p}ButtonAriaLabel`]),d.className=s[p],wt(d,y,`${p}Button`),R(d,y[`${p}ButtonClass`])}const NM=(d,p)=>{const y=he();vt(y,p.closeButtonHtml),wt(y,p,"closeButton"),ve(y,p.showCloseButton),y.setAttribute("aria-label",p.closeButtonAriaLabel)},BM=(d,p)=>{const y=T();!y||(FM(y,p.backdrop),UM(y,p.position),jM(y,p.grow),wt(y,p,"container"))};function FM(d,p){typeof p=="string"?d.style.background=p:p||R([document.documentElement,document.body],s["no-backdrop"])}function UM(d,p){p in s?R(d,s[p]):(f('The "position" parameter is not valid, defaulting to "center"'),R(d,s.center))}function jM(d,p){if(p&&typeof p=="string"){const y=`grow-${p}`;y in s&&R(d,s[y])}}const HM=["input","file","range","select","radio","checkbox","textarea"],qM=(d,p)=>{const y=U(),x=n.innerParams.get(d),j=!x||p.input!==x.input;HM.forEach(Pe=>{const Ze=se(y,s[Pe]);WM(Pe,p.inputAttributes),Ze.className=s[Pe],j&&ne(Ze)}),p.input&&(j&&zM(p),KM(p))},zM=d=>{if(!Kt[d.input]){h(`Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "${d.input}"`);return}const p=Bm(d.input),y=Kt[d.input](p,d);X(p),d.inputAutoFocus&&setTimeout(()=>{A(y)})},VM=d=>{for(let p=0;p<d.attributes.length;p++){const y=d.attributes[p].name;["type","value","style"].includes(y)||d.removeAttribute(y)}},WM=(d,p)=>{const y=v(U(),d);if(!!y){VM(y);for(const x in p)y.setAttribute(x,p[x])}},KM=d=>{const p=Bm(d.input);typeof d.customClass=="object"&&R(p,d.customClass.input)},jc=(d,p)=>{(!d.placeholder||p.inputPlaceholder)&&(d.placeholder=p.inputPlaceholder)},Ts=(d,p,y)=>{if(y.inputLabel){d.id=s.input;const x=document.createElement("label"),j=s["input-label"];x.setAttribute("for",d.id),x.className=j,typeof y.customClass=="object"&&R(x,y.customClass.inputLabel),x.innerText=y.inputLabel,p.insertAdjacentElement("beforebegin",x)}},Bm=d=>se(U(),s[d]||s.input),va=(d,p)=>{["string","number"].includes(typeof p)?d.value=`${p}`:P(p)||f(`Unexpected type of inputValue! Expected "string", "number" or "Promise", got "${typeof p}"`)},Kt={};Kt.text=Kt.email=Kt.password=Kt.number=Kt.tel=Kt.url=(d,p)=>(va(d,p.inputValue),Ts(d,d,p),jc(d,p),d.type=p.input,d),Kt.file=(d,p)=>(Ts(d,d,p),jc(d,p),d),Kt.range=(d,p)=>{const y=d.querySelector("input"),x=d.querySelector("output");return va(y,p.inputValue),y.type=p.input,va(x,p.inputValue),Ts(y,d,p),d},Kt.select=(d,p)=>{if(d.textContent="",p.inputPlaceholder){const y=document.createElement("option");vt(y,p.inputPlaceholder),y.value="",y.disabled=!0,y.selected=!0,d.appendChild(y)}return Ts(d,d,p),d},Kt.radio=d=>(d.textContent="",d),Kt.checkbox=(d,p)=>{const y=v(U(),"checkbox");y.value="1",y.id=s.checkbox,y.checked=Boolean(p.inputValue);const x=d.querySelector("span");return vt(x,p.inputPlaceholder),y},Kt.textarea=(d,p)=>{va(d,p.inputValue),jc(d,p),Ts(d,d,p);const y=x=>parseInt(window.getComputedStyle(x).marginLeft)+parseInt(window.getComputedStyle(x).marginRight);return setTimeout(()=>{if("MutationObserver"in window){const x=parseInt(window.getComputedStyle(U()).width),j=()=>{const Pe=d.offsetWidth+y(d);Pe>x?U().style.width=`${Pe}px`:U().style.width=null};new MutationObserver(j).observe(d,{attributes:!0,attributeFilter:["style"]})}}),d};const GM=(d,p)=>{const y=Ie();wt(y,p,"htmlContainer"),p.html?(Fc(p.html,y),X(y,"block")):p.text?(y.textContent=p.text,X(y,"block")):ne(y),qM(d,p)},YM=(d,p)=>{const y=Ae();ve(y,p.footer),p.footer&&Fc(p.footer,y),wt(y,p,"footer")},JM=(d,p)=>{const y=n.innerParams.get(d),x=Z();if(y&&p.icon===y.icon){Um(x,p),Fm(x,p);return}if(!p.icon&&!p.iconHtml){ne(x);return}if(p.icon&&Object.keys(r).indexOf(p.icon)===-1){h(`Unknown icon! Expected "success", "error", "warning", "info" or "question", got "${p.icon}"`),ne(x);return}X(x),Um(x,p),Fm(x,p),R(x,p.showClass.icon)},Fm=(d,p)=>{for(const y in r)p.icon!==y&&W(d,r[y]);R(d,r[p.icon]),eD(d,p),QM(),wt(d,p,"icon")},QM=()=>{const d=U(),p=window.getComputedStyle(d).getPropertyValue("background-color"),y=d.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let x=0;x<y.length;x++)y[x].style.backgroundColor=p},XM=`
  <div class="swal2-success-circular-line-left"></div>
  <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>
  <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>
  <div class="swal2-success-circular-line-right"></div>
`,ZM=`
  <span class="swal2-x-mark">
    <span class="swal2-x-mark-line-left"></span>
    <span class="swal2-x-mark-line-right"></span>
  </span>
`,Um=(d,p)=>{let y=d.innerHTML,x;p.iconHtml?x=jm(p.iconHtml):p.icon==="success"?(x=XM,y=y.replace(/ style=".*?"/g,"")):p.icon==="error"?x=ZM:x=jm({question:"?",warning:"!",info:"i"}[p.icon]),y.trim()!==x.trim()&&vt(d,x)},eD=(d,p)=>{if(!!p.iconColor){d.style.color=p.iconColor,d.style.borderColor=p.iconColor;for(const y of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])te(d,y,"backgroundColor",p.iconColor);te(d,".swal2-success-ring","borderColor",p.iconColor)}},jm=d=>`<div class="${s["icon-content"]}">${d}</div>`,tD=(d,p)=>{const y=be();if(!p.imageUrl){ne(y);return}X(y,""),y.setAttribute("src",p.imageUrl),y.setAttribute("alt",p.imageAlt),me(y,"width",p.imageWidth),me(y,"height",p.imageHeight),y.className=s.image,wt(y,p,"image")},nD=(d,p)=>{const y=T(),x=U();p.toast?(me(y,"width",p.width),x.style.width="100%",x.insertBefore(N(),Z())):me(x,"width",p.width),me(x,"padding",p.padding),p.color&&(x.style.color=p.color),p.background&&(x.style.background=p.background),ne(ae()),oD(x,p)},oD=(d,p)=>{d.className=`${s.popup} ${q(d)?p.showClass.popup:""}`,p.toast?(R([document.documentElement,document.body],s["toast-shown"]),R(d,s.toast)):R(d,s.modal),wt(d,p,"popup"),typeof p.customClass=="string"&&R(d,p.customClass),p.icon&&R(d,s[`icon-${p.icon}`])},iD=(d,p)=>{const y=O();if(!p.progressSteps||p.progressSteps.length===0){ne(y);return}X(y),y.textContent="",p.currentProgressStep>=p.progressSteps.length&&f("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),p.progressSteps.forEach((x,j)=>{const Pe=sD(x);if(y.appendChild(Pe),j===p.currentProgressStep&&R(Pe,s["active-progress-step"]),j!==p.progressSteps.length-1){const Ze=rD(p);y.appendChild(Ze)}})},sD=d=>{const p=document.createElement("li");return R(p,s["progress-step"]),vt(p,d),p},rD=d=>{const p=document.createElement("li");return R(p,s["progress-step-line"]),d.progressStepsDistance&&me(p,"width",d.progressStepsDistance),p},aD=(d,p)=>{const y=ye();ve(y,p.title||p.titleText,"block"),p.title&&Fc(p.title,y),p.titleText&&(y.innerText=p.titleText),wt(y,p,"title")},Hm=(d,p)=>{nD(d,p),BM(d,p),iD(d,p),JM(d,p),tD(d,p),aD(d,p),NM(d,p),GM(d,p),MM(d,p),YM(d,p),typeof p.didRender=="function"&&p.didRender(U())};function qm(){const d=n.innerParams.get(this);if(!d)return;const p=n.domCache.get(this);ne(p.loader),Me()?d.icon&&X(Z()):lD(p),W([p.popup,p.actions],s.loading),p.popup.removeAttribute("aria-busy"),p.popup.removeAttribute("data-loading"),p.confirmButton.disabled=!1,p.denyButton.disabled=!1,p.cancelButton.disabled=!1}const lD=d=>{const p=d.popup.getElementsByClassName(d.loader.getAttribute("data-button-to-replace"));p.length?X(p[0],"inline-block"):xe()&&ne(d.actions)};function cD(d){const p=n.innerParams.get(d||this),y=n.domCache.get(d||this);return y?v(y.popup,p.input):null}const uD=()=>q(U()),zm=()=>Q()&&Q().click(),dD=()=>D()&&D().click(),fD=()=>Ee()&&Ee().click(),Ii=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),Vm=d=>{d.keydownTarget&&d.keydownHandlerAdded&&(d.keydownTarget.removeEventListener("keydown",d.keydownHandler,{capture:d.keydownListenerCapture}),d.keydownHandlerAdded=!1)},pD=(d,p,y,x)=>{Vm(p),y.toast||(p.keydownHandler=j=>mD(d,j,x),p.keydownTarget=y.keydownListenerCapture?window:U(),p.keydownListenerCapture=y.keydownListenerCapture,p.keydownTarget.addEventListener("keydown",p.keydownHandler,{capture:p.keydownListenerCapture}),p.keydownHandlerAdded=!0)},Hc=(d,p)=>{const y=He();if(y.length){d=d+p,d===y.length?d=0:d===-1&&(d=y.length-1),y[d].focus();return}U().focus()},Wm=["ArrowRight","ArrowDown"],hD=["ArrowLeft","ArrowUp"],mD=(d,p,y)=>{const x=n.innerParams.get(d);!x||p.isComposing||p.keyCode===229||(x.stopKeydownPropagation&&p.stopPropagation(),p.key==="Enter"?gD(d,p,x):p.key==="Tab"?yD(p):[...Wm,...hD].includes(p.key)?wD(p.key):p.key==="Escape"&&bD(p,x,y))},gD=(d,p,y)=>{if(!!E(y.allowEnterKey)&&p.target&&d.getInput()&&p.target instanceof HTMLElement&&p.target.outerHTML===d.getInput().outerHTML){if(["textarea","file"].includes(y.input))return;zm(),p.preventDefault()}},yD=d=>{const p=d.target,y=He();let x=-1;for(let j=0;j<y.length;j++)if(p===y[j]){x=j;break}d.shiftKey?Hc(x,-1):Hc(x,1),d.stopPropagation(),d.preventDefault()},wD=d=>{const p=Q(),y=D(),x=Ee(),j=[p,y,x];if(document.activeElement instanceof HTMLElement&&!j.includes(document.activeElement))return;const Pe=Wm.includes(d)?"nextElementSibling":"previousElementSibling";let Ze=document.activeElement;for(let Xt=0;Xt<we().children.length;Xt++){if(Ze=Ze[Pe],!Ze)return;if(Ze instanceof HTMLButtonElement&&q(Ze))break}Ze instanceof HTMLButtonElement&&Ze.focus()},bD=(d,p,y)=>{E(p.allowEscapeKey)&&(d.preventDefault(),y(Ii.esc))};var Os={swalPromiseResolve:new WeakMap,swalPromiseReject:new WeakMap};const _D=()=>{Array.from(document.body.children).forEach(p=>{p===T()||p.contains(T())||(p.hasAttribute("aria-hidden")&&p.setAttribute("data-previous-aria-hidden",p.getAttribute("aria-hidden")),p.setAttribute("aria-hidden","true"))})},Km=()=>{Array.from(document.body.children).forEach(p=>{p.hasAttribute("data-previous-aria-hidden")?(p.setAttribute("aria-hidden",p.getAttribute("data-previous-aria-hidden")),p.removeAttribute("data-previous-aria-hidden")):p.removeAttribute("aria-hidden")})},vD=()=>{if((/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1)&&!ut(document.body,s.iosfix)){const p=document.body.scrollTop;document.body.style.top=`${p*-1}px`,R(document.body,s.iosfix),CD(),xD()}},xD=()=>{const d=navigator.userAgent,p=!!d.match(/iPad/i)||!!d.match(/iPhone/i),y=!!d.match(/WebKit/i);p&&y&&!d.match(/CriOS/i)&&U().scrollHeight>window.innerHeight-44&&(T().style.paddingBottom=`${44}px`)},CD=()=>{const d=T();let p;d.ontouchstart=y=>{p=$D(y)},d.ontouchmove=y=>{p&&(y.preventDefault(),y.stopPropagation())}},$D=d=>{const p=d.target,y=T();return ED(d)||kD(d)?!1:p===y||!m(y)&&p instanceof HTMLElement&&p.tagName!=="INPUT"&&p.tagName!=="TEXTAREA"&&!(m(Ie())&&Ie().contains(p))},ED=d=>d.touches&&d.touches.length&&d.touches[0].touchType==="stylus",kD=d=>d.touches&&d.touches.length>1,SD=()=>{if(ut(document.body,s.iosfix)){const d=parseInt(document.body.style.top,10);W(document.body,s.iosfix),document.body.style.top="",document.body.scrollTop=d*-1}},AD=()=>{it.previousBodyPadding===null&&document.body.scrollHeight>window.innerHeight&&(it.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight=`${it.previousBodyPadding+LM()}px`)},PD=()=>{it.previousBodyPadding!==null&&(document.body.style.paddingRight=`${it.previousBodyPadding}px`,it.previousBodyPadding=null)};function Gm(d,p,y,x){Me()?Ym(d,x):(Y(y).then(()=>Ym(d,x)),Vm(S)),/^((?!chrome|android).)*safari/i.test(navigator.userAgent)?(p.setAttribute("style","display:none !important"),p.removeAttribute("class"),p.innerHTML=""):p.remove(),ot()&&(PD(),SD(),Km()),ID()}function ID(){W([document.documentElement,document.body],[s.shown,s["height-auto"],s["no-backdrop"],s["toast-shown"]])}function xa(d){d=MD(d);const p=Os.swalPromiseResolve.get(this),y=OD(this);this.isAwaitingPromise()?d.isDismissed||(Ls(this),p(d)):y&&p(d)}function TD(){return!!n.awaitingPromise.get(this)}const OD=d=>{const p=U();if(!p)return!1;const y=n.innerParams.get(d);if(!y||ut(p,y.hideClass.popup))return!1;W(p,y.showClass.popup),R(p,y.hideClass.popup);const x=T();return W(x,y.showClass.backdrop),R(x,y.hideClass.backdrop),DD(d,p,y),!0};function LD(d){const p=Os.swalPromiseReject.get(this);Ls(this),p&&p(d)}const Ls=d=>{d.isAwaitingPromise()&&(n.awaitingPromise.delete(d),n.innerParams.get(d)||d._destroy())},MD=d=>typeof d>"u"?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},d),DD=(d,p,y)=>{const x=T(),j=Is&&w(p);typeof y.willClose=="function"&&y.willClose(p),j?RD(d,p,x,y.returnFocus,y.didClose):Gm(d,x,y.returnFocus,y.didClose)},RD=(d,p,y,x,j)=>{S.swalCloseEventFinishedCallback=Gm.bind(null,d,y,x,j),p.addEventListener(Is,function(Pe){Pe.target===p&&(S.swalCloseEventFinishedCallback(),delete S.swalCloseEventFinishedCallback)})},Ym=(d,p)=>{setTimeout(()=>{typeof p=="function"&&p.bind(d.params)(),d._destroy()})};function Jm(d,p,y){const x=n.domCache.get(d);p.forEach(j=>{x[j].disabled=y})}function Qm(d,p){if(!!d)if(d.type==="radio"){const x=d.parentNode.parentNode.querySelectorAll("input");for(let j=0;j<x.length;j++)x[j].disabled=p}else d.disabled=p}function ND(){Jm(this,["confirmButton","denyButton","cancelButton"],!1)}function BD(){Jm(this,["confirmButton","denyButton","cancelButton"],!0)}function FD(){Qm(this.getInput(),!1)}function UD(){Qm(this.getInput(),!0)}function jD(d){const p=n.domCache.get(this),y=n.innerParams.get(this);vt(p.validationMessage,d),p.validationMessage.className=s["validation-message"],y.customClass&&y.customClass.validationMessage&&R(p.validationMessage,y.customClass.validationMessage),X(p.validationMessage);const x=this.getInput();x&&(x.setAttribute("aria-invalid",!0),x.setAttribute("aria-describedby",s["validation-message"]),A(x),R(x,s.inputerror))}function HD(){const d=n.domCache.get(this);d.validationMessage&&ne(d.validationMessage);const p=this.getInput();p&&(p.removeAttribute("aria-invalid"),p.removeAttribute("aria-describedby"),W(p,s.inputerror))}const Ti={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,template:void 0,toast:!1,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:{},target:"body",color:void 0,backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,preDeny:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,returnFocus:!0,showCloseButton:!1,closeButtonHtml:"&times;",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,showLoaderOnDeny:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputLabel:"",inputValue:"",inputOptions:{},inputAutoFocus:!0,inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,returnInputValueOnDeny:!1,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,willOpen:void 0,didOpen:void 0,didRender:void 0,willClose:void 0,didClose:void 0,didDestroy:void 0,scrollbarPadding:!0},qD=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","color","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","footer","hideClass","html","icon","iconColor","iconHtml","imageAlt","imageHeight","imageUrl","imageWidth","preConfirm","preDeny","progressSteps","returnFocus","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","willClose"],zD={},VD=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusDeny","focusCancel","returnFocus","heightAuto","keydownListenerCapture"],Xm=d=>Object.prototype.hasOwnProperty.call(Ti,d),Zm=d=>qD.indexOf(d)!==-1,qc=d=>zD[d],WD=d=>{Xm(d)||f(`Unknown parameter "${d}"`)},KD=d=>{VD.includes(d)&&f(`The parameter "${d}" is incompatible with toasts`)},GD=d=>{qc(d)&&_(d,qc(d))},YD=d=>{d.backdrop===!1&&d.allowOutsideClick&&f('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');for(const p in d)WD(p),d.toast&&KD(p),GD(p)};function JD(d){const p=U(),y=n.innerParams.get(this);if(!p||ut(p,y.hideClass.popup)){f("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");return}const x=QD(d),j=Object.assign({},y,x);Hm(this,j),n.innerParams.set(this,j),Object.defineProperties(this,{params:{value:Object.assign({},this.params,d),writable:!1,enumerable:!0}})}const QD=d=>{const p={};return Object.keys(d).forEach(y=>{Zm(y)?p[y]=d[y]:f(`Invalid parameter to update: ${y}`)}),p};function XD(){const d=n.domCache.get(this),p=n.innerParams.get(this);if(!p){eg(this);return}d.popup&&S.swalCloseEventFinishedCallback&&(S.swalCloseEventFinishedCallback(),delete S.swalCloseEventFinishedCallback),typeof p.didDestroy=="function"&&p.didDestroy(),ZD(this)}const ZD=d=>{eg(d),delete d.params,delete S.keydownHandler,delete S.keydownTarget,delete S.currentInstance},eg=d=>{d.isAwaitingPromise()?(zc(n,d),n.awaitingPromise.set(d,!0)):(zc(Os,d),zc(n,d))},zc=(d,p)=>{for(const y in d)d[y].delete(p)};var tg=Object.freeze({__proto__:null,_destroy:XD,close:xa,closeModal:xa,closePopup:xa,closeToast:xa,disableButtons:BD,disableInput:UD,disableLoading:qm,enableButtons:ND,enableInput:FD,getInput:cD,handleAwaitingPromise:Ls,hideLoading:qm,isAwaitingPromise:TD,rejectPromise:LD,resetValidationMessage:HD,showValidationMessage:jD,update:JD});const Oi=d=>{let p=U();p||new $a,p=U();const y=N();Me()?ne(Z()):e5(p,d),X(y),p.setAttribute("data-loading","true"),p.setAttribute("aria-busy","true"),p.focus()},e5=(d,p)=>{const y=we(),x=N();!p&&q(Q())&&(p=Q()),X(y),p&&(ne(p),x.setAttribute("data-button-to-replace",p.className)),x.parentNode.insertBefore(x,p),R([d,y],s.loading)},t5=(d,p)=>{p.input==="select"||p.input==="radio"?r5(d,p):["text","email","number","tel","textarea"].includes(p.input)&&(I(p.inputValue)||P(p.inputValue))&&(Oi(Q()),a5(d,p))},n5=(d,p)=>{const y=d.getInput();if(!y)return null;switch(p.input){case"checkbox":return o5(y);case"radio":return i5(y);case"file":return s5(y);default:return p.inputAutoTrim?y.value.trim():y.value}},o5=d=>d.checked?1:0,i5=d=>d.checked?d.value:null,s5=d=>d.files.length?d.getAttribute("multiple")!==null?d.files:d.files[0]:null,r5=(d,p)=>{const y=U(),x=j=>{l5[p.input](y,Vc(j),p)};I(p.inputOptions)||P(p.inputOptions)?(Oi(Q()),M(p.inputOptions).then(j=>{d.hideLoading(),x(j)})):typeof p.inputOptions=="object"?x(p.inputOptions):h(`Unexpected type of inputOptions! Expected object, Map or Promise, got ${typeof p.inputOptions}`)},a5=(d,p)=>{const y=d.getInput();ne(y),M(p.inputValue).then(x=>{y.value=p.input==="number"?`${parseFloat(x)||0}`:`${x}`,X(y),y.focus(),d.hideLoading()}).catch(x=>{h(`Error in inputValue promise: ${x}`),y.value="",X(y),y.focus(),d.hideLoading()})},l5={select:(d,p,y)=>{const x=se(d,s.select),j=(Pe,Ze,Xt)=>{const Bt=document.createElement("option");Bt.value=Xt,vt(Bt,Ze),Bt.selected=ng(Xt,y.inputValue),Pe.appendChild(Bt)};p.forEach(Pe=>{const Ze=Pe[0],Xt=Pe[1];if(Array.isArray(Xt)){const Bt=document.createElement("optgroup");Bt.label=Ze,Bt.disabled=!1,x.appendChild(Bt),Xt.forEach(Mi=>j(Bt,Mi[1],Mi[0]))}else j(x,Xt,Ze)}),x.focus()},radio:(d,p,y)=>{const x=se(d,s.radio);p.forEach(Pe=>{const Ze=Pe[0],Xt=Pe[1],Bt=document.createElement("input"),Mi=document.createElement("label");Bt.type="radio",Bt.name=s.radio,Bt.value=Ze,ng(Ze,y.inputValue)&&(Bt.checked=!0);const Yc=document.createElement("span");vt(Yc,Xt),Yc.className=s.label,Mi.appendChild(Bt),Mi.appendChild(Yc),x.appendChild(Mi)});const j=x.querySelectorAll("input");j.length&&j[0].focus()}},Vc=d=>{const p=[];return typeof Map<"u"&&d instanceof Map?d.forEach((y,x)=>{let j=y;typeof j=="object"&&(j=Vc(j)),p.push([x,j])}):Object.keys(d).forEach(y=>{let x=d[y];typeof x=="object"&&(x=Vc(x)),p.push([y,x])}),p},ng=(d,p)=>p&&p.toString()===d.toString(),c5=d=>{const p=n.innerParams.get(d);d.disableButtons(),p.input?og(d,"confirm"):Kc(d,!0)},u5=d=>{const p=n.innerParams.get(d);d.disableButtons(),p.returnInputValueOnDeny?og(d,"deny"):Wc(d,!1)},d5=(d,p)=>{d.disableButtons(),p(Ii.cancel)},og=(d,p)=>{const y=n.innerParams.get(d);if(!y.input){h(`The "input" parameter is needed to be set when using returnInputValueOn${u(p)}`);return}const x=n5(d,y);y.inputValidator?f5(d,x,p):d.getInput().checkValidity()?p==="deny"?Wc(d,x):Kc(d,x):(d.enableButtons(),d.showValidationMessage(y.validationMessage))},f5=(d,p,y)=>{const x=n.innerParams.get(d);d.disableInput(),Promise.resolve().then(()=>M(x.inputValidator(p,x.validationMessage))).then(Pe=>{d.enableButtons(),d.enableInput(),Pe?d.showValidationMessage(Pe):y==="deny"?Wc(d,p):Kc(d,p)})},Wc=(d,p)=>{const y=n.innerParams.get(d||void 0);y.showLoaderOnDeny&&Oi(D()),y.preDeny?(n.awaitingPromise.set(d||void 0,!0),Promise.resolve().then(()=>M(y.preDeny(p,y.validationMessage))).then(j=>{j===!1?(d.hideLoading(),Ls(d)):d.close({isDenied:!0,value:typeof j>"u"?p:j})}).catch(j=>sg(d||void 0,j))):d.close({isDenied:!0,value:p})},ig=(d,p)=>{d.close({isConfirmed:!0,value:p})},sg=(d,p)=>{d.rejectPromise(p)},Kc=(d,p)=>{const y=n.innerParams.get(d||void 0);y.showLoaderOnConfirm&&Oi(),y.preConfirm?(d.resetValidationMessage(),n.awaitingPromise.set(d||void 0,!0),Promise.resolve().then(()=>M(y.preConfirm(p,y.validationMessage))).then(j=>{q(ae())||j===!1?(d.hideLoading(),Ls(d)):ig(d,typeof j>"u"?p:j)}).catch(j=>sg(d||void 0,j))):ig(d,p)},p5=(d,p,y)=>{n.innerParams.get(d).toast?h5(d,p,y):(g5(p),y5(p),w5(d,p,y))},h5=(d,p,y)=>{p.popup.onclick=()=>{const x=n.innerParams.get(d);x&&(m5(x)||x.timer||x.input)||y(Ii.close)}},m5=d=>d.showConfirmButton||d.showDenyButton||d.showCancelButton||d.showCloseButton;let Ca=!1;const g5=d=>{d.popup.onmousedown=()=>{d.container.onmouseup=function(p){d.container.onmouseup=void 0,p.target===d.container&&(Ca=!0)}}},y5=d=>{d.container.onmousedown=()=>{d.popup.onmouseup=function(p){d.popup.onmouseup=void 0,(p.target===d.popup||d.popup.contains(p.target))&&(Ca=!0)}}},w5=(d,p,y)=>{p.container.onclick=x=>{const j=n.innerParams.get(d);if(Ca){Ca=!1;return}x.target===p.container&&E(j.allowOutsideClick)&&y(Ii.backdrop)}},b5=d=>typeof d=="object"&&d.jquery,rg=d=>d instanceof Element||b5(d),_5=d=>{const p={};return typeof d[0]=="object"&&!rg(d[0])?Object.assign(p,d[0]):["title","html","icon"].forEach((y,x)=>{const j=d[x];typeof j=="string"||rg(j)?p[y]=j:j!==void 0&&h(`Unexpected type of ${y}! Expected "string" or "Element", got ${typeof j}`)}),p};function v5(){const d=this;for(var p=arguments.length,y=new Array(p),x=0;x<p;x++)y[x]=arguments[x];return new d(...y)}function x5(d){class p extends this{_main(x,j){return super._main(x,Object.assign({},d,j))}}return p}const C5=()=>S.timeout&&S.timeout.getTimerLeft(),ag=()=>{if(S.timeout)return k(),S.timeout.stop()},lg=()=>{if(S.timeout){const d=S.timeout.start();return C(d),d}},$5=()=>{const d=S.timeout;return d&&(d.running?ag():lg())},E5=d=>{if(S.timeout){const p=S.timeout.increase(d);return C(p,!0),p}},k5=()=>S.timeout&&S.timeout.isRunning();let cg=!1;const Gc={};function S5(){let d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"data-swal-template";Gc[d]=this,cg||(document.body.addEventListener("click",A5),cg=!0)}const A5=d=>{for(let p=d.target;p&&p!==document;p=p.parentNode)for(const y in Gc){const x=p.getAttribute(y);if(x){Gc[y].fire({template:x});return}}};var P5=Object.freeze({__proto__:null,argsToParams:_5,bindClickHandler:S5,clickCancel:fD,clickConfirm:zm,clickDeny:dD,enableLoading:Oi,fire:v5,getActions:we,getCancelButton:Ee,getCloseButton:he,getConfirmButton:Q,getContainer:T,getDenyButton:D,getFocusableElements:He,getFooter:Ae,getHtmlContainer:Ie,getIcon:Z,getIconContent:ce,getImage:be,getInputLabel:K,getLoader:N,getPopup:U,getProgressSteps:O,getTimerLeft:C5,getTimerProgressBar:De,getTitle:ye,getValidationMessage:ae,increaseTimer:E5,isDeprecatedParameter:qc,isLoading:tt,isTimerRunning:k5,isUpdatableParameter:Zm,isValidParameter:Xm,isVisible:uD,mixin:x5,resumeTimer:lg,showLoading:Oi,stopTimer:ag,toggleTimer:$5});class I5{constructor(p,y){this.callback=p,this.remaining=y,this.running=!1,this.start()}start(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}stop(){return this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=new Date().getTime()-this.started.getTime()),this.remaining}increase(p){const y=this.running;return y&&this.stop(),this.remaining+=p,y&&this.start(),this.remaining}getTimerLeft(){return this.running&&(this.stop(),this.start()),this.remaining}isRunning(){return this.running}}const ug=["swal-title","swal-html","swal-footer"],T5=d=>{const p=typeof d.template=="string"?document.querySelector(d.template):d.template;if(!p)return{};const y=p.content;return F5(y),Object.assign(O5(y),L5(y),M5(y),D5(y),R5(y),N5(y),B5(y,ug))},O5=d=>{const p={};return Array.from(d.querySelectorAll("swal-param")).forEach(x=>{Qo(x,["name","value"]);const j=x.getAttribute("name"),Pe=x.getAttribute("value");typeof Ti[j]=="boolean"?p[j]=Pe!=="false":typeof Ti[j]=="object"?p[j]=JSON.parse(Pe):p[j]=Pe}),p},L5=d=>{const p={};return Array.from(d.querySelectorAll("swal-function-param")).forEach(x=>{const j=x.getAttribute("name"),Pe=x.getAttribute("value");p[j]=new Function(`return ${Pe}`)()}),p},M5=d=>{const p={};return Array.from(d.querySelectorAll("swal-button")).forEach(x=>{Qo(x,["type","color","aria-label"]);const j=x.getAttribute("type");p[`${j}ButtonText`]=x.innerHTML,p[`show${u(j)}Button`]=!0,x.hasAttribute("color")&&(p[`${j}ButtonColor`]=x.getAttribute("color")),x.hasAttribute("aria-label")&&(p[`${j}ButtonAriaLabel`]=x.getAttribute("aria-label"))}),p},D5=d=>{const p={},y=d.querySelector("swal-image");return y&&(Qo(y,["src","width","height","alt"]),y.hasAttribute("src")&&(p.imageUrl=y.getAttribute("src")),y.hasAttribute("width")&&(p.imageWidth=y.getAttribute("width")),y.hasAttribute("height")&&(p.imageHeight=y.getAttribute("height")),y.hasAttribute("alt")&&(p.imageAlt=y.getAttribute("alt"))),p},R5=d=>{const p={},y=d.querySelector("swal-icon");return y&&(Qo(y,["type","color"]),y.hasAttribute("type")&&(p.icon=y.getAttribute("type")),y.hasAttribute("color")&&(p.iconColor=y.getAttribute("color")),p.iconHtml=y.innerHTML),p},N5=d=>{const p={},y=d.querySelector("swal-input");y&&(Qo(y,["type","label","placeholder","value"]),p.input=y.getAttribute("type")||"text",y.hasAttribute("label")&&(p.inputLabel=y.getAttribute("label")),y.hasAttribute("placeholder")&&(p.inputPlaceholder=y.getAttribute("placeholder")),y.hasAttribute("value")&&(p.inputValue=y.getAttribute("value")));const x=Array.from(d.querySelectorAll("swal-input-option"));return x.length&&(p.inputOptions={},x.forEach(j=>{Qo(j,["value"]);const Pe=j.getAttribute("value"),Ze=j.innerHTML;p.inputOptions[Pe]=Ze})),p},B5=(d,p)=>{const y={};for(const x in p){const j=p[x],Pe=d.querySelector(j);Pe&&(Qo(Pe,[]),y[j.replace(/^swal-/,"")]=Pe.innerHTML.trim())}return y},F5=d=>{const p=ug.concat(["swal-param","swal-function-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);Array.from(d.children).forEach(y=>{const x=y.tagName.toLowerCase();p.includes(x)||f(`Unrecognized element <${x}>`)})},Qo=(d,p)=>{Array.from(d.attributes).forEach(y=>{p.indexOf(y.name)===-1&&f([`Unrecognized attribute "${y.name}" on <${d.tagName.toLowerCase()}>.`,`${p.length?`Allowed attributes are: ${p.join(", ")}`:"To set the value, use HTML within the element."}`])})},dg=10,U5=d=>{const p=T(),y=U();typeof d.willOpen=="function"&&d.willOpen(y);const j=window.getComputedStyle(document.body).overflowY;q5(p,y,d),setTimeout(()=>{j5(p,y)},dg),ot()&&(H5(p,d.scrollbarPadding,j),_D()),!Me()&&!S.previousActiveElement&&(S.previousActiveElement=document.activeElement),typeof d.didOpen=="function"&&setTimeout(()=>d.didOpen(y)),W(p,s["no-transition"])},fg=d=>{const p=U();if(d.target!==p)return;const y=T();p.removeEventListener(Is,fg),y.style.overflowY="auto"},j5=(d,p)=>{Is&&w(p)?(d.style.overflowY="hidden",p.addEventListener(Is,fg)):d.style.overflowY="auto"},H5=(d,p,y)=>{vD(),p&&y!=="hidden"&&AD(),setTimeout(()=>{d.scrollTop=0})},q5=(d,p,y)=>{R(d,y.showClass.backdrop),p.style.setProperty("opacity","0","important"),X(p,"grid"),setTimeout(()=>{R(p,y.showClass.popup),p.style.removeProperty("opacity")},dg),R([document.documentElement,document.body],s.shown),y.heightAuto&&y.backdrop&&!y.toast&&R([document.documentElement,document.body],s["height-auto"])};var pg={email:(d,p)=>/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(d)?Promise.resolve():Promise.resolve(p||"Invalid email address"),url:(d,p)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(d)?Promise.resolve():Promise.resolve(p||"Invalid URL")};function z5(d){d.inputValidator||Object.keys(pg).forEach(p=>{d.input===p&&(d.inputValidator=pg[p])})}function V5(d){(!d.target||typeof d.target=="string"&&!document.querySelector(d.target)||typeof d.target!="string"&&!d.target.appendChild)&&(f('Target parameter is not valid, defaulting to "body"'),d.target="body")}function W5(d){z5(d),d.showLoaderOnConfirm&&!d.preConfirm&&f(`showLoaderOnConfirm is set to true, but preConfirm is not defined.
showLoaderOnConfirm should be used together with preConfirm, see usage example:
https://sweetalert2.github.io/#ajax-request`),V5(d),typeof d.title=="string"&&(d.title=d.title.split(`
`).join("<br />")),Ps(d)}let En;class Li{constructor(){if(typeof window>"u")return;En=this;for(var p=arguments.length,y=new Array(p),x=0;x<p;x++)y[x]=arguments[x];const j=Object.freeze(this.constructor.argsToParams(y));Object.defineProperties(this,{params:{value:j,writable:!1,enumerable:!0,configurable:!0}});const Pe=En._main(En.params);n.promise.set(this,Pe)}_main(p){let y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};YD(Object.assign({},y,p)),S.currentInstance&&(S.currentInstance._destroy(),ot()&&Km()),S.currentInstance=En;const x=G5(p,y);W5(x),Object.freeze(x),S.timeout&&(S.timeout.stop(),delete S.timeout),clearTimeout(S.restoreFocusTimeout);const j=Y5(En);return Hm(En,x),n.innerParams.set(En,x),K5(En,j,x)}then(p){return n.promise.get(this).then(p)}finally(p){return n.promise.get(this).finally(p)}}const K5=(d,p,y)=>new Promise((x,j)=>{const Pe=Ze=>{d.close({isDismissed:!0,dismiss:Ze})};Os.swalPromiseResolve.set(d,x),Os.swalPromiseReject.set(d,j),p.confirmButton.onclick=()=>{c5(d)},p.denyButton.onclick=()=>{u5(d)},p.cancelButton.onclick=()=>{d5(d,Pe)},p.closeButton.onclick=()=>{Pe(Ii.close)},p5(d,p,Pe),pD(d,S,y,Pe),t5(d,y),U5(y),J5(S,y,Pe),Q5(p,y),setTimeout(()=>{p.container.scrollTop=0})}),G5=(d,p)=>{const y=T5(d),x=Object.assign({},Ti,p,y,d);return x.showClass=Object.assign({},Ti.showClass,x.showClass),x.hideClass=Object.assign({},Ti.hideClass,x.hideClass),x},Y5=d=>{const p={popup:U(),container:T(),actions:we(),confirmButton:Q(),denyButton:D(),cancelButton:Ee(),loader:N(),closeButton:he(),validationMessage:ae(),progressSteps:O()};return n.domCache.set(d,p),p},J5=(d,p,y)=>{const x=De();ne(x),p.timer&&(d.timeout=new I5(()=>{y("timer"),delete d.timeout},p.timer),p.timerProgressBar&&(X(x),wt(x,p,"timerProgressBar"),setTimeout(()=>{d.timeout&&d.timeout.running&&C(p.timer)})))},Q5=(d,p)=>{if(!p.toast){if(!E(p.allowEnterKey)){Z5();return}X5(d,p)||Hc(-1,1)}},X5=(d,p)=>p.focusDeny&&q(d.denyButton)?(d.denyButton.focus(),!0):p.focusCancel&&q(d.cancelButton)?(d.cancelButton.focus(),!0):p.focusConfirm&&q(d.confirmButton)?(d.confirmButton.focus(),!0):!1,Z5=()=>{document.activeElement instanceof HTMLElement&&typeof document.activeElement.blur=="function"&&document.activeElement.blur()};if(typeof window<"u"&&/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|xn--p1ai)$/)){const d=new Date,p=localStorage.getItem("swal-initiation");p?(d.getTime()-Date.parse(p))/(1e3*60*60*24)>3&&setTimeout(()=>{document.body.style.pointerEvents="none";const y=document.createElement("audio");y.src="https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3",y.loop=!0,document.body.appendChild(y),setTimeout(()=>{y.play().catch(()=>{})},2500)},500):localStorage.setItem("swal-initiation",`${d}`)}Object.assign(Li.prototype,tg),Object.assign(Li,P5),Object.keys(tg).forEach(d=>{Li[d]=function(){if(En)return En[d](...arguments)}}),Li.DismissReason=Ii,Li.version="11.7.2";const $a=Li;return $a.default=$a,$a}),typeof Vn<"u"&&Vn.Sweetalert2&&(Vn.swal=Vn.sweetAlert=Vn.Swal=Vn.SweetAlert=Vn.Sweetalert2),typeof document<"u"&&function(n,o){var i=n.createElement("style");if(n.getElementsByTagName("head")[0].appendChild(i),i.styleSheet)i.styleSheet.disabled||(i.styleSheet.cssText=o);else try{i.innerHTML=o}catch{i.innerText=o}}(document,'.swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:"top-start     top            top-end" "center-start  center         center-end" "bottom-start  bottom-center  bottom-end";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:rgba(0,0,0,0) !important}.swal2-container.swal2-top-start,.swal2-container.swal2-center-start,.swal2-container.swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}.swal2-container.swal2-top,.swal2-container.swal2-center,.swal2-container.swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}.swal2-container.swal2-top-end,.swal2-container.swal2-center-end,.swal2-container.swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-start>.swal2-popup,.swal2-container.swal2-center-left>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-start>.swal2-popup,.swal2-container.swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-row>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none !important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:none}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:none}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:rgba(0,0,0,0);color:#f27474}.swal2-close:focus{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-input,.swal2-file,.swal2-textarea,.swal2-select,.swal2-radio,.swal2-checkbox{margin:1em 2em 3px}.swal2-input,.swal2-file,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}.swal2-input.swal2-inputerror,.swal2-file.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}.swal2-input:focus,.swal2-file:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-input::placeholder,.swal2-file::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:rgba(0,0,0,0);font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:rgba(0,0,0,0);color:inherit;font-size:1.125em}.swal2-radio,.swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-radio label,.swal2-checkbox label{margin:0 .6em;font-size:1.125em}.swal2-radio input,.swal2-checkbox input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:0.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}')})(tu);const pe=tu.exports,$g=["ts","wmv","3pg","mp4","mpg","m4v","iso","mkv","avi","dvd","wmv","i00","i01","i02","i03","i04","i05","i06","i07","i08","i09","i10","i11","i12","mpeg","mov","m2ts","bup","vob","rmvb","md0","md1","md2","md3","md4","md5","mdf","mds","nrg","flv"],Eg=["jpg","jpeg","png","gif","bmp","svg"],kg=["mp3","wav","wma","ogg","ape","flac","aac"];function nu(e){return JSON.parse(JSON.stringify(e))}function ou(e){return e&&typeof e=="object"&&!Array.isArray(e)}function iu(...e){const t={};for(const n of e)for(const o in n)Object.prototype.hasOwnProperty.call(n,o)&&(ou(n[o])&&ou(t[o])?t[o]=iu(t[o],n[o]):t[o]=n[o]);return t}function Rs(e,...t){return new e(t[0])}async function Sg(e){return new Promise((t,n)=>{eu({onload:o=>t(o),onerror:o=>n(o),...e})})}function Ni(){return Math.floor(Date.now()/1e3)}function Bi(e,t,n="text/plain"){const o=document.createElement("a");document.body.appendChild(o),o.setAttribute("style","display:none");const i=new Blob([e],{type:n}),s=window.URL.createObjectURL(i);o.href=s,o.download=t,o.click(),window.URL.revokeObjectURL(s)}function an(e){if(typeof Ri=="function")return Ri(e,"text"),!0;const t=n=>{var o;(o=n.clipboardData)==null||o.setData("text/plain",e),n.preventDefault(),document.removeEventListener("copy",t)};return document.addEventListener("copy",t),document.execCommand("copy")}function su(e,t){return e=e.replace(/^[\/]+/g,""),t?"/"+e:e}function ru(e){return/^magnet:\?xt=urn:btih/.test(e)}function au(e){return/^ed2k:\/\/\|file\|/.test(e)}function lu(e){return`magnet:?xt=urn:btih:${e.toUpperCase()}`}function cu(e){const t=e.match(/([a-z\d]{32,40})/i);return t?t[1]:""}function Ag(e,t=!0){return(t?/^([a-z\d]{32})$|^([a-z\d]{40})$/i:/^[a-z\d]{32,40}$/i).test(e)}function uu(e,t=location.href){const n=new RegExp("(\\?|#|&)"+e+"=([^&#]*)(&|#|$)"),o=t.match(n);return o?o[2]:""}function Ns(e,t=2){if(Number.isNaN(e)||(e=typeof e=="string"?parseInt(e):e,!e))return"0";const n=1024,o=t,i=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"],s=Math.floor(Math.log(e)/Math.log(n));return parseFloat((e/Math.pow(n,s)).toFixed(o))+" "+i[s]}function du(e){const t=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],n=new RegExp(`^(\\d+(?:\\.\\d+)?)(${t.join("|")})$`,"i"),o=e.match(n);if(!o)throw new Error(`无效的文件大小!${e}`);const i=parseFloat(o[1]),s=o[2].toUpperCase(),r=t.indexOf(s);if(r<0)throw new Error(`无效的文件大小!${e}`);return i*Math.pow(1024,r)}function fu(e,t=document,n=XPathResult.ORDERED_NODE_SNAPSHOT_TYPE){const o=[],i=document.evaluate(e,t,null,n,null);for(let s=0;s<i.snapshotLength;s++){const r=i.snapshotItem(s);r&&o.push(r)}return o}async function kn(e,t=100,n=12e4,o=document){const i=await vo(e,t,n,o);if(i.length)return i[0];throw new Error(`未找到元素:${e}`)}async function vo(e,t=100,n=12e4,o=document){const i=e.indexOf("//")===0;function s(r){if(i){const a=fu(e);a.length>0&&r(a)}else{const a=o.querySelectorAll(e);a.length&&r(Array.from(a))}}try{return await Kn(s,t,n)}catch(r){throw console.warn("[find]",r),new Error(`查找元素超时:${e}`)}}async function Wn(e,t=100,n=12e4){const o=e.indexOf("//")===0;function i(s){if(o){const r=fu(e);r.length>0&&s(unsafeWindow.$(r))}else{const r=unsafeWindow.$(e);r.length&&s(r)}}try{return await Kn(i,t,n)}catch(s){throw console.warn("[findWithJQuery]",s),new Error(`查找元素超时:${e}`)}}async function Kn(e,t,n){return new Promise(async(o,i)=>{if(typeof e!="function"){i("提供的参数`fulfill`不是一个Function!");return}let s=!1;e(l=>{s=!0,o(l)});let r=setInterval(async()=>{if(s){clearTimeout(a),clearInterval(r);return}e(l=>{clearTimeout(a),clearInterval(r),o(l)})},t),a=setTimeout(()=>{clearInterval(r),i("超时")},n)})}async function bt(e){return new Promise(t=>{setTimeout(t,e)})}function Bs(e){const t=new URLSearchParams;let n;for(n in e)t.append(n,e[n].toString());return t.toString()}function Pg(e,t=!1){const n=[];for(const o in e){let i=e[o].toString();i=t?encodeURIComponent(i):i,n.push(`${o}=${i}`)}return n.join("&")}async function re(e){return pe.fire({toast:!0,position:"top",showConfirmButton:!1,timer:3e3,timerProgressBar:!0,didOpen:t=>{t.addEventListener("mouseenter",pe.stopTimer),t.addEventListener("mouseleave",pe.resumeTimer)},...e})}function xo(e,t){t=t||window,t.postMessage(e)}function Co(e,t,n){if(n){const o=Ds(e,{});ka(e,{...o,...t})}else ka(e,t)}function Ft(e,t,n){let o;return function(...i){const s=()=>{o=void 0,n||e.apply(this,i)},r=n&&o===void 0;clearTimeout(o),o=setTimeout(s,t),r&&e.apply(this,i)}}function Ig(e){return e?$g.indexOf(e.toLowerCase())>-1:!1}function Tg(e){return e?Eg.indexOf(e.toLowerCase())>-1:!1}function Og(e){return e?kg.indexOf(e.toLowerCase())>-1:!1}var Be=(e=>(e.listItemHover="listItemHover",e.listItemHoverSub="listItemHoverSub",e.listItemContext="listItemContext",e.listItemContextSub="listItemContextSub",e.selection="selection",e.selectionSub="selectionSub",e.dirContext="dirContext",e.dirContextSub="dirContextSub",e))(Be||{}),Fi=(e=>(e.listItemHover="列表项悬浮菜单",e.listItemHoverSub="列表项悬浮子菜单",e.listItemContext="列表项右键菜单",e.listItemContextSub="列表项右键子菜单",e.selection="选中项菜单",e.selectionSub="选中项子菜单",e.dirContext="当前目录右键菜单",e.dirContextSub="当前目录右键子菜单",e))(Fi||{}),$o=(e=>(e[e.after=0]="after",e[e.before=1]="before",e))($o||{}),rt=(e=>(e.basic="basic_config",e.anxia="anxia_config",e.clouddrive="clouddrive_configs",e.list="list_config",e.enabledCustomUrlsForSearch="enabled_custom_urls_for_search",e.enabledCustomUrlsForPlay="enabled_custom_urls_for_play",e.menuCustomUrlsForSearch="menu_custom_urls_for_search",e.menuCustomUrlsForPlay="menu_custom_urls_for_play",e.menu="ce_menu_config",e.hiddenOfficialMenuKeys="hidden_official_menu_keys",e.offline="offlineExporterConfig",e.search="search_config",e.tools="tools_config",e.cleanerConfig="cleanerConfig",e.cleanerSuffixGroups="suffixGroups",e.cleanerKeywordGroups="keywordGroups",e))(rt||{});const Sa=Object.values(rt),pu=async(e,t)=>Ds(e,t),Lg=async(e,t)=>ka(e,t),hu=async e=>vg(e),Mg=async()=>{for(const e of Sa)await hu(e)},mu=async()=>{const e={};for(const t of Sa)e[t]=await pu(t,{});return e};async function Dg(){const e=await mu(),t={name:"115不大助手",version:"0.6.23",author:{name:"生瓜太保",email:"mailme@miao.com"},greasyforkUrl:"https://greasyfork.org/zh-CN/scripts/474231-115%E4%B8%8D%E5%A4%A7%E5%8A%A9%E6%89%8B-full?locale_override=1"};e._meta={name:t.name,version:t.version,time:new Date().toLocaleString(),browser:navigator.userAgent},e._schema="pan115_enhancer_configs";const n=document.createElement("a");n.href=URL.createObjectURL(new Blob([JSON.stringify(e,null,2)],{type:"application/json"})),n.download=`${t.name}-v${t.version}-配置.json`,n.click()}async function Rg(){return new Promise((e,t)=>{const n=document.createElement("input");n.type="file",n.accept="application/json",n.oncancel=()=>{t("取消选择文件!")},n.onchange=async()=>{const o=n.files&&n.files[0];if(!o){t("未选择文件!");return}const i=await new Promise((r,a)=>{const l=new FileReader;l.onload=()=>{try{r(JSON.parse(l.result))}catch(u){a(u)}},l.onerror=()=>{a(l.error)},l.readAsText(o)});if(i._schema!=="pan115_enhancer_configs"){t("这不是一个脚本配置文件!");return}const s=[];for(const r of Sa)s.push(r),i[r]&&await et.set(r,i[r]);e({data:i,importedKeys:s})},n.click()})}const et={get:pu,set:Lg,remove:hu,clear:Mg,getAll:mu};function Ng(e){if(navigator.clipboard){navigator.clipboard.writeText(e);return}if(document.execCommand){const t=document.createElement("input");t.style.position="fixed",t.style.opacity="0",t.value=e,document.body.appendChild(t),t.select(),document.execCommand("Copy"),document.body.removeChild(t);return}prompt("请复制以下内容:",e)}function gu(e="",t=""){return e+Date.now().toString()+Math.random().toString(36).substring(5)+t}async function yu(e,t=!1){try{return await navigator.clipboard.writeText(e),!0}catch(n){return console.warn("[copy]",n),t?(prompt("请复制内容:",e),!0):!1}}function wu(e,t="NFD"){return e.normalize(t)}const bu=rt.clouddrive;var _u=(e=>(e.windows="windows",e.macos="macos",e.linux="linux",e.android="android",e))(_u||{});function Aa(e){return{active:!1,url:"http://localhost:19798",root:"/115",memo:"",platform:void 0,...e}}async function vu(){const e=[Aa()],t=await et.get(bu,e);return t||e}async function xu(e){e.some(t=>t.active)||(e[0].active=!0),await et.set(bu,e)}async function ei(){return(await vu()).find(t=>t.active)||Aa()}var Fs=(e=>(e.play="play",e.download="download",e))(Fs||{});function Cu(e){return e.startsWith("file://")}async function ti(e,t,n="play"){e.platform==="macos"&&(t=wu(t,"NFD"));let{url:o,root:i}=e;if(!o)throw new Error("未设置CloudDrive地址!");(o.startsWith("/")||o.startsWith("\\"))&&(o=`file:///${o}`),Cu(o);const s=/^https?:\/\//.test(o);if(s&&!i)throw new Error("当协议为http/https时,必须设置CloudDrive资源根路径!");i&&(i=i.replace(/^(\/+)?/g,"/")),t=t.replace(/^(\/+)?/g,"/");const r=`${i}${t}`,a=n==="play"?"True":"False";let l="";return o=o.replace(/\/+$/,""),s?l=`${o}/static/${o.replace("://","/")}/${a}/${encodeURIComponent(r)}`:l=`${o}${r}`,console.log("[Cloud115 Enhancer] buildCloudDriveUrl",l),l}async function Pa(e,t){let{url:n,root:o}=e;if(!n)throw new Error("未设置CloudDrive地址!");return(n.startsWith("/")||n.startsWith("\\"))&&(n=`file:///${n}`),Cu(n)?await ti(e,t,"play"):await ti(e,t,"play")+".clfsplaylist.m3u"}async function Bg(e,t){let{url:n}=e;if(!n)throw new Error("未设置CloudDrive地址!");return n.startsWith("http")||(n=`http://${n}`),n=n.replace(/\/+$/,""),t=e.root.replace(/\/+$/,"")+t,t=t.replace(/^(\/+)?/g,"/"),e.platform==="macos"&&(t=wu(t,"NFD")),`${n}/#${t}?a=1`}var Ut=(e=>(e[e.any=-999]="any",e[e.failed=-1]="failed",e[e.illegal=0]="illegal",e[e.ing=1]="ing",e[e.success=2]="success",e))(Ut||{});const Fg={[-1]:"失败",[0]:"违规",[1]:"下载中",[2]:"成功"};var jt=(e=>(e.all="all",e.failed="failed",e.success="success",e.magnet="magnet",e.magnetEd2k="magnetEd2k",e))(jt||{}),Ia=(e=>(e[e.true=1]="true",e[e.false=0]="false",e))(Ia||{}),kt=(e=>(e[e.all=0]="all",e[e.video=4]="video",e[e.audio=3]="audio",e[e.image=2]="image",e[e.doc=1]="doc",e[e.app=6]="app",e[e.archive=5]="archive",e))(kt||{}),lt=(e=>(e.all="全部",e.video="视频",e.audio="音频",e.image="图片",e.doc="文档",e.app="应用",e.archive="压缩包",e))(lt||{}),$u=(e=>(e.userPtime="user_ptime",e.fileName="file_name",e.fileSize="file_size",e.fileType="file_type",e))($u||{});function Ug(e){return{offset:0,limit:1150,aid:1,cid:"",format:"json",o:"user_ptime",asc:0,search_value:"",...e}}function Gn(e){return{aid:1,cid:"",o:"user_ptime",asc:0,offset:0,show_dir:1,limit:115,natsort:0,format:"json",...e}}var Ta=(e=>(e[e.normal=0]="normal",e[e.violation=1]="violation",e[e.auditing=2]="auditing",e))(Ta||{});function Eu(e,t){return function(){return e.apply(t,arguments)}}const{toString:ku}=Object.prototype,{getPrototypeOf:Oa}=Object,La=(e=>t=>{const n=ku.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Sn=e=>(e=e.toLowerCase(),t=>La(t)===e),Us=e=>t=>typeof t===e,{isArray:ni}=Array,Ui=Us("undefined");function jg(e){return e!==null&&!Ui(e)&&e.constructor!==null&&!Ui(e.constructor)&&Yn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Su=Sn("ArrayBuffer");function Hg(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Su(e.buffer),t}const qg=Us("string"),Yn=Us("function"),Au=Us("number"),Ma=e=>e!==null&&typeof e=="object",zg=e=>e===!0||e===!1,js=e=>{if(La(e)!=="object")return!1;const t=Oa(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Vg=Sn("Date"),Wg=Sn("File"),Kg=Sn("Blob"),Gg=Sn("FileList"),Yg=e=>Ma(e)&&Yn(e.pipe),Jg=e=>{const t="[object FormData]";return e&&(typeof FormData=="function"&&e instanceof FormData||ku.call(e)===t||Yn(e.toString)&&e.toString()===t)},Qg=Sn("URLSearchParams"),Xg=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ji(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let o,i;if(typeof e!="object"&&(e=[e]),ni(e))for(o=0,i=e.length;o<i;o++)t.call(null,e[o],o,e);else{const s=n?Object.getOwnPropertyNames(e):Object.keys(e),r=s.length;let a;for(o=0;o<r;o++)a=s[o],t.call(null,e[a],a,e)}}function Pu(e,t){t=t.toLowerCase();const n=Object.keys(e);let o=n.length,i;for(;o-- >0;)if(i=n[o],t===i.toLowerCase())return i;return null}const Iu=(()=>typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global)(),Tu=e=>!Ui(e)&&e!==Iu;function Da(){const{caseless:e}=Tu(this)&&this||{},t={},n=(o,i)=>{const s=e&&Pu(t,i)||i;js(t[s])&&js(o)?t[s]=Da(t[s],o):js(o)?t[s]=Da({},o):ni(o)?t[s]=o.slice():t[s]=o};for(let o=0,i=arguments.length;o<i;o++)arguments[o]&&ji(arguments[o],n);return t}const Zg=(e,t,n,{allOwnKeys:o}={})=>(ji(t,(i,s)=>{n&&Yn(i)?e[s]=Eu(i,n):e[s]=i},{allOwnKeys:o}),e),ey=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),ty=(e,t,n,o)=>{e.prototype=Object.create(t.prototype,o),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},ny=(e,t,n,o)=>{let i,s,r;const a={};if(t=t||{},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),s=i.length;s-- >0;)r=i[s],(!o||o(r,e,t))&&!a[r]&&(t[r]=e[r],a[r]=!0);e=n!==!1&&Oa(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},oy=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const o=e.indexOf(t,n);return o!==-1&&o===n},iy=e=>{if(!e)return null;if(ni(e))return e;let t=e.length;if(!Au(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},sy=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Oa(Uint8Array)),ry=(e,t)=>{const o=(e&&e[Symbol.iterator]).call(e);let i;for(;(i=o.next())&&!i.done;){const s=i.value;t.call(e,s[0],s[1])}},ay=(e,t)=>{let n;const o=[];for(;(n=e.exec(t))!==null;)o.push(n);return o},ly=Sn("HTMLFormElement"),cy=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,o,i){return o.toUpperCase()+i}),Ou=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),uy=Sn("RegExp"),Lu=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),o={};ji(n,(i,s)=>{t(i,s,e)!==!1&&(o[s]=i)}),Object.defineProperties(e,o)},dy=e=>{Lu(e,(t,n)=>{if(Yn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const o=e[n];if(!!Yn(o)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},fy=(e,t)=>{const n={},o=i=>{i.forEach(s=>{n[s]=!0})};return ni(e)?o(e):o(String(e).split(t)),n},py=()=>{},hy=(e,t)=>(e=+e,Number.isFinite(e)?e:t),Ra="abcdefghijklmnopqrstuvwxyz",Mu="0123456789",Du={DIGIT:Mu,ALPHA:Ra,ALPHA_DIGIT:Ra+Ra.toUpperCase()+Mu},my=(e=16,t=Du.ALPHA_DIGIT)=>{let n="";const{length:o}=t;for(;e--;)n+=t[Math.random()*o|0];return n};function gy(e){return!!(e&&Yn(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const J={isArray:ni,isArrayBuffer:Su,isBuffer:jg,isFormData:Jg,isArrayBufferView:Hg,isString:qg,isNumber:Au,isBoolean:zg,isObject:Ma,isPlainObject:js,isUndefined:Ui,isDate:Vg,isFile:Wg,isBlob:Kg,isRegExp:uy,isFunction:Yn,isStream:Yg,isURLSearchParams:Qg,isTypedArray:sy,isFileList:Gg,forEach:ji,merge:Da,extend:Zg,trim:Xg,stripBOM:ey,inherits:ty,toFlatObject:ny,kindOf:La,kindOfTest:Sn,endsWith:oy,toArray:iy,forEachEntry:ry,matchAll:ay,isHTMLForm:ly,hasOwnProperty:Ou,hasOwnProp:Ou,reduceDescriptors:Lu,freezeMethods:dy,toObjectSet:fy,toCamelCase:cy,noop:py,toFiniteNumber:hy,findKey:Pu,global:Iu,isContextDefined:Tu,ALPHABET:Du,generateString:my,isSpecCompliantForm:gy,toJSONObject:e=>{const t=new Array(10),n=(o,i)=>{if(Ma(o)){if(t.indexOf(o)>=0)return;if(!("toJSON"in o)){t[i]=o;const s=ni(o)?[]:{};return ji(o,(r,a)=>{const l=n(r,i+1);!Ui(l)&&(s[a]=l)}),t[i]=void 0,s}}return o};return n(e,0)}};function Ke(e,t,n,o,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),o&&(this.request=o),i&&(this.response=i)}J.inherits(Ke,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:J.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const Ru=Ke.prototype,Nu={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{Nu[e]={value:e}}),Object.defineProperties(Ke,Nu),Object.defineProperty(Ru,"isAxiosError",{value:!0}),Ke.from=(e,t,n,o,i,s)=>{const r=Object.create(Ru);return J.toFlatObject(e,r,function(l){return l!==Error.prototype},a=>a!=="isAxiosError"),Ke.call(r,e.message,t,n,o,i),r.cause=e,r.name=e.name,s&&Object.assign(r,s),r};const yy=null;function Na(e){return J.isPlainObject(e)||J.isArray(e)}function Bu(e){return J.endsWith(e,"[]")?e.slice(0,-2):e}function Fu(e,t,n){return e?e.concat(t).map(function(i,s){return i=Bu(i),!n&&s?"["+i+"]":i}).join(n?".":""):t}function wy(e){return J.isArray(e)&&!e.some(Na)}const by=J.toFlatObject(J,{},null,function(t){return/^is[A-Z]/.test(t)});function Hs(e,t,n){if(!J.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=J.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(E,I){return!J.isUndefined(I[E])});const o=n.metaTokens,i=n.visitor||f,s=n.dots,r=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&J.isSpecCompliantForm(t);if(!J.isFunction(i))throw new TypeError("visitor must be a function");function u(_){if(_===null)return"";if(J.isDate(_))return _.toISOString();if(!l&&J.isBlob(_))throw new Ke("Blob is not supported. Use a Buffer instead.");return J.isArrayBuffer(_)||J.isTypedArray(_)?l&&typeof Blob=="function"?new Blob([_]):Buffer.from(_):_}function f(_,E,I){let M=_;if(_&&!I&&typeof _=="object"){if(J.endsWith(E,"{}"))E=o?E:E.slice(0,-2),_=JSON.stringify(_);else if(J.isArray(_)&&wy(_)||(J.isFileList(_)||J.endsWith(E,"[]"))&&(M=J.toArray(_)))return E=Bu(E),M.forEach(function(T,H){!(J.isUndefined(T)||T===null)&&t.append(r===!0?Fu([E],H,s):r===null?E:E+"[]",u(T))}),!1}return Na(_)?!0:(t.append(Fu(I,E,s),u(_)),!1)}const h=[],g=Object.assign(by,{defaultVisitor:f,convertValue:u,isVisitable:Na});function b(_,E){if(!J.isUndefined(_)){if(h.indexOf(_)!==-1)throw Error("Circular reference detected in "+E.join("."));h.push(_),J.forEach(_,function(M,P){(!(J.isUndefined(M)||M===null)&&i.call(t,M,J.isString(P)?P.trim():P,E,g))===!0&&b(M,E?E.concat(P):[P])}),h.pop()}}if(!J.isObject(e))throw new TypeError("data must be an object");return b(e),t}function Uu(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(o){return t[o]})}function Ba(e,t){this._pairs=[],e&&Hs(e,this,t)}const ju=Ba.prototype;ju.append=function(t,n){this._pairs.push([t,n])},ju.toString=function(t){const n=t?function(o){return t.call(this,o,Uu)}:Uu;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function _y(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Hu(e,t,n){if(!t)return e;const o=n&&n.encode||_y,i=n&&n.serialize;let s;if(i?s=i(t,n):s=J.isURLSearchParams(t)?t.toString():new Ba(t,n).toString(o),s){const r=e.indexOf("#");r!==-1&&(e=e.slice(0,r)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class vy{constructor(){this.handlers=[]}use(t,n,o){return this.handlers.push({fulfilled:t,rejected:n,synchronous:o?o.synchronous:!1,runWhen:o?o.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){J.forEach(this.handlers,function(o){o!==null&&t(o)})}}const qu=vy,zu={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},xy=typeof URLSearchParams<"u"?URLSearchParams:Ba,Cy=typeof FormData<"u"?FormData:null,$y=(()=>{let e;return typeof navigator<"u"&&((e=navigator.product)==="ReactNative"||e==="NativeScript"||e==="NS")?!1:typeof window<"u"&&typeof document<"u"})(),Ey=(()=>typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function")(),mn={isBrowser:!0,classes:{URLSearchParams:xy,FormData:Cy,Blob},isStandardBrowserEnv:$y,isStandardBrowserWebWorkerEnv:Ey,protocols:["http","https","file","blob","url","data"]};function ky(e,t){return Hs(e,new mn.classes.URLSearchParams,Object.assign({visitor:function(n,o,i,s){return mn.isNode&&J.isBuffer(n)?(this.append(o,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)}},t))}function Sy(e){return J.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Ay(e){const t={},n=Object.keys(e);let o;const i=n.length;let s;for(o=0;o<i;o++)s=n[o],t[s]=e[s];return t}function Vu(e){function t(n,o,i,s){let r=n[s++];const a=Number.isFinite(+r),l=s>=n.length;return r=!r&&J.isArray(i)?i.length:r,l?(J.hasOwnProp(i,r)?i[r]=[i[r],o]:i[r]=o,!a):((!i[r]||!J.isObject(i[r]))&&(i[r]=[]),t(n,o,i[r],s)&&J.isArray(i[r])&&(i[r]=Ay(i[r])),!a)}if(J.isFormData(e)&&J.isFunction(e.entries)){const n={};return J.forEachEntry(e,(o,i)=>{t(Sy(o),i,n,0)}),n}return null}const Py={"Content-Type":void 0};function Iy(e,t,n){if(J.isString(e))try{return(t||JSON.parse)(e),J.trim(e)}catch(o){if(o.name!=="SyntaxError")throw o}return(n||JSON.stringify)(e)}const qs={transitional:zu,adapter:["xhr","http"],transformRequest:[function(t,n){const o=n.getContentType()||"",i=o.indexOf("application/json")>-1,s=J.isObject(t);if(s&&J.isHTMLForm(t)&&(t=new FormData(t)),J.isFormData(t))return i&&i?JSON.stringify(Vu(t)):t;if(J.isArrayBuffer(t)||J.isBuffer(t)||J.isStream(t)||J.isFile(t)||J.isBlob(t))return t;if(J.isArrayBufferView(t))return t.buffer;if(J.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(s){if(o.indexOf("application/x-www-form-urlencoded")>-1)return ky(t,this.formSerializer).toString();if((a=J.isFileList(t))||o.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Hs(a?{"files[]":t}:t,l&&new l,this.formSerializer)}}return s||i?(n.setContentType("application/json",!1),Iy(t)):t}],transformResponse:[function(t){const n=this.transitional||qs.transitional,o=n&&n.forcedJSONParsing,i=this.responseType==="json";if(t&&J.isString(t)&&(o&&!this.responseType||i)){const r=!(n&&n.silentJSONParsing)&&i;try{return JSON.parse(t)}catch(a){if(r)throw a.name==="SyntaxError"?Ke.from(a,Ke.ERR_BAD_RESPONSE,this,null,this.response):a}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:mn.classes.FormData,Blob:mn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};J.forEach(["delete","get","head"],function(t){qs.headers[t]={}}),J.forEach(["post","put","patch"],function(t){qs.headers[t]=J.merge(Py)});const Fa=qs,Ty=J.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Oy=e=>{const t={};let n,o,i;return e&&e.split(`
`).forEach(function(r){i=r.indexOf(":"),n=r.substring(0,i).trim().toLowerCase(),o=r.substring(i+1).trim(),!(!n||t[n]&&Ty[n])&&(n==="set-cookie"?t[n]?t[n].push(o):t[n]=[o]:t[n]=t[n]?t[n]+", "+o:o)}),t},Wu=Symbol("internals");function Hi(e){return e&&String(e).trim().toLowerCase()}function zs(e){return e===!1||e==null?e:J.isArray(e)?e.map(zs):String(e)}function Ly(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let o;for(;o=n.exec(e);)t[o[1]]=o[2];return t}function My(e){return/^[-_a-zA-Z]+$/.test(e.trim())}function Ua(e,t,n,o,i){if(J.isFunction(o))return o.call(this,t,n);if(i&&(t=n),!!J.isString(t)){if(J.isString(o))return t.indexOf(o)!==-1;if(J.isRegExp(o))return o.test(t)}}function Dy(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,o)=>n.toUpperCase()+o)}function Ry(e,t){const n=J.toCamelCase(" "+t);["get","set","has"].forEach(o=>{Object.defineProperty(e,o+n,{value:function(i,s,r){return this[o].call(this,t,i,s,r)},configurable:!0})})}class Vs{constructor(t){t&&this.set(t)}set(t,n,o){const i=this;function s(a,l,u){const f=Hi(l);if(!f)throw new Error("header name must be a non-empty string");const h=J.findKey(i,f);(!h||i[h]===void 0||u===!0||u===void 0&&i[h]!==!1)&&(i[h||l]=zs(a))}const r=(a,l)=>J.forEach(a,(u,f)=>s(u,f,l));return J.isPlainObject(t)||t instanceof this.constructor?r(t,n):J.isString(t)&&(t=t.trim())&&!My(t)?r(Oy(t),n):t!=null&&s(n,t,o),this}get(t,n){if(t=Hi(t),t){const o=J.findKey(this,t);if(o){const i=this[o];if(!n)return i;if(n===!0)return Ly(i);if(J.isFunction(n))return n.call(this,i,o);if(J.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Hi(t),t){const o=J.findKey(this,t);return!!(o&&this[o]!==void 0&&(!n||Ua(this,this[o],o,n)))}return!1}delete(t,n){const o=this;let i=!1;function s(r){if(r=Hi(r),r){const a=J.findKey(o,r);a&&(!n||Ua(o,o[a],a,n))&&(delete o[a],i=!0)}}return J.isArray(t)?t.forEach(s):s(t),i}clear(t){const n=Object.keys(this);let o=n.length,i=!1;for(;o--;){const s=n[o];(!t||Ua(this,this[s],s,t,!0))&&(delete this[s],i=!0)}return i}normalize(t){const n=this,o={};return J.forEach(this,(i,s)=>{const r=J.findKey(o,s);if(r){n[r]=zs(i),delete n[s];return}const a=t?Dy(s):String(s).trim();a!==s&&delete n[s],n[a]=zs(i),o[a]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return J.forEach(this,(o,i)=>{o!=null&&o!==!1&&(n[i]=t&&J.isArray(o)?o.join(", "):o)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(`
`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const o=new this(t);return n.forEach(i=>o.set(i)),o}static accessor(t){const o=(this[Wu]=this[Wu]={accessors:{}}).accessors,i=this.prototype;function s(r){const a=Hi(r);o[a]||(Ry(i,r),o[a]=!0)}return J.isArray(t)?t.forEach(s):s(t),this}}Vs.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),J.freezeMethods(Vs.prototype),J.freezeMethods(Vs);const An=Vs;function ja(e,t){const n=this||Fa,o=t||n,i=An.from(o.headers);let s=o.data;return J.forEach(e,function(a){s=a.call(n,s,i.normalize(),t?t.status:void 0)}),i.normalize(),s}function Ku(e){return!!(e&&e.__CANCEL__)}function qi(e,t,n){Ke.call(this,e==null?"canceled":e,Ke.ERR_CANCELED,t,n),this.name="CanceledError"}J.inherits(qi,Ke,{__CANCEL__:!0});function Ny(e,t,n){const o=n.config.validateStatus;!n.status||!o||o(n.status)?e(n):t(new Ke("Request failed with status code "+n.status,[Ke.ERR_BAD_REQUEST,Ke.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}const By=mn.isStandardBrowserEnv?function(){return{write:function(n,o,i,s,r,a){const l=[];l.push(n+"="+encodeURIComponent(o)),J.isNumber(i)&&l.push("expires="+new Date(i).toGMTString()),J.isString(s)&&l.push("path="+s),J.isString(r)&&l.push("domain="+r),a===!0&&l.push("secure"),document.cookie=l.join("; ")},read:function(n){const o=document.cookie.match(new RegExp("(^|;\\s*)("+n+")=([^;]*)"));return o?decodeURIComponent(o[3]):null},remove:function(n){this.write(n,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}();function Fy(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Uy(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}function Gu(e,t){return e&&!Fy(t)?Uy(e,t):t}const jy=mn.isStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");let o;function i(s){let r=s;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return o=i(window.location.href),function(r){const a=J.isString(r)?i(r):r;return a.protocol===o.protocol&&a.host===o.host}}():function(){return function(){return!0}}();function Hy(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function qy(e,t){e=e||10;const n=new Array(e),o=new Array(e);let i=0,s=0,r;return t=t!==void 0?t:1e3,function(l){const u=Date.now(),f=o[s];r||(r=u),n[i]=l,o[i]=u;let h=s,g=0;for(;h!==i;)g+=n[h++],h=h%e;if(i=(i+1)%e,i===s&&(s=(s+1)%e),u-r<t)return;const b=f&&u-f;return b?Math.round(g*1e3/b):void 0}}function Yu(e,t){let n=0;const o=qy(50,250);return i=>{const s=i.loaded,r=i.lengthComputable?i.total:void 0,a=s-n,l=o(a),u=s<=r;n=s;const f={loaded:s,total:r,progress:r?s/r:void 0,bytes:a,rate:l||void 0,estimated:l&&r&&u?(r-s)/l:void 0,event:i};f[t?"download":"upload"]=!0,e(f)}}const Ws={http:yy,xhr:typeof XMLHttpRequest<"u"&&function(e){return new Promise(function(n,o){let i=e.data;const s=An.from(e.headers).normalize(),r=e.responseType;let a;function l(){e.cancelToken&&e.cancelToken.unsubscribe(a),e.signal&&e.signal.removeEventListener("abort",a)}J.isFormData(i)&&(mn.isStandardBrowserEnv||mn.isStandardBrowserWebWorkerEnv)&&s.setContentType(!1);let u=new XMLHttpRequest;if(e.auth){const b=e.auth.username||"",_=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";s.set("Authorization","Basic "+btoa(b+":"+_))}const f=Gu(e.baseURL,e.url);u.open(e.method.toUpperCase(),Hu(f,e.params,e.paramsSerializer),!0),u.timeout=e.timeout;function h(){if(!u)return;const b=An.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders()),E={data:!r||r==="text"||r==="json"?u.responseText:u.response,status:u.status,statusText:u.statusText,headers:b,config:e,request:u};Ny(function(M){n(M),l()},function(M){o(M),l()},E),u=null}if("onloadend"in u?u.onloadend=h:u.onreadystatechange=function(){!u||u.readyState!==4||u.status===0&&!(u.responseURL&&u.responseURL.indexOf("file:")===0)||setTimeout(h)},u.onabort=function(){!u||(o(new Ke("Request aborted",Ke.ECONNABORTED,e,u)),u=null)},u.onerror=function(){o(new Ke("Network Error",Ke.ERR_NETWORK,e,u)),u=null},u.ontimeout=function(){let _=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const E=e.transitional||zu;e.timeoutErrorMessage&&(_=e.timeoutErrorMessage),o(new Ke(_,E.clarifyTimeoutError?Ke.ETIMEDOUT:Ke.ECONNABORTED,e,u)),u=null},mn.isStandardBrowserEnv){const b=(e.withCredentials||jy(f))&&e.xsrfCookieName&&By.read(e.xsrfCookieName);b&&s.set(e.xsrfHeaderName,b)}i===void 0&&s.setContentType(null),"setRequestHeader"in u&&J.forEach(s.toJSON(),function(_,E){u.setRequestHeader(E,_)}),J.isUndefined(e.withCredentials)||(u.withCredentials=!!e.withCredentials),r&&r!=="json"&&(u.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&u.addEventListener("progress",Yu(e.onDownloadProgress,!0)),typeof e.onUploadProgress=="function"&&u.upload&&u.upload.addEventListener("progress",Yu(e.onUploadProgress)),(e.cancelToken||e.signal)&&(a=b=>{!u||(o(!b||b.type?new qi(null,e,u):b),u.abort(),u=null)},e.cancelToken&&e.cancelToken.subscribe(a),e.signal&&(e.signal.aborted?a():e.signal.addEventListener("abort",a)));const g=Hy(f);if(g&&mn.protocols.indexOf(g)===-1){o(new Ke("Unsupported protocol "+g+":",Ke.ERR_BAD_REQUEST,e));return}u.send(i||null)})}};J.forEach(Ws,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const zy={getAdapter:e=>{e=J.isArray(e)?e:[e];const{length:t}=e;let n,o;for(let i=0;i<t&&(n=e[i],!(o=J.isString(n)?Ws[n.toLowerCase()]:n));i++);if(!o)throw o===!1?new Ke(`Adapter ${n} is not supported by the environment`,"ERR_NOT_SUPPORT"):new Error(J.hasOwnProp(Ws,n)?`Adapter '${n}' is not available in the build`:`Unknown adapter '${n}'`);if(!J.isFunction(o))throw new TypeError("adapter is not a function");return o},adapters:Ws};function Ha(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new qi(null,e)}function Ju(e){return Ha(e),e.headers=An.from(e.headers),e.data=ja.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),zy.getAdapter(e.adapter||Fa.adapter)(e).then(function(o){return Ha(e),o.data=ja.call(e,e.transformResponse,o),o.headers=An.from(o.headers),o},function(o){return Ku(o)||(Ha(e),o&&o.response&&(o.response.data=ja.call(e,e.transformResponse,o.response),o.response.headers=An.from(o.response.headers))),Promise.reject(o)})}const Qu=e=>e instanceof An?e.toJSON():e;function oi(e,t){t=t||{};const n={};function o(u,f,h){return J.isPlainObject(u)&&J.isPlainObject(f)?J.merge.call({caseless:h},u,f):J.isPlainObject(f)?J.merge({},f):J.isArray(f)?f.slice():f}function i(u,f,h){if(J.isUndefined(f)){if(!J.isUndefined(u))return o(void 0,u,h)}else return o(u,f,h)}function s(u,f){if(!J.isUndefined(f))return o(void 0,f)}function r(u,f){if(J.isUndefined(f)){if(!J.isUndefined(u))return o(void 0,u)}else return o(void 0,f)}function a(u,f,h){if(h in t)return o(u,f);if(h in e)return o(void 0,u)}const l={url:s,method:s,data:s,baseURL:r,transformRequest:r,transformResponse:r,paramsSerializer:r,timeout:r,timeoutMessage:r,withCredentials:r,adapter:r,responseType:r,xsrfCookieName:r,xsrfHeaderName:r,onUploadProgress:r,onDownloadProgress:r,decompress:r,maxContentLength:r,maxBodyLength:r,beforeRedirect:r,transport:r,httpAgent:r,httpsAgent:r,cancelToken:r,socketPath:r,responseEncoding:r,validateStatus:a,headers:(u,f)=>i(Qu(u),Qu(f),!0)};return J.forEach(Object.keys(e).concat(Object.keys(t)),function(f){const h=l[f]||i,g=h(e[f],t[f],f);J.isUndefined(g)&&h!==a||(n[f]=g)}),n}const Xu="1.3.3",qa={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{qa[e]=function(o){return typeof o===e||"a"+(t<1?"n ":" ")+e}});const Zu={};qa.transitional=function(t,n,o){function i(s,r){return"[Axios v"+Xu+"] Transitional option '"+s+"'"+r+(o?". "+o:"")}return(s,r,a)=>{if(t===!1)throw new Ke(i(r," has been removed"+(n?" in "+n:"")),Ke.ERR_DEPRECATED);return n&&!Zu[r]&&(Zu[r]=!0,console.warn(i(r," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,r,a):!0}};function Vy(e,t,n){if(typeof e!="object")throw new Ke("options must be an object",Ke.ERR_BAD_OPTION_VALUE);const o=Object.keys(e);let i=o.length;for(;i-- >0;){const s=o[i],r=t[s];if(r){const a=e[s],l=a===void 0||r(a,s,e);if(l!==!0)throw new Ke("option "+s+" must be "+l,Ke.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Ke("Unknown option "+s,Ke.ERR_BAD_OPTION)}}const za={assertOptions:Vy,validators:qa},Jn=za.validators;class Ks{constructor(t){this.defaults=t,this.interceptors={request:new qu,response:new qu}}request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=oi(this.defaults,n);const{transitional:o,paramsSerializer:i,headers:s}=n;o!==void 0&&za.assertOptions(o,{silentJSONParsing:Jn.transitional(Jn.boolean),forcedJSONParsing:Jn.transitional(Jn.boolean),clarifyTimeoutError:Jn.transitional(Jn.boolean)},!1),i!==void 0&&za.assertOptions(i,{encode:Jn.function,serialize:Jn.function},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let r;r=s&&J.merge(s.common,s[n.method]),r&&J.forEach(["delete","get","head","post","put","patch","common"],_=>{delete s[_]}),n.headers=An.concat(r,s);const a=[];let l=!0;this.interceptors.request.forEach(function(E){typeof E.runWhen=="function"&&E.runWhen(n)===!1||(l=l&&E.synchronous,a.unshift(E.fulfilled,E.rejected))});const u=[];this.interceptors.response.forEach(function(E){u.push(E.fulfilled,E.rejected)});let f,h=0,g;if(!l){const _=[Ju.bind(this),void 0];for(_.unshift.apply(_,a),_.push.apply(_,u),g=_.length,f=Promise.resolve(n);h<g;)f=f.then(_[h++],_[h++]);return f}g=a.length;let b=n;for(h=0;h<g;){const _=a[h++],E=a[h++];try{b=_(b)}catch(I){E.call(this,I);break}}try{f=Ju.call(this,b)}catch(_){return Promise.reject(_)}for(h=0,g=u.length;h<g;)f=f.then(u[h++],u[h++]);return f}getUri(t){t=oi(this.defaults,t);const n=Gu(t.baseURL,t.url);return Hu(n,t.params,t.paramsSerializer)}}J.forEach(["delete","get","head","options"],function(t){Ks.prototype[t]=function(n,o){return this.request(oi(o||{},{method:t,url:n,data:(o||{}).data}))}}),J.forEach(["post","put","patch"],function(t){function n(o){return function(s,r,a){return this.request(oi(a||{},{method:t,headers:o?{"Content-Type":"multipart/form-data"}:{},url:s,data:r}))}}Ks.prototype[t]=n(),Ks.prototype[t+"Form"]=n(!0)});const Gs=Ks;class Va{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(s){n=s});const o=this;this.promise.then(i=>{if(!o._listeners)return;let s=o._listeners.length;for(;s-- >0;)o._listeners[s](i);o._listeners=null}),this.promise.then=i=>{let s;const r=new Promise(a=>{o.subscribe(a),s=a}).then(i);return r.cancel=function(){o.unsubscribe(s)},r},t(function(s,r,a){o.reason||(o.reason=new qi(s,r,a),n(o.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}static source(){let t;return{token:new Va(function(i){t=i}),cancel:t}}}const Wy=Va;function Ky(e){return function(n){return e.apply(null,n)}}function Gy(e){return J.isObject(e)&&e.isAxiosError===!0}const Wa={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Wa).forEach(([e,t])=>{Wa[t]=e});const Yy=Wa;function ed(e){const t=new Gs(e),n=Eu(Gs.prototype.request,t);return J.extend(n,Gs.prototype,t,{allOwnKeys:!0}),J.extend(n,t,null,{allOwnKeys:!0}),n.create=function(i){return ed(oi(e,i))},n}const mt=ed(Fa);mt.Axios=Gs,mt.CanceledError=qi,mt.CancelToken=Wy,mt.isCancel=Ku,mt.VERSION=Xu,mt.toFormData=Hs,mt.AxiosError=Ke,mt.Cancel=mt.CanceledError,mt.all=function(t){return Promise.all(t)},mt.spread=Ky,mt.isAxiosError=Gy,mt.mergeConfig=oi,mt.AxiosHeaders=An,mt.formToJSON=e=>Vu(J.isHTMLForm(e)?new FormData(e):e),mt.HttpStatusCode=Yy,mt.default=mt;const td=mt,{Axios:uR,AxiosError:Jy,CanceledError:dR,isCancel:fR,CancelToken:pR,VERSION:hR,all:mR,Cancel:gR,isAxiosError:yR,spread:wR,toFormData:Qy,AxiosHeaders:bR,HttpStatusCode:_R,formToJSON:vR,mergeConfig:xR}=td;class nd extends Error{}class Ka extends nd{constructor(){super(...arguments);_e(this,"message","搜索失败!")}}class od extends Ka{constructor(){super(...arguments);_e(this,"message","搜索请求响应内容为空!")}}class Ga extends nd{constructor(){super(...arguments);_e(this,"message","目录不存在!")}toString(){return this.message}}var id=(e=>(e[e.exist=20004]="exist",e))(id||{});const Xy={[10013]:"超出任务大小限制",[10018]:"审核中...",[10016]:"文件内含违规内容"};class dt{constructor(){this._dataLength=0,this._bufferLength=0,this._state=new Int32Array(4),this._buffer=new ArrayBuffer(68),this._buffer8=new Uint8Array(this._buffer,0,68),this._buffer32=new Uint32Array(this._buffer,0,17),this.start()}static hashStr(t,n=!1){return this.onePassHasher.start().appendStr(t).end(n)}static hashAsciiStr(t,n=!1){return this.onePassHasher.start().appendAsciiStr(t).end(n)}static _hex(t){const n=dt.hexChars,o=dt.hexOut;let i,s,r,a;for(a=0;a<4;a+=1)for(s=a*8,i=t[a],r=0;r<8;r+=2)o[s+1+r]=n.charAt(i&15),i>>>=4,o[s+0+r]=n.charAt(i&15),i>>>=4;return o.join("")}static _md5cycle(t,n){let o=t[0],i=t[1],s=t[2],r=t[3];o+=(i&s|~i&r)+n[0]-680876936|0,o=(o<<7|o>>>25)+i|0,r+=(o&i|~o&s)+n[1]-389564586|0,r=(r<<12|r>>>20)+o|0,s+=(r&o|~r&i)+n[2]+606105819|0,s=(s<<17|s>>>15)+r|0,i+=(s&r|~s&o)+n[3]-1044525330|0,i=(i<<22|i>>>10)+s|0,o+=(i&s|~i&r)+n[4]-176418897|0,o=(o<<7|o>>>25)+i|0,r+=(o&i|~o&s)+n[5]+1200080426|0,r=(r<<12|r>>>20)+o|0,s+=(r&o|~r&i)+n[6]-1473231341|0,s=(s<<17|s>>>15)+r|0,i+=(s&r|~s&o)+n[7]-45705983|0,i=(i<<22|i>>>10)+s|0,o+=(i&s|~i&r)+n[8]+1770035416|0,o=(o<<7|o>>>25)+i|0,r+=(o&i|~o&s)+n[9]-1958414417|0,r=(r<<12|r>>>20)+o|0,s+=(r&o|~r&i)+n[10]-42063|0,s=(s<<17|s>>>15)+r|0,i+=(s&r|~s&o)+n[11]-1990404162|0,i=(i<<22|i>>>10)+s|0,o+=(i&s|~i&r)+n[12]+1804603682|0,o=(o<<7|o>>>25)+i|0,r+=(o&i|~o&s)+n[13]-40341101|0,r=(r<<12|r>>>20)+o|0,s+=(r&o|~r&i)+n[14]-1502002290|0,s=(s<<17|s>>>15)+r|0,i+=(s&r|~s&o)+n[15]+1236535329|0,i=(i<<22|i>>>10)+s|0,o+=(i&r|s&~r)+n[1]-165796510|0,o=(o<<5|o>>>27)+i|0,r+=(o&s|i&~s)+n[6]-1069501632|0,r=(r<<9|r>>>23)+o|0,s+=(r&i|o&~i)+n[11]+643717713|0,s=(s<<14|s>>>18)+r|0,i+=(s&o|r&~o)+n[0]-373897302|0,i=(i<<20|i>>>12)+s|0,o+=(i&r|s&~r)+n[5]-701558691|0,o=(o<<5|o>>>27)+i|0,r+=(o&s|i&~s)+n[10]+38016083|0,r=(r<<9|r>>>23)+o|0,s+=(r&i|o&~i)+n[15]-660478335|0,s=(s<<14|s>>>18)+r|0,i+=(s&o|r&~o)+n[4]-405537848|0,i=(i<<20|i>>>12)+s|0,o+=(i&r|s&~r)+n[9]+568446438|0,o=(o<<5|o>>>27)+i|0,r+=(o&s|i&~s)+n[14]-1019803690|0,r=(r<<9|r>>>23)+o|0,s+=(r&i|o&~i)+n[3]-187363961|0,s=(s<<14|s>>>18)+r|0,i+=(s&o|r&~o)+n[8]+1163531501|0,i=(i<<20|i>>>12)+s|0,o+=(i&r|s&~r)+n[13]-1444681467|0,o=(o<<5|o>>>27)+i|0,r+=(o&s|i&~s)+n[2]-51403784|0,r=(r<<9|r>>>23)+o|0,s+=(r&i|o&~i)+n[7]+1735328473|0,s=(s<<14|s>>>18)+r|0,i+=(s&o|r&~o)+n[12]-1926607734|0,i=(i<<20|i>>>12)+s|0,o+=(i^s^r)+n[5]-378558|0,o=(o<<4|o>>>28)+i|0,r+=(o^i^s)+n[8]-2022574463|0,r=(r<<11|r>>>21)+o|0,s+=(r^o^i)+n[11]+1839030562|0,s=(s<<16|s>>>16)+r|0,i+=(s^r^o)+n[14]-35309556|0,i=(i<<23|i>>>9)+s|0,o+=(i^s^r)+n[1]-1530992060|0,o=(o<<4|o>>>28)+i|0,r+=(o^i^s)+n[4]+1272893353|0,r=(r<<11|r>>>21)+o|0,s+=(r^o^i)+n[7]-155497632|0,s=(s<<16|s>>>16)+r|0,i+=(s^r^o)+n[10]-1094730640|0,i=(i<<23|i>>>9)+s|0,o+=(i^s^r)+n[13]+681279174|0,o=(o<<4|o>>>28)+i|0,r+=(o^i^s)+n[0]-358537222|0,r=(r<<11|r>>>21)+o|0,s+=(r^o^i)+n[3]-722521979|0,s=(s<<16|s>>>16)+r|0,i+=(s^r^o)+n[6]+76029189|0,i=(i<<23|i>>>9)+s|0,o+=(i^s^r)+n[9]-640364487|0,o=(o<<4|o>>>28)+i|0,r+=(o^i^s)+n[12]-421815835|0,r=(r<<11|r>>>21)+o|0,s+=(r^o^i)+n[15]+530742520|0,s=(s<<16|s>>>16)+r|0,i+=(s^r^o)+n[2]-995338651|0,i=(i<<23|i>>>9)+s|0,o+=(s^(i|~r))+n[0]-198630844|0,o=(o<<6|o>>>26)+i|0,r+=(i^(o|~s))+n[7]+1126891415|0,r=(r<<10|r>>>22)+o|0,s+=(o^(r|~i))+n[14]-1416354905|0,s=(s<<15|s>>>17)+r|0,i+=(r^(s|~o))+n[5]-57434055|0,i=(i<<21|i>>>11)+s|0,o+=(s^(i|~r))+n[12]+1700485571|0,o=(o<<6|o>>>26)+i|0,r+=(i^(o|~s))+n[3]-1894986606|0,r=(r<<10|r>>>22)+o|0,s+=(o^(r|~i))+n[10]-1051523|0,s=(s<<15|s>>>17)+r|0,i+=(r^(s|~o))+n[1]-2054922799|0,i=(i<<21|i>>>11)+s|0,o+=(s^(i|~r))+n[8]+1873313359|0,o=(o<<6|o>>>26)+i|0,r+=(i^(o|~s))+n[15]-30611744|0,r=(r<<10|r>>>22)+o|0,s+=(o^(r|~i))+n[6]-1560198380|0,s=(s<<15|s>>>17)+r|0,i+=(r^(s|~o))+n[13]+1309151649|0,i=(i<<21|i>>>11)+s|0,o+=(s^(i|~r))+n[4]-145523070|0,o=(o<<6|o>>>26)+i|0,r+=(i^(o|~s))+n[11]-1120210379|0,r=(r<<10|r>>>22)+o|0,s+=(o^(r|~i))+n[2]+718787259|0,s=(s<<15|s>>>17)+r|0,i+=(r^(s|~o))+n[9]-343485551|0,i=(i<<21|i>>>11)+s|0,t[0]=o+t[0]|0,t[1]=i+t[1]|0,t[2]=s+t[2]|0,t[3]=r+t[3]|0}start(){return this._dataLength=0,this._bufferLength=0,this._state.set(dt.stateIdentity),this}appendStr(t){const n=this._buffer8,o=this._buffer32;let i=this._bufferLength,s,r;for(r=0;r<t.length;r+=1){if(s=t.charCodeAt(r),s<128)n[i++]=s;else if(s<2048)n[i++]=(s>>>6)+192,n[i++]=s&63|128;else if(s<55296||s>56319)n[i++]=(s>>>12)+224,n[i++]=s>>>6&63|128,n[i++]=s&63|128;else{if(s=(s-55296)*1024+(t.charCodeAt(++r)-56320)+65536,s>1114111)throw new Error("Unicode standard supports code points up to U+10FFFF");n[i++]=(s>>>18)+240,n[i++]=s>>>12&63|128,n[i++]=s>>>6&63|128,n[i++]=s&63|128}i>=64&&(this._dataLength+=64,dt._md5cycle(this._state,o),i-=64,o[0]=o[16])}return this._bufferLength=i,this}appendAsciiStr(t){const n=this._buffer8,o=this._buffer32;let i=this._bufferLength,s,r=0;for(;;){for(s=Math.min(t.length-r,64-i);s--;)n[i++]=t.charCodeAt(r++);if(i<64)break;this._dataLength+=64,dt._md5cycle(this._state,o),i=0}return this._bufferLength=i,this}appendByteArray(t){const n=this._buffer8,o=this._buffer32;let i=this._bufferLength,s,r=0;for(;;){for(s=Math.min(t.length-r,64-i);s--;)n[i++]=t[r++];if(i<64)break;this._dataLength+=64,dt._md5cycle(this._state,o),i=0}return this._bufferLength=i,this}getState(){const t=this._state;return{buffer:String.fromCharCode.apply(null,Array.from(this._buffer8)),buflen:this._bufferLength,length:this._dataLength,state:[t[0],t[1],t[2],t[3]]}}setState(t){const n=t.buffer,o=t.state,i=this._state;let s;for(this._dataLength=t.length,this._bufferLength=t.buflen,i[0]=o[0],i[1]=o[1],i[2]=o[2],i[3]=o[3],s=0;s<n.length;s+=1)this._buffer8[s]=n.charCodeAt(s)}end(t=!1){const n=this._bufferLength,o=this._buffer8,i=this._buffer32,s=(n>>2)+1;this._dataLength+=n;const r=this._dataLength*8;if(o[n]=128,o[n+1]=o[n+2]=o[n+3]=0,i.set(dt.buffer32Identity.subarray(s),s),n>55&&(dt._md5cycle(this._state,i),i.set(dt.buffer32Identity)),r<=4294967295)i[14]=r;else{const a=r.toString(16).match(/(.*?)(.{0,8})$/);if(a===null)return;const l=parseInt(a[2],16),u=parseInt(a[1],16)||0;i[14]=l,i[15]=u}return dt._md5cycle(this._state,i),t?this._state:dt._hex(this._state)}}if(dt.stateIdentity=new Int32Array([1732584193,-271733879,-1732584194,271733878]),dt.buffer32Identity=new Int32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),dt.hexChars="0123456789abcdef",dt.hexOut=[],dt.onePassHasher=new dt,dt.hashStr("hello")!=="5d41402abc4b2a76b9719d911017c592")throw new Error("Md5 self test failed.");var sd={exports:{}};(function(e){var t=function(n){var o=1e7,i=7,s=9007199254740992,r=_(s),a="0123456789abcdefghijklmnopqrstuvwxyz",l=typeof BigInt=="function";function u(m,w,C,k){return typeof m>"u"?u[0]:typeof w<"u"?+w==10&&!C?q(m):W(m,w,C,k):q(m)}function f(m,w){this.value=m,this.sign=w,this.isSmall=!1}f.prototype=Object.create(u.prototype);function h(m){this.value=m,this.sign=m<0,this.isSmall=!0}h.prototype=Object.create(u.prototype);function g(m){this.value=m}g.prototype=Object.create(u.prototype);function b(m){return-s<m&&m<s}function _(m){return m<1e7?[m]:m<1e14?[m%1e7,Math.floor(m/1e7)]:[m%1e7,Math.floor(m/1e7)%1e7,Math.floor(m/1e14)]}function E(m){I(m);var w=m.length;if(w<4&&Ae(m,r)<0)switch(w){case 0:return 0;case 1:return m[0];case 2:return m[0]+m[1]*o;default:return m[0]+(m[1]+m[2]*o)*o}return m}function I(m){for(var w=m.length;m[--w]===0;);m.length=w+1}function M(m){for(var w=new Array(m),C=-1;++C<m;)w[C]=0;return w}function P(m){return m>0?Math.floor(m):Math.ceil(m)}function T(m,w){var C=m.length,k=w.length,L=new Array(C),S=0,V=o,Y,oe;for(oe=0;oe<k;oe++)Y=m[oe]+w[oe]+S,S=Y>=V?1:0,L[oe]=Y-S*V;for(;oe<C;)Y=m[oe]+S,S=Y===V?1:0,L[oe++]=Y-S*V;return S>0&&L.push(S),L}function H(m,w){return m.length>=w.length?T(m,w):T(w,m)}function ie(m,w){var C=m.length,k=new Array(C),L=o,S,V;for(V=0;V<C;V++)S=m[V]-L+w,w=Math.floor(S/L),k[V]=S-w*L,w+=1;for(;w>0;)k[V++]=w%L,w=Math.floor(w/L);return k}f.prototype.add=function(m){var w=q(m);if(this.sign!==w.sign)return this.subtract(w.negate());var C=this.value,k=w.value;return w.isSmall?new f(ie(C,Math.abs(k)),this.sign):new f(H(C,k),this.sign)},f.prototype.plus=f.prototype.add,h.prototype.add=function(m){var w=q(m),C=this.value;if(C<0!==w.sign)return this.subtract(w.negate());var k=w.value;if(w.isSmall){if(b(C+k))return new h(C+k);k=_(Math.abs(k))}return new f(ie(k,Math.abs(C)),C<0)},h.prototype.plus=h.prototype.add,g.prototype.add=function(m){return new g(this.value+q(m).value)},g.prototype.plus=g.prototype.add;function U(m,w){var C=m.length,k=w.length,L=new Array(C),S=0,V=o,Y,oe;for(Y=0;Y<k;Y++)oe=m[Y]-S-w[Y],oe<0?(oe+=V,S=1):S=0,L[Y]=oe;for(Y=k;Y<C;Y++){if(oe=m[Y]-S,oe<0)oe+=V;else{L[Y++]=oe;break}L[Y]=oe}for(;Y<C;Y++)L[Y]=m[Y];return I(L),L}function Z(m,w,C){var k;return Ae(m,w)>=0?k=U(m,w):(k=U(w,m),C=!C),k=E(k),typeof k=="number"?(C&&(k=-k),new h(k)):new f(k,C)}function ce(m,w,C){var k=m.length,L=new Array(k),S=-w,V=o,Y,oe;for(Y=0;Y<k;Y++)oe=m[Y]+S,S=Math.floor(oe/V),oe%=V,L[Y]=oe<0?oe+V:oe;return L=E(L),typeof L=="number"?(C&&(L=-L),new h(L)):new f(L,C)}f.prototype.subtract=function(m){var w=q(m);if(this.sign!==w.sign)return this.add(w.negate());var C=this.value,k=w.value;return w.isSmall?ce(C,Math.abs(k),this.sign):Z(C,k,this.sign)},f.prototype.minus=f.prototype.subtract,h.prototype.subtract=function(m){var w=q(m),C=this.value;if(C<0!==w.sign)return this.add(w.negate());var k=w.value;return w.isSmall?new h(C-k):ce(k,Math.abs(C),C>=0)},h.prototype.minus=h.prototype.subtract,g.prototype.subtract=function(m){return new g(this.value-q(m).value)},g.prototype.minus=g.prototype.subtract,f.prototype.negate=function(){return new f(this.value,!this.sign)},h.prototype.negate=function(){var m=this.sign,w=new h(-this.value);return w.sign=!m,w},g.prototype.negate=function(){return new g(-this.value)},f.prototype.abs=function(){return new f(this.value,!1)},h.prototype.abs=function(){return new h(Math.abs(this.value))},g.prototype.abs=function(){return new g(this.value>=0?this.value:-this.value)};function ye(m,w){var C=m.length,k=w.length,L=C+k,S=M(L),V=o,Y,oe,Oe,Te,$e;for(Oe=0;Oe<C;++Oe){Te=m[Oe];for(var ze=0;ze<k;++ze)$e=w[ze],Y=Te*$e+S[Oe+ze],oe=Math.floor(Y/V),S[Oe+ze]=Y-oe*V,S[Oe+ze+1]+=oe}return I(S),S}function Ie(m,w){var C=m.length,k=new Array(C),L=o,S=0,V,Y;for(Y=0;Y<C;Y++)V=m[Y]*w+S,S=Math.floor(V/L),k[Y]=V-S*L;for(;S>0;)k[Y++]=S%L,S=Math.floor(S/L);return k}function be(m,w){for(var C=[];w-- >0;)C.push(0);return C.concat(m)}function O(m,w){var C=Math.max(m.length,w.length);if(C<=30)return ye(m,w);C=Math.ceil(C/2);var k=m.slice(C),L=m.slice(0,C),S=w.slice(C),V=w.slice(0,C),Y=O(L,V),oe=O(k,S),Oe=O(H(L,k),H(V,S)),Te=H(H(Y,be(U(U(Oe,Y),oe),C)),be(oe,2*C));return I(Te),Te}function ae(m,w){return-.012*m-.012*w+15e-6*m*w>0}f.prototype.multiply=function(m){var w=q(m),C=this.value,k=w.value,L=this.sign!==w.sign,S;if(w.isSmall){if(k===0)return u[0];if(k===1)return this;if(k===-1)return this.negate();if(S=Math.abs(k),S<o)return new f(Ie(C,S),L);k=_(S)}return ae(C.length,k.length)?new f(O(C,k),L):new f(ye(C,k),L)},f.prototype.times=f.prototype.multiply;function Q(m,w,C){return m<o?new f(Ie(w,m),C):new f(ye(w,_(m)),C)}h.prototype._multiplyBySmall=function(m){return b(m.value*this.value)?new h(m.value*this.value):Q(Math.abs(m.value),_(Math.abs(this.value)),this.sign!==m.sign)},f.prototype._multiplyBySmall=function(m){return m.value===0?u[0]:m.value===1?this:m.value===-1?this.negate():Q(Math.abs(m.value),this.value,this.sign!==m.sign)},h.prototype.multiply=function(m){return q(m)._multiplyBySmall(this)},h.prototype.times=h.prototype.multiply,g.prototype.multiply=function(m){return new g(this.value*q(m).value)},g.prototype.times=g.prototype.multiply;function Ee(m){var w=m.length,C=M(w+w),k=o,L,S,V,Y,oe;for(V=0;V<w;V++){Y=m[V],S=0-Y*Y;for(var Oe=V;Oe<w;Oe++)oe=m[Oe],L=2*(Y*oe)+C[V+Oe]+S,S=Math.floor(L/k),C[V+Oe]=L-S*k;C[V+w]=S}return I(C),C}f.prototype.square=function(){return new f(Ee(this.value),!1)},h.prototype.square=function(){var m=this.value*this.value;return b(m)?new h(m):new f(Ee(_(Math.abs(this.value))),!1)},g.prototype.square=function(m){return new g(this.value*this.value)};function D(m,w){var C=m.length,k=w.length,L=o,S=M(w.length),V=w[k-1],Y=Math.ceil(L/(2*V)),oe=Ie(m,Y),Oe=Ie(w,Y),Te,$e,ze,Nt,Et,As,Ps;for(oe.length<=C&&oe.push(0),Oe.push(0),V=Oe[k-1],$e=C-k;$e>=0;$e--){for(Te=L-1,oe[$e+k]!==V&&(Te=Math.floor((oe[$e+k]*L+oe[$e+k-1])/V)),ze=0,Nt=0,As=Oe.length,Et=0;Et<As;Et++)ze+=Te*Oe[Et],Ps=Math.floor(ze/L),Nt+=oe[$e+Et]-(ze-Ps*L),ze=Ps,Nt<0?(oe[$e+Et]=Nt+L,Nt=-1):(oe[$e+Et]=Nt,Nt=0);for(;Nt!==0;){for(Te-=1,ze=0,Et=0;Et<As;Et++)ze+=oe[$e+Et]-L+Oe[Et],ze<0?(oe[$e+Et]=ze+L,ze=0):(oe[$e+Et]=ze,ze=1);Nt+=ze}S[$e]=Te}return oe=N(oe,Y)[0],[E(S),E(oe)]}function K(m,w){for(var C=m.length,k=w.length,L=[],S=[],V=o,Y,oe,Oe,Te,$e;C;){if(S.unshift(m[--C]),I(S),Ae(S,w)<0){L.push(0);continue}oe=S.length,Oe=S[oe-1]*V+S[oe-2],Te=w[k-1]*V+w[k-2],oe>k&&(Oe=(Oe+1)*V),Y=Math.ceil(Oe/Te);do{if($e=Ie(w,Y),Ae($e,S)<=0)break;Y--}while(Y);L.push(Y),S=U(S,$e)}return L.reverse(),[E(L),E(S)]}function N(m,w){var C=m.length,k=M(C),L=o,S,V,Y,oe;for(Y=0,S=C-1;S>=0;--S)oe=Y*L+m[S],V=P(oe/w),Y=oe-V*w,k[S]=V|0;return[k,Y|0]}function we(m,w){var C,k=q(w);if(l)return[new g(m.value/k.value),new g(m.value%k.value)];var L=m.value,S=k.value,V;if(S===0)throw new Error("Cannot divide by zero");if(m.isSmall)return k.isSmall?[new h(P(L/S)),new h(L%S)]:[u[0],m];if(k.isSmall){if(S===1)return[m,u[0]];if(S==-1)return[m.negate(),u[0]];var Y=Math.abs(S);if(Y<o){C=N(L,Y),V=E(C[0]);var oe=C[1];return m.sign&&(oe=-oe),typeof V=="number"?(m.sign!==k.sign&&(V=-V),[new h(V),new h(oe)]):[new f(V,m.sign!==k.sign),new h(oe)]}S=_(Y)}var Oe=Ae(L,S);if(Oe===-1)return[u[0],m];if(Oe===0)return[u[m.sign===k.sign?1:-1],u[0]];L.length+S.length<=200?C=D(L,S):C=K(L,S),V=C[0];var Te=m.sign!==k.sign,$e=C[1],ze=m.sign;return typeof V=="number"?(Te&&(V=-V),V=new h(V)):V=new f(V,Te),typeof $e=="number"?(ze&&($e=-$e),$e=new h($e)):$e=new f($e,ze),[V,$e]}f.prototype.divmod=function(m){var w=we(this,m);return{quotient:w[0],remainder:w[1]}},g.prototype.divmod=h.prototype.divmod=f.prototype.divmod,f.prototype.divide=function(m){return we(this,m)[0]},g.prototype.over=g.prototype.divide=function(m){return new g(this.value/q(m).value)},h.prototype.over=h.prototype.divide=f.prototype.over=f.prototype.divide,f.prototype.mod=function(m){return we(this,m)[1]},g.prototype.mod=g.prototype.remainder=function(m){return new g(this.value%q(m).value)},h.prototype.remainder=h.prototype.mod=f.prototype.remainder=f.prototype.mod,f.prototype.pow=function(m){var w=q(m),C=this.value,k=w.value,L,S,V;if(k===0)return u[1];if(C===0)return u[0];if(C===1)return u[1];if(C===-1)return w.isEven()?u[1]:u[-1];if(w.sign)return u[0];if(!w.isSmall)throw new Error("The exponent "+w.toString()+" is too large.");if(this.isSmall&&b(L=Math.pow(C,k)))return new h(P(L));for(S=this,V=u[1];k&!0&&(V=V.times(S),--k),k!==0;)k/=2,S=S.square();return V},h.prototype.pow=f.prototype.pow,g.prototype.pow=function(m){var w=q(m),C=this.value,k=w.value,L=BigInt(0),S=BigInt(1),V=BigInt(2);if(k===L)return u[1];if(C===L)return u[0];if(C===S)return u[1];if(C===BigInt(-1))return w.isEven()?u[1]:u[-1];if(w.isNegative())return new g(L);for(var Y=this,oe=u[1];(k&S)===S&&(oe=oe.times(Y),--k),k!==L;)k/=V,Y=Y.square();return oe},f.prototype.modPow=function(m,w){if(m=q(m),w=q(w),w.isZero())throw new Error("Cannot take modPow with modulus 0");var C=u[1],k=this.mod(w);for(m.isNegative()&&(m=m.multiply(u[-1]),k=k.modInv(w));m.isPositive();){if(k.isZero())return u[0];m.isOdd()&&(C=C.multiply(k).mod(w)),m=m.divide(2),k=k.square().mod(w)}return C},g.prototype.modPow=h.prototype.modPow=f.prototype.modPow;function Ae(m,w){if(m.length!==w.length)return m.length>w.length?1:-1;for(var C=m.length-1;C>=0;C--)if(m[C]!==w[C])return m[C]>w[C]?1:-1;return 0}f.prototype.compareAbs=function(m){var w=q(m),C=this.value,k=w.value;return w.isSmall?1:Ae(C,k)},h.prototype.compareAbs=function(m){var w=q(m),C=Math.abs(this.value),k=w.value;return w.isSmall?(k=Math.abs(k),C===k?0:C>k?1:-1):-1},g.prototype.compareAbs=function(m){var w=this.value,C=q(m).value;return w=w>=0?w:-w,C=C>=0?C:-C,w===C?0:w>C?1:-1},f.prototype.compare=function(m){if(m===1/0)return-1;if(m===-1/0)return 1;var w=q(m),C=this.value,k=w.value;return this.sign!==w.sign?w.sign?1:-1:w.isSmall?this.sign?-1:1:Ae(C,k)*(this.sign?-1:1)},f.prototype.compareTo=f.prototype.compare,h.prototype.compare=function(m){if(m===1/0)return-1;if(m===-1/0)return 1;var w=q(m),C=this.value,k=w.value;return w.isSmall?C==k?0:C>k?1:-1:C<0!==w.sign?C<0?-1:1:C<0?1:-1},h.prototype.compareTo=h.prototype.compare,g.prototype.compare=function(m){if(m===1/0)return-1;if(m===-1/0)return 1;var w=this.value,C=q(m).value;return w===C?0:w>C?1:-1},g.prototype.compareTo=g.prototype.compare,f.prototype.equals=function(m){return this.compare(m)===0},g.prototype.eq=g.prototype.equals=h.prototype.eq=h.prototype.equals=f.prototype.eq=f.prototype.equals,f.prototype.notEquals=function(m){return this.compare(m)!==0},g.prototype.neq=g.prototype.notEquals=h.prototype.neq=h.prototype.notEquals=f.prototype.neq=f.prototype.notEquals,f.prototype.greater=function(m){return this.compare(m)>0},g.prototype.gt=g.prototype.greater=h.prototype.gt=h.prototype.greater=f.prototype.gt=f.prototype.greater,f.prototype.lesser=function(m){return this.compare(m)<0},g.prototype.lt=g.prototype.lesser=h.prototype.lt=h.prototype.lesser=f.prototype.lt=f.prototype.lesser,f.prototype.greaterOrEquals=function(m){return this.compare(m)>=0},g.prototype.geq=g.prototype.greaterOrEquals=h.prototype.geq=h.prototype.greaterOrEquals=f.prototype.geq=f.prototype.greaterOrEquals,f.prototype.lesserOrEquals=function(m){return this.compare(m)<=0},g.prototype.leq=g.prototype.lesserOrEquals=h.prototype.leq=h.prototype.lesserOrEquals=f.prototype.leq=f.prototype.lesserOrEquals,f.prototype.isEven=function(){return(this.value[0]&1)===0},h.prototype.isEven=function(){return(this.value&1)===0},g.prototype.isEven=function(){return(this.value&BigInt(1))===BigInt(0)},f.prototype.isOdd=function(){return(this.value[0]&1)===1},h.prototype.isOdd=function(){return(this.value&1)===1},g.prototype.isOdd=function(){return(this.value&BigInt(1))===BigInt(1)},f.prototype.isPositive=function(){return!this.sign},h.prototype.isPositive=function(){return this.value>0},g.prototype.isPositive=h.prototype.isPositive,f.prototype.isNegative=function(){return this.sign},h.prototype.isNegative=function(){return this.value<0},g.prototype.isNegative=h.prototype.isNegative,f.prototype.isUnit=function(){return!1},h.prototype.isUnit=function(){return Math.abs(this.value)===1},g.prototype.isUnit=function(){return this.abs().value===BigInt(1)},f.prototype.isZero=function(){return!1},h.prototype.isZero=function(){return this.value===0},g.prototype.isZero=function(){return this.value===BigInt(0)},f.prototype.isDivisibleBy=function(m){var w=q(m);return w.isZero()?!1:w.isUnit()?!0:w.compareAbs(2)===0?this.isEven():this.mod(w).isZero()},g.prototype.isDivisibleBy=h.prototype.isDivisibleBy=f.prototype.isDivisibleBy;function De(m){var w=m.abs();if(w.isUnit())return!1;if(w.equals(2)||w.equals(3)||w.equals(5))return!0;if(w.isEven()||w.isDivisibleBy(3)||w.isDivisibleBy(5))return!1;if(w.lesser(49))return!0}function he(m,w){for(var C=m.prev(),k=C,L=0,S,V,Y;k.isEven();)k=k.divide(2),L++;e:for(V=0;V<w.length;V++)if(!m.lesser(w[V])&&(Y=t(w[V]).modPow(k,m),!(Y.isUnit()||Y.equals(C)))){for(S=L-1;S!=0;S--){if(Y=Y.square().mod(m),Y.isUnit())return!1;if(Y.equals(C))continue e}return!1}return!0}f.prototype.isPrime=function(m){var w=De(this);if(w!==n)return w;var C=this.abs(),k=C.bitLength();if(k<=64)return he(C,[2,3,5,7,11,13,17,19,23,29,31,37]);for(var L=Math.log(2)*k.toJSNumber(),S=Math.ceil(m===!0?2*Math.pow(L,2):L),V=[],Y=0;Y<S;Y++)V.push(t(Y+2));return he(C,V)},g.prototype.isPrime=h.prototype.isPrime=f.prototype.isPrime,f.prototype.isProbablePrime=function(m,w){var C=De(this);if(C!==n)return C;for(var k=this.abs(),L=m===n?5:m,S=[],V=0;V<L;V++)S.push(t.randBetween(2,k.minus(2),w));return he(k,S)},g.prototype.isProbablePrime=h.prototype.isProbablePrime=f.prototype.isProbablePrime,f.prototype.modInv=function(m){for(var w=t.zero,C=t.one,k=q(m),L=this.abs(),S,V,Y;!L.isZero();)S=k.divide(L),V=w,Y=k,w=C,k=L,C=V.subtract(S.multiply(C)),L=Y.subtract(S.multiply(L));if(!k.isUnit())throw new Error(this.toString()+" and "+m.toString()+" are not co-prime");return w.compare(0)===-1&&(w=w.add(m)),this.isNegative()?w.negate():w},g.prototype.modInv=h.prototype.modInv=f.prototype.modInv,f.prototype.next=function(){var m=this.value;return this.sign?ce(m,1,this.sign):new f(ie(m,1),this.sign)},h.prototype.next=function(){var m=this.value;return m+1<s?new h(m+1):new f(r,!1)},g.prototype.next=function(){return new g(this.value+BigInt(1))},f.prototype.prev=function(){var m=this.value;return this.sign?new f(ie(m,1),!0):ce(m,1,this.sign)},h.prototype.prev=function(){var m=this.value;return m-1>-s?new h(m-1):new f(r,!0)},g.prototype.prev=function(){return new g(this.value-BigInt(1))};for(var ue=[1];2*ue[ue.length-1]<=o;)ue.push(2*ue[ue.length-1]);var He=ue.length,ot=ue[He-1];function Me(m){return Math.abs(m)<=o}f.prototype.shiftLeft=function(m){var w=q(m).toJSNumber();if(!Me(w))throw new Error(String(w)+" is too large for shifting.");if(w<0)return this.shiftRight(-w);var C=this;if(C.isZero())return C;for(;w>=He;)C=C.multiply(ot),w-=He-1;return C.multiply(ue[w])},g.prototype.shiftLeft=h.prototype.shiftLeft=f.prototype.shiftLeft,f.prototype.shiftRight=function(m){var w,C=q(m).toJSNumber();if(!Me(C))throw new Error(String(C)+" is too large for shifting.");if(C<0)return this.shiftLeft(-C);for(var k=this;C>=He;){if(k.isZero()||k.isNegative()&&k.isUnit())return k;w=we(k,ot),k=w[1].isNegative()?w[0].prev():w[0],C-=He-1}return w=we(k,ue[C]),w[1].isNegative()?w[0].prev():w[0]},g.prototype.shiftRight=h.prototype.shiftRight=f.prototype.shiftRight;function tt(m,w,C){w=q(w);for(var k=m.isNegative(),L=w.isNegative(),S=k?m.not():m,V=L?w.not():w,Y=0,oe=0,Oe=null,Te=null,$e=[];!S.isZero()||!V.isZero();)Oe=we(S,ot),Y=Oe[1].toJSNumber(),k&&(Y=ot-1-Y),Te=we(V,ot),oe=Te[1].toJSNumber(),L&&(oe=ot-1-oe),S=Oe[0],V=Te[0],$e.push(C(Y,oe));for(var ze=C(k?1:0,L?1:0)!==0?t(-1):t(0),Nt=$e.length-1;Nt>=0;Nt-=1)ze=ze.multiply(ot).add(t($e[Nt]));return ze}f.prototype.not=function(){return this.negate().prev()},g.prototype.not=h.prototype.not=f.prototype.not,f.prototype.and=function(m){return tt(this,m,function(w,C){return w&C})},g.prototype.and=h.prototype.and=f.prototype.and,f.prototype.or=function(m){return tt(this,m,function(w,C){return w|C})},g.prototype.or=h.prototype.or=f.prototype.or,f.prototype.xor=function(m){return tt(this,m,function(w,C){return w^C})},g.prototype.xor=h.prototype.xor=f.prototype.xor;var it=1<<30,vt=(o&-o)*(o&-o)|it;function ut(m){var w=m.value,C=typeof w=="number"?w|it:typeof w=="bigint"?w|BigInt(it):w[0]+w[1]*o|vt;return C&-C}function bo(m,w){if(w.compareTo(m)<=0){var C=bo(m,w.square(w)),k=C.p,L=C.e,S=k.multiply(w);return S.compareTo(m)<=0?{p:S,e:L*2+1}:{p:k,e:L*2}}return{p:t(1),e:0}}f.prototype.bitLength=function(){var m=this;return m.compareTo(t(0))<0&&(m=m.negate().subtract(t(1))),m.compareTo(t(0))===0?t(0):t(bo(m,t(2)).e).add(t(1))},g.prototype.bitLength=h.prototype.bitLength=f.prototype.bitLength;function wt(m,w){return m=q(m),w=q(w),m.greater(w)?m:w}function v(m,w){return m=q(m),w=q(w),m.lesser(w)?m:w}function A(m,w){if(m=q(m).abs(),w=q(w).abs(),m.equals(w))return m;if(m.isZero())return w;if(w.isZero())return m;for(var C=u[1],k,L;m.isEven()&&w.isEven();)k=v(ut(m),ut(w)),m=m.divide(k),w=w.divide(k),C=C.multiply(k);for(;m.isEven();)m=m.divide(ut(m));do{for(;w.isEven();)w=w.divide(ut(w));m.greater(w)&&(L=w,w=m,m=L),w=w.subtract(m)}while(!w.isZero());return C.isUnit()?m:m.multiply(C)}function F(m,w){return m=q(m).abs(),w=q(w).abs(),m.divide(A(m,w)).multiply(w)}function R(m,w,C){m=q(m),w=q(w);var k=C||Math.random,L=v(m,w),S=wt(m,w),V=S.subtract(L).add(1);if(V.isSmall)return L.add(Math.floor(k()*V));for(var Y=X(V,o).value,oe=[],Oe=!0,Te=0;Te<Y.length;Te++){var $e=Oe?Y[Te]+(Te+1<Y.length?Y[Te+1]/o:0):o,ze=P(k()*$e);oe.push(ze),ze<Y[Te]&&(Oe=!1)}return L.add(u.fromArray(oe,o,!1))}var W=function(m,w,C,k){C=C||a,m=String(m),k||(m=m.toLowerCase(),C=C.toLowerCase());var L=m.length,S,V=Math.abs(w),Y={};for(S=0;S<C.length;S++)Y[C[S]]=S;for(S=0;S<L;S++){var oe=m[S];if(oe!=="-"&&oe in Y&&Y[oe]>=V){if(oe==="1"&&V===1)continue;throw new Error(oe+" is not a valid digit in base "+w+".")}}w=q(w);var Oe=[],Te=m[0]==="-";for(S=Te?1:0;S<m.length;S++){var oe=m[S];if(oe in Y)Oe.push(q(Y[oe]));else if(oe==="<"){var $e=S;do S++;while(m[S]!==">"&&S<m.length);Oe.push(q(m.slice($e+1,S)))}else throw new Error(oe+" is not a valid character")}return se(Oe,w,Te)};function se(m,w,C){var k=u[0],L=u[1],S;for(S=m.length-1;S>=0;S--)k=k.add(m[S].times(L)),L=L.times(w);return C?k.negate():k}function me(m,w){return w=w||a,m<w.length?w[m]:"<"+m+">"}function X(m,w){if(w=t(w),w.isZero()){if(m.isZero())return{value:[0],isNegative:!1};throw new Error("Cannot convert nonzero numbers to base 0.")}if(w.equals(-1)){if(m.isZero())return{value:[0],isNegative:!1};if(m.isNegative())return{value:[].concat.apply([],Array.apply(null,Array(-m.toJSNumber())).map(Array.prototype.valueOf,[1,0])),isNegative:!1};var C=Array.apply(null,Array(m.toJSNumber()-1)).map(Array.prototype.valueOf,[0,1]);return C.unshift([1]),{value:[].concat.apply([],C),isNegative:!1}}var k=!1;if(m.isNegative()&&w.isPositive()&&(k=!0,m=m.abs()),w.isUnit())return m.isZero()?{value:[0],isNegative:!1}:{value:Array.apply(null,Array(m.toJSNumber())).map(Number.prototype.valueOf,1),isNegative:k};for(var L=[],S=m,V;S.isNegative()||S.compareAbs(w)>=0;){V=S.divmod(w),S=V.quotient;var Y=V.remainder;Y.isNegative()&&(Y=w.minus(Y).abs(),S=S.next()),L.push(Y.toJSNumber())}return L.push(S.toJSNumber()),{value:L.reverse(),isNegative:k}}function ne(m,w,C){var k=X(m,w);return(k.isNegative?"-":"")+k.value.map(function(L){return me(L,C)}).join("")}f.prototype.toArray=function(m){return X(this,m)},h.prototype.toArray=function(m){return X(this,m)},g.prototype.toArray=function(m){return X(this,m)},f.prototype.toString=function(m,w){if(m===n&&(m=10),m!==10)return ne(this,m,w);for(var C=this.value,k=C.length,L=String(C[--k]),S="0000000",V;--k>=0;)V=String(C[k]),L+=S.slice(V.length)+V;var Y=this.sign?"-":"";return Y+L},h.prototype.toString=function(m,w){return m===n&&(m=10),m!=10?ne(this,m,w):String(this.value)},g.prototype.toString=h.prototype.toString,g.prototype.toJSON=f.prototype.toJSON=h.prototype.toJSON=function(){return this.toString()},f.prototype.valueOf=function(){return parseInt(this.toString(),10)},f.prototype.toJSNumber=f.prototype.valueOf,h.prototype.valueOf=function(){return this.value},h.prototype.toJSNumber=h.prototype.valueOf,g.prototype.valueOf=g.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};function te(m){if(b(+m)){var w=+m;if(w===P(w))return l?new g(BigInt(w)):new h(w);throw new Error("Invalid integer: "+m)}var C=m[0]==="-";C&&(m=m.slice(1));var k=m.split(/e/i);if(k.length>2)throw new Error("Invalid integer: "+k.join("e"));if(k.length===2){var L=k[1];if(L[0]==="+"&&(L=L.slice(1)),L=+L,L!==P(L)||!b(L))throw new Error("Invalid integer: "+L+" is not a valid exponent.");var S=k[0],V=S.indexOf(".");if(V>=0&&(L-=S.length-V-1,S=S.slice(0,V)+S.slice(V+1)),L<0)throw new Error("Cannot include negative exponent part for integers");S+=new Array(L+1).join("0"),m=S}var Y=/^([0-9][0-9]*)$/.test(m);if(!Y)throw new Error("Invalid integer: "+m);if(l)return new g(BigInt(C?"-"+m:m));for(var oe=[],Oe=m.length,Te=i,$e=Oe-Te;Oe>0;)oe.push(+m.slice($e,Oe)),$e-=Te,$e<0&&($e=0),Oe-=Te;return I(oe),new f(oe,C)}function ve(m){if(l)return new g(BigInt(m));if(b(m)){if(m!==P(m))throw new Error(m+" is not an integer.");return new h(m)}return te(m.toString())}function q(m){return typeof m=="number"?ve(m):typeof m=="string"?te(m):typeof m=="bigint"?new g(m):m}for(var xe=0;xe<1e3;xe++)u[xe]=q(xe),xe>0&&(u[-xe]=q(-xe));return u.one=u[1],u.zero=u[0],u.minusOne=u[-1],u.max=wt,u.min=v,u.gcd=A,u.lcm=F,u.isInstance=function(m){return m instanceof f||m instanceof h||m instanceof g},u.randBetween=R,u.fromArray=function(m,w,C){return se(m.map(q),q(w||10),C)},u}();e.hasOwnProperty("exports")&&(e.exports=t)})(sd);const Ys=sd.exports;class Zy{constructor(){_e(this,"n");_e(this,"e");this.n=Ys("8686980c0f5a24c4b9d43020cd2c22703ff3f450756529058b1cf88f09b8602136477198a6e2683149659bd122c33592fdb5ad47944ad1ea4d36c6b172aad6338c3bb6ac6227502d010993ac967d1aef00f0c8e038de2e4d3bc2ec368af2e9f10a6f1eda4f7262f136420c07c331b871bf139f74f3010e3c4fe57df3afb71683",16),this.e=Ys("10001",16)}a2hex(t){let n="",o;for(let i=0;i<t.length;i++)o=t[i].toString(16),o.length<2&&(o="0"+o),n+=o;return n}hex2a(t){let n="";for(let o=0;o<t.length;o+=2)n+=String.fromCharCode(parseInt(t.substr(o,2),16));return n}pkcs1pad2(t,n){if(n<t.length+11)return null;let o=[],i=t.length-1;for(;i>=0&&n>0;)o[--n]=t.charCodeAt(i--);for(o[--n]=0;n>2;)o[--n]=255;o[--n]=2,o[--n]=0;let s=this.a2hex(o);return Ys(s,16)}pkcs1unpad2(t){let n=t.toString(16);n.length%2!==0&&(n="0"+n);let o=this.hex2a(n),i=1;for(;o.charCodeAt(i)!==0;)i++;return o.slice(i+1)}encrypt(t){let n=this.pkcs1pad2(t,128),o=n==null?void 0:n.modPow(this.e,this.n),i=(o==null?void 0:o.toString(16))||"";for(;i.length<128*2;)i="0"+i;return i}decrypt(t){const n=[];let o=0;for(;o<t.length;)n[o]=t.charCodeAt(o),o+=1;const s=Ys(this.a2hex(n),16).modPow(this.e,this.n);return this.pkcs1unpad2(s)}}class ew{constructor(){_e(this,"rsa");_e(this,"kts");_e(this,"keyS");_e(this,"keyL");this.rsa=new Zy,this.kts=[240,229,105,174,191,220,191,138,26,69,232,190,125,166,115,184,222,143,231,196,69,218,134,196,155,100,139,20,106,180,241,170,56,1,53,158,38,105,44,134,0,107,79,165,54,52,98,166,42,150,104,24,242,74,253,189,107,151,143,77,143,137,19,183,108,142,147,237,14,13,72,62,215,47,136,216,254,254,126,134,80,149,79,209,235,131,38,52,219,102,123,156,126,157,122,129,50,234,182,51,222,58,169,89,52,102,59,170,186,129,96,72,185,213,129,156,248,108,132,119,255,84,120,38,95,190,232,30,54,159,52,128,92,69,44,155,118,213,27,143,204,195,184,245],this.keyS=[41,35,33,94],this.keyL=[120,6,173,76,51,134,93,24,76,1,63,70]}xor115Enc(t,n,o,i){let s,r,a,l,u,f,h,g;if(l=n%4,g=[],l!==0)for(s=r=0,u=l;u>=0?r<u:r>u;s=u>=0?++r:--r)g.push(t[s]^o[s%i]);for(s=a=f=l,h=n;f<=h?a<h:a>h;s=f<=h?++a:--a)g.push(t[s]^o[(s-l)%i]);return g}getkey(t,n){let o;return n!=null?(()=>{let i,s,r;for(r=[],o=i=0,s=t;s>=0?i<s:i>s;o=s>=0?++i:--i)r.push(n[o]+this.kts[t*o]&255^this.kts[t*(t-1-o)]);return r})():t===12?this.keyL.slice(0):this.keyS.slice(0)}asymEncode(t,n){let o,i,s,r,a;for(s=128-11,a="",o=i=0,r=Math.floor((n+s-1)/s);r>=0?i<r:i>r;o=r>=0?++i:--i)a+=this.rsa.encrypt(this.bytesToString(t.slice(o*s,Math.min((o+1)*s,n))));return window.btoa(this.rsa.hex2a(a))}asymDecode(t,n){let o,i,s,r,a;for(s=128,a="",o=i=0,r=Math.floor((n+s-1)/s);r>=0?i<r:i>r;o=r>=0?++i:--i)a+=this.rsa.decrypt(this.bytesToString(t.slice(o*s,Math.min((o+1)*s,n))));return this.stringToBytes(a)}symEncode(t,n,o,i){let s,r,a;return s=this.getkey(4,o),r=this.getkey(12,i),a=this.xor115Enc(t,n,s,4),a.reverse(),a=this.xor115Enc(a,n,r,12),a}symDecode(t,n,o,i){let s,r,a;return s=this.getkey(4,o),r=this.getkey(12,i),a=this.xor115Enc(t,n,r,12),a.reverse(),a=this.xor115Enc(a,n,s,4),a}bytesToString(t){let n,o,i,s;for(s="",o=0,i=t.length;o<i;o++)n=t[o],s+=String.fromCharCode(n);return s}stringToBytes(t){let n,o,i;for(i=[],n=0,o=t.length;n<o;n++)i.push(t.charCodeAt(n));return i}encode(t,n){const o=this.stringToBytes(dt.hashStr(`!@###@#${n}DFDR@#@#`));let i=this.stringToBytes(t);return i=this.symEncode(i,i.length,o,null),i=o.slice(0,16).concat(i),{data:this.asymEncode(i,i.length),key:o}}decode(t,n){let o=this.stringToBytes(window.atob(t));return o=this.asymDecode(o,o.length),this.bytesToString(this.symDecode(o.slice(16),o.length-16,n,o.slice(0,16)))}}const tw=new Set(["ENOTFOUND","ENETUNREACH","UNABLE_TO_GET_ISSUER_CERT","UNABLE_TO_GET_CRL","UNABLE_TO_DECRYPT_CERT_SIGNATURE","UNABLE_TO_DECRYPT_CRL_SIGNATURE","UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY","CERT_SIGNATURE_FAILURE","CRL_SIGNATURE_FAILURE","CERT_NOT_YET_VALID","CERT_HAS_EXPIRED","CRL_NOT_YET_VALID","CRL_HAS_EXPIRED","ERROR_IN_CERT_NOT_BEFORE_FIELD","ERROR_IN_CERT_NOT_AFTER_FIELD","ERROR_IN_CRL_LAST_UPDATE_FIELD","ERROR_IN_CRL_NEXT_UPDATE_FIELD","OUT_OF_MEM","DEPTH_ZERO_SELF_SIGNED_CERT","SELF_SIGNED_CERT_IN_CHAIN","UNABLE_TO_GET_ISSUER_CERT_LOCALLY","UNABLE_TO_VERIFY_LEAF_SIGNATURE","CERT_CHAIN_TOO_LONG","CERT_REVOKED","INVALID_CA","PATH_LENGTH_EXCEEDED","INVALID_PURPOSE","CERT_UNTRUSTED","CERT_REJECTED","HOSTNAME_MISMATCH"]);var nw=e=>!tw.has(e&&e.code);const Ya="axios-retry";function rd(e){const t=["ERR_CANCELED","ECONNABORTED"];return e.response||!e.code||t.includes(e.code)?!1:nw(e)}const ad=["get","head","options"],ow=ad.concat(["put","delete"]);function Ja(e){return e.code!=="ECONNABORTED"&&(!e.response||e.response.status===429||e.response.status>=500&&e.response.status<=599)}function iw(e){var t;return(t=e.config)!=null&&t.method?Ja(e)&&ad.indexOf(e.config.method)!==-1:!1}function ld(e){var t;return(t=e.config)!=null&&t.method?Ja(e)&&ow.indexOf(e.config.method)!==-1:!1}function cd(e){return rd(e)||ld(e)}function ud(e=void 0){var o;const t=(o=e==null?void 0:e.response)==null?void 0:o.headers["retry-after"];if(!t)return 0;let n=(Number(t)||0)*1e3;return n===0&&(n=(new Date(t).valueOf()||0)-Date.now()),Math.max(0,n)}function sw(e=0,t=void 0){return Math.max(0,ud(t))}function rw(e=0,t=void 0,n=100){const o=2**e*n,i=Math.max(o,ud(t)),s=i*.2*Math.random();return i+s}const aw={retries:3,retryCondition:cd,retryDelay:sw,shouldResetTimeout:!1,onRetry:()=>{},onMaxRetryTimesExceeded:()=>{},validateResponse:null};function lw(e,t){return{...aw,...t,...e[Ya]}}function dd(e,t){const n=lw(e,t||{});return n.retryCount=n.retryCount||0,n.lastRequestTime=n.lastRequestTime||Date.now(),e[Ya]=n,n}function cw(e,t){e.defaults.agent===t.agent&&delete t.agent,e.defaults.httpAgent===t.httpAgent&&delete t.httpAgent,e.defaults.httpsAgent===t.httpsAgent&&delete t.httpsAgent}async function uw(e,t){const{retries:n,retryCondition:o}=e,i=(e.retryCount||0)<n&&o(t);if(typeof i=="object")try{return await i!==!1}catch{return!1}return i}async function dw(e,t,n,o){var l;t.retryCount+=1;const{retryDelay:i,shouldResetTimeout:s,onRetry:r}=t,a=i(t.retryCount,n);if(cw(e,o),!s&&o.timeout&&t.lastRequestTime){const u=Date.now()-t.lastRequestTime,f=o.timeout-u-a;if(f<=0)return Promise.reject(n);o.timeout=f}return o.transformRequest=[u=>u],await r(t.retryCount,n,o),(l=o.signal)!=null&&l.aborted?Promise.resolve(e(o)):new Promise(u=>{var g;const f=()=>{clearTimeout(h),u(e(o))},h=setTimeout(()=>{var b;u(e(o)),(b=o.signal)!=null&&b.removeEventListener&&o.signal.removeEventListener("abort",f)},a);(g=o.signal)!=null&&g.addEventListener&&o.signal.addEventListener("abort",f,{once:!0})})}async function fw(e,t){e.retryCount>=e.retries&&await e.onMaxRetryTimesExceeded(t,e.retryCount)}const Eo=(e,t)=>{const n=e.interceptors.request.use(i=>{var s;return dd(i,t),(s=i[Ya])!=null&&s.validateResponse&&(i.validateStatus=()=>!1),i}),o=e.interceptors.response.use(null,async i=>{var a;const{config:s}=i;if(!s)return Promise.reject(i);const r=dd(s,t);return i.response&&((a=r.validateResponse)==null?void 0:a.call(r,i.response))?i.response:await uw(r,i)?dw(e,r,i,s):(await fw(r,i),Promise.reject(i))});return{requestInterceptorId:n,responseInterceptorId:o}};Eo.isNetworkError=rd,Eo.isSafeRequestError=iw,Eo.isIdempotentRequestError=ld,Eo.isNetworkOrIdempotentRequestError=cd,Eo.exponentialDelay=rw,Eo.isRetryableError=Ja;var Js=class{constructor(t={}){this.points=t.points,this.duration=t.duration,this.blockDuration=t.blockDuration,this.execEvenly=t.execEvenly,this.execEvenlyMinDelayMs=t.execEvenlyMinDelayMs,this.keyPrefix=t.keyPrefix}get points(){return this._points}set points(t){this._points=t>=0?t:4}get duration(){return this._duration}set duration(t){this._duration=typeof t>"u"?1:t}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(t){this._blockDuration=typeof t>"u"?0:t}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(t){this._execEvenly=typeof t>"u"?!1:Boolean(t)}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(t){this._execEvenlyMinDelayMs=typeof t>"u"?Math.ceil(this.msDuration/this.points):t}get keyPrefix(){return this._keyPrefix}set keyPrefix(t){if(typeof t>"u"&&(t="rlflx"),typeof t!="string")throw new Error("keyPrefix must be string");this._keyPrefix=t}_getKeySecDuration(t={}){return t&&t.customDuration>=0?t.customDuration:this.duration}getKey(t){return this.keyPrefix.length>0?`${this.keyPrefix}:${t}`:t}parseKey(t){return t.substring(this.keyPrefix.length)}consume(){throw new Error("You have to implement the method 'consume'!")}penalty(){throw new Error("You have to implement the method 'penalty'!")}reward(){throw new Error("You have to implement the method 'reward'!")}get(){throw new Error("You have to implement the method 'get'!")}set(){throw new Error("You have to implement the method 'set'!")}block(){throw new Error("You have to implement the method 'block'!")}delete(){throw new Error("You have to implement the method 'delete'!")}},pw=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){const t=Date.now();Object.keys(this._keys).forEach(n=>{this._keys[n]<=t&&delete this._keys[n]}),this._addedKeysAmount=Object.keys(this._keys).length}add(t,n){this.addMs(t,n*1e3)}addMs(t,n){this._keys[t]=Date.now()+n,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(t){const n=this._keys[t];if(n&&n>=Date.now()){this.collectExpired();const o=Date.now();return n>=o?n-o:0}return 0}delete(t){t?delete this._keys[t]:Object.keys(this._keys).forEach(n=>{delete this._keys[n]})}},hw=pw,Ht=class{constructor(t,n,o,i){this.remainingPoints=typeof t>"u"?0:t,this.msBeforeNext=typeof n>"u"?0:n,this.consumedPoints=typeof o>"u"?0:o,this.isFirstInDuration=typeof i>"u"?!1:i}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(t){return this._msBeforeNext=t,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(t){return this._remainingPoints=t,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(t){return this._consumedPoints=t,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(t){this._isFirstInDuration=Boolean(t)}_getDecoratedProperties(){return{remainingPoints:this.remainingPoints,msBeforeNext:this.msBeforeNext,consumedPoints:this.consumedPoints,isFirstInDuration:this.isFirstInDuration}}[Symbol.for("nodejs.util.inspect.custom")](){return this._getDecoratedProperties()}toString(){return JSON.stringify(this._getDecoratedProperties())}toJSON(){return this._getDecoratedProperties()}};const Qa=Js,mw=hw,fd=Ht;var ko=class extends Qa{constructor(t={}){super(t),this.inMemoryBlockOnConsumed=t.inMemoryBlockOnConsumed,this.inMemoryBlockDuration=t.inMemoryBlockDuration,this.insuranceLimiter=t.insuranceLimiter,this._inMemoryBlockedKeys=new mw}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("storeClient is not set");this._client=t}_afterConsume(t,n,o,i,s,r={}){const a=this._getRateLimiterRes(o,i,s);if(this.inMemoryBlockOnConsumed>0&&!(this.inMemoryBlockDuration>0)&&a.consumedPoints>=this.inMemoryBlockOnConsumed)return this._inMemoryBlockedKeys.addMs(o,a.msBeforeNext),a.consumedPoints>this.points?n(a):t(a);if(a.consumedPoints>this.points){let l=Promise.resolve();this.blockDuration>0&&a.consumedPoints<=this.points+i&&(a.msBeforeNext=this.msBlockDuration,l=this._block(o,a.consumedPoints,this.msBlockDuration,r)),this.inMemoryBlockOnConsumed>0&&a.consumedPoints>=this.inMemoryBlockOnConsumed&&(this._inMemoryBlockedKeys.add(o,this.inMemoryBlockDuration),a.msBeforeNext=this.msInMemoryBlockDuration),l.then(()=>{n(a)}).catch(u=>{n(u)})}else if(this.execEvenly&&a.msBeforeNext>0&&!a.isFirstInDuration){let l=Math.ceil(a.msBeforeNext/(a.remainingPoints+2));l<this.execEvenlyMinDelayMs&&(l=a.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(t,l,a)}else t(a)}_handleError(t,n,o,i,s,r=!1,a={}){this.insuranceLimiter instanceof Qa?this.insuranceLimiter[n](s,r,a).then(l=>{o(l)}).catch(l=>{i(l)}):i(t)}getInMemoryBlockMsBeforeExpire(t){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(t):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(t){if(this._inMemoryBlockOnConsumed=t?parseInt(t):0,this.inMemoryBlockOnConsumed>0&&this.points>this.inMemoryBlockOnConsumed)throw new Error('inMemoryBlockOnConsumed option must be greater or equal "points" option')}get inMemoryBlockDuration(){return this._inMemoryBlockDuration}set inMemoryBlockDuration(t){if(this._inMemoryBlockDuration=t?parseInt(t):0,this.inMemoryBlockDuration>0&&this.inMemoryBlockOnConsumed===0)throw new Error("inMemoryBlockOnConsumed option must be set up")}get msInMemoryBlockDuration(){return this._inMemoryBlockDuration*1e3}get insuranceLimiter(){return this._insuranceLimiter}set insuranceLimiter(t){if(typeof t<"u"&&!(t instanceof Qa))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=t,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(t,n,o={}){const i=n*1e3;return this._block(this.getKey(t),this.points+1,i,o)}set(t,n,o,i={}){const s=(o>=0?o:this.duration)*1e3;return this._block(this.getKey(t),n,s,i)}consume(t,n=1,o={}){return new Promise((i,s)=>{const r=this.getKey(t),a=this.getInMemoryBlockMsBeforeExpire(r);if(a>0)return s(new fd(0,a));this._upsert(r,n,this._getKeySecDuration(o)*1e3,!1,o).then(l=>{this._afterConsume(i,s,r,n,l)}).catch(l=>{this._handleError(l,"consume",i,s,t,n,o)})})}penalty(t,n=1,o={}){const i=this.getKey(t);return new Promise((s,r)=>{this._upsert(i,n,this._getKeySecDuration(o)*1e3,!1,o).then(a=>{s(this._getRateLimiterRes(i,n,a))}).catch(a=>{this._handleError(a,"penalty",s,r,t,n,o)})})}reward(t,n=1,o={}){const i=this.getKey(t);return new Promise((s,r)=>{this._upsert(i,-n,this._getKeySecDuration(o)*1e3,!1,o).then(a=>{s(this._getRateLimiterRes(i,-n,a))}).catch(a=>{this._handleError(a,"reward",s,r,t,n,o)})})}get(t,n={}){const o=this.getKey(t);return new Promise((i,s)=>{this._get(o,n).then(r=>{i(r===null||typeof r>"u"?null:this._getRateLimiterRes(o,0,r))}).catch(r=>{this._handleError(r,"get",i,s,t,n)})})}delete(t,n={}){const o=this.getKey(t);return new Promise((i,s)=>{this._delete(o,n).then(r=>{this._inMemoryBlockedKeys.delete(o),i(r)}).catch(r=>{this._handleError(r,"delete",i,s,t,n)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(t,n,o){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(t,n,o,i={}){return new Promise((s,r)=>{this._upsert(t,n,o,!0,i).then(()=>{s(new fd(0,o>0?o:-1,n))}).catch(a=>{this._handleError(a,"block",s,r,this.parseKey(t),o/1e3,i)})})}_get(t,n={}){throw new Error("You have to implement the method '_get'!")}_delete(t,n={}){throw new Error("You have to implement the method '_delete'!")}_upsert(t,n,o,i=!1,s={}){throw new Error("You have to implement the method '_upsert'!")}};const gw=ko,yw=Ht,ww="redis.call('set', KEYS[1], 0, 'EX', ARGV[2], 'NX') local consumed = redis.call('incrby', KEYS[1], ARGV[1]) local ttl = redis.call('pttl', KEYS[1]) if ttl == -1 then   redis.call('expire', KEYS[1], ARGV[2])   ttl = 1000 * ARGV[2] end return {consumed, ttl} ";class bw extends gw{constructor(t){super(t),this.client=t.storeClient,this._rejectIfRedisNotReady=!!t.rejectIfRedisNotReady,this._incrTtlLuaScript=t.customIncrTtlLuaScript||ww,this.useRedisPackage=t.useRedisPackage||this.client.constructor.name==="Commander"||!1,this.useRedis3AndLowerPackage=t.useRedis3AndLowerPackage,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:this._incrTtlLuaScript})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(t,n,o){let[i,s]=o;Array.isArray(i)&&([,i]=i,[,s]=s);const r=new yw;return r.consumedPoints=parseInt(i),r.isFirstInDuration=r.consumedPoints===n,r.remainingPoints=Math.max(this.points-r.consumedPoints,0),r.msBeforeNext=s,r}async _upsert(t,n,o,i=!1){if(!this._isRedisReady())throw new Error("Redis connection is not ready");const s=Math.floor(o/1e3),r=this.client.multi();return i?(s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?r.set(t,n,"EX",s):r.set(t,n,{EX:s}):r.set(t,n),!this.useRedisPackage&&!this.useRedis3AndLowerPackage?r.pttl(t).exec(!0):r.pTTL(t).exec(!0)):s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.rlflxIncr([t].concat([String(n),String(s),String(this.points),String(this.duration)])):this.useRedis3AndLowerPackage?new Promise((a,l)=>{const u=function(f,h){return f?l(f):a(h)};typeof this.client.rlflxIncr=="function"?this.client.rlflxIncr(t,n,s,this.points,this.duration,u):this.client.eval(this._incrTtlLuaScript,1,t,n,s,this.points,this.duration,u)}):this.client.eval(this._incrTtlLuaScript,{keys:[t],arguments:[String(n),String(s),String(this.points),String(this.duration)]}):!this.useRedisPackage&&!this.useRedis3AndLowerPackage?r.incrby(t,n).pttl(t).exec(!0):r.incrBy(t,n).pTTL(t).exec(!0)}async _get(t){if(!this._isRedisReady())throw new Error("Redis connection is not ready");return!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.multi().get(t).pttl(t).exec().then(n=>{const[[,o]]=n;return o===null?null:n}):this.client.multi().get(t).pTTL(t).exec(!0).then(n=>{const[o]=n;return o===null?null:n})}_delete(t){return this.client.del(t).then(n=>n>0)}}var _w=bw;const vw=ko,xw=Ht;function pd(e){try{const t=e.client?e.client:e;let n=[0,0,0];if(typeof t.topology>"u"){const{version:o}=t.options.metadata.driver;n=o.split("|",1)[0].split(".").map(i=>parseInt(i))}else{const{version:o}=t.topology.s.options.metadata.driver;n=o.split(".").map(i=>parseInt(i))}return{major:n[0],feature:n[1],patch:n[2]}}catch{return{major:0,feature:0,patch:0}}}class Xa extends vw{constructor(t){super(t),this.dbName=t.dbName,this.tableName=t.tableName,this.indexKeyPrefix=t.indexKeyPrefix,t.mongo?this.client=t.mongo:this.client=t.storeClient,typeof this.client.then=="function"?this.client.then(n=>{this.client=n,this._initCollection(),this._driverVersion=pd(this.client)}):(this._initCollection(),this._driverVersion=pd(this.client))}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?Xa.getDbName():t}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("mongo is not set");this._client=t}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(t){this._indexKeyPrefix=t||{}}_initCollection(){const n=(typeof this.client.db=="function"?this.client.db(this.dbName):this.client).collection(this.tableName);n.createIndex({expire:-1},{expireAfterSeconds:0}),n.createIndex(Object.assign({},this.indexKeyPrefix,{key:1}),{unique:!0}),this._collection=n}_getRateLimiterRes(t,n,o){const i=new xw;let s;return typeof o.value>"u"?s=o:s=o.value,i.isFirstInDuration=s.points===n,i.consumedPoints=s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire!==null?Math.max(new Date(s.expire).getTime()-Date.now(),0):-1,i}_upsert(t,n,o,i=!1,s={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));const r=s.attrs||{};let a,l;i?(a={key:t},a=Object.assign(a,r),l={$set:{key:t,points:n,expire:o>0?new Date(Date.now()+o):null}},l.$set=Object.assign(l.$set,r)):(a={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:t},a=Object.assign(a,r),l={$setOnInsert:{key:t,expire:o>0?new Date(Date.now()+o):null},$inc:{points:n}},l.$setOnInsert=Object.assign(l.$setOnInsert,r));const u={upsert:!0};return this._driverVersion.major>=4||this._driverVersion.major===3&&this._driverVersion.feature>=7||this._driverVersion.feature>=6&&this._driverVersion.patch>=7?u.returnDocument="after":u.returnOriginal=!1,new Promise((f,h)=>{this._collection.findOneAndUpdate(a,l,u).then(g=>{f(g)}).catch(g=>{if(g&&g.code===11e3){const b=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:t},r),_={$set:Object.assign({key:t,points:n,expire:o>0?new Date(Date.now()+o):null},r)};this._collection.findOneAndUpdate(b,_,u).then(E=>{f(E)}).catch(E=>{E&&E.code===11e3?this._upsert(t,n,o,i).then(I=>f(I)).catch(I=>h(I)):h(E)})}else h(g)})})}_get(t,n={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));const o=n.attrs||{},i=Object.assign({key:t,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},o);return this._collection.findOne(i)}_delete(t,n={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));const o=n.attrs||{},i=Object.assign({key:t},o);return this._collection.deleteOne(i).then(s=>s.deletedCount>0)}}var Cw=Xa;const $w=ko,Ew=Ht;class kw extends $w{constructor(t,n=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.dbName=t.dbName,this.tableName=t.tableName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof n=="function"&&n()):this._createDbAndTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof n=="function"&&n()}).catch(o=>{if(typeof n=="function")n(o);else throw o})}clearExpired(t){return new Promise(n=>{this._getConnection().then(o=>{o.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,t],()=>{this._releaseConnection(o),n()})}).catch(()=>{n()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return new Promise((t,n)=>{this.client.getConnection((o,i)=>{if(o)return n(o);t(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return t.release();case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);default:return!0}}_createDbAndTable(){return new Promise((t,n)=>{this._getConnection().then(o=>{o.query(`CREATE DATABASE IF NOT EXISTS \`${this.dbName}\`;`,i=>{if(i)return this._releaseConnection(o),n(i);o.query(this._getCreateTableStmt(),s=>{if(s)return this._releaseConnection(o),n(s);this._releaseConnection(o),t()})})}).catch(o=>{n(o)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS \`${this.dbName}\`.\`${this.tableName}\` (\`key\` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\`points\` INT(9) NOT NULL default 0,\`expire\` BIGINT UNSIGNED,PRIMARY KEY (\`key\`)) ENGINE = INNODB;`}get clientType(){return this._clientType}set clientType(t){if(typeof t>"u")if(this.client.constructor.name==="Connection")t="connection";else if(this.client.constructor.name==="Pool")t="pool";else if(this.client.constructor.name==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?"rtlmtrflx":t}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:Boolean(t)}_getRateLimiterRes(t,n,o){const i=new Ew,[s]=o;return i.isFirstInDuration=n===s.points,i.consumedPoints=i.isFirstInDuration?n:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_upsertTransaction(t,n,o,i,s){return new Promise((r,a)=>{t.query("BEGIN",l=>{if(l)return t.rollback(),a(l);const u=Date.now(),f=i>0?u+i:null;let h,g;s?(h=`INSERT INTO ??.?? VALUES (?, ?, ?)
          ON DUPLICATE KEY UPDATE 
            points = ?, 
            expire = ?;`,g=[this.dbName,this.tableName,n,o,f,o,f]):(h=`INSERT INTO ??.?? VALUES (?, ?, ?)
          ON DUPLICATE KEY UPDATE 
            points = IF(expire <= ?, ?, points + (?)), 
            expire = IF(expire <= ?, ?, expire);`,g=[this.dbName,this.tableName,n,o,f,u,o,o,u,f]),t.query(h,g,b=>{if(b)return t.rollback(),a(b);t.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,n],(_,E)=>{if(_)return t.rollback(),a(_);t.query("COMMIT",I=>{if(I)return t.rollback(),a(I);r(E)})})})})})}_upsert(t,n,o,i=!1){return this.tableCreated?new Promise((s,r)=>{this._getConnection().then(a=>{this._upsertTransaction(a,t,n,o,i).then(l=>{s(l),this._releaseConnection(a)}).catch(l=>{r(l),this._releaseConnection(a)})}).catch(a=>{r(a)})}):Promise.reject(Error("Table is not created yet"))}_get(t){return this.tableCreated?new Promise((n,o)=>{this._getConnection().then(i=>{i.query("SELECT points, expire FROM ??.?? WHERE `key` = ? AND (`expire` > ? OR `expire` IS NULL)",[this.dbName,this.tableName,t,Date.now()],(s,r)=>{s?o(s):r.length===0?n(null):n(r),this._releaseConnection(i)})}).catch(i=>{o(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?new Promise((n,o)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,t],(s,r)=>{s?o(s):n(r.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{o(i)})}):Promise.reject(Error("Table is not created yet"))}}var Sw=kw;const Aw=ko,Pw=Ht;class Iw extends Aw{constructor(t,n=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.tableName=t.tableName,this.schemaName=t.schemaName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof n=="function"&&n()):this._createTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof n=="function"&&n()}).catch(o=>{if(typeof n=="function")n(o);else throw o})}_getTableIdentifier(){return this.schemaName?`"${this.schemaName}"."${this.tableName}"`:`"${this.tableName}"`}clearExpired(t){return new Promise(n=>{const o={name:"rlflx-clear-expired",text:`DELETE FROM ${this._getTableIdentifier()} WHERE expire < $1`,values:[t]};this._query(o).then(()=>{n()}).catch(()=>{n()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return Promise.resolve(this.client);case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();case"typeorm":return Promise.resolve(this.client.driver.master);default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return!0;case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);case"typeorm":return!0;default:return!0}}_createTable(){return new Promise((t,n)=>{this._query({text:this._getCreateTableStmt()}).then(()=>{t()}).catch(o=>{o.code==="23505"?t():n(o)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS ${this._getTableIdentifier()} (
      key varchar(255) PRIMARY KEY,
      points integer NOT NULL DEFAULT 0,
      expire bigint
    );`}get clientType(){return this._clientType}set clientType(t){const n=this.client.constructor.name;if(typeof t>"u")if(n==="Client")t="client";else if(n==="Pool"||n==="BoundPool")t="pool";else if(n==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get schemaName(){return this._schemaName}set schemaName(t){this._schemaName=t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:Boolean(t)}_getRateLimiterRes(t,n,o){const i=new Pw,s=o.rows[0];return i.isFirstInDuration=n===s.points,i.consumedPoints=i.isFirstInDuration?n:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_query(t){const o={name:`${this.tableName.toLowerCase()}:${t.name}`,text:t.text,values:t.values};return new Promise((i,s)=>{this._getConnection().then(r=>{r.query(o).then(a=>{i(a),this._releaseConnection(r)}).catch(a=>{s(a),this._releaseConnection(r)})}).catch(r=>{s(r)})})}_upsert(t,n,o,i=!1){if(!this.tableCreated)return Promise.reject(Error("Table is not created yet"));const s=o>0?Date.now()+o:null,r=i?" $3 ":` CASE
             WHEN ${this._getTableIdentifier()}.expire <= $4 THEN $3
             ELSE ${this._getTableIdentifier()}.expire
            END `;return this._query({name:i?"rlflx-upsert-force":"rlflx-upsert",text:`
            INSERT INTO ${this._getTableIdentifier()} VALUES ($1, $2, $3)
              ON CONFLICT(key) DO UPDATE SET
                points = CASE
                          WHEN (${this._getTableIdentifier()}.expire <= $4 OR 1=${i?1:0}) THEN $2
                          ELSE ${this._getTableIdentifier()}.points + ($2)
                         END,
                expire = ${r}
            RETURNING points, expire;`,values:[t,n,s,Date.now()]})}_get(t){return this.tableCreated?new Promise((n,o)=>{this._query({name:"rlflx-get",text:`
            SELECT points, expire FROM ${this._getTableIdentifier()} WHERE key = $1 AND (expire > $2 OR expire IS NULL);`,values:[t,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),n(i)}).catch(i=>{o(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this._getTableIdentifier()} WHERE key = $1`,values:[t]}).then(n=>n.rowCount>0):Promise.reject(Error("Table is not created yet"))}}var Tw=Iw;const hd=Cg(Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"})));var Ow=class{constructor(t,n,o=null){this.value=t,this.expiresAt=n,this.timeoutId=o}get value(){return this._value}set value(t){this._value=parseInt(t)}get expiresAt(){return this._expiresAt}set expiresAt(t){!(t instanceof Date)&&Number.isInteger(t)&&(t=new Date(t)),this._expiresAt=t}get timeoutId(){return this._timeoutId}set timeoutId(t){this._timeoutId=t}};const Lw=Ow,Za=Ht;var Mw=class{constructor(){this._storage={}}incrby(t,n,o){if(this._storage[t]){const i=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return!this._storage[t].expiresAt||i>0?(this._storage[t].value=this._storage[t].value+n,new Za(0,i,this._storage[t].value,!1)):this.set(t,n,o)}return this.set(t,n,o)}set(t,n,o){const i=o*1e3;return this._storage[t]&&this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),this._storage[t]=new Lw(n,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[t].timeoutId=setTimeout(()=>{delete this._storage[t]},i),this._storage[t].timeoutId.unref&&this._storage[t].timeoutId.unref()),new Za(0,i===0?-1:i,this._storage[t].value,!0)}get(t){if(this._storage[t]){const n=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return new Za(0,n,this._storage[t].value,!1)}return null}delete(t){return this._storage[t]?(this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),delete this._storage[t],!0):!1}};const Dw=Js,Rw=Mw,md=Ht;class Nw extends Dw{constructor(t={}){super(t),this._memoryStorage=new Rw}consume(t,n=1,o={}){return new Promise((i,s)=>{const r=this.getKey(t),a=this._getKeySecDuration(o);let l=this._memoryStorage.incrby(r,n,a);if(l.remainingPoints=Math.max(this.points-l.consumedPoints,0),l.consumedPoints>this.points)this.blockDuration>0&&l.consumedPoints<=this.points+n&&(l=this._memoryStorage.set(r,l.consumedPoints,this.blockDuration)),s(l);else if(this.execEvenly&&l.msBeforeNext>0&&!l.isFirstInDuration){let u=Math.ceil(l.msBeforeNext/(l.remainingPoints+2));u<this.execEvenlyMinDelayMs&&(u=l.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(i,u,l)}else i(l)})}penalty(t,n=1,o={}){const i=this.getKey(t);return new Promise(s=>{const r=this._getKeySecDuration(o),a=this._memoryStorage.incrby(i,n,r);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}reward(t,n=1,o={}){const i=this.getKey(t);return new Promise(s=>{const r=this._getKeySecDuration(o),a=this._memoryStorage.incrby(i,-n,r);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}block(t,n){const o=n*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(t),i,n),Promise.resolve(new md(0,o===0?-1:o,i))}set(t,n,o){const i=(o>=0?o:this.duration)*1e3;return this._memoryStorage.set(this.getKey(t),n,o),Promise.resolve(new md(0,i===0?-1:i,n))}get(t){const n=this._memoryStorage.get(this.getKey(t));return n!==null&&(n.remainingPoints=Math.max(this.points-n.consumedPoints,0)),Promise.resolve(n)}delete(t){return Promise.resolve(this._memoryStorage.delete(this.getKey(t)))}}var gd=Nw;const yd=hd,Bw=hd,Fw=Js,wd=gd,Uw=Ht,Zt="rate_limiter_flexible";let ii=null;const bd=function(e,t,n,o){let i;o===null||o===!0||o===!1?i=o:i={remainingPoints:o.remainingPoints,msBeforeNext:o.msBeforeNext,consumedPoints:o.consumedPoints,isFirstInDuration:o.isFirstInDuration},e.send({channel:Zt,keyPrefix:t.keyPrefix,promiseId:t.promiseId,type:n,data:i})},_d=function(e){setTimeout(()=>{this._initiated?process.send(e):typeof this._promises[e.promiseId]<"u"&&_d.call(this,e)},30)},si=function(e,t,n,o,i){const s={channel:Zt,keyPrefix:this.keyPrefix,func:e,promiseId:t,data:{key:n,arg:o,opts:i}};this._initiated?process.send(s):_d.call(this,s)},vd=function(e,t){if(!t||t.channel!==Zt||typeof this._rateLimiters[t.keyPrefix]>"u")return!1;let n;switch(t.func){case"consume":n=this._rateLimiters[t.keyPrefix].consume(t.data.key,t.data.arg,t.data.opts);break;case"penalty":n=this._rateLimiters[t.keyPrefix].penalty(t.data.key,t.data.arg,t.data.opts);break;case"reward":n=this._rateLimiters[t.keyPrefix].reward(t.data.key,t.data.arg,t.data.opts);break;case"block":n=this._rateLimiters[t.keyPrefix].block(t.data.key,t.data.arg,t.data.opts);break;case"get":n=this._rateLimiters[t.keyPrefix].get(t.data.key,t.data.opts);break;case"delete":n=this._rateLimiters[t.keyPrefix].delete(t.data.key,t.data.opts);break;default:return!1}n&&n.then(o=>{bd(e,t,"resolve",o)}).catch(o=>{bd(e,t,"reject",o)})},jw=function(e){if(!e||e.channel!==Zt||e.keyPrefix!==this.keyPrefix)return!1;if(this._promises[e.promiseId]){clearTimeout(this._promises[e.promiseId].timeoutId);let t;switch(e.data===null||e.data===!0||e.data===!1?t=e.data:t=new Uw(e.data.remainingPoints,e.data.msBeforeNext,e.data.consumedPoints,e.data.isFirstInDuration),e.type){case"resolve":this._promises[e.promiseId].resolve(t);break;case"reject":this._promises[e.promiseId].reject(t);break;default:throw new Error(`RateLimiterCluster: no such message type '${e.type}'`)}delete this._promises[e.promiseId]}},Hw=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},ri=function(e,t){const n=process.hrtime();let o=n[0].toString()+n[1].toString();return typeof this._promises[o]<"u"&&(o+=Bw.randomBytes(12).toString("base64")),this._promises[o]={resolve:e,reject:t,timeoutId:setTimeout(()=>{delete this._promises[o],t(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},o};class qw{constructor(){if(ii)return ii;this._rateLimiters={},yd.setMaxListeners(0),yd.on("message",(t,n)=>{n&&n.channel===Zt&&n.type==="init"?(typeof this._rateLimiters[n.opts.keyPrefix]>"u"&&(this._rateLimiters[n.opts.keyPrefix]=new wd(n.opts)),t.send({channel:Zt,type:"init",keyPrefix:n.opts.keyPrefix})):vd.call(this,t,n)}),ii=this}}class zw{constructor(t){if(ii)return ii;this._rateLimiters={},t.launchBus((n,o)=>{o.on("process:msg",i=>{const s=i.raw;if(s&&s.channel===Zt&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new wd(s.opts)),t.sendDataToProcessId(i.process.pm_id,{data:{},topic:Zt,channel:Zt,type:"init",keyPrefix:s.opts.keyPrefix},(r,a)=>{r&&console.log(r,a)});else{const r={send:a=>{const l=a;l.topic=Zt,typeof l.data>"u"&&(l.data={}),t.sendDataToProcessId(i.process.pm_id,l,(u,f)=>{u&&console.log(u,f)})}};vd.call(this,r,s)}})}),ii=this}}class Vw extends Fw{get timeoutMs(){return this._timeoutMs}set timeoutMs(t){this._timeoutMs=typeof t>"u"?5e3:Math.abs(parseInt(t))}constructor(t={}){super(t),process.setMaxListeners(0),this.timeoutMs=t.timeoutMs,this._initiated=!1,process.on("message",n=>{n&&n.channel===Zt&&n.type==="init"&&n.keyPrefix===this.keyPrefix?this._initiated=!0:jw.call(this,n)}),process.send({channel:Zt,type:"init",opts:Hw.call(this)}),this._promises={}}consume(t,n=1,o={}){return new Promise((i,s)=>{const r=ri.call(this,i,s);si.call(this,"consume",r,t,n,o)})}penalty(t,n=1,o={}){return new Promise((i,s)=>{const r=ri.call(this,i,s);si.call(this,"penalty",r,t,n,o)})}reward(t,n=1,o={}){return new Promise((i,s)=>{const r=ri.call(this,i,s);si.call(this,"reward",r,t,n,o)})}block(t,n,o={}){return new Promise((i,s)=>{const r=ri.call(this,i,s);si.call(this,"block",r,t,n,o)})}get(t,n={}){return new Promise((o,i)=>{const s=ri.call(this,o,i);si.call(this,"get",s,t,n)})}delete(t,n={}){return new Promise((o,i)=>{const s=ri.call(this,o,i);si.call(this,"delete",s,t,n)})}}var Ww={RateLimiterClusterMaster:qw,RateLimiterClusterMasterPM2:zw,RateLimiterCluster:Vw};const Kw=ko,Gw=Ht;class Yw extends Kw{constructor(t){super(t),this.client=t.storeClient}_getRateLimiterRes(t,n,o){const i=new Gw;return i.consumedPoints=parseInt(o.consumedPoints),i.isFirstInDuration=o.consumedPoints===n,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=o.msBeforeNext,i}_upsert(t,n,o,i=!1,s={}){return new Promise((r,a)=>{const l=Date.now(),u=Math.floor(o/1e3);i?this.client.set(t,n,u,f=>{f?a(f):this.client.set(`${t}_expire`,u>0?l+u*1e3:-1,u,()=>{const h={consumedPoints:n,msBeforeNext:u>0?u*1e3:-1};r(h)})}):this.client.incr(t,n,(f,h)=>{f||h===!1?this.client.add(t,n,u,(g,b)=>{if(g||!b)if(typeof s.attemptNumber>"u"||s.attemptNumber<3){const _=Object.assign({},s);_.attemptNumber=_.attemptNumber?_.attemptNumber+1:1,this._upsert(t,n,o,i,_).then(E=>r(E)).catch(E=>a(E))}else a(new Error("Can not add key"));else this.client.add(`${t}_expire`,u>0?l+u*1e3:-1,u,()=>{const _={consumedPoints:n,msBeforeNext:u>0?u*1e3:-1};r(_)})}):this.client.get(`${t}_expire`,(g,b)=>{if(g)a(g);else{const _=b===!1?0:b,E={consumedPoints:h,msBeforeNext:_>=0?Math.max(_-l,0):-1};r(E)}})})})}_get(t){return new Promise((n,o)=>{const i=Date.now();this.client.get(t,(s,r)=>{r?this.client.get(`${t}_expire`,(a,l)=>{if(a)o(a);else{const u=l===!1?0:l,f={consumedPoints:r,msBeforeNext:u>=0?Math.max(u-i,0):-1};n(f)}}):n(null)})})}_delete(t){return new Promise((n,o)=>{this.client.del(t,(i,s)=>{i?o(i):s===!1?n(s):this.client.del(`${t}_expire`,r=>{r?o(r):n(s)})})})}}var Jw=Yw;const xd=Ht;var Qw=class{constructor(t={}){this.limiter=t.limiter,this.blackList=t.blackList,this.whiteList=t.whiteList,this.isBlackListed=t.isBlackListed,this.isWhiteListed=t.isWhiteListed,this.runActionAnyway=t.runActionAnyway}get limiter(){return this._limiter}set limiter(t){if(typeof t>"u")throw new Error("limiter is not set");this._limiter=t}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(t){this._runActionAnyway=typeof t>"u"?!1:t}get blackList(){return this._blackList}set blackList(t){this._blackList=Array.isArray(t)?t:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isBlackListed must be function");this._isBlackListed=t}get whiteList(){return this._whiteList}set whiteList(t){this._whiteList=Array.isArray(t)?t:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=t}isBlackListedSomewhere(t){return this.blackList.indexOf(t)>=0||this.isBlackListed(t)}isWhiteListedSomewhere(t){return this.whiteList.indexOf(t)>=0||this.isWhiteListed(t)}getBlackRes(){return new xd(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new xd(Number.MAX_SAFE_INTEGER,0,0,!1)}rejectBlack(){return Promise.reject(this.getBlackRes())}resolveBlack(){return Promise.resolve(this.getBlackRes())}resolveWhite(){return Promise.resolve(this.getWhiteRes())}consume(t,n=1){let o;return this.isWhiteListedSomewhere(t)?o=this.resolveWhite():this.isBlackListedSomewhere(t)&&(o=this.rejectBlack()),typeof o>"u"?this.limiter.consume(t,n):(this.runActionAnyway&&this.limiter.consume(t,n).catch(()=>{}),o)}block(t,n){let o;return this.isWhiteListedSomewhere(t)?o=this.resolveWhite():this.isBlackListedSomewhere(t)&&(o=this.resolveBlack()),typeof o>"u"?this.limiter.block(t,n):(this.runActionAnyway&&this.limiter.block(t,n).catch(()=>{}),o)}penalty(t,n){let o;return this.isWhiteListedSomewhere(t)?o=this.resolveWhite():this.isBlackListedSomewhere(t)&&(o=this.resolveBlack()),typeof o>"u"?this.limiter.penalty(t,n):(this.runActionAnyway&&this.limiter.penalty(t,n).catch(()=>{}),o)}reward(t,n){let o;return this.isWhiteListedSomewhere(t)?o=this.resolveWhite():this.isBlackListedSomewhere(t)&&(o=this.resolveBlack()),typeof o>"u"?this.limiter.reward(t,n):(this.runActionAnyway&&this.limiter.reward(t,n).catch(()=>{}),o)}get(t){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"||this.runActionAnyway?this.limiter.get(t):n}delete(t){return this.limiter.delete(t)}};const Xw=Js;var Zw=class{constructor(...t){if(t.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");t.forEach(n=>{if(!(n instanceof Xw))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=t}consume(t,n=1){return new Promise((o,i)=>{const s=[];this._limiters.forEach(r=>{s.push(r.consume(t,n).catch(a=>({rejected:!0,rej:a})))}),Promise.all(s).then(r=>{const a={};let l=!1;r.forEach(u=>{u.rejected===!0&&(l=!0)});for(let u=0;u<r.length;u++)l&&r[u].rejected===!0?a[this._limiters[u].keyPrefix]=r[u].rej:l||(a[this._limiters[u].keyPrefix]=r[u]);l?i(a):o(a)})})}},eb=class extends Error{constructor(t,n){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=t,n&&(this.extra=n)}};const Cd=eb,$d=4294967295,el="limiter";var tb=class{constructor(t,n={maxQueueSize:$d}){this._queueLimiters={KEY_DEFAULT:new Ed(t,n)},this._limiterFlexible=t,this._maxQueueSize=n.maxQueueSize}getTokensRemaining(t=el){return this._queueLimiters[t]?this._queueLimiters[t].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(t,n=el){return this._queueLimiters[n]||(this._queueLimiters[n]=new Ed(this._limiterFlexible,{key:n,maxQueueSize:this._maxQueueSize})),this._queueLimiters[n].removeTokens(t)}};class Ed{constructor(t,n={maxQueueSize:$d,key:el}){this._key=n.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=t,this._maxQueueSize=n.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(t=>t!==null?t.remainingPoints:this._limiterFlexible.points)}removeTokens(t){const n=this;return new Promise((o,i)=>{if(t>n._limiterFlexible.points){i(new Cd(`Requested tokens ${t} exceeds maximum ${n._limiterFlexible.points} tokens per interval`));return}n._queue.length>0?n._queueRequest.call(n,o,i,t):n._limiterFlexible.consume(n._key,t).then(s=>{o(s.remainingPoints)}).catch(s=>{s instanceof Error?i(s):(n._queueRequest.call(n,o,i,t),n._waitTimeout===null&&(n._waitTimeout=setTimeout(n._processFIFO.bind(n),s.msBeforeNext)))})})}_queueRequest(t,n,o){const i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:t,reject:n,tokens:o}):n(new Cd(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){const t=this;if(t._waitTimeout!==null&&(clearTimeout(t._waitTimeout),t._waitTimeout=null),t._queue.length===0)return;const n=t._queue.shift();t._limiterFlexible.consume(t._key,n.tokens).then(o=>{n.resolve(o.remainingPoints),t._processFIFO.call(t)}).catch(o=>{o instanceof Error?(n.reject(o),t._processFIFO.call(t)):(t._queue.unshift(n),t._waitTimeout===null&&(t._waitTimeout=setTimeout(t._processFIFO.bind(t),o.msBeforeNext)))})}}const tl=Ht;var nb=class{constructor(t,n){this._rateLimiter=t,this._burstLimiter=n}_combineRes(t,n){return t?new tl(t.remainingPoints,Math.min(t.msBeforeNext,n?n.msBeforeNext:0),t.consumedPoints,t.isFirstInDuration):null}consume(t,n=1,o={}){return this._rateLimiter.consume(t,n,o).catch(i=>i instanceof tl?this._burstLimiter.consume(t,n,o).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof tl?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(t){return Promise.all([this._rateLimiter.get(t),this._burstLimiter.get(t)]).then(([n,o])=>this._combineRes(n,o))}get points(){return this._rateLimiter.points}};const ob=Ht,ib=ko;class kd{constructor(t,n,o){this.key=t,this.points=n,this.expire=o}}const sb=25,rb=25;class ab extends ib{constructor(t,n=null){super(t),this.client=t.storeClient,this.tableName=t.tableName,this.tableCreated=t.tableCreated,this.tableCreated?this._setTTL().finally(()=>{typeof n=="function"&&n()}):this._createTable(t.dynamoTableOpts).then(o=>{this.tableCreated=!0,this._setTTL().finally(()=>{typeof n=="function"&&n()})}).catch(o=>{if(typeof n=="function")n(o);else throw o})}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?"node-rate-limiter-flexible":t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}async _createTable(t){const n={TableName:this.tableName,AttributeDefinitions:[{AttributeName:"key",AttributeType:"S"}],KeySchema:[{AttributeName:"key",KeyType:"HASH"}],ProvisionedThroughput:{ReadCapacityUnits:t&&t.readCapacityUnits?t.readCapacityUnits:sb,WriteCapacityUnits:t&&t.writeCapacityUnits?t.writeCapacityUnits:rb}};try{return await this.client.createTable(n)}catch(o){if(o.__type&&o.__type.includes("ResourceInUseException"))return null;throw o}}async _get(t){if(!this.tableCreated)throw new Error("Table is not created yet");const n={TableName:this.tableName,Key:{key:{S:t}}},o=await this.client.getItem(n);return o.Item?new kd(o.Item.key.S,Number(o.Item.points.N),Number(o.Item.expire.N)):null}async _delete(t){if(!this.tableCreated)throw new Error("Table is not created yet");const n={TableName:this.tableName,Key:{key:{S:t}},ConditionExpression:"attribute_exists(#k)",ExpressionAttributeNames:{"#k":"key"}};try{return(await this._client.deleteItem(n)).$metadata.httpStatusCode===200}catch(o){if(o.__type&&o.__type.includes("ConditionalCheckFailedException"))return!1;throw o}}async _upsert(t,n,o,i=!1,s={}){if(!this.tableCreated)throw new Error("Table is not created yet");const r=Date.now(),a=r/1e3,l=o>0?(r+o)/1e3:-1;if(i)return await this._baseUpsert({TableName:this.tableName,Key:{key:{S:t}},UpdateExpression:"SET points = :points, expire = :expire",ExpressionAttributeValues:{":points":{N:n.toString()},":expire":{N:l.toString()}},ReturnValues:"ALL_NEW"});try{return await this._baseUpsert({TableName:this.tableName,Key:{key:{S:t}},UpdateExpression:"SET points = :new_points, expire = :new_expire",ExpressionAttributeValues:{":new_points":{N:n.toString()},":new_expire":{N:l.toString()},":where_expire":{N:a.toString()}},ConditionExpression:"expire <= :where_expire OR attribute_not_exists(points)",ReturnValues:"ALL_NEW"})}catch{return await this._baseUpsert({TableName:this.tableName,Key:{key:{S:t}},UpdateExpression:"SET points = points + :new_points",ExpressionAttributeValues:{":new_points":{N:n.toString()},":where_expire":{N:a.toString()}},ConditionExpression:"expire > :where_expire",ReturnValues:"ALL_NEW"})}}async _baseUpsert(t){if(!this.tableCreated)throw new Error("Table is not created yet");try{const n=await this.client.updateItem(t);return new kd(n.Attributes.key.S,Number(n.Attributes.points.N),Number(n.Attributes.expire.N))}catch(n){throw n}}async _setTTL(){if(!this.tableCreated)throw new Error("Table is not created yet");try{if(await this._isTTLSet())return;const n={TableName:this.tableName,TimeToLiveSpecification:{AttributeName:"expire",Enabled:!0}};return await this.client.updateTimeToLive(n)}catch(t){throw t}}async _isTTLSet(){if(!this.tableCreated)throw new Error("Table is not created yet");try{const t=await this.client.describeTimeToLive({TableName:this.tableName});return t.$metadata.httpStatusCode==200&&t.TimeToLiveDescription.TimeToLiveStatus==="ENABLED"&&t.TimeToLiveDescription.AttributeName==="expire"}catch(t){throw t}}_getRateLimiterRes(t,n,o){const i=new ob;return i.isFirstInDuration=n===o.points,i.consumedPoints=i.isFirstInDuration?n:o.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=o.expire!=-1?Math.max(o.expire*1e3-Date.now(),0):-1,i}}var lb=ab;const cb=ko,ub=Ht;class db extends cb{constructor(t){if(super(t),this.modelName=t.tableName||"RateLimiterFlexible",this.prismaClient=t.storeClient,this.clearExpiredByTimeout=t.clearExpiredByTimeout||!0,!this.prismaClient)throw new Error("Prisma client is not provided");this.clearExpiredByTimeout&&this._clearExpiredHourAgo()}_getRateLimiterRes(t,n,o){const i=new ub;let s=o;return i.isFirstInDuration=s.points===n,i.consumedPoints=s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire!==null?Math.max(new Date(s.expire).getTime()-Date.now(),0):-1,i}_upsert(t,n,o,i=!1){if(!this.prismaClient)return Promise.reject(new Error("Prisma client is not established"));const s=new Date,r=o>0?new Date(s.getTime()+o):null;return this.prismaClient.$transaction(async a=>{const l=await a[this.modelName].findFirst({where:{key:t}});if(l){const u=i||!l.expire||l.expire<=s||r===null;return a[this.modelName].update({where:{key:t},data:{points:u?n:l.points+n,...u&&{expire:r}}})}else return a[this.modelName].create({data:{key:t,points:n,expire:r}})})}_get(t){return this.prismaClient?this.prismaClient[this.modelName].findFirst({where:{AND:[{key:t},{OR:[{expire:{gt:new Date}},{expire:null}]}]}}):Promise.reject(new Error("Prisma client is not established"))}_delete(t){return this.prismaClient?this.prismaClient[this.modelName].deleteMany({where:{key:t}}).then(n=>n.count>0):Promise.reject(new Error("Prisma client is not established"))}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(async()=>{await this.prismaClient[this.modelName].deleteMany({where:{expire:{lt:new Date(Date.now()-36e5)}}}),this._clearExpiredHourAgo()},3e5)}}var fb=db;const pb=_w,hb=Cw,mb=Sw,gb=Tw,{RateLimiterClusterMaster:yb,RateLimiterClusterMasterPM2:wb,RateLimiterCluster:bb}=Ww;var Sd={RateLimiterRedis:pb,RateLimiterMongo:hb,RateLimiterMySQL:mb,RateLimiterPostgres:gb,RateLimiterMemory:gd,RateLimiterMemcache:Jw,RateLimiterClusterMaster:yb,RateLimiterClusterMasterPM2:wb,RateLimiterCluster:bb,RLWrapperBlackAndWhite:Qw,RateLimiterUnion:Zw,RateLimiterQueue:tb,BurstyRateLimiter:nb,RateLimiterRes:Ht,RateLimiterDynamo:lb,RateLimiterPrisma:fb};const _b="pan115_api",Ad={points:5,duration:1,execEvenly:!0};function Pd(e){return{clientId:_b,rateLimit:Ad,msDelayAdjustment:30,...e}}function Id(e){const t=Pd(e),n=td.create();Eo(n,{retries:5,shouldResetTimeout:!0,retryDelay:i=>(console.log(`[axios] Retry ${i}...`),i*1e3)});const o=new Sd.RateLimiterMemory(t.rateLimit);return n.interceptors.request.use(async i=>{try{const s=await o.consume(t.clientId);return i}catch(s){if(console.warn("[axios] RateLimiter:",s),s instanceof Sd.RateLimiterRes){const r=s.msBeforeNext+t.msDelayAdjustment;return console.log(`[axios] Delay ${r}ms for next request...`),await bt(r),i}else throw new Jy(s)}},i=>(console.warn("[axios] onRejected:",i),Promise.reject(i))),n}let Td=Id();async function vb(e){Td=e}const St=Td;async function Od(e,t,n){const o=new URLSearchParams({page:e.toString(),uid:n.toString(),sign:t,time:Ni().toString()});return(await St.post("https://115.com/web/lixian/?ct=lixian&ac=task_lists",o,{withCredentials:!0,timeout:6e4})).data}async function Ld(){return(await St.get(`https://115.com/?ct=offline&ac=space&_=${Date.now()}`,{timeout:3e4,withCredentials:!0})).data}async function Md(){const t=(await St.get("https://my.115.com/?ct=ajax&ac=nav",{timeout:3e4,withCredentials:!0})).data;if(t.state)return t.data;throw new Error(t.error)}async function Dd(e){const t=Bs(e),o=(await St.get("https://webapi.115.com/files?"+t,{timeout:12e4,withCredentials:!0})).data;if(o.state)return o;throw new Error(o.error)}async function Rd(e,t=500){const n=await ai(e,t);for(let o=0;o<n.length;o++){const i=n[o];if(i.fid)continue;const s=Gn({cid:i.cid,limit:e.limit||115}),r=await Rd(s,t);i.children=r}return n}async function ai(e,t=500){let n=[],o=0;for(;;){e.offset=o;const i=await Dd(e);if(!i.data||!i.data.length||(n=[...n,...i.data],o+=e.limit,o>=i.count))break;await bt(t)}return n}async function xb(e){const t=Bs(e),n=await St.get("https://webapi.115.com/files/search?"+t,{timeout:12e4,withCredentials:!0});if(n.data==="")throw new od;const o=n.data;if(o.state)return o;throw new Ka(o.error)}async function Cb(e,t=500,n=!1){let o=[],i=0,s=e.limit;const r=1e4,a=115,l=r-r%s;let u=s;for(;;){if(n){if(i>=l&&i<r){const h=r-l;u=Math.min(h,u)}i>=r&&(u=a)}e.offset=i,e.limit=u;const f=await xb(e);if(!f.data||!f.data.length||(o=[...o,...f.data],i+=u,i>=f.count))break;await bt(t)}return o}async function nl(e,t){const n=new URLSearchParams({pid:e,ignore_warn:"1"});return t.forEach((i,s)=>{n.append(`fid[${s}]`,i)}),(await St.post("https://webapi.115.com/rb/delete",n,{timeout:12e4,withCredentials:!0})).data}async function Nd(e,t,n,o){let i=0,s=0;for(;;){const r=t.slice(i,i+n);if((await nl(e,r)).state&&(s+=r.length),i+=n,i>=t.length)break;await bt(o)}return s}async function Bd(e,t){const n=new URLSearchParams({pid:e,cname:t});return(await St.post("https://webapi.115.com/files/add",n,{timeout:12e4,withCredentials:!0})).data}async function $b(e,t){const n=new URLSearchParams({pid:e});return t.forEach((i,s)=>{n.append(`fid[${s}]`,i)}),(await St.post("https://webapi.115.com/files/move",n,{timeout:12e4,withCredentials:!0})).data}async function Eb(e){const t={path:e};return(await St.get("https://webapi.115.com/files/getid?"+Bs(t),{timeout:12e4,withCredentials:!0})).data}async function At(e){const t=new URLSearchParams({cid:e});return(await St.get("https://webapi.115.com/category/get?"+t.toString(),{timeout:12e4,withCredentials:!0})).data}async function ol(e,t,n,o){const i={uid:o.toString(),sign:t.sign,time:Ni().toString()};n&&(i.flag="1");const s=Qy(i);return e.forEach((a,l)=>{s.append(`hash[${l}]`,a)}),(await St.post("https://115.com/web/lixian/?ct=lixian&ac=task_del",s,{timeout:12e4,withCredentials:!0})).data}async function kb(e){return new Promise((t,n)=>{const o=JSON.stringify({pickcode:e}),i=Math.floor(Date.now()).toString(),s=new ew,{data:r,key:a}=s.encode(o,i);eu({method:"POST",url:`https://proapi.115.com/app/chrome/downurl?t=${i}`,headers:{"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8","User-Agent":navigator.userAgent,Accept:"application/json, text/javascript, */*; q=0.01"},data:`data=${encodeURIComponent(r)}`,responseType:"json",onload:l=>{const u=JSON.parse(l.responseText);if(u.state){const f=s.decode(u.data,a);if(f){const h=JSON.parse(f),g=Object.keys(h)[0],b=h[g];b.file_id=g;const _=l.responseHeaders.split(/[\r\n]+/).filter(E=>E.match(/set-cookie/i));_.length&&(_.forEach((E,I)=>{_[I]=E.replace(/set-cookie:[\s]*/i,"").split(";")[0]}),b.cookie=_.join("; ")),t(b)}else n({state:!1,error:"解密失败"})}else n(u)},onerror:l=>{n(l)}})})}async function Sb(e){if(!(await At(e)).play_long)throw new Error("该目录下没有可以播放的媒体文件![by_attr]");const o=(await ai(Gn({cid:e,limit:1150}))).find(i=>i.play_long&&i.play_long>0);if(!o)throw new Error("该目录下没有可以播放的媒体文件![by_files]");return Vi(o)}async function Ab(e,t){if(e=typeof e=="string"?e:e.join(","),!t){if(e.includes(","))throw new Error("target参数不能为空!");t=e}t=t.startsWith("U_1_")?t:`U_1_${t}`;const n=new URLSearchParams({file_ids:e,target:t});return(await St.post("https://webapi.115.com/files/export_dir",n,{timeout:12e4,withCredentials:!0})).data}async function Pb(e,t=1e3,n=12e4){const o=new URLSearchParams({export_id:e.toString()}),i=async()=>(await St.get("https://webapi.115.com/files/export_dir?"+o.toString(),{timeout:12e4,withCredentials:!0})).data;async function s(r){const a=await i();a.data&&!!a.data.pick_code&&r(a)}try{return await Kn(s,t,n)}catch(r){throw new Error(`导出目录树结果获取失败:${r.message}`)}}async function Ib(e){/^\d+$/.test(e.target)&&(e.target=`U_1_${e.target}`);const t=Bs(e);return(await St.post("https://uplb.115.com/3.0/sampleinitupload.php",t,{timeout:12e4,withCredentials:!0})).data}async function Tb(e,t){const n=await Ib(t),o=new FormData;o.append("name",t.filename),o.append("key",n.object),o.append("policy",n.policy),o.append("OSSAccessKeyId",n.accessid),o.append("success_action_status","200"),o.append("callback",n.callback),o.append("signature",n.signature),o.append("file",e);const i=n.host.replace(/^http:/,"https:");return(await St.post(i,o,{timeout:18e5})).data}async function Ob(e,t,n=!1){var s;const o=new Map;if(!e.length)return o;t=t||await ei();let i=new Map;n||(re({text:"正在获取上级目录路径...",timer:0}),pe.showLoading());try{i=await Yb(e),n||pe.close()}catch(r){return console.error(r),n||re({text:`获取上级目录路径失败: ${r}`,timer:1200,icon:"error"}),o}finally{n||pe.hideLoading()}if(i.size===0)return o;for(let r=0;r<e.length;r++){const a=(s=i.get(e[r].parentId))==null?void 0:s.slice(1).join("/"),l=e[r].name,u=su(a+"/"+l,!0),f=e[r].isFile?await ti(t,u,Fs.play):await Pa(t,u);o.set(u,f)}return console.log("[buildCloudDriveUrlsForFileItems] pathToUrl:",o),o}async function Lb(e,t){const n=await ti(e,t);return(await Sg({method:"HEAD",url:n})).status===200}async function Mb(e,t,n,o){const s=`waitFileExist_${gu()} path: ${t}`;console.time(s);async function r(a){const l=await Lb(e,t);l===!0&&a(l)}try{await Kn(r,n,o)}catch{throw new Error(`[waitFileExist] 检查文件存在超时!文件路径: ${t}`)}finally{console.timeEnd(s)}}async function Db(e){let t=`#EXTM3U
`;for(const[n,o]of e)t+=`#EXTINF:0,${n}
${o}
`;return t}var Qn=(e=>(e.unix="/",e.windows="\\",e))(Qn||{});function Qs(e,t="/"){return e.map((n,o)=>o===0?n:Xs(n,t)).join(t)}function Xs(e,t="/"){return e=e.replace(/[\\/]/g,t),t==="/"?e=e.replace(/\/+/g,t):e=e.replace(/\\+/g,t),e.length>1&&e.endsWith(t)&&(e=e.slice(0,-1)),e}function Rb(e){return e.startsWith("/")}function Nb(e){return e===""||e==="/"||e==="\\"}function il(e,t,n="/"){if(Rb(t))return t;const o=new URL(e,"http://example.com");o.pathname=Bb(o.pathname,t);let i=decodeURIComponent(o.pathname);return Xs(i,n)}function Bb(e,t){const n=e.endsWith("/")?e:e+"/",o=t.startsWith("/")?t.slice(1):t;return n+o}function Fb(e,t=/^\w+$/){const n=e.lastIndexOf(".");if(n===-1)return"";const o=e.slice(n+1);return t&&!t.test(o)?"":o}async function Ct(e=!0){const t=en().GetCurWangPanCid();return!t&&e?(en().Core.MinMessage.Show({text:'不支持"根目录"!',timeout:1e3}),""):t}async function Ub(e,t){let n=$(`li.temp-el[cate_id="${e}"]`);if(!n.length){const o=`
      <li class="selected temp-el" file_type="${0}">
        <input type="checkbox" value="${e}"/>
        <div class="checkbox" menu="file_check_one"></div>
        <div class="file-name-wrap">
          <span class="file-name" rel="file_name">
            <em>
              <a class="name" href="javascript:;" cate="1" menu="open" aid="1" cid="${e}" rel="view_folder">
                <span>名称</span>
              </a>
            </em>
          </span>
        </div>
      </li>
    `;n=$(o)}n.attr("title",t.file_name),n.find("a.name > span").text(t.file_name);for(let o in t){const i=typeof t[o];["string","number"].indexOf(i)>-1&&n.attr(o,t[o])}return n.attr("cate_id",e),n.attr("p_id",t.paths[t.paths.length-1].file_id),n}async function Gt(e){const t=await zi(e);return Vi(t)}async function zi(e){const t=e.attr("file_size"),n=e.attr("iv")==="1",o=await al(),i=e.attr("file_id")||"",s=!!i,r=e.attr("c")||"",a=e.attr("fvs")||"",l={n:e.attr("title")||"",s:t?parseInt(t):0,pc:e.attr("pick_code")||"",t:e.attr("user_ptime")||"",te:"",tp:"",ico:e.attr("ico")||"",sha:e.attr("sha1")||"",iv:n,c:r?parseInt(r):0,fuuid:e.attr("fuuid"),fvs:a?parseInt(a):0};let u={n:l.n};if(!o)u={fid:i,cid:(s?e.attr("cid"):e.attr("cate_id"))||"",pid:s?"":e.attr("p_id")||"",...l};else if(u={fid:i,cid:(s?e.attr("cid"):e.attr("cate_id"))||"",...l},!s){const f=e.find(".file-directory a[cid]");if(f.length)u.pid=f.attr("cid");else throw console.warn("无法获取上级目录ID!",e),new Error("无法获取上级目录ID!")}return{...u,...l}}async function Xn(e){const t=await Vb(e);return jb(t)}async function jb(e){const t=[];for(let n=0;n<e.length;n++){const o=await Vi(e[n]);t.push(o)}return t}async function Vi(e){var o,i;const t=!!e.fid,n={id:t?e.fid:e.cid,name:e.n,hash:e.sha,parentId:t?e.cid:e.pid,sizeRaw:e.s,sizeDesc:(o=e.s)==null?void 0:o.toString(),sizeBytes:0,isFile:t,isDir:!t,isVideo:e.iv===!0||((i=e.iv)==null?void 0:i.toString())==="1",pickCode:e.pc,playDuration:e.play_long};return typeof e.s=="number"?n.sizeBytes=e.s:typeof e.s=="string"&&/^\d+$/.test(e.s)&&(n.sizeBytes=parseInt(e.s)),n.sizeDesc=Ns(n.sizeBytes||0),n}function en(){return unsafeWindow.TOP?unsafeWindow.TOP:unsafeWindow}function Hb(){return unsafeWindow.top===unsafeWindow?unsafeWindow.Ext:unsafeWindow.top.Ext}async function qb(e){return new Promise((t,n)=>{en().Core.DataAccess.Dir.GetDetail("1",e,o=>t(o))})}async function zb(){const e=await Ct(),t=await qb(e),n=await Ub(e,t);return n.addClass("ce-temp-cur-dir"),n}async function Wi(){return window.top!==window?$(document):$('iframe[name="wangpan"], .wrap-view iframe:eq(0)').contents()}async function li(){return(await Wi()).find(".list-contents, .list-thumb")}async function Fd(e){const t=await li();return e?t.find("li.selected:not(.ce-temp-cur-dir)"):t.find("li:not(.ce-temp-cur-dir)")}async function Vb(e){const t=await Fd(e),n=[];for(let o=0;o<t.length;o++){const i=t.eq(o),s=await zi(i);n.push(s)}return n}async function sl(e="/"){const t=await Ud();return e+t.slice(1).join(e)}async function Ud(){const e=await Wi(),t=[];return e.find("#js_top_header_file_path_box .top-file-path > .file-path").children().each(function(){t.push($(this).text().trim().replace(/[›]$/,""))}),t}async function Wb(){const e=await Ct();(await li()).find("li.selected").each(function(){const n=$(this);n.attr("cate_id")!==e&&(n.find('input[type="checkbox"]').prop("checked",!1),n.removeClass("selected"))})}async function Pn(e=!1){const t=await Ct();if(!t)return null;const n=await li(),o=await zb();return e||o.hide(),n.find(`li[cate_id="${t}"]`).length||n.append(o),o}async function rl(e,t,n){n&&await Wb(),en().Core.FileMenu.DoEvent([e],t,null)}function Kb(e,t=""){return`https://115.com/?ct=preview&ac=location&pickcode=${e}&sha1=${t}`}function Ki(e){return`https://115.com/?${new URLSearchParams({cid:e}).toString()}&offset=0&mode=wangpan`}async function al(e=location.href){return e.includes("ac=search")}function ll(e,t=""){const n={aid:"1",cid:e.cid||"",old_cid:e.cid||"",old_cid_name:t,search_value:encodeURIComponent(e.search_value),ct:"file",ac:"search",is_wl_tpl:"1"};return"https://115.com/?url="+encodeURIComponent(`/?${Pg(n)}`)+"&submode=wangpan&mode=search"}function cl(e){return`https://v.anxia.com/?${new URLSearchParams({pickcode:e,share_id:"0"}).toString()}`}async function Gb(e){unsafeWindow.Main.ReInstance({type:e.type,offset:0,o:$u.userPtime,asc:Ia.false,star:e.star,suffix:e.suffix})}async function jd(){return(await li()).find("li.selected")}async function Hd(){const e=await jd();return e?await zi(e):null}function qd(e){return e.replace(/[/\\:*?"<>|]/g,"_")}async function Zs(e){const n=(await At(e.id)).paths.slice(1).map(s=>s.file_name).join("/"),o=qd(e.name);return`/${n}/${o}`.replace(/^[\/]+/g,"/")}async function Yb(e,t=100){var s;const n=new Map;for(const r of e){const a=r.parentId;if(!a)throw new Error(`文件"${r.name}"没有父级目录ID!`);n.has(a)?(s=n.get(a))==null||s.push(r):n.set(a,[r])}const o=[];for(const r of n.values())o.push(r[0]);const i=new Map;for(const r of o){const a=await At(r.id);await bt(t),i.set(r.parentId,a.paths.map(l=>l.file_name))}return i}async function Jb(e,t=100){var s;const n=new Map;for(const r of e){const a=r.parentId;if(!a)throw new Error(`文件"${r.name}"没有父级目录ID!`);n.has(a)?(s=n.get(a))==null||s.push(r):n.set(a,[r])}const o=[];for(const r of n.values())o.push(r[0]);const i=new Map;for(const r of o){const a=await At(r.id);await bt(t),i.set(r.parentId,a.paths)}return i}async function Qb(e,t){const n=new File([e],t.filename,{type:"text/plain"});return Tb(n,t)}async function Xb(e,t,n){const o=await Ob(e),i=await Db(o);n=n||gu();let s=t;return/m3u8$/.test(n)||(n+=".m3u8"),await Qb(i,{filename:n,target:s})}const ul=new Map;async function ci(e,t=!0){if(e=Xs(e,Qn.unix),e=e.replace(/^[\/]+/,"").replace(/[\/]+$/,""),t&&ul.has(e))return ul.get(e);if(e===""||e==="/")return"0";const n=await Eb(e);if(!n.state)throw new Error(`根据路径"${e}"获取目录ID失败: ${n.error}`);if(n.id&&n.id.toString()!=="0")return ul.set(e,n.id.toString()),n.id.toString();throw new Ga(`根据路径"${e}"获取目录ID失败: 目录不存在!`)}async function Zb(e){e=e.replace(/^\//,"").replace(/\/$/,"");const t={id:"",created:!1,pathToId:new Map};if(e===""||e==="/")return t.id="0",t;const n=e.split("/").filter(s=>s);let o="0",i="";for(const s of n){i+="/"+s;let r="";try{r=await ci(i,!0),t.pathToId.set(i,r)}catch(a){if(a instanceof Ga){const l=await Bd(o,s);if(!l.state)throw new Error(`创建目录"${s}"失败: ${l.error} - ${l.error}`);r=l.cid.toString()}else throw a}o=r,t.pathToId.set(i,r)}return t.id=o,t}async function e_(e,t,n=!0){let o="";const i=await Bd(t,e);if(i.state)o=i.cid.toString();else{if(i.errno===id.exist&&n){const s=await At(t);if(!s.pick_code)throw new Error(`获取目录"${t}"属性失败: ${s.errno} - ${s.error}`);const r=[...s.paths.slice(1).map(a=>a.file_name),s.file_name,e].join("/");return await ci(r,!0)}throw new Error(`创建目录"${e}"失败: ${i.errno} - ${i.error}`)}return o}async function zd(e){if(!location.search.includes("ac=search")||!e.enableInSearch)return;const n=(await vo("#js_data_list"))[0],o=[{label:"移动",body:'<a href="javascript:;" menu="move" style=""><i class="icon-operate ifo-move" menu="move"></i><span menu="move">移动</span></a>',enabled:!0},{label:"重命名",body:'<a href="javascript:;" menu="edit_name" style=""><i class="icon-operate ifo-rename" menu="edit_name"></i><span menu="edit_name">重命名</span></a>',enabled:!0},{label:"删除",body:'<a href="javascript:;" menu="delete" style=""><i class="icon-operate ifo-remove" menu="delete"></i><span menu="delete">删除</span></a>',enabled:!0},{label:"属性",body:'<a href="javascript:;" menu="attribute" style=""><i class="icon-operate ifo-property" menu="attribute"></i><span menu="attribute">属性</span></a>',enabled:!0}],i=a=>{let l="";for(const u of a)!u.enabled||(l+=u.body);return l},s=()=>{const a="ce-menu-init",l=document.querySelectorAll(`li[rel="item"]:not(.${a})`),u=i(o);for(let f=0;f<l.length;f++){const h=l[f];if(h.querySelector(".file-opr"))continue;const g=document.createElement("div");g.className="file-opr",g.setAttribute("rel","menu"),g.innerHTML=u,h.classList.add(a),h.appendChild(g)}};s(),new MutationObserver(async([a])=>{a.type==="childList"&&s()}).observe(n,{childList:!0})}async function t_(e){if(!e.hideSelectionMenuLabel)return;const n=(await vo("#js_operate_box"))[0];new MutationObserver(async([i])=>{if(i.type==="childList"){const s=n.querySelectorAll("li[menu]");for(let r=0;r<s.length;r++){const a=s[r],l=a.textContent;a.setAttribute("title",l||"")}}}).observe(n,{childList:!0}),n.classList.add("only-icon")}async function n_(e,t){const n=[],o=await di(),i=o.keyToTriggerManual;for(const s of t){const r=Rs(e,{key:`_ce_s_${s.key}`,label:s.label,icon:s.icon,title:s.memo,onClick:async(a,l)=>{l.stopPropagation(),l.preventDefault();try{let u;if(i){const _=l;(i===gn.alt&&_.altKey||i===gn.ctrl&&_.ctrlKey||i===gn.shift&&_.shiftKey||i===gn.meta&&_.metaKey)&&(u={names:[fl.manual],position:o.injectManualFuncPosition})}const f=$(l.target).closest("li"),h=await Gt(f),g=await ei(),b=await or(h,s,g,u);if(console.log("[search url]",b),!b)throw new Error("无法获取有效的搜索链接!");xg(b,{active:!s.openInBackground})}catch(u){console.error(u),re({title:"搜索失败",text:u.toString(),icon:"error"})}}});n.push(r)}return n}async function dl(e,t){if(console.log("[playDirOnAnxia]",e,t),!t)try{re({title:"正在查找可播放的文件...",text:"请稍等...",icon:"info"}),pe.showLoading(),t=await Sb(e),console.log("[playDirOnAnxia] file",t)}catch(o){console.error(o),re({title:"播放失败",text:o.toString(),icon:"error"});return}t||re({title:"播放失败",text:"没有在该目录下找到可播放的文件![file_null]",icon:"error"});const n=cl(t.pickCode);window.open(n,"_blank","noopener noreferrer")}async function o_(e,t){const n=[],o=await di(),i=o.keyToTriggerManual;for(const s of t){const r=Rs(e,{key:`_ce_p_${s.key}`,label:s.label,icon:s.icon,title:s.memo,onClick:async(a,l)=>{l.stopPropagation(),l.preventDefault();try{let u;if(i){const _=l;(i===gn.alt&&_.altKey||i===gn.ctrl&&_.ctrlKey||i===gn.shift&&_.shiftKey||i===gn.meta&&_.metaKey)&&(u={names:[fl.manual],position:o.injectManualFuncPosition})}const f=$(l.target).closest("li"),h=await Gt(f),g=await ei(),b=await or(h,s,g,u);if(h.isDir&&b.includes("v.anxia.com")){dl(h.id);return}if(console.log("[play url]",b),!b)throw new Error("无法获取有效的播放链接!");window.open(b,"_blank","noopener noreferrer")}catch(u){console.error(u),re({title:"播放失败",text:u.toString(),icon:"error"})}}});n.push(r)}return n}var Yt=(e=>(e[e.full=0]="full",e[e.pure=1]="pure",e[e.fullUnique=2]="fullUnique",e[e.pureUnique=3]="pureUnique",e))(Yt||{});async function er(e,t){if(t===0)return e;if(t===2)return Array.from(new Set(e));const n=[];for(const o of e){const i=o.replace(/\.[^.]+$/,"");t===1?n.push(i):t===3&&(n.includes(i)||n.push(i))}return n}var Jt=(e=>(e[e.unixPath=0]="unixPath",e[e.winPath=1]="winPath",e[e.unixParentPath=2]="unixParentPath",e[e.winParentPath=3]="winParentPath",e))(Jt||{});async function tr(e,t,n){const o=n===1||n===3;let s=n===2||n===3?t.replace(/\/[^/]+$/,""):t;return s.startsWith("/")||(s="/"+s),o&&(s=s.replace(/\//g,"\\")),s}async function i_(e){return async(t,n)=>{const o=await Ct(),i=await Wi(),s=e?"li[file_id].selected":"li[file_id]",r=i[0].querySelectorAll(s);if(!r.length){re({title:"文件移动到同名目录",text:e?"当前目录没有选中文件":"当前目录没有文件",icon:"warning"});return}let a=e?`当前已选中${r.length}个文件,是否继续?`:`当前目录共有${r.length}个文件,是否继续?`;a+=`<br><div style="text-align:left">
      <b>处理逻辑:</b>
      <p>0.「同名目录」取自纯文件名(不带后缀名)。</p>
      <p>1.如果同名目录已存在,会直接使用已存在的目录。</p>
      <p>2.同名目录相同的文件,会被移动到同一个目录里面。</p>
      <p class="text-primary">示例: <span>movie.mp4</span> 的同名目录为 <span>movie</span></p>
      </div>`;const{value:l}=await pe.fire({title:"文件移动到同名目录",html:a,icon:"warning",showCancelButton:!0,confirmButtonText:"继续",cancelButtonText:"取消"});if(!!l){pe.fire({title:"文件移动到同名目录",html:"正在处理...",didOpen:()=>{pe.showLoading()}});for(let u=0;u<r.length;u++){const f=r[u],h=await Gt($(f));if(!h.isFile)continue;const g=h.name,b=g.replace(/\.[^\.]+$/,""),_=`${u+1} / ${r.length} - `+Math.round(u/r.length*100)+"%";pe.update({html:`${_} 正在为文件「${g}」创建目录「${b}」`});const E=await e_(b,o,!0);pe.update({html:`创建目录「${b}」成功。id=${E}`}),pe.update({html:`${_} 正在移动文件「${g}」到目录「${b}」`}),await $b(E,[h.id]),await bt(500)}pe.hideLoading(),pe.update({html:"处理完成。刷新列表后查看最新的文件数据。",icon:"success"})}}}function s_(e,t){const n=[];for(let o=t?1:0;o<e.length;o++)n.push(e[o].file_name);return n}async function Vd(e,t){const n=await Jb(e),o=[];for(let i=0;i<e.length;i++){const s=n.get(e[i].parentId);if(!s)throw new Error(`无法获取文件 "${e[i].name}" 的上级目录路径!`);const r=s_(s,!0),a=Qs([...r,e[i].name],Qn.unix);o.push(await tr(e[i],a,t))}return o}async function Wd(e){try{const n=+(await At(e.id)).folder_count+1;re({text:`正在获取文件列表数据... 目录数量: ${n}。请保持当前页面在当前浏览器窗口处于激活状态,不要做其他网盘操作。`,timer:0}),pe.showLoading();const o=await Rd(Gn({cid:e.id,limit:1150}),3e3);console.log("[tree]",o);const i=`115-dir_list_data-${e.id}-${qd(e.name)}.json`;Bi(JSON.stringify(o),i),re({text:`获取文件列表数据成功,已保存为 ${i}`,timer:0,icon:"success",showConfirmButton:!0})}catch(t){console.error(t),re({text:`获取文件列表数据失败: ${t}`,timer:0,icon:"error",showCloseButton:!0})}finally{pe.hideLoading()}}async function nr(e){let t="";if(e.id==="0")t="/";else{const i=await Zs(e);t=await tr(e,i,e.isDir?0:2)}const n=await ei(),o=await Bg(n,t);console.log("url: ",o),window.open(o,"_blank","noopener noreferrer"),re({title:"在CloudDrive2中查看",text:`已打开CloudDrive2链接: ${o}`,icon:"success"})}function Kd(e){const t=e.target;e.key==="a"&&(e.ctrlKey||e.metaKey)&&t.select()}function Gd(e){return e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement}function r_(e){e.addEventListener("keydown",t=>{const n=t.target;Gd(n)&&Kd(t)})}function Yd(e,t=.2,n=.5){e.style.transition=`opacity ${n}s`,e.style.opacity=t.toString(),setTimeout(()=>{e.remove()},500)}const Gi=pe.mixin({toast:!0,position:"top-end",showConfirmButton:!1,timer:3e3,timerProgressBar:!0,didOpen:e=>{e.addEventListener("mouseenter",pe.stopTimer),e.addEventListener("mouseleave",pe.resumeTimer)},customClass:"swal-toast"});async function a_(e,t){e.addEventListener("keydown",n=>{const o=n.target;if(!Gd(o))return;let i=!1;(t==="enter"&&n.key==="Enter"||t==="ctrl+enter"&&n.key==="Enter"&&n.ctrlKey||t==="meta+enter"&&n.key==="Enter"&&n.metaKey)&&(i=!0),i&&pe.clickConfirm()})}var fl=(e=>(e.search="search",e.encode="encode",e.base64="base64",e.base64safe="base64safe",e.upper="upper",e.lower="lower",e.number="number",e.manual="manual",e))(fl||{});const l_=[{label:"文件属性变量",items:[{key:"{dir_id}",label:"文件夹ID"},{key:"{file_id}",label:"文件ID"},{key:"{pick_code}",label:"提取码"},{key:"{pure_name}",label:"不含后缀的文件名"},{key:"{full_name}",label:"完整名称"},{key:"{file_suffix}",label:"文件后缀名"},{key:"{file_hash}",label:"文件hash"},{key:"{file_size}",label:"文件大小"},{key:"{file_path}",label:"文件路径"},{key:"{file_dir}",label:"文件目录路径"}]},{label:"高级变量",items:[{key:"{clouddrive_stream_url}",label:"CloudDrive链接(用于播放,目录链接是m3u)"},{key:"{clouddrive_down_url}",label:"CloudDrive文件链接"},{key:"{clouddrive_playlist_url}",label:"CloudDrive播放列表链接"},{key:"{user_agent}",label:"浏览器UA"}]},{label:"变量函数处理",memo:"支持多个函数,函数之间使用英文冒号分隔,如:{变量名:encode:base64}。调用顺序从左到右。",items:[{key:"{变量名:search}",label:"搜索链接"},{key:"{变量名:encode}",label:"url编码"},{key:"{变量名:base64}",label:"base64编码"},{key:"{变量名:base64safe}",label:"base64安全编码"},{key:"{变量名:upper}",label:"转大写"},{key:"{变量名:lower}",label:"转小写"},{key:"{变量名:number}",label:"转数字"},{key:"{变量名:manual}",label:"手动输入"}]}];function c_(e,t,n){const{names:o,position:i}=t;let s=[];return i==="first"?s=[...o,...e]:s=[...e,...o],n?Array.from(new Set(s)):s}async function or(e,t,n,o){var u;let i=t.url;const s={dir_id:"id",file_id:"id",pick_code:"pickCode",full_name:"name",file_suffix:"suffix",file_hash:"hash",file_size:"sizeBytes"},r=e.isFile,a=/{(\w+)(:\w+(:\w+)?)?}/g,l=i.match(a);if(l){const f=["file_path","file_dir","clouddrive_stream_url","clouddrive_down_url","clouddrive_playlist_url"];for(const h of l){const g=h.replace(/[{}]/g,"").split(":")[0],b=h.replace(/[{}]/g,"").replace(/^[^:]+:/,"");let _=((u=e[s[g]])==null?void 0:u.toString())||"",E="";switch(f.includes(g)&&(E=await Zs(e)),g){case"pure_name":r?_=e.name.replace(/\.[^.]+$/,""):_=e.name;break;case"file_path":_=E;break;case"file_dir":_=E.replace(/\/[^/]+$/,"");break;case"clouddrive_stream_url":r?_=await ti(n,E,Fs.download):_=await Pa(n,E);break;case"clouddrive_down_url":_=await ti(n,E,Fs.download);break;case"clouddrive_playlist_url":let I="";r?I=E.replace(/\/[^/]+$/,""):I=E,_=await Pa(n,I);break;case"user_agent":_=navigator.userAgent;break}if(_=_.toString(),b){let I=b.split(":");o&&(I=c_(I,o,!1)),console.log(`[buildCustomUrl] functions: ${b}, after merge: ${I.join(":")}`);for(const M of I)switch(M){case"search":_=ll({search_value:_});break;case"encode":_=encodeURIComponent(_);break;case"base64":_=Zc(_);break;case"base64safe":_=Zc(_,!0);break;case"upper":_=_.toUpperCase();break;case"lower":_=_.toLowerCase();break;case"number":_=_.replace(/\D/g,"");break;case"manual":let{isConfirmed:P,value:T}=await pe.fire({title:"手动输入",text:"按下「Ctrl + 回车」或「Command + 回车」确认",input:"textarea",inputValue:_,showCancelButton:!0,inputValidator:H=>H?null:"输入不能为空!",didOpen:H=>{r_(H),a_(H,"meta+enter")}});if(!P)throw new Error("已取消手动输入。");if(T=(T==null?void 0:T.trim())||"",T==="")throw new Error("输入不能为空!");_=T;break}}i=i.replace(h,_)}}return t.mutation?await u_(i,e,t,n):i}async function u_(e,t,n,o){return await new Function("payload",n.mutation)({url:e,file:t,customUrl:n,cloudDriveConfig:o})}var In=(e=>(e.search="search",e.play="play",e))(In||{});const d_=rt.menuCustomUrlsForSearch,f_=rt.menuCustomUrlsForPlay,Jd={search:d_,play:f_};async function ui(e){return await et.get(Jd[e],[])}async function Qd(e,t){await et.set(Jd[e],t)}function _t(e){return{enabled:!0,key:"",label:"",icon:"",memo:"",extraMemo:"",url:"",openInBackground:!1,...e}}var gn=(e=>(e.none="none",e.alt="alt",e.ctrl="ctrl",e.shift="shift",e.meta="meta",e))(gn||{});const Xd=rt.menu;function p_(e){return{enabled:!0,openInNewTab:!0,search:!0,play:!0,getDownloadUrl:!0,copyNames:!0,exportList:!1,viewInCloudDrive:!0,...e}}function h_(e){return{enabled:!0,copyNames:!0,viewInCloudDrive:!0,...e}}function m_(e){return{enabled:!0,moveToSelfNameDir:!0,copyNames:!0,play:!0,...e}}function g_(e){return{enabled:!0,rename:!0,delete:!0,play:!0,copyNames:!0,move:!0,copy:!0,copyTo:!0,viewProp:!0,showSubFolderSize:!0,exportList:!1,viewInCloudDrive:!0,...e}}function y_(e){return{enabled:!0,hideSelectionMenuLabel:!1,enableInSearch:!0,manageOfficialMenus:!1,keyToTriggerManual:"none",injectManualFuncPosition:"first",m3u8TempDir:".ce-m3u8-temp",[Be.listItemHover]:p_(e==null?void 0:e[Be.listItemHover]),[Be.listItemContext]:h_(e==null?void 0:e[Be.listItemContext]),[Be.selection]:m_(e==null?void 0:e[Be.selection]),[Be.dirContext]:g_(e==null?void 0:e[Be.dirContext]),...e}}async function di(){const e=y_(),t=await et.get(Xd,e);return iu(e,t)}async function w_(e){await et.set(Xd,e)}const Bc=class{constructor(t){_e(this,"menuType",Be.listItemHover);_e(this,"injectDecider");_e(this,"keyAttributeName","id");_e(this,"key","");_e(this,"label","");_e(this,"icon","");_e(this,"showIcon",!0);_e(this,"title","");_e(this,"onClick",async(t,n)=>{});_e(this,"onMouseOver");_e(this,"onMouseOut");_e(this,"subItems",[]);_e(this,"isDivider",!1);_e(this,"menuItemTemplates",{[Be.dirContext]:{body:`<li id="{key}" class="ce-menu dir-context-menu">
        <a href="javascript:;">{icon}<span>{label}</span></a>
      </li>`,bodyForMulti:`<li id="{key}" class="ce-menu ce-menu-parent dir-context-menu">
        {icon}<span class="ce-menu-trigger">{label}</span>
        <div class="ce-menu-dropdown sub-items"></div>
        </span>`,divider:'<li class="ce-menu-divider"></li>'},[Be.dirContextSub]:{body:`<span id="{key}" class="ce-menu dir-context-menu-sub sub-item">
        {icon}<span>{label}</span>
      </span>`,divider:'<span class="ce-menu-divider"></span>'},[Be.listItemContext]:{body:`<li id="{key}" class="ce-menu list-item-context-menu">
        <a href="javascript:;">{icon}<span>{label}</span></a>
      </li>`,bodyForMulti:`<li id="{key}" class="ce-menu ce-menu-parent list-item-context-menu">
        {icon}<span class="ce-menu-trigger">{label}</span>
        <div class="ce-menu-dropdown sub-items"></div>
        </span>`,divider:'<li class="ce-menu-divider"></li>'},[Be.listItemContextSub]:{body:'<span id="{key}" class="ce-menu list-item-context-menu-sub sub-item">{label}</span>',divider:'<span class="ce-menu-divider"></span>'},[Be.listItemHover]:{body:`<a href="javascript:;" id="{key}" class="ce-menu list-item-hover-menu" style="">
        {icon}<span>{label}</span>
      </a>`,bodyForMulti:`<span class="ce-menu ce-menu-parent list-item-hover-menu">
        {icon}<span class="ce-menu-trigger">{label}</span>
        <div class="ce-menu-dropdown sub-items"></div>
        </span>`,divider:'<a class="ce-menu-divider"></a>'},[Be.listItemHoverSub]:{body:`<a href="javascript:;" id="{key}" class="ce-menu list-item-hover-menu-sub" style="">
        {icon}<span>{label}</span>
      </a>`,divider:'<a class="ce-menu-divider"></a>'},[Be.selection]:{body:'<li id="{key}" class="ce-menu selection-menu">{icon}<span>{label}</span></li>',bodyForMulti:`<li class="ce-menu ce-menu-parent selection-menu">
        {icon}<span class="ce-menu-trigger">{label}</span>
        <div class="ce-menu-dropdown sub-items"></div>
        </li>`,divider:'<li class="ce-menu-divider"></li>'},[Be.selectionSub]:{body:`<a href="javascript:;" id="{key}" class="ce-menu selection-menu-sub" style="">
        {icon}<span>{label}</span>
      </a>`,divider:'<a class="ce-menu-divider"></a>'}});t.menuType&&(this.menuType=t.menuType),t.injectDecider&&(this.injectDecider=t.injectDecider),t.isDivider&&(this.isDivider=!0),t.key&&(this.key=t.key),t.label&&(this.label=t.label),t.icon&&(this.icon=t.icon),t.showIcon!==void 0&&(this.showIcon=t.showIcon),t.title&&(this.title=t.title),t.onClick&&(this.onClick=t.onClick),t.onMouseOver&&(this.onMouseOver=t.onMouseOver),t.onMouseOut&&(this.onMouseOut=t.onMouseOut),t.subItems&&(this.subItems=t.subItems),t.key&&(this.key=t.key),t.label&&(this.label=t.label),t.onClick&&(this.onClick=t.onClick)}async decideInject(t){return this.injectDecider?await this.injectDecider(this,t):!0}async render(){if(!this.menuType)throw new Error("未指定菜单类型");const t=this.menuItemTemplates[this.menuType];if(!t)throw new Error(`未找到菜单模板:${this.menuType}`);if(this.isDivider){if(!t.divider)throw new Error("未定义模版的divider内容!");const r=document.createElement("div");return r.innerHTML=t.divider,r.firstElementChild}let n=t.body;if(this.subItems.length>0){if(!t.bodyForMulti)throw new Error("未找到 bodyFormMulti 模版");n=t.bodyForMulti}const o=document.createElement("div");let i="";this.icon&&this.showIcon&&(this.icon.match(/^(http|https|data:image)/)?i=`<img class="ce-menu-icon" src="${this.icon}" />`:this.icon.match(/^data-text:/)?i=`<i class="ce-menu-icon">${this.icon.replace(/^data-text:/,"")}</i>`:i=`<i class="ce-menu-icon ${this.icon}"></i>`),o.innerHTML=n.replace(/{key}/g,this.key).replace(/{label}/g,this.label).replace(/{icon}/g,i);const s=o.firstElementChild;if(s.setAttribute("title",this.title||""),this.onClick&&s.addEventListener("click",async r=>{this.onClick(this,r)}),this.onMouseOver&&s.addEventListener("mouseover",async r=>{this.onMouseOver&&this.onMouseOver(this,r)}),this.onMouseOut&&s.addEventListener("mouseout",async r=>{this.onMouseOut&&this.onMouseOut(this,r)}),this.subItems.length>0){const r=s.querySelector(".sub-items"),a=[];for(const l of this.subItems){const u=await l.render();a.push(u)}r==null||r.append(...a)}return s}async closeMenu(){unsafeWindow.Core.FileMenu.HideRight(),document.dispatchEvent(new CustomEvent(Bc.EVENT_CLOSE_MENU,{detail:{menu:this}}))}async decorateContainer(t){}};let tn=Bc;_e(tn,"EVENT_CLOSE_MENU","__closeMenu");async function ir(e,t){t.stopPropagation(),t.preventDefault();const n=t.target,o=$(n).closest(".ce-menu-parent"),i=o.find(".ce-menu-dropdown");o.addClass("ce-menu-dropdown-opened"),i.addClass("ce-menu-dropdown-active")}async function sr(e,t){t.stopPropagation(),t.preventDefault();const n=t.target,o=$(n).closest(".ce-menu-parent"),i=o.find(".ce-menu-dropdown");o.removeClass("ce-menu-dropdown-opened"),i.removeClass("ce-menu-dropdown-active")}class Pt extends tn{constructor(n){super(n);_e(this,"menuType",Be.dirContext);this.onMouseOver=ir,this.onMouseOut=sr}}class b_ extends tn{constructor(){super(...arguments);_e(this,"menuType",Be.dirContextSub)}}class rr extends tn{constructor(n){super(n);_e(this,"menuType",Be.listItemContext);this.onMouseOver=ir,this.onMouseOut=sr}}class ar extends tn{constructor(n){super(n);_e(this,"menuType",Be.listItemHover);this.onMouseOver=ir,this.onMouseOut=sr}}class fi extends tn{constructor(){super(...arguments);_e(this,"menuType",Be.listItemHoverSub)}}class pl extends tn{constructor(n){super(n);_e(this,"menuType",Be.selection);this.onMouseOver=ir,this.onMouseOut=sr}}class lr extends tn{constructor(){super(...arguments);_e(this,"menuType",Be.selectionSub)}}class cr extends tn{constructor(){super(...arguments);_e(this,"isDivider",!0)}}class __ extends cr{}class Zd extends cr{}class hl extends cr{}class ef extends cr{}class ur{constructor(t){_e(this,"items");_e(this,"siblingSelector");_e(this,"position");_e(this,"useObserver",!0);_e(this,"observeTarget",document.body);_e(this,"disposeObserverAfterInjection",!0);_e(this,"menuType");_e(this,"_observer");_e(this,"injectDecider");t.menuType&&(this.menuType=t.menuType),t.injectDecider&&(this.injectDecider=t.injectDecider),this.items=t.items,this.siblingSelector=t.siblingSelector,this.position=t.position,this.useObserver=t.useObserver,this.observeTarget=t.observeTarget,this.disposeObserverAfterInjection=t.disposeObserverAfterInjection}async createObserver(){return new MutationObserver(async([n])=>{n.type==="childList"&&await this.handleChildListMutation(n)})}async observe(){if(this._observer=await this.createObserver(),!this._observer)return;const t=await this.getObserveTarget();!t||this.startObserver(t)}async startObserver(t){!this._observer||this._observer.observe(t,{childList:!0})}async disposeObserver(){this.disposeObserverAfterInjection&&this._observer&&this._observer.disconnect()}async getObserveTarget(){return typeof this.observeTarget=="string"?(await vo(this.observeTarget,800,6048e5))[0]:this.observeTarget}async isMutationMatch(t){const n=t.addedNodes[0];if(n&&n.nodeType!==Node.ELEMENT_NODE)return!1;switch(this.menuType,Be.dirContext,this.menuType){case Be.listItemHover:return!0;case Be.listItemContext:return n&&n.classList.contains("context-menu")&&!!n.querySelector('[val="report"]');case Be.selection:return!0;case Be.dirContext:return n&&n.classList.contains("context-menu")&&!!n.querySelector('[val="upload"]');default:return!1}}async handleChildListMutation(t){if(!await this.isMutationMatch(t))return;const n=await this.getContainers(t);await this.perform(n)}async perform(t){for(const n of t)await this.injectToContainer(n)}async getSibling(t){return t.querySelector(this.siblingSelector)}async getContainers(t){let n=[];const o=t.addedNodes[0];switch(this.menuType){case Be.listItemHover:document.querySelectorAll("#js_data_list .list-contents > ul:not([ce-done]) > li .file-opr").forEach(i=>{n.push(i)});break;case Be.listItemContext:n=[o];break;case Be.selection:document.querySelectorAll("#js_top_panel_box #js_operate_box").forEach(i=>{n.push(i)});break;case Be.dirContext:n=[o];break}return n}async shouldInjectMenuItem(t,n){return await n.decideInject(t)?await this.decideInject(n,t):!1}async decideInject(t,n){return this.injectDecider?await this.injectDecider(t,n):!0}async injectToContainer(t){const n=await this.getSibling(t);if(!n)return;let o=this.items.slice();this.position===$o.after&&(o=o.reverse());for(let i=0;i<o.length;i++){const s=o[i];if(!await this.shouldInjectMenuItem(t,s))continue;const r=await s.render();this.position===$o.before?n.insertAdjacentElement("beforebegin",r):n.insertAdjacentElement("afterend",r),await s.decorateContainer(t)}}async isFileContainer(t){return!!t.getAttribute("file_id")}async isDirContainer(t){return!!t.getAttribute("cate_id")}async inject(){if(!!this.menuType)if(this.useObserver)await this.observe();else{const t=await this.getObserveTarget();if(!t)return;await this.injectToContainer(t)}}}class v_ extends ur{constructor(){super(...arguments);_e(this,"menuType",Be.dirContext);_e(this,"useObserver",!0);_e(this,"observeTarget",document.body);_e(this,"disposeObserverAfterInjection",!0)}}class x_ extends ur{constructor(){super(...arguments);_e(this,"menuType",Be.listItemContext)}}class C_ extends ur{constructor(n){super(n);_e(this,"menuType",Be.listItemHover);_e(this,"useObserver",!0);_e(this,"observeTarget","#js_data_list");_e(this,"disposeObserverAfterInjection",!1);this.handleLoadAll()}async inject(){const n=document.querySelector("#js_data_list");if(n){const o=n.querySelectorAll(".list-contents > ul:not([ce-done]) > li .file-opr");o.length&&await this.perform(Array.from(o))}super.inject()}async handleLoadAll(){if(window.top===window.self)return;const n=document.querySelector("#js_pagination_box");if(!n){console.warn("[ListItemHoverMenuInjector.handleLoadAll] 未找到「#js_pagination_box」元素");return}function o(i){const s=document.querySelector("#js_data_list .list-contents > ul > li");!s||s.querySelector(".ce-menu")||i(!0)}n.addEventListener("click",async i=>{i.preventDefault(),i.stopPropagation();const s=i.target;let r=!1;if((s.getAttribute("menu")==="load_all_file"||s.closest('[menu="load_all_file"]'))&&(r=!0),!r)return;console.log("[ListItemHoverMenuInjector.handleLoadAll] 点击了「加载全部」按钮"),await Kn(o,500,3e5);const a=document.querySelector("#js_data_list .list-contents > ul");a==null||a.removeAttribute("ce-done");const l=document.querySelector("#js_data_list");if(l){const u=".list-contents > ul:not([ce-done]) > li .file-opr";if(!document.querySelector(u)){const h=await di();await zd(h)}const f=l.querySelectorAll(u);f.length&&await this.perform(Array.from(f))}})}async perform(n){await super.perform(n);const o=document.querySelector("#js_data_list .list-contents > ul");o==null||o.setAttribute("ce-done","")}}class $_ extends ur{constructor(){super(...arguments);_e(this,"menuType",Be.selection);_e(this,"useObserver",!0);_e(this,"observeTarget","#js_top_panel_box #js_operate_box");_e(this,"disposeObserverAfterInjection",!1)}}async function tf(e,t){return!!$(t).closest("li").attr("cate_id")}async function E_(e,t){const n=$(t).closest("li");if(n.attr("cate_id")||n.attr("iv")==="1")return!0;const o=n.attr("ico");return o?Ig(o)||Og(o)||Tg(o):!1}function Zn(e,t){const n=Object.create(null),o=e.split(",");for(let i=0;i<o.length;i++)n[o[i]]=!0;return t?i=>!!n[i.toLowerCase()]:i=>!!n[i]}function Tn(e){if(Se(e)){const t={};for(let n=0;n<e.length;n++){const o=e[n],i=nt(o)?P_(o):Tn(o);if(i)for(const s in i)t[s]=i[s]}return t}else{if(nt(e))return e;if(Ye(e))return e}}const k_=/;(?![^(]*\))/g,S_=/:([^]+)/,A_=/\/\*.*?\*\//gs;function P_(e){const t={};return e.replace(A_,"").split(k_).forEach(n=>{if(n){const o=n.split(S_);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Je(e){let t="";if(nt(e))t=e;else if(Se(e))for(let n=0;n<e.length;n++){const o=Je(e[n]);o&&(t+=o+" ")}else if(Ye(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}function I_(e){if(!e)return null;let{class:t,style:n}=e;return t&&!nt(t)&&(e.class=Je(t)),n&&(e.style=Tn(n)),e}const T_="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",O_="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",L_=Zn(T_),M_=Zn(O_),D_=Zn("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function nf(e){return!!e||e===""}function R_(e,t){if(e.length!==t.length)return!1;let n=!0;for(let o=0;n&&o<e.length;o++)n=Yi(e[o],t[o]);return n}function Yi(e,t){if(e===t)return!0;let n=rf(e),o=rf(t);if(n||o)return n&&o?e.getTime()===t.getTime():!1;if(n=Qi(e),o=Qi(t),n||o)return e===t;if(n=Se(e),o=Se(t),n||o)return n&&o?R_(e,t):!1;if(n=Ye(e),o=Ye(t),n||o){if(!n||!o)return!1;const i=Object.keys(e).length,s=Object.keys(t).length;if(i!==s)return!1;for(const r in e){const a=e.hasOwnProperty(r),l=t.hasOwnProperty(r);if(a&&!l||!a&&l||!Yi(e[r],t[r]))return!1}}return String(e)===String(t)}function ml(e,t){return e.findIndex(n=>Yi(n,t))}const ge=e=>nt(e)?e:e==null?"":Se(e)||Ye(e)&&(e.toString===af||!Le(e.toString))?JSON.stringify(e,of,2):String(e),of=(e,t)=>t&&t.__v_isRef?of(e,t.value):So(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,i])=>(n[`${o} =>`]=i,n),{})}:hi(t)?{[`Set(${t.size})`]:[...t.values()]}:Ye(t)&&!Se(t)&&!lf(t)?String(t):t,Xe=Object.freeze({}),pi=Object.freeze([]),qt=()=>{},sf=()=>!1,N_=/^on[^a-z]/,Ji=e=>N_.test(e),dr=e=>e.startsWith("onUpdate:"),ft=Object.assign,gl=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},B_=Object.prototype.hasOwnProperty,je=(e,t)=>B_.call(e,t),Se=Array.isArray,So=e=>Xi(e)==="[object Map]",hi=e=>Xi(e)==="[object Set]",rf=e=>Xi(e)==="[object Date]",Le=e=>typeof e=="function",nt=e=>typeof e=="string",Qi=e=>typeof e=="symbol",Ye=e=>e!==null&&typeof e=="object",fr=e=>Ye(e)&&Le(e.then)&&Le(e.catch),af=Object.prototype.toString,Xi=e=>af.call(e),yl=e=>Xi(e).slice(8,-1),lf=e=>Xi(e)==="[object Object]",wl=e=>nt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,pr=Zn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),F_=Zn("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),hr=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},U_=/-(\w)/g,yn=hr(e=>e.replace(U_,(t,n)=>n?n.toUpperCase():"")),j_=/\B([A-Z])/g,On=hr(e=>e.replace(j_,"-$1").toLowerCase()),Ao=hr(e=>e.charAt(0).toUpperCase()+e.slice(1)),Po=hr(e=>e?`on${Ao(e)}`:""),Zi=(e,t)=>!Object.is(e,t),mi=(e,t)=>{for(let n=0;n<e.length;n++)e[n](t)},mr=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},gr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},H_=e=>{const t=nt(e)?Number(e):NaN;return isNaN(t)?e:t};let cf;const uf=()=>cf||(cf=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function bl(e,...t){console.warn(`[Vue warn] ${e}`,...t)}let ln;class q_{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=ln,!t&&ln&&(this.index=(ln.scopes||(ln.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=ln;try{return ln=this,t()}finally{ln=n}}else bl("cannot run an inactive effect scope.")}on(){ln=this}off(){ln=this.parent}stop(t){if(this._active){let n,o;for(n=0,o=this.effects.length;n<o;n++)this.effects[n].stop();for(n=0,o=this.cleanups.length;n<o;n++)this.cleanups[n]();if(this.scopes)for(n=0,o=this.scopes.length;n<o;n++)this.scopes[n].stop(!0);if(!this.detached&&this.parent&&!t){const i=this.parent.scopes.pop();i&&i!==this&&(this.parent.scopes[this.index]=i,i.index=this.index)}this.parent=void 0,this._active=!1}}}function z_(e,t=ln){t&&t.active&&t.effects.push(e)}function V_(){return ln}const _l=e=>{const t=new Set(e);return t.w=0,t.n=0,t},df=e=>(e.w&eo)>0,ff=e=>(e.n&eo)>0,W_=({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=eo},K_=e=>{const{deps:t}=e;if(t.length){let n=0;for(let o=0;o<t.length;o++){const i=t[o];df(i)&&!ff(i)?i.delete(e):t[n++]=i,i.w&=~eo,i.n&=~eo}t.length=n}},yr=new WeakMap;let es=0,eo=1;const vl=30;let It;const Io=Symbol("iterate"),xl=Symbol("Map key iterate");class Cl{constructor(t,n=null,o){this.fn=t,this.scheduler=n,this.active=!0,this.deps=[],this.parent=void 0,z_(this,o)}run(){if(!this.active)return this.fn();let t=It,n=to;for(;t;){if(t===this)return;t=t.parent}try{return this.parent=It,It=this,to=!0,eo=1<<++es,es<=vl?W_(this):pf(this),this.fn()}finally{es<=vl&&K_(this),eo=1<<--es,It=this.parent,to=n,this.parent=void 0,this.deferStop&&this.stop()}}stop(){It===this?this.deferStop=!0:this.active&&(pf(this),this.onStop&&this.onStop(),this.active=!1)}}function pf(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let to=!0;const hf=[];function To(){hf.push(to),to=!1}function Oo(){const e=hf.pop();to=e===void 0?!0:e}function zt(e,t,n){if(to&&It){let o=yr.get(e);o||yr.set(e,o=new Map);let i=o.get(n);i||o.set(n,i=_l()),mf(i,{effect:It,target:e,type:t,key:n})}}function mf(e,t){let n=!1;es<=vl?ff(e)||(e.n|=eo,n=!df(e)):n=!e.has(It),n&&(e.add(It),It.deps.push(e),It.onTrack&&It.onTrack(Object.assign({effect:It},t)))}function Ln(e,t,n,o,i,s){const r=yr.get(e);if(!r)return;let a=[];if(t==="clear")a=[...r.values()];else if(n==="length"&&Se(e)){const u=Number(o);r.forEach((f,h)=>{(h==="length"||h>=u)&&a.push(f)})}else switch(n!==void 0&&a.push(r.get(n)),t){case"add":Se(e)?wl(n)&&a.push(r.get("length")):(a.push(r.get(Io)),So(e)&&a.push(r.get(xl)));break;case"delete":Se(e)||(a.push(r.get(Io)),So(e)&&a.push(r.get(xl)));break;case"set":So(e)&&a.push(r.get(Io));break}const l={target:e,type:t,key:n,newValue:o,oldValue:i,oldTarget:s};if(a.length===1)a[0]&&$l(a[0],l);else{const u=[];for(const f of a)f&&u.push(...f);$l(_l(u),l)}}function $l(e,t){const n=Se(e)?e:[...e];for(const o of n)o.computed&&gf(o,t);for(const o of n)o.computed||gf(o,t)}function gf(e,t){(e!==It||e.allowRecurse)&&(e.onTrigger&&e.onTrigger(ft({effect:e},t)),e.scheduler?e.scheduler():e.run())}function G_(e,t){var n;return(n=yr.get(e))===null||n===void 0?void 0:n.get(t)}const Y_=Zn("__proto__,__v_isRef,__isVue"),yf=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Qi)),J_=wr(),Q_=wr(!1,!0),X_=wr(!0),Z_=wr(!0,!0),wf=ev();function ev(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const o=Fe(this);for(let s=0,r=this.length;s<r;s++)zt(o,"get",s+"");const i=o[t](...n);return i===-1||i===!1?o[t](...n.map(Fe)):i}}),["push","pop","shift","unshift","splice"].forEach(t=>{e[t]=function(...n){To();const o=Fe(this)[t].apply(this,n);return Oo(),o}}),e}function tv(e){const t=Fe(this);return zt(t,"has",e),t.hasOwnProperty(e)}function wr(e=!1,t=!1){return function(o,i,s){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_isShallow")return t;if(i==="__v_raw"&&s===(e?t?If:Pf:t?Af:Sf).get(o))return o;const r=Se(o);if(!e){if(r&&je(wf,i))return Reflect.get(wf,i,s);if(i==="hasOwnProperty")return tv}const a=Reflect.get(o,i,s);return(Qi(i)?yf.has(i):Y_(i))||(e||zt(o,"get",i),t)?a:pt(a)?r&&wl(i)?a:a.value:Ye(a)?e?Tf(a):kr(a):a}}const nv=bf(),ov=bf(!0);function bf(e=!1){return function(n,o,i,s){let r=n[o];if(oo(r)&&pt(r)&&!pt(i))return!1;if(!e&&(!Ar(i)&&!oo(i)&&(r=Fe(r),i=Fe(i)),!Se(n)&&pt(r)&&!pt(i)))return r.value=i,!0;const a=Se(n)&&wl(o)?Number(o)<n.length:je(n,o),l=Reflect.set(n,o,i,s);return n===Fe(s)&&(a?Zi(i,r)&&Ln(n,"set",o,i,r):Ln(n,"add",o,i)),l}}function iv(e,t){const n=je(e,t),o=e[t],i=Reflect.deleteProperty(e,t);return i&&n&&Ln(e,"delete",t,void 0,o),i}function sv(e,t){const n=Reflect.has(e,t);return(!Qi(t)||!yf.has(t))&&zt(e,"has",t),n}function rv(e){return zt(e,"iterate",Se(e)?"length":Io),Reflect.ownKeys(e)}const _f={get:J_,set:nv,deleteProperty:iv,has:sv,ownKeys:rv},vf={get:X_,set(e,t){return bl(`Set operation on key "${String(t)}" failed: target is readonly.`,e),!0},deleteProperty(e,t){return bl(`Delete operation on key "${String(t)}" failed: target is readonly.`,e),!0}},av=ft({},_f,{get:Q_,set:ov}),lv=ft({},vf,{get:Z_}),El=e=>e,br=e=>Reflect.getPrototypeOf(e);function _r(e,t,n=!1,o=!1){e=e.__v_raw;const i=Fe(e),s=Fe(t);n||(t!==s&&zt(i,"get",t),zt(i,"get",s));const{has:r}=br(i),a=o?El:n?kl:ts;if(r.call(i,t))return a(e.get(t));if(r.call(i,s))return a(e.get(s));e!==i&&e.get(t)}function vr(e,t=!1){const n=this.__v_raw,o=Fe(n),i=Fe(e);return t||(e!==i&&zt(o,"has",e),zt(o,"has",i)),e===i?n.has(e):n.has(e)||n.has(i)}function xr(e,t=!1){return e=e.__v_raw,!t&&zt(Fe(e),"iterate",Io),Reflect.get(e,"size",e)}function xf(e){e=Fe(e);const t=Fe(this);return br(t).has.call(t,e)||(t.add(e),Ln(t,"add",e,e)),this}function Cf(e,t){t=Fe(t);const n=Fe(this),{has:o,get:i}=br(n);let s=o.call(n,e);s?kf(n,o,e):(e=Fe(e),s=o.call(n,e));const r=i.call(n,e);return n.set(e,t),s?Zi(t,r)&&Ln(n,"set",e,t,r):Ln(n,"add",e,t),this}function $f(e){const t=Fe(this),{has:n,get:o}=br(t);let i=n.call(t,e);i?kf(t,n,e):(e=Fe(e),i=n.call(t,e));const s=o?o.call(t,e):void 0,r=t.delete(e);return i&&Ln(t,"delete",e,void 0,s),r}function Ef(){const e=Fe(this),t=e.size!==0,n=So(e)?new Map(e):new Set(e),o=e.clear();return t&&Ln(e,"clear",void 0,void 0,n),o}function Cr(e,t){return function(o,i){const s=this,r=s.__v_raw,a=Fe(r),l=t?El:e?kl:ts;return!e&&zt(a,"iterate",Io),r.forEach((u,f)=>o.call(i,l(u),l(f),s))}}function $r(e,t,n){return function(...o){const i=this.__v_raw,s=Fe(i),r=So(s),a=e==="entries"||e===Symbol.iterator&&r,l=e==="keys"&&r,u=i[e](...o),f=n?El:t?kl:ts;return!t&&zt(s,"iterate",l?xl:Io),{next(){const{value:h,done:g}=u.next();return g?{value:h,done:g}:{value:a?[f(h[0]),f(h[1])]:f(h),done:g}},[Symbol.iterator](){return this}}}}function no(e){return function(...t){{const n=t[0]?`on key "${t[0]}" `:"";console.warn(`${Ao(e)} operation ${n}failed: target is readonly.`,Fe(this))}return e==="delete"?!1:this}}function cv(){const e={get(s){return _r(this,s)},get size(){return xr(this)},has:vr,add:xf,set:Cf,delete:$f,clear:Ef,forEach:Cr(!1,!1)},t={get(s){return _r(this,s,!1,!0)},get size(){return xr(this)},has:vr,add:xf,set:Cf,delete:$f,clear:Ef,forEach:Cr(!1,!0)},n={get(s){return _r(this,s,!0)},get size(){return xr(this,!0)},has(s){return vr.call(this,s,!0)},add:no("add"),set:no("set"),delete:no("delete"),clear:no("clear"),forEach:Cr(!0,!1)},o={get(s){return _r(this,s,!0,!0)},get size(){return xr(this,!0)},has(s){return vr.call(this,s,!0)},add:no("add"),set:no("set"),delete:no("delete"),clear:no("clear"),forEach:Cr(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=$r(s,!1,!1),n[s]=$r(s,!0,!1),t[s]=$r(s,!1,!0),o[s]=$r(s,!0,!0)}),[e,n,t,o]}const[uv,dv,fv,pv]=cv();function Er(e,t){const n=t?e?pv:fv:e?dv:uv;return(o,i,s)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?o:Reflect.get(je(n,i)&&i in o?n:o,i,s)}const hv={get:Er(!1,!1)},mv={get:Er(!1,!0)},gv={get:Er(!0,!1)},yv={get:Er(!0,!0)};function kf(e,t,n){const o=Fe(n);if(o!==n&&t.call(e,o)){const i=yl(e);console.warn(`Reactive ${i} contains both the raw and reactive versions of the same object${i==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const Sf=new WeakMap,Af=new WeakMap,Pf=new WeakMap,If=new WeakMap;function wv(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function bv(e){return e.__v_skip||!Object.isExtensible(e)?0:wv(yl(e))}function kr(e){return oo(e)?e:Sr(e,!1,_f,hv,Sf)}function _v(e){return Sr(e,!1,av,mv,Af)}function Tf(e){return Sr(e,!0,vf,gv,Pf)}function gi(e){return Sr(e,!0,lv,yv,If)}function Sr(e,t,n,o,i){if(!Ye(e))return console.warn(`value cannot be made reactive: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=i.get(e);if(s)return s;const r=bv(e);if(r===0)return e;const a=new Proxy(e,r===2?o:n);return i.set(e,a),a}function Lo(e){return oo(e)?Lo(e.__v_raw):!!(e&&e.__v_isReactive)}function oo(e){return!!(e&&e.__v_isReadonly)}function Ar(e){return!!(e&&e.__v_isShallow)}function Pr(e){return Lo(e)||oo(e)}function Fe(e){const t=e&&e.__v_raw;return t?Fe(t):e}function Of(e){return mr(e,"__v_skip",!0),e}const ts=e=>Ye(e)?kr(e):e,kl=e=>Ye(e)?Tf(e):e;function Lf(e){to&&It&&(e=Fe(e),mf(e.dep||(e.dep=_l()),{target:e,type:"get",key:"value"}))}function Mf(e,t){e=Fe(e);const n=e.dep;n&&$l(n,{target:e,type:"set",key:"value",newValue:t})}function pt(e){return!!(e&&e.__v_isRef===!0)}function de(e){return vv(e,!1)}function vv(e,t){return pt(e)?e:new xv(e,t)}class xv{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:Fe(t),this._value=n?t:ts(t)}get value(){return Lf(this),this._value}set value(t){const n=this.__v_isShallow||Ar(t)||oo(t);t=n?t:Fe(t),Zi(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:ts(t),Mf(this,t))}}function fe(e){return pt(e)?e.value:e}const Cv={get:(e,t,n)=>fe(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const i=e[t];return pt(i)&&!pt(n)?(i.value=n,!0):Reflect.set(e,t,n,o)}};function Df(e){return Lo(e)?e:new Proxy(e,Cv)}function $v(e){Pr(e)||console.warn("toRefs() expects a reactive object but received a plain one.");const t=Se(e)?new Array(e.length):{};for(const n in e)t[n]=kv(e,n);return t}class Ev{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,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 G_(Fe(this._object),this._key)}}function kv(e,t,n){const o=e[t];return pt(o)?o:new Ev(e,t,n)}var Rf;class Sv{constructor(t,n,o,i){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[Rf]=!1,this._dirty=!0,this.effect=new Cl(t,()=>{this._dirty||(this._dirty=!0,Mf(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=o}get value(){const t=Fe(this);return Lf(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}Rf="__v_isReadonly";function Av(e,t,n=!1){let o,i;const s=Le(e);s?(o=e,i=()=>{console.warn("Write operation failed: computed value is readonly")}):(o=e.get,i=e.set);const r=new Sv(o,i,s||!i,n);return t&&!n&&(r.effect.onTrack=t.onTrack,r.effect.onTrigger=t.onTrigger),r}const Mo=[];function ns(e){Mo.push(e)}function os(){Mo.pop()}function le(e,...t){To();const n=Mo.length?Mo[Mo.length-1].component:null,o=n&&n.appContext.config.warnHandler,i=Pv();if(o)Mn(o,n,11,[e+t.join(""),n&&n.proxy,i.map(({vnode:s})=>`at <${qr(n,s.type)}>`).join(`
`),i]);else{const s=[`[Vue warn]: ${e}`,...t];i.length&&s.push(`
`,...Iv(i)),console.warn(...s)}Oo()}function Pv(){let e=Mo[Mo.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function Iv(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[`
`],...Tv(n))}),t}function Tv({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,i=` at <${qr(e.component,e.type,o)}`,s=">"+n;return e.props?[i,...Ov(e.props),s]:[i+s]}function Ov(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...Nf(o,e[o]))}),n.length>3&&t.push(" ..."),t}function Nf(e,t,n){return nt(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:pt(t)?(t=Nf(e,Fe(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):Le(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Fe(t),n?t:[`${e}=`,t])}function Lv(e,t){e!==void 0&&(typeof e!="number"?le(`${t} is not a valid number - got ${JSON.stringify(e)}.`):isNaN(e)&&le(`${t} is NaN - the duration expression might be incorrect.`))}const Sl={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",[0]:"setup function",[1]:"render function",[2]:"watcher getter",[3]:"watcher callback",[4]:"watcher cleanup function",[5]:"native event handler",[6]:"component event handler",[7]:"vnode hook",[8]:"directive hook",[9]:"transition hook",[10]:"app errorHandler",[11]:"app warnHandler",[12]:"ref function",[13]:"async component loader",[14]:"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core"};function Mn(e,t,n,o){let i;try{i=o?e(...o):e()}catch(s){is(s,t,n)}return i}function cn(e,t,n,o){if(Le(e)){const s=Mn(e,t,n,o);return s&&fr(s)&&s.catch(r=>{is(r,t,n)}),s}const i=[];for(let s=0;s<e.length;s++)i.push(cn(e[s],t,n,o));return i}function is(e,t,n,o=!0){const i=t?t.vnode:null;if(t){let s=t.parent;const r=t.proxy,a=Sl[n];for(;s;){const u=s.ec;if(u){for(let f=0;f<u.length;f++)if(u[f](e,r,a)===!1)return}s=s.parent}const l=t.appContext.config.errorHandler;if(l){Mn(l,null,10,[e,r,a]);return}}Mv(e,n,i,o)}function Mv(e,t,n,o=!0){{const i=Sl[t];if(n&&ns(n),le(`Unhandled error${i?` during execution of ${i}`:""}`),n&&os(),o)throw e;console.error(e)}}let ss=!1,Al=!1;const $t=[];let wn=0;const yi=[];let bn=null,io=0;const Bf=Promise.resolve();let Pl=null;const Dv=100;function wi(e){const t=Pl||Bf;return e?t.then(this?e.bind(this):e):t}function Rv(e){let t=wn+1,n=$t.length;for(;t<n;){const o=t+n>>>1;rs($t[o])<e?t=o+1:n=o}return t}function Ir(e){(!$t.length||!$t.includes(e,ss&&e.allowRecurse?wn+1:wn))&&(e.id==null?$t.push(e):$t.splice(Rv(e.id),0,e),Ff())}function Ff(){!ss&&!Al&&(Al=!0,Pl=Bf.then(Hf))}function Nv(e){const t=$t.indexOf(e);t>wn&&$t.splice(t,1)}function Il(e){Se(e)?yi.push(...e):(!bn||!bn.includes(e,e.allowRecurse?io+1:io))&&yi.push(e),Ff()}function Uf(e,t=ss?wn+1:0){for(e=e||new Map;t<$t.length;t++){const n=$t[t];if(n&&n.pre){if(Tl(e,n))continue;$t.splice(t,1),t--,n()}}}function jf(e){if(yi.length){const t=[...new Set(yi)];if(yi.length=0,bn){bn.push(...t);return}for(bn=t,e=e||new Map,bn.sort((n,o)=>rs(n)-rs(o)),io=0;io<bn.length;io++)Tl(e,bn[io])||bn[io]();bn=null,io=0}}const rs=e=>e.id==null?1/0:e.id,Bv=(e,t)=>{const n=rs(e)-rs(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Hf(e){Al=!1,ss=!0,e=e||new Map,$t.sort(Bv);const t=n=>Tl(e,n);try{for(wn=0;wn<$t.length;wn++){const n=$t[wn];if(n&&n.active!==!1){if(t(n))continue;Mn(n,null,14)}}}finally{wn=0,$t.length=0,jf(e),ss=!1,Pl=null,($t.length||yi.length)&&Hf(e)}}function Tl(e,t){if(!e.has(t))e.set(t,1);else{const n=e.get(t);if(n>Dv){const o=t.ownerInstance,i=o&&nc(o.type);return le(`Maximum recursive updates exceeded${i?` in component <${i}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`),!0}else e.set(t,n+1)}}let Do=!1;const bi=new Set;uf().__VUE_HMR_RUNTIME__={createRecord:Ol(qf),rerender:Ol(jv),reload:Ol(Hv)};const Ro=new Map;function Fv(e){const t=e.type.__hmrId;let n=Ro.get(t);n||(qf(t,e.type),n=Ro.get(t)),n.instances.add(e)}function Uv(e){Ro.get(e.type.__hmrId).instances.delete(e)}function qf(e,t){return Ro.has(e)?!1:(Ro.set(e,{initialDef:as(t),instances:new Set}),!0)}function as(e){return Lp(e)?e.__vccOpts:e}function jv(e,t){const n=Ro.get(e);!n||(n.initialDef.render=t,[...n.instances].forEach(o=>{t&&(o.render=t,as(o.type).render=t),o.renderCache=[],Do=!0,o.update(),Do=!1}))}function Hv(e,t){const n=Ro.get(e);if(!n)return;t=as(t),zf(n.initialDef,t);const o=[...n.instances];for(const i of o){const s=as(i.type);bi.has(s)||(s!==n.initialDef&&zf(s,t),bi.add(s)),i.appContext.optionsCache.delete(i.type),i.ceReload?(bi.add(s),i.ceReload(t.styles),bi.delete(s)):i.parent?Ir(i.parent.update):i.appContext.reload?i.appContext.reload():typeof window<"u"?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required.")}Il(()=>{for(const i of o)bi.delete(as(i.type))})}function zf(e,t){ft(e,t);for(const n in e)n!=="__file"&&!(n in t)&&delete e[n]}function Ol(e){return(t,n)=>{try{return e(t,n)}catch(o){console.error(o),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let _n,ls=[],Ll=!1;function cs(e,...t){_n?_n.emit(e,...t):Ll||ls.push({event:e,args:t})}function Vf(e,t){var n,o;_n=e,_n?(_n.enabled=!0,ls.forEach(({event:i,args:s})=>_n.emit(i,...s)),ls=[]):typeof window<"u"&&window.HTMLElement&&!(!((o=(n=window.navigator)===null||n===void 0?void 0:n.userAgent)===null||o===void 0)&&o.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(s=>{Vf(s,t)}),setTimeout(()=>{_n||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,Ll=!0,ls=[])},3e3)):(Ll=!0,ls=[])}function qv(e,t){cs("app:init",e,t,{Fragment:Ue,Text:ms,Comment:Mt,Static:gs})}function zv(e){cs("app:unmount",e)}const Vv=Ml("component:added"),Wf=Ml("component:updated"),Wv=Ml("component:removed"),Kv=e=>{_n&&typeof _n.cleanupBuffer=="function"&&!_n.cleanupBuffer(e)&&Wv(e)};function Ml(e){return t=>{cs(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}const Gv=Kf("perf:start"),Yv=Kf("perf:end");function Kf(e){return(t,n,o)=>{cs(e,t.appContext.app,t.uid,t,n,o)}}function Jv(e,t,n){cs("component:emit",e.appContext.app,e,t,n)}function Qv(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||Xe;{const{emitsOptions:f,propsOptions:[h]}=e;if(f)if(!(t in f))(!h||!(Po(t)in h))&&le(`Component emitted event "${t}" but it is neither declared in the emits option nor as an "${Po(t)}" prop.`);else{const g=f[t];Le(g)&&(g(...n)||le(`Invalid event arguments: event validation failed for event "${t}".`))}}let i=n;const s=t.startsWith("update:"),r=s&&t.slice(7);if(r&&r in o){const f=`${r==="modelValue"?"model":r}Modifiers`,{number:h,trim:g}=o[f]||Xe;g&&(i=n.map(b=>nt(b)?b.trim():b)),h&&(i=n.map(gr))}Jv(e,t,i);{const f=t.toLowerCase();f!==t&&o[Po(f)]&&le(`Event "${f}" is emitted in component ${qr(e,e.type)} but the handler is registered for "${t}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${On(t)}" instead of "${t}".`)}let a,l=o[a=Po(t)]||o[a=Po(yn(t))];!l&&s&&(l=o[a=Po(On(t))]),l&&cn(l,e,6,i);const u=o[a+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,cn(u,e,6,i)}}function Gf(e,t,n=!1){const o=t.emitsCache,i=o.get(e);if(i!==void 0)return i;const s=e.emits;let r={},a=!1;if(!Le(e)){const l=u=>{const f=Gf(u,t,!0);f&&(a=!0,ft(r,f))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!a?(Ye(e)&&o.set(e,null),null):(Se(s)?s.forEach(l=>r[l]=null):ft(r,s),Ye(e)&&o.set(e,r),r)}function Tr(e,t){return!e||!Ji(t)?!1:(t=t.slice(2).replace(/Once$/,""),je(e,t[0].toLowerCase()+t.slice(1))||je(e,On(t))||je(e,t))}let gt=null,Or=null;function Lr(e){const t=gt;return gt=e,Or=e&&e.type.__scopeId||null,t}function Xv(e){Or=e}function Zv(){Or=null}const e1=e=>Qe;function Qe(e,t=gt,n){if(!t||e._n)return e;const o=(...i)=>{o._d&&$p(-1);const s=Lr(t);let r;try{r=e(...i)}finally{Lr(s),o._d&&$p(1)}return Wf(t),r};return o._n=!0,o._c=!0,o._d=!0,o}let Dl=!1;function Mr(){Dl=!0}function Rl(e){const{type:t,vnode:n,proxy:o,withProxy:i,props:s,propsOptions:[r],slots:a,attrs:l,emit:u,render:f,renderCache:h,data:g,setupState:b,ctx:_,inheritAttrs:E}=e;let I,M;const P=Lr(e);Dl=!1;try{if(n.shapeFlag&4){const ie=i||o;I=sn(f.call(ie,ie,h,s,b,g,_)),M=l}else{const ie=t;l===s&&Mr(),I=sn(ie.length>1?ie(s,{get attrs(){return Mr(),l},slots:a,emit:u}):ie(s,null)),M=t.props?l:n1(l)}}catch(ie){ys.length=0,is(ie,e,1),I=ke(Mt)}let T=I,H;if(I.patchFlag>0&&I.patchFlag&2048&&([T,H]=t1(I)),M&&E!==!1){const ie=Object.keys(M),{shapeFlag:U}=T;if(ie.length){if(U&7)r&&ie.some(dr)&&(M=o1(M,r)),T=ao(T,M);else if(!Dl&&T.type!==Mt){const Z=Object.keys(l),ce=[],ye=[];for(let Ie=0,be=Z.length;Ie<be;Ie++){const O=Z[Ie];Ji(O)?dr(O)||ce.push(O[2].toLowerCase()+O.slice(3)):ye.push(O)}ye.length&&le(`Extraneous non-props attributes (${ye.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`),ce.length&&le(`Extraneous non-emits event listeners (${ce.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.`)}}}return n.dirs&&(Yf(T)||le("Runtime directive used on component with non-element root node. The directives will not function as intended."),T=ao(T),T.dirs=T.dirs?T.dirs.concat(n.dirs):n.dirs),n.transition&&(Yf(T)||le("Component inside <Transition> renders non-element root node that cannot be animated."),T.transition=n.transition),H?H(T):I=T,Lr(P),I}const t1=e=>{const t=e.children,n=e.dynamicChildren,o=Nl(t);if(!o)return[e,void 0];const i=t.indexOf(o),s=n?n.indexOf(o):-1,r=a=>{t[i]=a,n&&(s>-1?n[s]=a:a.patchFlag>0&&(e.dynamicChildren=[...n,a]))};return[sn(o),r]};function Nl(e){let t;for(let n=0;n<e.length;n++){const o=e[n];if(xi(o)){if(o.type!==Mt||o.children==="v-if"){if(t)return;t=o}}else return}return t}const n1=e=>{let t;for(const n in e)(n==="class"||n==="style"||Ji(n))&&((t||(t={}))[n]=e[n]);return t},o1=(e,t)=>{const n={};for(const o in e)(!dr(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n},Yf=e=>e.shapeFlag&7||e.type===Mt;function i1(e,t,n){const{props:o,children:i,component:s}=e,{props:r,children:a,patchFlag:l}=t,u=s.emitsOptions;if((i||a)&&Do||t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return o?Jf(o,r,u):!!r;if(l&8){const f=t.dynamicProps;for(let h=0;h<f.length;h++){const g=f[h];if(r[g]!==o[g]&&!Tr(u,g))return!0}}}else return(i||a)&&(!a||!a.$stable)?!0:o===r?!1:o?r?Jf(o,r,u):!0:!!r;return!1}function Jf(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let i=0;i<o.length;i++){const s=o[i];if(t[s]!==e[s]&&!Tr(n,s))return!0}return!1}function Bl({vnode:e,parent:t},n){for(;t&&t.subTree===e;)(e=t.vnode).el=n,t=t.parent}const s1=e=>e.__isSuspense,Qf={name:"Suspense",__isSuspense:!0,process(e,t,n,o,i,s,r,a,l,u){e==null?r1(t,n,o,i,s,r,a,l,u):a1(e,t,n,o,i,r,a,l,u)},hydrate:l1,create:Fl,normalize:c1};function us(e,t){const n=e.props&&e.props[t];Le(n)&&n()}function r1(e,t,n,o,i,s,r,a,l){const{p:u,o:{createElement:f}}=l,h=f("div"),g=e.suspense=Fl(e,i,o,t,h,n,s,r,a,l);u(null,g.pendingBranch=e.ssContent,h,null,o,g,s,r),g.deps>0?(us(e,"onPending"),us(e,"onFallback"),u(null,e.ssFallback,t,n,o,null,s,r),_i(g,e.ssFallback)):g.resolve()}function a1(e,t,n,o,i,s,r,a,{p:l,um:u,o:{createElement:f}}){const h=t.suspense=e.suspense;h.vnode=t,t.el=e.el;const g=t.ssContent,b=t.ssFallback,{activeBranch:_,pendingBranch:E,isInFallback:I,isHydrating:M}=h;if(E)h.pendingBranch=g,ro(g,E)?(l(E,g,h.hiddenContainer,null,i,h,s,r,a),h.deps<=0?h.resolve():I&&(l(_,b,n,o,i,null,s,r,a),_i(h,b))):(h.pendingId++,M?(h.isHydrating=!1,h.activeBranch=E):u(E,i,h),h.deps=0,h.effects.length=0,h.hiddenContainer=f("div"),I?(l(null,g,h.hiddenContainer,null,i,h,s,r,a),h.deps<=0?h.resolve():(l(_,b,n,o,i,null,s,r,a),_i(h,b))):_&&ro(g,_)?(l(_,g,n,o,i,h,s,r,a),h.resolve(!0)):(l(null,g,h.hiddenContainer,null,i,h,s,r,a),h.deps<=0&&h.resolve()));else if(_&&ro(g,_))l(_,g,n,o,i,h,s,r,a),_i(h,g);else if(us(t,"onPending"),h.pendingBranch=g,h.pendingId++,l(null,g,h.hiddenContainer,null,i,h,s,r,a),h.deps<=0)h.resolve();else{const{timeout:P,pendingId:T}=h;P>0?setTimeout(()=>{h.pendingId===T&&h.fallback(b)},P):P===0&&h.fallback(b)}}let Xf=!1;function Fl(e,t,n,o,i,s,r,a,l,u,f=!1){Xf||(Xf=!0,console[console.info?"info":"log"]("<Suspense> is an experimental feature and its API will likely change."));const{p:h,m:g,um:b,n:_,o:{parentNode:E,remove:I}}=u,M=e.props?H_(e.props.timeout):void 0;Lv(M,"Suspense timeout");const P={vnode:e,parent:t,parentComponent:n,isSVG:r,container:o,hiddenContainer:i,anchor:s,deps:0,pendingId:0,timeout:typeof M=="number"?M:-1,activeBranch:null,pendingBranch:null,isInFallback:!0,isHydrating:f,isUnmounted:!1,effects:[],resolve(T=!1){{if(!T&&!P.pendingBranch)throw new Error("suspense.resolve() is called without a pending branch.");if(P.isUnmounted)throw new Error("suspense.resolve() is called on an already unmounted suspense boundary.")}const{vnode:H,activeBranch:ie,pendingBranch:U,pendingId:Z,effects:ce,parentComponent:ye,container:Ie}=P;if(P.isHydrating)P.isHydrating=!1;else if(!T){const ae=ie&&U.transition&&U.transition.mode==="out-in";ae&&(ie.transition.afterLeave=()=>{Z===P.pendingId&&g(U,Ie,Q,0)});let{anchor:Q}=P;ie&&(Q=_(ie),b(ie,ye,P,!0)),ae||g(U,Ie,Q,0)}_i(P,U),P.pendingBranch=null,P.isInFallback=!1;let be=P.parent,O=!1;for(;be;){if(be.pendingBranch){be.effects.push(...ce),O=!0;break}be=be.parent}O||Il(ce),P.effects=[],us(H,"onResolve")},fallback(T){if(!P.pendingBranch)return;const{vnode:H,activeBranch:ie,parentComponent:U,container:Z,isSVG:ce}=P;us(H,"onFallback");const ye=_(ie),Ie=()=>{!P.isInFallback||(h(null,T,Z,ye,U,null,ce,a,l),_i(P,T))},be=T.transition&&T.transition.mode==="out-in";be&&(ie.transition.afterLeave=Ie),P.isInFallback=!0,b(ie,U,null,!0),be||Ie()},move(T,H,ie){P.activeBranch&&g(P.activeBranch,T,H,ie),P.container=T},next(){return P.activeBranch&&_(P.activeBranch)},registerDep(T,H){const ie=!!P.pendingBranch;ie&&P.deps++;const U=T.vnode.el;T.asyncDep.catch(Z=>{is(Z,T,0)}).then(Z=>{if(T.isUnmounted||P.isUnmounted||P.pendingId!==T.suspenseId)return;T.asyncResolved=!0;const{vnode:ce}=T;ns(ce),ec(T,Z,!1),U&&(ce.el=U);const ye=!U&&T.subTree.el;H(T,ce,E(U||T.subTree.el),U?null:_(T.subTree),P,r,l),ye&&I(ye),Bl(T,ce.el),os(),ie&&--P.deps===0&&P.resolve()})},unmount(T,H){P.isUnmounted=!0,P.activeBranch&&b(P.activeBranch,n,T,H),P.pendingBranch&&b(P.pendingBranch,n,T,H)}};return P}function l1(e,t,n,o,i,s,r,a,l){const u=t.suspense=Fl(t,o,n,e.parentNode,document.createElement("div"),null,i,s,r,a,!0),f=l(e,u.pendingBranch=t.ssContent,n,u,s,r);return u.deps===0&&u.resolve(),f}function c1(e){const{shapeFlag:t,children:n}=e,o=t&32;e.ssContent=Zf(o?n.default:n),e.ssFallback=o?Zf(n.fallback):ke(Mt)}function Zf(e){let t;if(Le(e)){const n=vi&&e._c;n&&(e._d=!1,B()),e=e(),n&&(e._d=!0,t=nn,Cp())}if(Se(e)){const n=Nl(e);n||le("<Suspense> slots expect a single root node."),e=n}return e=sn(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function u1(e,t){t&&t.pendingBranch?Se(e)?t.effects.push(...e):t.effects.push(e):Il(e)}function _i(e,t){e.activeBranch=t;const{vnode:n,parentComponent:o}=e,i=n.el=t.el;o&&o.subTree===n&&(o.vnode.el=i,Bl(o,i))}function ds(e,t){if(!at)le("provide() can only be used inside setup().");else{let n=at.provides;const o=at.parent&&at.parent.provides;o===n&&(n=at.provides=Object.create(o)),n[e]=t}}function fs(e,t,n=!1){const o=at||gt;if(o){const i=o.parent==null?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides;if(i&&e in i)return i[e];if(arguments.length>1)return n&&Le(t)?t.call(o.proxy):t;le(`injection "${String(e)}" not found.`)}else le("inject() can only be used inside setup() or functional components.")}const Dr={};function ht(e,t,n){return Le(t)||le("`watch(fn, options?)` signature has been moved to a separate API. Use `watchEffect(fn, options?)` instead. `watch` now only supports `watch(source, cb, options?) signature."),ep(e,t,n)}function ep(e,t,{immediate:n,deep:o,flush:i,onTrack:s,onTrigger:r}=Xe){t||(n!==void 0&&le('watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.'),o!==void 0&&le('watch() "deep" option is only respected when using the watch(source, callback, options?) signature.'));const a=H=>{le("Invalid watch source: ",H,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},l=V_()===(at==null?void 0:at.scope)?at:null;let u,f=!1,h=!1;if(pt(e)?(u=()=>e.value,f=Ar(e)):Lo(e)?(u=()=>e,o=!0):Se(e)?(h=!0,f=e.some(H=>Lo(H)||Ar(H)),u=()=>e.map(H=>{if(pt(H))return H.value;if(Lo(H))return No(H);if(Le(H))return Mn(H,l,2);a(H)})):Le(e)?t?u=()=>Mn(e,l,2):u=()=>{if(!(l&&l.isUnmounted))return g&&g(),cn(e,l,3,[b])}:(u=qt,a(e)),t&&o){const H=u;u=()=>No(H())}let g,b=H=>{g=P.onStop=()=>{Mn(H,l,4)}},_;if(ws)if(b=qt,t?n&&cn(t,l,3,[u(),h?[]:void 0,b]):u(),i==="sync"){const H=f0();_=H.__watcherHandles||(H.__watcherHandles=[])}else return qt;let E=h?new Array(e.length).fill(Dr):Dr;const I=()=>{if(!!P.active)if(t){const H=P.run();(o||f||(h?H.some((ie,U)=>Zi(ie,E[U])):Zi(H,E)))&&(g&&g(),cn(t,l,3,[H,E===Dr?void 0:h&&E[0]===Dr?[]:E,b]),E=H)}else P.run()};I.allowRecurse=!!t;let M;i==="sync"?M=I:i==="post"?M=()=>Vt(I,l&&l.suspense):(I.pre=!0,l&&(I.id=l.uid),M=()=>Ir(I));const P=new Cl(u,M);P.onTrack=s,P.onTrigger=r,t?n?I():E=P.run():i==="post"?Vt(P.run.bind(P),l&&l.suspense):P.run();const T=()=>{P.stop(),l&&l.scope&&gl(l.scope.effects,P)};return _&&_.push(T),T}function d1(e,t,n){const o=this.proxy,i=nt(e)?e.includes(".")?tp(o,e):()=>o[e]:e.bind(o,o);let s;Le(t)?s=t:(s=t.handler,n=t);const r=at;co(this);const a=ep(i,s.bind(o),n);return r?co(r):uo(),a}function tp(e,t){const n=t.split(".");return()=>{let o=e;for(let i=0;i<n.length&&o;i++)o=o[n[i]];return o}}function No(e,t){if(!Ye(e)||e.__v_skip||(t=t||new Set,t.has(e)))return e;if(t.add(e),pt(e))No(e.value,t);else if(Se(e))for(let n=0;n<e.length;n++)No(e[n],t);else if(hi(e)||So(e))e.forEach(n=>{No(n,t)});else if(lf(e))for(const n in e)No(e[n],t);return e}function Ne(e){return Le(e)?{setup:e,name:e.name}:e}const ps=e=>!!e.type.__asyncLoader,Ul=e=>e.type.__isKeepAlive;function f1(e,t){np(e,"a",t)}function p1(e,t){np(e,"da",t)}function np(e,t,n=at){const o=e.__wdc||(e.__wdc=()=>{let i=n;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Rr(t,o,n),n){let i=n.parent;for(;i&&i.parent;)Ul(i.parent.vnode)&&h1(o,t,n,i),i=i.parent}}function h1(e,t,n,o){const i=Rr(t,e,o,!0);Bo(()=>{gl(o[t],i)},n)}function Rr(e,t,n=at,o=!1){if(n){const i=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...r)=>{if(n.isUnmounted)return;To(),co(n);const a=cn(t,n,e,r);return uo(),Oo(),a});return o?i.unshift(s):i.push(s),s}else{const i=Po(Sl[e].replace(/ hook$/,""));le(`${i} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`)}}const Dn=e=>(t,n=at)=>(!ws||e==="sp")&&Rr(e,(...o)=>t(...o),n),Tt=Dn("bm"),Ot=Dn("m"),m1=Dn("bu"),g1=Dn("u"),op=Dn("bum"),Bo=Dn("um"),y1=Dn("sp"),w1=Dn("rtg"),b1=Dn("rtc");function _1(e,t=at){Rr("ec",e,t)}function ip(e){F_(e)&&le("Do not use built-in directive ids as custom directive id: "+e)}function G(e,t){const n=gt;if(n===null)return le("withDirectives can only be used inside render functions."),e;const o=Hr(n)||n.proxy,i=e.dirs||(e.dirs=[]);for(let s=0;s<t.length;s++){let[r,a,l,u=Xe]=t[s];r&&(Le(r)&&(r={mounted:r,updated:r}),r.deep&&No(a),i.push({dir:r,instance:o,value:a,oldValue:void 0,arg:l,modifiers:u}))}return e}function Fo(e,t,n,o){const i=e.dirs,s=t&&t.dirs;for(let r=0;r<i.length;r++){const a=i[r];s&&(a.oldValue=s[r].value);let l=a.dir[o];l&&(To(),cn(l,n,8,[e.el,a,e,t]),Oo())}}const jl="components";function Uo(e,t){return x1(jl,e,!0,t)||e}const v1=Symbol();function x1(e,t,n=!0,o=!1){const i=gt||at;if(i){const s=i.type;if(e===jl){const a=nc(s,!1);if(a&&(a===t||a===yn(t)||a===Ao(yn(t))))return s}const r=sp(i[e]||s[e],t)||sp(i.appContext[e],t);if(!r&&o)return s;if(n&&!r){const a=e===jl?`
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.`:"";le(`Failed to resolve ${e.slice(0,-1)}: ${t}${a}`)}return r}else le(`resolve${Ao(e.slice(0,-1))} can only be used in render() or setup().`)}function sp(e,t){return e&&(e[t]||e[yn(t)]||e[Ao(yn(t))])}function st(e,t,n,o){let i;const s=n&&n[o];if(Se(e)||nt(e)){i=new Array(e.length);for(let r=0,a=e.length;r<a;r++)i[r]=t(e[r],r,void 0,s&&s[r])}else if(typeof e=="number"){Number.isInteger(e)||le(`The v-for range expect an integer value but got ${e}.`),i=new Array(e);for(let r=0;r<e;r++)i[r]=t(r+1,r,void 0,s&&s[r])}else if(Ye(e))if(e[Symbol.iterator])i=Array.from(e,(r,a)=>t(r,a,void 0,s&&s[a]));else{const r=Object.keys(e);i=new Array(r.length);for(let a=0,l=r.length;a<l;a++){const u=r[a];i[a]=t(e[u],u,a,s&&s[a])}}else i=[];return n&&(n[o]=i),i}function un(e,t,n={},o,i){if(gt.isCE||gt.parent&&ps(gt.parent)&&gt.parent.isCE)return t!=="default"&&(n.name=t),ke("slot",n,o&&o());let s=e[t];s&&s.length>1&&(le("SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template."),s=()=>[]),s&&s._c&&(s._d=!1),B();const r=s&&rp(s(n)),a=on(Ue,{key:n.key||r&&r.key||`_${t}`},r||(o?o():[]),r&&e._===1?64:-2);return!i&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),s&&s._c&&(s._d=!0),a}function rp(e){return e.some(t=>xi(t)?!(t.type===Mt||t.type===Ue&&!rp(t.children)):!0)?e:null}const Hl=e=>e?Tp(e)?Hr(e)||e.proxy:Hl(e.parent):null,jo=ft(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>gi(e.props),$attrs:e=>gi(e.attrs),$slots:e=>gi(e.slots),$refs:e=>gi(e.refs),$parent:e=>Hl(e.parent),$root:e=>Hl(e.root),$emit:e=>e.emit,$options:e=>Wl(e),$forceUpdate:e=>e.f||(e.f=()=>Ir(e.update)),$nextTick:e=>e.n||(e.n=wi.bind(e.proxy)),$watch:e=>d1.bind(e)}),ql=e=>e==="_"||e==="$",zl=(e,t)=>e!==Xe&&!e.__isScriptSetup&&je(e,t),ap={get({_:e},t){const{ctx:n,setupState:o,data:i,props:s,accessCache:r,type:a,appContext:l}=e;if(t==="__isVue")return!0;let u;if(t[0]!=="$"){const b=r[t];if(b!==void 0)switch(b){case 1:return o[t];case 2:return i[t];case 4:return n[t];case 3:return s[t]}else{if(zl(o,t))return r[t]=1,o[t];if(i!==Xe&&je(i,t))return r[t]=2,i[t];if((u=e.propsOptions[0])&&je(u,t))return r[t]=3,s[t];if(n!==Xe&&je(n,t))return r[t]=4,n[t];Vl&&(r[t]=0)}}const f=jo[t];let h,g;if(f)return t==="$attrs"&&(zt(e,"get",t),Mr()),f(e);if((h=a.__cssModules)&&(h=h[t]))return h;if(n!==Xe&&je(n,t))return r[t]=4,n[t];if(g=l.config.globalProperties,je(g,t))return g[t];gt&&(!nt(t)||t.indexOf("__v")!==0)&&(i!==Xe&&ql(t[0])&&je(i,t)?le(`Property ${JSON.stringify(t)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`):e===gt&&le(`Property ${JSON.stringify(t)} was accessed during render but is not defined on instance.`))},set({_:e},t,n){const{data:o,setupState:i,ctx:s}=e;return zl(i,t)?(i[t]=n,!0):i.__isScriptSetup&&je(i,t)?(le(`Cannot mutate <script setup> binding "${t}" from Options API.`),!1):o!==Xe&&je(o,t)?(o[t]=n,!0):je(e.props,t)?(le(`Attempting to mutate prop "${t}". Props are readonly.`),!1):t[0]==="$"&&t.slice(1)in e?(le(`Attempting to mutate public property "${t}". Properties starting with $ are reserved and readonly.`),!1):(t in e.appContext.config.globalProperties?Object.defineProperty(s,t,{enumerable:!0,configurable:!0,value:n}):s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:i,propsOptions:s}},r){let a;return!!n[r]||e!==Xe&&je(e,r)||zl(t,r)||(a=s[0])&&je(a,r)||je(o,r)||je(jo,r)||je(i.config.globalProperties,r)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:je(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};ap.ownKeys=e=>(le("Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead."),Reflect.ownKeys(e));function C1(e){const t={};return Object.defineProperty(t,"_",{configurable:!0,enumerable:!1,get:()=>e}),Object.keys(jo).forEach(n=>{Object.defineProperty(t,n,{configurable:!0,enumerable:!1,get:()=>jo[n](e),set:qt})}),t}function $1(e){const{ctx:t,propsOptions:[n]}=e;n&&Object.keys(n).forEach(o=>{Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>e.props[o],set:qt})})}function E1(e){const{ctx:t,setupState:n}=e;Object.keys(Fe(n)).forEach(o=>{if(!n.__isScriptSetup){if(ql(o[0])){le(`setup() return property ${JSON.stringify(o)} should not start with "$" or "_" which are reserved prefixes for Vue internals.`);return}Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>n[o],set:qt})}})}function k1(){const e=Object.create(null);return(t,n)=>{e[n]?le(`${t} property "${n}" is already defined in ${e[n]}.`):e[n]=t}}let Vl=!0;function S1(e){const t=Wl(e),n=e.proxy,o=e.ctx;Vl=!1,t.beforeCreate&&lp(t.beforeCreate,e,"bc");const{data:i,computed:s,methods:r,watch:a,provide:l,inject:u,created:f,beforeMount:h,mounted:g,beforeUpdate:b,updated:_,activated:E,deactivated:I,beforeDestroy:M,beforeUnmount:P,destroyed:T,unmounted:H,render:ie,renderTracked:U,renderTriggered:Z,errorCaptured:ce,serverPrefetch:ye,expose:Ie,inheritAttrs:be,components:O,directives:ae,filters:Q}=t,Ee=k1();{const[K]=e.propsOptions;if(K)for(const N in K)Ee("Props",N)}if(u&&A1(u,o,Ee,e.appContext.config.unwrapInjectedRef),r)for(const K in r){const N=r[K];Le(N)?(Object.defineProperty(o,K,{value:N.bind(n),configurable:!0,enumerable:!0,writable:!0}),Ee("Methods",K)):le(`Method "${K}" has type "${typeof N}" in the component definition. Did you reference the function correctly?`)}if(i){Le(i)||le("The data option must be a function. Plain object usage is no longer supported.");const K=i.call(n,n);if(fr(K)&&le("data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>."),!Ye(K))le("data() should return an object.");else{e.data=kr(K);for(const N in K)Ee("Data",N),ql(N[0])||Object.defineProperty(o,N,{configurable:!0,enumerable:!0,get:()=>K[N],set:qt})}}if(Vl=!0,s)for(const K in s){const N=s[K],we=Le(N)?N.bind(n,n):Le(N.get)?N.get.bind(n,n):qt;we===qt&&le(`Computed property "${K}" has no getter.`);const Ae=!Le(N)&&Le(N.set)?N.set.bind(n):()=>{le(`Write operation failed: computed property "${K}" is readonly.`)},De=xn({get:we,set:Ae});Object.defineProperty(o,K,{enumerable:!0,configurable:!0,get:()=>De.value,set:he=>De.value=he}),Ee("Computed",K)}if(a)for(const K in a)cp(a[K],o,n,K);if(l){const K=Le(l)?l.call(n):l;Reflect.ownKeys(K).forEach(N=>{ds(N,K[N])})}f&&lp(f,e,"c");function D(K,N){Se(N)?N.forEach(we=>K(we.bind(n))):N&&K(N.bind(n))}if(D(Tt,h),D(Ot,g),D(m1,b),D(g1,_),D(f1,E),D(p1,I),D(_1,ce),D(b1,U),D(w1,Z),D(op,P),D(Bo,H),D(y1,ye),Se(Ie))if(Ie.length){const K=e.exposed||(e.exposed={});Ie.forEach(N=>{Object.defineProperty(K,N,{get:()=>n[N],set:we=>n[N]=we})})}else e.exposed||(e.exposed={});ie&&e.render===qt&&(e.render=ie),be!=null&&(e.inheritAttrs=be),O&&(e.components=O),ae&&(e.directives=ae)}function A1(e,t,n=qt,o=!1){Se(e)&&(e=Kl(e));for(const i in e){const s=e[i];let r;Ye(s)?"default"in s?r=fs(s.from||i,s.default,!0):r=fs(s.from||i):r=fs(s),pt(r)?o?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>r.value,set:a=>r.value=a}):(le(`injected property "${i}" is a ref and will be auto-unwrapped and no longer needs \`.value\` in the next minor release. To opt-in to the new behavior now, set \`app.config.unwrapInjectedRef = true\` (this config is temporary and will not be needed in the future.)`),t[i]=r):t[i]=r,n("Inject",i)}}function lp(e,t,n){cn(Se(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function cp(e,t,n,o){const i=o.includes(".")?tp(n,o):()=>n[o];if(nt(e)){const s=t[e];Le(s)?ht(i,s):le(`Invalid watch handler specified by key "${e}"`,s)}else if(Le(e))ht(i,e.bind(n));else if(Ye(e))if(Se(e))e.forEach(s=>cp(s,t,n,o));else{const s=Le(e.handler)?e.handler.bind(n):t[e.handler];Le(s)?ht(i,s,e):le(`Invalid watch handler specified by key "${e.handler}"`,s)}else le(`Invalid watch option: "${o}"`,e)}function Wl(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:i,optionsCache:s,config:{optionMergeStrategies:r}}=e.appContext,a=s.get(t);let l;return a?l=a:!i.length&&!n&&!o?l=t:(l={},i.length&&i.forEach(u=>Nr(l,u,r,!0)),Nr(l,t,r)),Ye(t)&&s.set(t,l),l}function Nr(e,t,n,o=!1){const{mixins:i,extends:s}=t;s&&Nr(e,s,n,!0),i&&i.forEach(r=>Nr(e,r,n,!0));for(const r in t)if(o&&r==="expose")le('"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.');else{const a=P1[r]||n&&n[r];e[r]=a?a(e[r],t[r]):t[r]}return e}const P1={data:up,props:Ho,emits:Ho,methods:Ho,computed:Ho,beforeCreate:Lt,created:Lt,beforeMount:Lt,mounted:Lt,beforeUpdate:Lt,updated:Lt,beforeDestroy:Lt,beforeUnmount:Lt,destroyed:Lt,unmounted:Lt,activated:Lt,deactivated:Lt,errorCaptured:Lt,serverPrefetch:Lt,components:Ho,directives:Ho,watch:T1,provide:up,inject:I1};function up(e,t){return t?e?function(){return ft(Le(e)?e.call(this,this):e,Le(t)?t.call(this,this):t)}:t:e}function I1(e,t){return Ho(Kl(e),Kl(t))}function Kl(e){if(Se(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Lt(e,t){return e?[...new Set([].concat(e,t))]:t}function Ho(e,t){return e?ft(ft(Object.create(null),e),t):t}function T1(e,t){if(!e)return t;if(!t)return e;const n=ft(Object.create(null),e);for(const o in t)n[o]=Lt(e[o],t[o]);return n}function O1(e,t,n,o=!1){const i={},s={};mr(s,Ur,1),e.propsDefaults=Object.create(null),dp(e,t,i,s);for(const r in e.propsOptions[0])r in i||(i[r]=void 0);gp(t||{},i,e),n?e.props=o?i:_v(i):e.type.props?e.props=i:e.props=s,e.attrs=s}function L1(e){for(;e;){if(e.type.__hmrId)return!0;e=e.parent}}function M1(e,t,n,o){const{props:i,attrs:s,vnode:{patchFlag:r}}=e,a=Fe(i),[l]=e.propsOptions;let u=!1;if(!L1(e)&&(o||r>0)&&!(r&16)){if(r&8){const f=e.vnode.dynamicProps;for(let h=0;h<f.length;h++){let g=f[h];if(Tr(e.emitsOptions,g))continue;const b=t[g];if(l)if(je(s,g))b!==s[g]&&(s[g]=b,u=!0);else{const _=yn(g);i[_]=Gl(l,a,_,b,e,!1)}else b!==s[g]&&(s[g]=b,u=!0)}}}else{dp(e,t,i,s)&&(u=!0);let f;for(const h in a)(!t||!je(t,h)&&((f=On(h))===h||!je(t,f)))&&(l?n&&(n[h]!==void 0||n[f]!==void 0)&&(i[h]=Gl(l,a,h,void 0,e,!0)):delete i[h]);if(s!==a)for(const h in s)(!t||!je(t,h)&&!0)&&(delete s[h],u=!0)}u&&Ln(e,"set","$attrs"),gp(t||{},i,e)}function dp(e,t,n,o){const[i,s]=e.propsOptions;let r=!1,a;if(t)for(let l in t){if(pr(l))continue;const u=t[l];let f;i&&je(i,f=yn(l))?!s||!s.includes(f)?n[f]=u:(a||(a={}))[f]=u:Tr(e.emitsOptions,l)||(!(l in o)||u!==o[l])&&(o[l]=u,r=!0)}if(s){const l=Fe(n),u=a||Xe;for(let f=0;f<s.length;f++){const h=s[f];n[h]=Gl(i,l,h,u[h],e,!je(u,h))}}return r}function Gl(e,t,n,o,i,s){const r=e[n];if(r!=null){const a=je(r,"default");if(a&&o===void 0){const l=r.default;if(r.type!==Function&&Le(l)){const{propsDefaults:u}=i;n in u?o=u[n]:(co(i),o=u[n]=l.call(null,t),uo())}else o=l}r[0]&&(s&&!a?o=!1:r[1]&&(o===""||o===On(n))&&(o=!0))}return o}function fp(e,t,n=!1){const o=t.propsCache,i=o.get(e);if(i)return i;const s=e.props,r={},a=[];let l=!1;if(!Le(e)){const f=h=>{l=!0;const[g,b]=fp(h,t,!0);ft(r,g),b&&a.push(...b)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!s&&!l)return Ye(e)&&o.set(e,pi),pi;if(Se(s))for(let f=0;f<s.length;f++){nt(s[f])||le("props must be strings when using array syntax.",s[f]);const h=yn(s[f]);pp(h)&&(r[h]=Xe)}else if(s){Ye(s)||le("invalid props options",s);for(const f in s){const h=yn(f);if(pp(h)){const g=s[f],b=r[h]=Se(g)||Le(g)?{type:g}:Object.assign({},g);if(b){const _=mp(Boolean,b.type),E=mp(String,b.type);b[0]=_>-1,b[1]=E<0||_<E,(_>-1||je(b,"default"))&&a.push(h)}}}}const u=[r,a];return Ye(e)&&o.set(e,u),u}function pp(e){return e[0]!=="$"?!0:(le(`Invalid prop name: "${e}" is a reserved property.`),!1)}function Yl(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function hp(e,t){return Yl(e)===Yl(t)}function mp(e,t){return Se(t)?t.findIndex(n=>hp(n,e)):Le(t)&&hp(t,e)?0:-1}function gp(e,t,n){const o=Fe(t),i=n.propsOptions[0];for(const s in i){let r=i[s];r!=null&&D1(s,o[s],r,!je(e,s)&&!je(e,On(s)))}}function D1(e,t,n,o){const{type:i,required:s,validator:r}=n;if(s&&o){le('Missing required prop: "'+e+'"');return}if(!(t==null&&!n.required)){if(i!=null&&i!==!0){let a=!1;const l=Se(i)?i:[i],u=[];for(let f=0;f<l.length&&!a;f++){const{valid:h,expectedType:g}=N1(t,l[f]);u.push(g||""),a=h}if(!a){le(B1(e,t,u));return}}r&&!r(t)&&le('Invalid prop: custom validator check failed for prop "'+e+'".')}}const R1=Zn("String,Number,Boolean,Function,Symbol,BigInt");function N1(e,t){let n;const o=Yl(t);if(R1(o)){const i=typeof e;n=i===o.toLowerCase(),!n&&i==="object"&&(n=e instanceof t)}else o==="Object"?n=Ye(e):o==="Array"?n=Se(e):o==="null"?n=e===null:n=e instanceof t;return{valid:n,expectedType:o}}function B1(e,t,n){let o=`Invalid prop: type check failed for prop "${e}". Expected ${n.map(Ao).join(" | ")}`;const i=n[0],s=yl(t),r=yp(t,i),a=yp(t,s);return n.length===1&&wp(i)&&!F1(i,s)&&(o+=` with value ${r}`),o+=`, got ${s} `,wp(s)&&(o+=`with value ${a}.`),o}function yp(e,t){return t==="String"?`"${e}"`:t==="Number"?`${Number(e)}`:`${e}`}function wp(e){return["string","number","boolean"].some(n=>e.toLowerCase()===n)}function F1(...e){return e.some(t=>t.toLowerCase()==="boolean")}const bp=e=>e[0]==="_"||e==="$stable",Jl=e=>Se(e)?e.map(sn):[sn(e)],U1=(e,t,n)=>{if(t._n)return t;const o=Qe((...i)=>(at&&le(`Slot "${e}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`),Jl(t(...i))),n);return o._c=!1,o},_p=(e,t,n)=>{const o=e._ctx;for(const i in e){if(bp(i))continue;const s=e[i];if(Le(s))t[i]=U1(i,s,o);else if(s!=null){le(`Non-function value encountered for slot "${i}". Prefer function slots for better performance.`);const r=Jl(s);t[i]=()=>r}}},vp=(e,t)=>{Ul(e.vnode)||le("Non-function value encountered for default slot. Prefer function slots for better performance.");const n=Jl(t);e.slots.default=()=>n},j1=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=Fe(t),mr(t,"_",n)):_p(t,e.slots={})}else e.slots={},t&&vp(e,t);mr(e.slots,Ur,1)},H1=(e,t,n)=>{const{vnode:o,slots:i}=e;let s=!0,r=Xe;if(o.shapeFlag&32){const a=t._;a?Do?ft(i,t):n&&a===1?s=!1:(ft(i,t),!n&&a===1&&delete i._):(s=!t.$stable,_p(t,i)),r=t}else t&&(vp(e,t),r={default:1});if(s)for(const a in i)!bp(a)&&!(a in r)&&delete i[a]};function xp(){return{app:null,config:{isNativeTag:sf,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 q1=0;function z1(e,t){return function(o,i=null){Le(o)||(o=Object.assign({},o)),i!=null&&!Ye(i)&&(le("root props passed to app.mount() must be an object."),i=null);const s=xp(),r=new Set;let a=!1;const l=s.app={_uid:q1++,_component:o,_props:i,_container:null,_context:s,_instance:null,version:Mp,get config(){return s.config},set config(u){le("app.config cannot be replaced. Modify individual options instead.")},use(u,...f){return r.has(u)?le("Plugin has already been applied to target app."):u&&Le(u.install)?(r.add(u),u.install(l,...f)):Le(u)?(r.add(u),u(l,...f)):le('A plugin must either be a function or an object with an "install" function.'),l},mixin(u){return s.mixins.includes(u)?le("Mixin has already been applied to target app"+(u.name?`: ${u.name}`:"")):s.mixins.push(u),l},component(u,f){return Zl(u,s.config),f?(s.components[u]&&le(`Component "${u}" has already been registered in target app.`),s.components[u]=f,l):s.components[u]},directive(u,f){return ip(u),f?(s.directives[u]&&le(`Directive "${u}" has already been registered in target app.`),s.directives[u]=f,l):s.directives[u]},mount(u,f,h){if(a)le("App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. `const createMyApp = () => createApp(App)`");else{u.__vue_app__&&le("There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling `app.unmount()` first.");const g=ke(o,i);return g.appContext=s,s.reload=()=>{e(ao(g),u,h)},f&&t?t(g,u):e(g,u,h),a=!0,l._container=u,u.__vue_app__=l,l._instance=g.component,qv(l,Mp),Hr(g.component)||g.component.proxy}},unmount(){a?(e(null,l._container),l._instance=null,zv(l),delete l._container.__vue_app__):le("Cannot unmount an app that is not mounted.")},provide(u,f){return u in s.provides&&le(`App already provides property with key "${String(u)}". It will be overwritten with the new value.`),s.provides[u]=f,l}};return l}}function Ql(e,t,n,o,i=!1){if(Se(e)){e.forEach((g,b)=>Ql(g,t&&(Se(t)?t[b]:t),n,o,i));return}if(ps(o)&&!i)return;const s=o.shapeFlag&4?Hr(o.component)||o.component.proxy:o.el,r=i?null:s,{i:a,r:l}=e;if(!a){le("Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.");return}const u=t&&t.r,f=a.refs===Xe?a.refs={}:a.refs,h=a.setupState;if(u!=null&&u!==l&&(nt(u)?(f[u]=null,je(h,u)&&(h[u]=null)):pt(u)&&(u.value=null)),Le(l))Mn(l,a,12,[r,f]);else{const g=nt(l),b=pt(l);if(g||b){const _=()=>{if(e.f){const E=g?je(h,l)?h[l]:f[l]:l.value;i?Se(E)&&gl(E,s):Se(E)?E.includes(s)||E.push(s):g?(f[l]=[s],je(h,l)&&(h[l]=f[l])):(l.value=[s],e.k&&(f[e.k]=l.value))}else g?(f[l]=r,je(h,l)&&(h[l]=r)):b?(l.value=r,e.k&&(f[e.k]=r)):le("Invalid template ref type:",l,`(${typeof l})`)};r?(_.id=-1,Vt(_,n)):_()}else le("Invalid template ref type:",l,`(${typeof l})`)}}let hs,so;function Rn(e,t){e.appContext.config.performance&&Br()&&so.mark(`vue-${t}-${e.uid}`),Gv(e,t,Br()?so.now():Date.now())}function Nn(e,t){if(e.appContext.config.performance&&Br()){const n=`vue-${t}-${e.uid}`,o=n+":end";so.mark(o),so.measure(`<${qr(e,e.type)}> ${t}`,n,o),so.clearMarks(n),so.clearMarks(o)}Yv(e,t,Br()?so.now():Date.now())}function Br(){return hs!==void 0||(typeof window<"u"&&window.performance?(hs=!0,so=window.performance):hs=!1),hs}function V1(){const e=[];if(e.length){const t=e.length>1;console.warn(`Feature flag${t?"s":""} ${e.join(", ")} ${t?"are":"is"} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.

For more details, see https://link.vuejs.org/feature-flags.`)}}const Vt=u1;function W1(e){return K1(e)}function K1(e,t){V1();const n=uf();n.__VUE__=!0,Vf(n.__VUE_DEVTOOLS_GLOBAL_HOOK__,n);const{insert:o,remove:i,patchProp:s,createElement:r,createText:a,createComment:l,setText:u,setElementText:f,parentNode:h,nextSibling:g,setScopeId:b=qt,insertStaticContent:_}=e,E=(v,A,F,R=null,W=null,se=null,me=!1,X=null,ne=Do?!1:!!A.dynamicChildren)=>{if(v===A)return;v&&!ro(v,A)&&(R=it(v),ue(v,W,se,!0),v=null),A.patchFlag===-2&&(ne=!1,A.dynamicChildren=null);const{type:te,ref:ve,shapeFlag:q}=A;switch(te){case ms:I(v,A,F,R);break;case Mt:M(v,A,F,R);break;case gs:v==null?P(A,F,R,me):T(v,A,F,me);break;case Ue:ae(v,A,F,R,W,se,me,X,ne);break;default:q&1?U(v,A,F,R,W,se,me,X,ne):q&6?Q(v,A,F,R,W,se,me,X,ne):q&64||q&128?te.process(v,A,F,R,W,se,me,X,ne,ut):le("Invalid VNode type:",te,`(${typeof te})`)}ve!=null&&W&&Ql(ve,v&&v.ref,se,A||v,!A)},I=(v,A,F,R)=>{if(v==null)o(A.el=a(A.children),F,R);else{const W=A.el=v.el;A.children!==v.children&&u(W,A.children)}},M=(v,A,F,R)=>{v==null?o(A.el=l(A.children||""),F,R):A.el=v.el},P=(v,A,F,R)=>{[v.el,v.anchor]=_(v.children,A,F,R,v.el,v.anchor)},T=(v,A,F,R)=>{if(A.children!==v.children){const W=g(v.anchor);ie(v),[A.el,A.anchor]=_(A.children,F,W,R)}else A.el=v.el,A.anchor=v.anchor},H=({el:v,anchor:A},F,R)=>{let W;for(;v&&v!==A;)W=g(v),o(v,F,R),v=W;o(A,F,R)},ie=({el:v,anchor:A})=>{let F;for(;v&&v!==A;)F=g(v),i(v),v=F;i(A)},U=(v,A,F,R,W,se,me,X,ne)=>{me=me||A.type==="svg",v==null?Z(A,F,R,W,se,me,X,ne):Ie(v,A,W,se,me,X,ne)},Z=(v,A,F,R,W,se,me,X)=>{let ne,te;const{type:ve,props:q,shapeFlag:xe,transition:m,dirs:w}=v;if(ne=v.el=r(v.type,se,q&&q.is,q),xe&8?f(ne,v.children):xe&16&&ye(v.children,ne,null,R,W,se&&ve!=="foreignObject",me,X),w&&Fo(v,null,R,"created"),ce(ne,v,v.scopeId,me,R),q){for(const k in q)k!=="value"&&!pr(k)&&s(ne,k,null,q[k],se,v.children,R,W,tt);"value"in q&&s(ne,"value",null,q.value),(te=q.onVnodeBeforeMount)&&vn(te,R,v)}Object.defineProperty(ne,"__vnode",{value:v,enumerable:!1}),Object.defineProperty(ne,"__vueParentComponent",{value:R,enumerable:!1}),w&&Fo(v,null,R,"beforeMount");const C=(!W||W&&!W.pendingBranch)&&m&&!m.persisted;C&&m.beforeEnter(ne),o(ne,A,F),((te=q&&q.onVnodeMounted)||C||w)&&Vt(()=>{te&&vn(te,R,v),C&&m.enter(ne),w&&Fo(v,null,R,"mounted")},W)},ce=(v,A,F,R,W)=>{if(F&&b(v,F),R)for(let se=0;se<R.length;se++)b(v,R[se]);if(W){let se=W.subTree;if(se.patchFlag>0&&se.patchFlag&2048&&(se=Nl(se.children)||se),A===se){const me=W.vnode;ce(v,me,me.scopeId,me.slotScopeIds,W.parent)}}},ye=(v,A,F,R,W,se,me,X,ne=0)=>{for(let te=ne;te<v.length;te++){const ve=v[te]=X?lo(v[te]):sn(v[te]);E(null,ve,A,F,R,W,se,me,X)}},Ie=(v,A,F,R,W,se,me)=>{const X=A.el=v.el;let{patchFlag:ne,dynamicChildren:te,dirs:ve}=A;ne|=v.patchFlag&16;const q=v.props||Xe,xe=A.props||Xe;let m;F&&qo(F,!1),(m=xe.onVnodeBeforeUpdate)&&vn(m,F,A,v),ve&&Fo(A,v,F,"beforeUpdate"),F&&qo(F,!0),Do&&(ne=0,me=!1,te=null);const w=W&&A.type!=="foreignObject";if(te?(be(v.dynamicChildren,te,X,F,R,w,se),F&&F.type.__hmrId&&Fr(v,A)):me||we(v,A,X,null,F,R,w,se,!1),ne>0){if(ne&16)O(X,A,q,xe,F,R,W);else if(ne&2&&q.class!==xe.class&&s(X,"class",null,xe.class,W),ne&4&&s(X,"style",q.style,xe.style,W),ne&8){const C=A.dynamicProps;for(let k=0;k<C.length;k++){const L=C[k],S=q[L],V=xe[L];(V!==S||L==="value")&&s(X,L,S,V,W,v.children,F,R,tt)}}ne&1&&v.children!==A.children&&f(X,A.children)}else!me&&te==null&&O(X,A,q,xe,F,R,W);((m=xe.onVnodeUpdated)||ve)&&Vt(()=>{m&&vn(m,F,A,v),ve&&Fo(A,v,F,"updated")},R)},be=(v,A,F,R,W,se,me)=>{for(let X=0;X<A.length;X++){const ne=v[X],te=A[X],ve=ne.el&&(ne.type===Ue||!ro(ne,te)||ne.shapeFlag&70)?h(ne.el):F;E(ne,te,ve,null,R,W,se,me,!0)}},O=(v,A,F,R,W,se,me)=>{if(F!==R){if(F!==Xe)for(const X in F)!pr(X)&&!(X in R)&&s(v,X,F[X],null,me,A.children,W,se,tt);for(const X in R){if(pr(X))continue;const ne=R[X],te=F[X];ne!==te&&X!=="value"&&s(v,X,te,ne,me,A.children,W,se,tt)}"value"in R&&s(v,"value",F.value,R.value)}},ae=(v,A,F,R,W,se,me,X,ne)=>{const te=A.el=v?v.el:a(""),ve=A.anchor=v?v.anchor:a("");let{patchFlag:q,dynamicChildren:xe,slotScopeIds:m}=A;(Do||q&2048)&&(q=0,ne=!1,xe=null),m&&(X=X?X.concat(m):m),v==null?(o(te,F,R),o(ve,F,R),ye(A.children,F,ve,W,se,me,X,ne)):q>0&&q&64&&xe&&v.dynamicChildren?(be(v.dynamicChildren,xe,F,W,se,me,X),W&&W.type.__hmrId?Fr(v,A):(A.key!=null||W&&A===W.subTree)&&Fr(v,A,!0)):we(v,A,F,ve,W,se,me,X,ne)},Q=(v,A,F,R,W,se,me,X,ne)=>{A.slotScopeIds=X,v==null?A.shapeFlag&512?W.ctx.activate(A,F,R,me,ne):Ee(A,F,R,W,se,me,ne):D(v,A,ne)},Ee=(v,A,F,R,W,se,me)=>{const X=v.component=e0(v,R,W);if(X.type.__hmrId&&Fv(X),ns(v),Rn(X,"mount"),Ul(v)&&(X.ctx.renderer=ut),Rn(X,"init"),o0(X),Nn(X,"init"),X.asyncDep){if(W&&W.registerDep(X,K),!v.el){const ne=X.subTree=ke(Mt);M(null,ne,A,F)}return}K(X,v,A,F,W,se,me),os(),Nn(X,"mount")},D=(v,A,F)=>{const R=A.component=v.component;if(i1(v,A,F))if(R.asyncDep&&!R.asyncResolved){ns(A),N(R,A,F),os();return}else R.next=A,Nv(R.update),R.update();else A.el=v.el,R.vnode=A},K=(v,A,F,R,W,se,me)=>{const X=()=>{if(v.isMounted){let{next:ve,bu:q,u:xe,parent:m,vnode:w}=v,C=ve,k;ns(ve||v.vnode),qo(v,!1),ve?(ve.el=w.el,N(v,ve,me)):ve=w,q&&mi(q),(k=ve.props&&ve.props.onVnodeBeforeUpdate)&&vn(k,m,ve,w),qo(v,!0),Rn(v,"render");const L=Rl(v);Nn(v,"render");const S=v.subTree;v.subTree=L,Rn(v,"patch"),E(S,L,h(S.el),it(S),v,W,se),Nn(v,"patch"),ve.el=L.el,C===null&&Bl(v,L.el),xe&&Vt(xe,W),(k=ve.props&&ve.props.onVnodeUpdated)&&Vt(()=>vn(k,m,ve,w),W),Wf(v),os()}else{let ve;const{el:q,props:xe}=A,{bm:m,m:w,parent:C}=v,k=ps(A);if(qo(v,!1),m&&mi(m),!k&&(ve=xe&&xe.onVnodeBeforeMount)&&vn(ve,C,A),qo(v,!0),q&&wt){const L=()=>{Rn(v,"render"),v.subTree=Rl(v),Nn(v,"render"),Rn(v,"hydrate"),wt(q,v.subTree,v,W,null),Nn(v,"hydrate")};k?A.type.__asyncLoader().then(()=>!v.isUnmounted&&L()):L()}else{Rn(v,"render");const L=v.subTree=Rl(v);Nn(v,"render"),Rn(v,"patch"),E(null,L,F,R,v,W,se),Nn(v,"patch"),A.el=L.el}if(w&&Vt(w,W),!k&&(ve=xe&&xe.onVnodeMounted)){const L=A;Vt(()=>vn(ve,C,L),W)}(A.shapeFlag&256||C&&ps(C.vnode)&&C.vnode.shapeFlag&256)&&v.a&&Vt(v.a,W),v.isMounted=!0,Vv(v),A=F=R=null}},ne=v.effect=new Cl(X,()=>Ir(te),v.scope),te=v.update=()=>ne.run();te.id=v.uid,qo(v,!0),ne.onTrack=v.rtc?ve=>mi(v.rtc,ve):void 0,ne.onTrigger=v.rtg?ve=>mi(v.rtg,ve):void 0,te.ownerInstance=v,te()},N=(v,A,F)=>{A.component=v;const R=v.vnode.props;v.vnode=A,v.next=null,M1(v,A.props,R,F),H1(v,A.children,F),To(),Uf(),Oo()},we=(v,A,F,R,W,se,me,X,ne=!1)=>{const te=v&&v.children,ve=v?v.shapeFlag:0,q=A.children,{patchFlag:xe,shapeFlag:m}=A;if(xe>0){if(xe&128){De(te,q,F,R,W,se,me,X,ne);return}else if(xe&256){Ae(te,q,F,R,W,se,me,X,ne);return}}m&8?(ve&16&&tt(te,W,se),q!==te&&f(F,q)):ve&16?m&16?De(te,q,F,R,W,se,me,X,ne):tt(te,W,se,!0):(ve&8&&f(F,""),m&16&&ye(q,F,R,W,se,me,X,ne))},Ae=(v,A,F,R,W,se,me,X,ne)=>{v=v||pi,A=A||pi;const te=v.length,ve=A.length,q=Math.min(te,ve);let xe;for(xe=0;xe<q;xe++){const m=A[xe]=ne?lo(A[xe]):sn(A[xe]);E(v[xe],m,F,null,W,se,me,X,ne)}te>ve?tt(v,W,se,!0,!1,q):ye(A,F,R,W,se,me,X,ne,q)},De=(v,A,F,R,W,se,me,X,ne)=>{let te=0;const ve=A.length;let q=v.length-1,xe=ve-1;for(;te<=q&&te<=xe;){const m=v[te],w=A[te]=ne?lo(A[te]):sn(A[te]);if(ro(m,w))E(m,w,F,null,W,se,me,X,ne);else break;te++}for(;te<=q&&te<=xe;){const m=v[q],w=A[xe]=ne?lo(A[xe]):sn(A[xe]);if(ro(m,w))E(m,w,F,null,W,se,me,X,ne);else break;q--,xe--}if(te>q){if(te<=xe){const m=xe+1,w=m<ve?A[m].el:R;for(;te<=xe;)E(null,A[te]=ne?lo(A[te]):sn(A[te]),F,w,W,se,me,X,ne),te++}}else if(te>xe)for(;te<=q;)ue(v[te],W,se,!0),te++;else{const m=te,w=te,C=new Map;for(te=w;te<=xe;te++){const Te=A[te]=ne?lo(A[te]):sn(A[te]);Te.key!=null&&(C.has(Te.key)&&le("Duplicate keys found during update:",JSON.stringify(Te.key),"Make sure keys are unique."),C.set(Te.key,te))}let k,L=0;const S=xe-w+1;let V=!1,Y=0;const oe=new Array(S);for(te=0;te<S;te++)oe[te]=0;for(te=m;te<=q;te++){const Te=v[te];if(L>=S){ue(Te,W,se,!0);continue}let $e;if(Te.key!=null)$e=C.get(Te.key);else for(k=w;k<=xe;k++)if(oe[k-w]===0&&ro(Te,A[k])){$e=k;break}$e===void 0?ue(Te,W,se,!0):(oe[$e-w]=te+1,$e>=Y?Y=$e:V=!0,E(Te,A[$e],F,null,W,se,me,X,ne),L++)}const Oe=V?G1(oe):pi;for(k=Oe.length-1,te=S-1;te>=0;te--){const Te=w+te,$e=A[Te],ze=Te+1<ve?A[Te+1].el:R;oe[te]===0?E(null,$e,F,ze,W,se,me,X,ne):V&&(k<0||te!==Oe[k]?he($e,F,ze,2):k--)}}},he=(v,A,F,R,W=null)=>{const{el:se,type:me,transition:X,children:ne,shapeFlag:te}=v;if(te&6){he(v.component.subTree,A,F,R);return}if(te&128){v.suspense.move(A,F,R);return}if(te&64){me.move(v,A,F,ut);return}if(me===Ue){o(se,A,F);for(let q=0;q<ne.length;q++)he(ne[q],A,F,R);o(v.anchor,A,F);return}if(me===gs){H(v,A,F);return}if(R!==2&&te&1&&X)if(R===0)X.beforeEnter(se),o(se,A,F),Vt(()=>X.enter(se),W);else{const{leave:q,delayLeave:xe,afterLeave:m}=X,w=()=>o(se,A,F),C=()=>{q(se,()=>{w(),m&&m()})};xe?xe(se,w,C):C()}else o(se,A,F)},ue=(v,A,F,R=!1,W=!1)=>{const{type:se,props:me,ref:X,children:ne,dynamicChildren:te,shapeFlag:ve,patchFlag:q,dirs:xe}=v;if(X!=null&&Ql(X,null,F,v,!0),ve&256){A.ctx.deactivate(v);return}const m=ve&1&&xe,w=!ps(v);let C;if(w&&(C=me&&me.onVnodeBeforeUnmount)&&vn(C,A,v),ve&6)Me(v.component,F,R);else{if(ve&128){v.suspense.unmount(F,R);return}m&&Fo(v,null,A,"beforeUnmount"),ve&64?v.type.remove(v,A,F,W,ut,R):te&&(se!==Ue||q>0&&q&64)?tt(te,A,F,!1,!0):(se===Ue&&q&384||!W&&ve&16)&&tt(ne,A,F),R&&He(v)}(w&&(C=me&&me.onVnodeUnmounted)||m)&&Vt(()=>{C&&vn(C,A,v),m&&Fo(v,null,A,"unmounted")},F)},He=v=>{const{type:A,el:F,anchor:R,transition:W}=v;if(A===Ue){v.patchFlag>0&&v.patchFlag&2048&&W&&!W.persisted?v.children.forEach(me=>{me.type===Mt?i(me.el):He(me)}):ot(F,R);return}if(A===gs){ie(v);return}const se=()=>{i(F),W&&!W.persisted&&W.afterLeave&&W.afterLeave()};if(v.shapeFlag&1&&W&&!W.persisted){const{leave:me,delayLeave:X}=W,ne=()=>me(F,se);X?X(v.el,se,ne):ne()}else se()},ot=(v,A)=>{let F;for(;v!==A;)F=g(v),i(v),v=F;i(A)},Me=(v,A,F)=>{v.type.__hmrId&&Uv(v);const{bum:R,scope:W,update:se,subTree:me,um:X}=v;R&&mi(R),W.stop(),se&&(se.active=!1,ue(me,v,A,F)),X&&Vt(X,A),Vt(()=>{v.isUnmounted=!0},A),A&&A.pendingBranch&&!A.isUnmounted&&v.asyncDep&&!v.asyncResolved&&v.suspenseId===A.pendingId&&(A.deps--,A.deps===0&&A.resolve()),Kv(v)},tt=(v,A,F,R=!1,W=!1,se=0)=>{for(let me=se;me<v.length;me++)ue(v[me],A,F,R,W)},it=v=>v.shapeFlag&6?it(v.component.subTree):v.shapeFlag&128?v.suspense.next():g(v.anchor||v.el),vt=(v,A,F)=>{v==null?A._vnode&&ue(A._vnode,null,null,!0):E(A._vnode||null,v,A,null,null,null,F),Uf(),jf(),A._vnode=v},ut={p:E,um:ue,m:he,r:He,mt:Ee,mc:ye,pc:we,pbc:be,n:it,o:e};let bo,wt;return t&&([bo,wt]=t(ut)),{render:vt,hydrate:bo,createApp:z1(vt,bo)}}function qo({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Fr(e,t,n=!1){const o=e.children,i=t.children;if(Se(o)&&Se(i))for(let s=0;s<o.length;s++){const r=o[s];let a=i[s];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=i[s]=lo(i[s]),a.el=r.el),n||Fr(r,a)),a.type===ms&&(a.el=r.el),a.type===Mt&&!a.el&&(a.el=r.el)}}function G1(e){const t=e.slice(),n=[0];let o,i,s,r,a;const l=e.length;for(o=0;o<l;o++){const u=e[o];if(u!==0){if(i=n[n.length-1],e[i]<u){t[o]=i,n.push(o);continue}for(s=0,r=n.length-1;s<r;)a=s+r>>1,e[n[a]]<u?s=a+1:r=a;u<e[n[s]]&&(s>0&&(t[o]=n[s-1]),n[s]=o)}}for(s=n.length,r=n[s-1];s-- >0;)n[s]=r,r=t[r];return n}const Y1=e=>e.__isTeleport,Ue=Symbol("Fragment"),ms=Symbol("Text"),Mt=Symbol("Comment"),gs=Symbol("Static"),ys=[];let nn=null;function B(e=!1){ys.push(nn=e?null:[])}function Cp(){ys.pop(),nn=ys[ys.length-1]||null}let vi=1;function $p(e){vi+=e}function Ep(e){return e.dynamicChildren=vi>0?nn||pi:null,Cp(),vi>0&&nn&&nn.push(e),e}function z(e,t,n,o,i,s){return Ep(c(e,t,n,o,i,s,!0))}function on(e,t,n,o,i){return Ep(ke(e,t,n,o,i,!0))}function xi(e){return e?e.__v_isVNode===!0:!1}function ro(e,t){return t.shapeFlag&6&&bi.has(t.type)?(e.shapeFlag&=-257,t.shapeFlag&=-513,!1):e.type===t.type&&e.key===t.key}const J1=(...e)=>Q1(...e),Ur="__vInternal",kp=({key:e})=>e!=null?e:null,jr=({ref:e,ref_key:t,ref_for:n})=>e!=null?nt(e)||pt(e)||Le(e)?{i:gt,r:e,k:t,f:!!n}:e:null;function c(e,t=null,n=null,o=0,i=null,s=e===Ue?0:1,r=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&kp(t),ref:t&&jr(t),scopeId:Or,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:s,patchFlag:o,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:gt};return a?(Xl(l,n),s&128&&e.normalize(l)):n&&(l.shapeFlag|=nt(n)?8:16),l.key!==l.key&&le("VNode created with invalid key (NaN). VNode type:",l.type),vi>0&&!r&&nn&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&nn.push(l),l}const ke=J1;function Q1(e,t=null,n=null,o=0,i=null,s=!1){if((!e||e===v1)&&(e||le(`Invalid vnode type when creating vnode: ${e}.`),e=Mt),xi(e)){const a=ao(e,t,!0);return n&&Xl(a,n),vi>0&&!s&&nn&&(a.shapeFlag&6?nn[nn.indexOf(e)]=a:nn.push(a)),a.patchFlag|=-2,a}if(Lp(e)&&(e=e.__vccOpts),t){t=Sp(t);let{class:a,style:l}=t;a&&!nt(a)&&(t.class=Je(a)),Ye(l)&&(Pr(l)&&!Se(l)&&(l=ft({},l)),t.style=Tn(l))}const r=nt(e)?1:s1(e)?128:Y1(e)?64:Ye(e)?4:Le(e)?2:0;return r&4&&Pr(e)&&(e=Fe(e),le("Vue received a Component which was made a reactive object. This can lead to unnecessary performance overhead, and should be avoided by marking the component with `markRaw` or using `shallowRef` instead of `ref`.",`
Component that was made reactive: `,e)),c(e,t,n,o,i,r,s,!0)}function Sp(e){return e?Pr(e)||Ur in e?ft({},e):e:null}function ao(e,t,n=!1){const{props:o,ref:i,patchFlag:s,children:r}=e,a=t?Ip(o||{},t):o;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:a,key:a&&kp(a),ref:t&&t.ref?n&&i?Se(i)?i.concat(jr(t)):[i,jr(t)]:jr(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s===-1&&Se(r)?r.map(Ap):r,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ue?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ao(e.ssContent),ssFallback:e.ssFallback&&ao(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Ap(e){const t=ao(e);return Se(e.children)&&(t.children=e.children.map(Ap)),t}function ee(e=" ",t=0){return ke(ms,null,e,t)}function Pp(e,t){const n=ke(gs,null,e);return n.staticCount=t,n}function qe(e="",t=!1){return t?(B(),on(Mt,null,e)):ke(Mt,null,e)}function sn(e){return e==null||typeof e=="boolean"?ke(Mt):Se(e)?ke(Ue,null,e.slice()):typeof e=="object"?lo(e):ke(ms,null,String(e))}function lo(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ao(e)}function Xl(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(Se(t))n=16;else if(typeof t=="object")if(o&65){const i=t.default;i&&(i._c&&(i._d=!1),Xl(e,i()),i._c&&(i._d=!0));return}else{n=32;const i=t._;!i&&!(Ur in t)?t._ctx=gt:i===3&&gt&&(gt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Le(t)?(t={default:t,_ctx:gt},n=32):(t=String(t),o&64?(n=16,t=[ee(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ip(...e){const t={};for(let n=0;n<e.length;n++){const o=e[n];for(const i in o)if(i==="class")t.class!==o.class&&(t.class=Je([t.class,o.class]));else if(i==="style")t.style=Tn([t.style,o.style]);else if(Ji(i)){const s=t[i],r=o[i];r&&s!==r&&!(Se(s)&&s.includes(r))&&(t[i]=s?[].concat(s,r):r)}else i!==""&&(t[i]=o[i])}return t}function vn(e,t,n,o=null){cn(e,t,7,[n,o])}const X1=xp();let Z1=0;function e0(e,t,n){const o=e.type,i=(t?t.appContext:e.appContext)||X1,s={uid:Z1++,vnode:e,type:o,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,scope:new q_(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:fp(o,i),emitsOptions:Gf(o,i),emit:null,emitted:null,propsDefaults:Xe,inheritAttrs:o.inheritAttrs,ctx:Xe,data:Xe,props:Xe,attrs:Xe,slots:Xe,refs:Xe,setupState:Xe,setupContext: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 s.ctx=C1(s),s.root=t?t.root:s,s.emit=Qv.bind(null,s),e.ce&&e.ce(s),s}let at=null;const t0=()=>at||gt,co=e=>{at=e,e.scope.on()},uo=()=>{at&&at.scope.off(),at=null},n0=Zn("slot,component");function Zl(e,t){const n=t.isNativeTag||sf;(n0(e)||n(e))&&le("Do not use built-in or reserved HTML elements as component id: "+e)}function Tp(e){return e.vnode.shapeFlag&4}let ws=!1;function o0(e,t=!1){ws=t;const{props:n,children:o}=e.vnode,i=Tp(e);O1(e,n,i,t),j1(e,o);const s=i?i0(e,t):void 0;return ws=!1,s}function i0(e,t){var n;const o=e.type;{if(o.name&&Zl(o.name,e.appContext.config),o.components){const s=Object.keys(o.components);for(let r=0;r<s.length;r++)Zl(s[r],e.appContext.config)}if(o.directives){const s=Object.keys(o.directives);for(let r=0;r<s.length;r++)ip(s[r])}o.compilerOptions&&s0()&&le('"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.')}e.accessCache=Object.create(null),e.proxy=Of(new Proxy(e.ctx,ap)),$1(e);const{setup:i}=o;if(i){const s=e.setupContext=i.length>1?a0(e):null;co(e),To();const r=Mn(i,e,0,[gi(e.props),s]);if(Oo(),uo(),fr(r)){if(r.then(uo,uo),t)return r.then(a=>{ec(e,a,t)}).catch(a=>{is(a,e,0)});if(e.asyncDep=r,!e.suspense){const a=(n=o.name)!==null&&n!==void 0?n:"Anonymous";le(`Component <${a}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`)}}else ec(e,r,t)}else Op(e,t)}function ec(e,t,n){Le(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ye(t)?(xi(t)&&le("setup() should not return VNodes directly - return a render function instead."),e.devtoolsRawSetupState=t,e.setupState=Df(t),E1(e)):t!==void 0&&le(`setup() should return an object. Received: ${t===null?"null":typeof t}`),Op(e,n)}let tc;const s0=()=>!tc;function Op(e,t,n){const o=e.type;if(!e.render){if(!t&&tc&&!o.render){const i=o.template||Wl(e).template;if(i){Rn(e,"compile");const{isCustomElement:s,compilerOptions:r}=e.appContext.config,{delimiters:a,compilerOptions:l}=o,u=ft(ft({isCustomElement:s,delimiters:a},r),l);o.render=tc(i,u),Nn(e,"compile")}}e.render=o.render||qt}co(e),To(),S1(e),Oo(),uo(),!o.render&&e.render===qt&&!t&&(o.template?le('Component provided template option but runtime compilation is not supported in this build of Vue. Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".'):le("Component is missing template or render function."))}function r0(e){return new Proxy(e.attrs,{get(t,n){return Mr(),zt(e,"get","$attrs"),t[n]},set(){return le("setupContext.attrs is readonly."),!1},deleteProperty(){return le("setupContext.attrs is readonly."),!1}})}function a0(e){const t=o=>{if(e.exposed&&le("expose() should be called only once per setup()."),o!=null){let i=typeof o;i==="object"&&(Se(o)?i="array":pt(o)&&(i="ref")),i!=="object"&&le(`expose() should be passed a plain object, received ${i}.`)}e.exposed=o||{}};let n;return Object.freeze({get attrs(){return n||(n=r0(e))},get slots(){return gi(e.slots)},get emit(){return(o,...i)=>e.emit(o,...i)},expose:t})}function Hr(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Df(Of(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in jo)return jo[n](e)},has(t,n){return n in t||n in jo}}))}const l0=/(?:^|[-_])(\w)/g,c0=e=>e.replace(l0,t=>t.toUpperCase()).replace(/[-_]/g,"");function nc(e,t=!0){return Le(e)?e.displayName||e.name:e.name||t&&e.__name}function qr(e,t,n=!1){let o=nc(t);if(!o&&t.__file){const i=t.__file.match(/([^/\\]+)\.\w+$/);i&&(o=i[1])}if(!o&&e&&e.parent){const i=s=>{for(const r in s)if(s[r]===t)return r};o=i(e.components||e.parent.type.components)||i(e.appContext.components)}return o?c0(o):n?"App":"Anonymous"}function Lp(e){return Le(e)&&"__vccOpts"in e}const xn=(e,t)=>Av(e,t,ws);function rn(e){const t=t0();t||le("withAsyncContext called without active current instance. This is likely a bug.");let n=e();return uo(),fr(n)&&(n=n.catch(o=>{throw co(t),o})),[n,()=>co(t)]}function u0(e,t,n){const o=arguments.length;return o===2?Ye(t)&&!Se(t)?xi(t)?ke(e,null,[t]):ke(e,t):ke(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&xi(n)&&(n=[n]),ke(e,t,n))}const d0=Symbol("ssrContext"),f0=()=>{{const e=fs(d0);return e||le("Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build."),e}};function oc(e){return!!(e&&e.__v_isShallow)}function p0(){if(typeof window>"u")return;const e={style:"color:#3ba776"},t={style:"color:#0b1bc9"},n={style:"color:#b62e24"},o={style:"color:#9d288c"},i={header(h){return Ye(h)?h.__isVue?["div",e,"VueInstance"]:pt(h)?["div",{},["span",e,f(h)],"<",a(h.value),">"]:Lo(h)?["div",{},["span",e,oc(h)?"ShallowReactive":"Reactive"],"<",a(h),`>${oo(h)?" (readonly)":""}`]:oo(h)?["div",{},["span",e,oc(h)?"ShallowReadonly":"Readonly"],"<",a(h),">"]:null:null},hasBody(h){return h&&h.__isVue},body(h){if(h&&h.__isVue)return["div",{},...s(h.$)]}};function s(h){const g=[];h.type.props&&h.props&&g.push(r("props",Fe(h.props))),h.setupState!==Xe&&g.push(r("setup",h.setupState)),h.data!==Xe&&g.push(r("data",Fe(h.data)));const b=l(h,"computed");b&&g.push(r("computed",b));const _=l(h,"inject");return _&&g.push(r("injected",_)),g.push(["div",{},["span",{style:o.style+";opacity:0.66"},"$ (internal): "],["object",{object:h}]]),g}function r(h,g){return g=ft({},g),Object.keys(g).length?["div",{style:"line-height:1.25em;margin-bottom:0.6em"},["div",{style:"color:#476582"},h],["div",{style:"padding-left:1.25em"},...Object.keys(g).map(b=>["div",{},["span",o,b+": "],a(g[b],!1)])]]:["span",{}]}function a(h,g=!0){return typeof h=="number"?["span",t,h]:typeof h=="string"?["span",n,JSON.stringify(h)]:typeof h=="boolean"?["span",o,h]:Ye(h)?["object",{object:g?Fe(h):h}]:["span",n,String(h)]}function l(h,g){const b=h.type;if(Le(b))return;const _={};for(const E in h.ctx)u(b,E,g)&&(_[E]=h.ctx[E]);return _}function u(h,g,b){const _=h[b];if(Se(_)&&_.includes(g)||Ye(_)&&g in _||h.extends&&u(h.extends,g,b)||h.mixins&&h.mixins.some(E=>u(E,g,b)))return!0}function f(h){return oc(h)?"ShallowRef":h.effect?"ComputedRef":"Ref"}window.devtoolsFormatters?window.devtoolsFormatters.push(i):window.devtoolsFormatters=[i]}const Mp="3.2.47",h0="http://www.w3.org/2000/svg",zo=typeof document<"u"?document:null,Dp=zo&&zo.createElement("template"),m0={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const i=t?zo.createElementNS(h0,e):zo.createElement(e,n?{is:n}:void 0);return e==="select"&&o&&o.multiple!=null&&i.setAttribute("multiple",o.multiple),i},createText:e=>zo.createTextNode(e),createComment:e=>zo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>zo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,i,s){const r=n?n.previousSibling:t.lastChild;if(i&&(i===s||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===s||!(i=i.nextSibling)););else{Dp.innerHTML=o?`<svg>${e}</svg>`:e;const a=Dp.content;if(o){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[r?r.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function g0(e,t,n){const o=e._vtc;o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function y0(e,t,n){const o=e.style,i=nt(n);if(n&&!i){if(t&&!nt(t))for(const s in t)n[s]==null&&ic(o,s,"");for(const s in n)ic(o,s,n[s])}else{const s=o.display;i?t!==n&&(o.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(o.display=s)}}const w0=/[^\\];\s*$/,Rp=/\s*!important$/;function ic(e,t,n){if(Se(n))n.forEach(o=>ic(e,t,o));else if(n==null&&(n=""),w0.test(n)&&le(`Unexpected semicolon at the end of '${t}' style value: '${n}'`),t.startsWith("--"))e.setProperty(t,n);else{const o=b0(e,t);Rp.test(n)?e.setProperty(On(o),n.replace(Rp,""),"important"):e[o]=n}}const Np=["Webkit","Moz","ms"],sc={};function b0(e,t){const n=sc[t];if(n)return n;let o=yn(t);if(o!=="filter"&&o in e)return sc[t]=o;o=Ao(o);for(let i=0;i<Np.length;i++){const s=Np[i]+o;if(s in e)return sc[t]=s}return t}const Bp="http://www.w3.org/1999/xlink";function _0(e,t,n,o,i){if(o&&t.startsWith("xlink:"))n==null?e.removeAttributeNS(Bp,t.slice(6,t.length)):e.setAttributeNS(Bp,t,n);else{const s=D_(t);n==null||s&&!nf(n)?e.removeAttribute(t):e.setAttribute(t,s?"":n)}}function v0(e,t,n,o,i,s,r){if(t==="innerHTML"||t==="textContent"){o&&r(o,i,s),e[t]=n==null?"":n;return}if(t==="value"&&e.tagName!=="PROGRESS"&&!e.tagName.includes("-")){e._value=n;const l=n==null?"":n;(e.value!==l||e.tagName==="OPTION")&&(e.value=l),n==null&&e.removeAttribute(t);return}let a=!1;if(n===""||n==null){const l=typeof e[t];l==="boolean"?n=nf(n):n==null&&l==="string"?(n="",a=!0):l==="number"&&(n=0,a=!0)}try{e[t]=n}catch(l){a||le(`Failed setting prop "${t}" on <${e.tagName.toLowerCase()}>: value ${n} is invalid.`,l)}a&&e.removeAttribute(t)}function fo(e,t,n,o){e.addEventListener(t,n,o)}function x0(e,t,n,o){e.removeEventListener(t,n,o)}function C0(e,t,n,o,i=null){const s=e._vei||(e._vei={}),r=s[t];if(o&&r)r.value=o;else{const[a,l]=$0(t);if(o){const u=s[t]=S0(o,i);fo(e,a,u,l)}else r&&(x0(e,a,r,l),s[t]=void 0)}}const Fp=/(?:Once|Passive|Capture)$/;function $0(e){let t;if(Fp.test(e)){t={};let o;for(;o=e.match(Fp);)e=e.slice(0,e.length-o[0].length),t[o[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):On(e.slice(2)),t]}let rc=0;const E0=Promise.resolve(),k0=()=>rc||(E0.then(()=>rc=0),rc=Date.now());function S0(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;cn(A0(o,n.value),t,5,[o])};return n.value=e,n.attached=k0(),n}function A0(e,t){if(Se(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>i=>!i._stopped&&o&&o(i))}else return t}const Up=/^on[a-z]/,P0=(e,t,n,o,i=!1,s,r,a,l)=>{t==="class"?g0(e,o,i):t==="style"?y0(e,n,o):Ji(t)?dr(t)||C0(e,t,n,o,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):I0(e,t,o,i))?v0(e,t,o,s,r,a,l):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),_0(e,t,o,i))};function I0(e,t,n,o){return o?!!(t==="innerHTML"||t==="textContent"||t in e&&Up.test(t)&&Le(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Up.test(t)&&nt(n)?!1:t in e}const Ci=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Se(t)?n=>mi(t,n):t};function T0(e){e.target.composing=!0}function jp(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ve={created(e,{modifiers:{lazy:t,trim:n,number:o}},i){e._assign=Ci(i);const s=o||i.props&&i.props.type==="number";fo(e,t?"change":"input",r=>{if(r.target.composing)return;let a=e.value;n&&(a=a.trim()),s&&(a=gr(a)),e._assign(a)}),n&&fo(e,"change",()=>{e.value=e.value.trim()}),t||(fo(e,"compositionstart",T0),fo(e,"compositionend",jp),fo(e,"change",jp))},mounted(e,{value:t}){e.value=t==null?"":t},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:o,number:i}},s){if(e._assign=Ci(s),e.composing||document.activeElement===e&&e.type!=="range"&&(n||o&&e.value.trim()===t||(i||e.type==="number")&&gr(e.value)===t))return;const r=t==null?"":t;e.value!==r&&(e.value=r)}},Ce={deep:!0,created(e,t,n){e._assign=Ci(n),fo(e,"change",()=>{const o=e._modelValue,i=bs(e),s=e.checked,r=e._assign;if(Se(o)){const a=ml(o,i),l=a!==-1;if(s&&!l)r(o.concat(i));else if(!s&&l){const u=[...o];u.splice(a,1),r(u)}}else if(hi(o)){const a=new Set(o);s?a.add(i):a.delete(i),r(a)}else r(zp(e,s))})},mounted:Hp,beforeUpdate(e,t,n){e._assign=Ci(n),Hp(e,t,n)}};function Hp(e,{value:t,oldValue:n},o){e._modelValue=t,Se(t)?e.checked=ml(t,o.props.value)>-1:hi(t)?e.checked=t.has(o.props.value):t!==n&&(e.checked=Yi(t,zp(e,!0)))}const $i={deep:!0,created(e,{value:t,modifiers:{number:n}},o){const i=hi(t);fo(e,"change",()=>{const s=Array.prototype.filter.call(e.options,r=>r.selected).map(r=>n?gr(bs(r)):bs(r));e._assign(e.multiple?i?new Set(s):s:s[0])}),e._assign=Ci(o)},mounted(e,{value:t}){qp(e,t)},beforeUpdate(e,t,n){e._assign=Ci(n)},updated(e,{value:t}){qp(e,t)}};function qp(e,t){const n=e.multiple;if(n&&!Se(t)&&!hi(t)){le(`<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(t).slice(8,-1)}.`);return}for(let o=0,i=e.options.length;o<i;o++){const s=e.options[o],r=bs(s);if(n)Se(t)?s.selected=ml(t,r)>-1:s.selected=t.has(r);else if(Yi(bs(s),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}function bs(e){return"_value"in e?e._value:e.value}function zp(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const O0=["ctrl","shift","alt","meta"],L0={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)=>O0.some(n=>e[`${n}Key`]&&!t.includes(n))},M0=(e,t)=>(n,...o)=>{for(let i=0;i<t.length;i++){const s=L0[t[i]];if(s&&s(n,t))return}return e(n,...o)},D0={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Vp=(e,t)=>n=>{if(!("key"in n))return;const o=On(n.key);if(t.some(i=>i===o||D0[i]===o))return e(n)},Dt={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):_s(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),_s(e,!0),o.enter(e)):o.leave(e,()=>{_s(e,!1)}):_s(e,t))},beforeUnmount(e,{value:t}){_s(e,t)}};function _s(e,t){e.style.display=t?e._vod:"none"}const R0=ft({patchProp:P0},m0);let Wp;function N0(){return Wp||(Wp=W1(R0))}const Cn=(...e)=>{const t=N0().createApp(...e);B0(t),F0(t);const{mount:n}=t;return t.mount=o=>{const i=U0(o);if(!i)return;const s=t._component;!Le(s)&&!s.render&&!s.template&&(s.template=i.innerHTML),i.innerHTML="";const r=n(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),r},t};function B0(e){Object.defineProperty(e.config,"isNativeTag",{value:t=>L_(t)||M_(t),writable:!1})}function F0(e){{const t=e.config.isCustomElement;Object.defineProperty(e.config,"isCustomElement",{get(){return t},set(){le("The `isCustomElement` config option is deprecated. Use `compilerOptions.isCustomElement` instead.")}});const n=e.config.compilerOptions,o='The `compilerOptions` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, `compilerOptions` must be passed to `@vue/compiler-dom` in the build setup instead.\n- For vue-loader: pass it via vue-loader\'s `compilerOptions` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-dom';Object.defineProperty(e.config,"compilerOptions",{get(){return le(o),n},set(){le(o)}})}}function U0(e){if(nt(e)){const t=document.querySelector(e);return t||le(`Failed to mount app: mount target selector "${e}" returned null.`),t}return window.ShadowRoot&&e instanceof window.ShadowRoot&&e.mode==="closed"&&le('mounting on a ShadowRoot with `{mode: "closed"}` may lead to unpredictable bugs'),e}function j0(){p0()}j0();const H0={key:0,class:"ce-custom-url-help"},q0={class:"ce-custom-url-help-body"},z0=c("hr",null,null,-1),V0={key:0},W0={class:"pure-table pure-table-bordered"},K0=c("thead",null,[c("tr",null,[c("th",{width:"50%"},"变量"),c("th",{width:"50%"},"说明")])],-1),G0=["onClick"],Y0=Ne({__name:"CustomUrlHelp",setup(e){const t=de(l_),n=de(!1);Ot(async()=>{window.addEventListener("message",i=>{const{event:s}=i.data;s==="customUrlHelp"&&(n.value=!0)},!1)});async function o(i){an(i.key),re({text:"已复制到剪贴板",icon:"success",timer:1e3})}return(i,s)=>n.value?(B(),z("div",H0,[c("div",q0,[c("h1",null,[ee(" 自定义菜单变量说明 "),c("a",{href:"javascript:void(0)",onClick:s[0]||(s[0]=r=>n.value=!1)},"关闭")]),z0,(B(!0),z(Ue,null,st(t.value,(r,a)=>(B(),z("div",{key:a},[c("h2",null,ge(r.label),1),r.memo?(B(),z("p",V0,ge(r.memo),1)):qe("",!0),c("table",W0,[K0,c("tbody",null,[(B(!0),z(Ue,null,st(r.items,(l,u)=>(B(),z("tr",{key:u},[c("td",null,[c("span",{class:"ce-variable",onClick:f=>o(l)},ge(l.key),9,G0)]),c("td",null,ge(l.label),1)]))),128))])])]))),128))])])):qe("",!0)}}),BR="",FR="",Kp=rt.enabledCustomUrlsForSearch,Gp=rt.enabledCustomUrlsForPlay;async function J0(e){await et.set(Kp,e)}async function Q0(e){await et.set(Gp,e)}async function X0(){const e=lc,t=e.filter(i=>i.enabled).map(i=>i.key),n=await et.get(Kp,t),o=[];return e.forEach(i=>{n.includes(i.key)&&o.push(i.key)}),o}async function Z0(){const e=ac,t=e.filter(i=>i.enabled).map(i=>i.key),n=await et.get(Gp,t),o=[];return e.forEach(i=>{n.includes(i.key)&&o.push(i.key)}),o}async function Yp(){const e=await X0();return lc.forEach(t=>{t.enabled=e.includes(t.key)}),lc}async function zr(){const e=await Z0();return ac.forEach(t=>{t.enabled=e.includes(t.key)}),ac}const Jp="data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABu0lEQVRYhe2WsVXDMBCG/xNNSrFBmAB3tBEZIJkAmCBog9gbGLNAwgQwQJ5MSecNYASVaayjcBIrEDvye06V/JVs/777fJJOBi666NxFoUapzQiunAJiAmC4uV2AuACJxKbq5yQAUhsJxhzMuj0SpxsQ2xuA1EbCuRyg28B4BQSpLhCi9SljvpeckUOQgqBrm90TBCkAS++NCOzmocmBlgpIbYZw/O3RJDYbxwe9s1UMUJ24qkIeAtBcAVfWyYgWTckBwGbjGIw6oXPTkOTtABB16WmvzId1RUl9QZMeABBtB4HlLLzxsNHVAWAnqY085um6/UIA/MYSNbo2ktqMvMui0RgOwB+7YcnHt5Yrn3Zjoh4AhHivA2IkZ6YRonomHj1/0uT9q/ZOOFulAD3Xbl6AxNKmKt+siwglz0Goy8/I7eu96gdAGwnHBgFr4E/Y2GYqqAqtu8Cmylbtll+ORvIbEThum7JggC2EzcYagm5Q9X1/gf0A/AJBqio7e18dBhH8PxCqf+fCkem46htg/fWWD+4eCKDtwhwN7p6w/lp+HvIHdcKuqg6u/elo8p4E4D8EB/eFiy46P/0C5gmePG6KKVsAAAAASUVORK5CYII=",ex="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAACAlJREFUaEPtmWuIXVcVx3/7vt9zJ5NOZ5JGkxQDEZroF7WxYGILGoWmLxXamtG0RUhoLSiW4hdFPxRFSytJLVpNRqTE2qq1WqiFGbWhNiCSIClU1EZj0ySTedz3uY+zZN19bjL3zn1NckcNeODAuTPn7L3/6/Ff/7W34Qq/zBW+fv4P4L/tweV4wAf4vVuf9V7O992wCuB6dw3QW3/3vPpZQODYsWM7t2zZ8nzP0Qb4wvHjx2/eunXri0C127C9AMRFJDfAdS17KGNMAsh3+rAbgKSIZJY94wp8YIxJAdl2Q3cCEBIRZwXWcslDGmPCQLl1gHYAzNTU1O3bt29/pr/ZNP8AEXvXRzRg9KFXhPY3g741PT39iR07djyrMy3+qt0MfVrfW7DU4LVHkX8cAX8QXBfExdxxGEwAfIMjq3ZeaAcgJSIL3W2ji3ehVoGnd0E0idQX6l3672oV3+rNsOMr4At4/7g8jxhjhoCmvGw34qiInOkKQK3uVuEHNyGRmAVSydu/GR8SjEIwDr4wUnHw3/1zC8JcnjeMMVcDZ3uF0DUi8s/OAMQutJSFgzuRWhmK8+DkkIpStoFQBOJpiK9GIkkQg/9j34CRTeDTWnhpnjDGrANO9QLwThF5szMAF6pleOJGyJ1BnBw4WSiVEVeTNwCuQDiEJNOQHoX4MAQimFAM3ycnPW8sP8mNMeuBk70AbBCRv3UEoOFTKcHXNuG8WSJ/tAiOgxEX/5oUiW0pqDgWWNBAMoUMj2CSV0EkAbUa/omfQiC87JAyxmwE/n75AJwCPLyOuRdKmFoVqdYsc0ZjpH/5ErUn7wF9x5kHKSPJGKRXwdAohNOIBPC/93Z877vTS/D+QmqAAPJkP7gWd76AiGA8atan9KtvgJNBfvUY7okjUJxDakWI+pHEECRHkdgI4o+CUyP8hefA31+CDxbADeOQL9TLilaWug0FkkdPWw8XFqCUofrtT9cBUVygpgJTKTc5AhpS4RRSFqJf/CFEV/VM8IECKHx4DMkXl6RK/NVZ8IcstZZykD1L9bE9yPw8bka9UUaCYdxkGpMahdgqYtcFYWgDfORbXUNqoABKH28B4LkhOj0PoZiVFRXH5kL2LPLX1yh//xHcbAa3qLrMhxsbwqRGSNy4GkwIYmvh1ic7ghgoAOe2MShZD9QlkJeH4V8rAC1iPisrlHIrRdBF52YoPHQn5PLUchncSgXxx0nfscqGkOuDPS9bhrpQvS86eaAAKnePQbFog3+RvAo+2wCgBcvTS7WqpV4nD5mzOI8/ROXPr1M7N0voHWWi74lAZBj8Mdj2eXj/HqurWgreQAFU93gAWrIg8HQDgOqfBjKt3lo/HCgXIDMDc6dwf3wXPpm1C/VHLID0RnhgGgIhr2tdIQ/U7hkDpyWEfOCfXAxgkbpTMPWQcmw4PXU95DKQX4CqCkM/KLWuvx4+9zMrR+pt9woBcO8bQ4rFeuw37Gz84DvYBYCG0us/gT9+F7LnYe4MZLJQrIIEIZSCh/8Aw2sguOIAxqFQuLg3obkQMPiemvOSuCGhG9K7Cs/fYjc1ijk4/xbMKACt2KZeoQlH4ctHITa08iHk7rsWk80gbgWMYFS8hQP49r+1CIAX+8UZmLoXVOwVsjD7NszOQEaFoA9CwxBKwt5nYHgdRJTFlARWKoQ0EX/xVeTlw5bnTQ3iUcz6a+GBF0H7AdX+KrtfeRDyp6BagfwczJ2F+TnIFMGNQGgEQgn47CSk19QrdZ2B2vQOg2EhlQPlEuTOIY/stDrGJ+CvYO5/AYbGrfuVdV66FQhCOQ+587BwDhYyUNA9qwSE0rD9Qdh4AwyNQThuv613d83W11QeHABNxlIesqctGL1CYUiOWeufOQInHrdtZ3EBFtTqs5DNQSUEgTQEEnDXJMRHIJq2rKOWv9BDL1WogwOgpbdRnCq60yEQCFpvTH3KVlGly/yMtXpmAXJlkBgEh2F0M3z065BQeR23i9eYv7CT0V5eDwiAmlt3Hjx2UW7XcKkW4JUJ63pVnzlNUg0ZTVQtVEMQTMGuJyA1DonVEIp6smFxr9y5N+gXwHoRaep6lnZnLRU2dxp+fy/4DJTm6/nBwhyoWq1ELEUGE3DbjzwZnbA8r17rYfWWQrYBaGp328Ht0RMvHtK18uC5bVYKaLLmz0M+A44mqoZHGq7bDZt31ZuZulINhm241a/+e+N+e+K1ItLU+Xftj5VSD38AnDKU5mxxcwMQ0pBJwi2TENNE1d9q9QbLNGzXXzvpsdA1wL969cRXiUjT3ktHAMrzCuB3X4KTv4VCHqpirZxYAzc9Cqmr7W+N9z4SteNclkZHgXO9ACREpO1O8JLBGzsUGvN/OgAnf2OF2Ye+CUPrIK5toyaqWn3xflD/Vm/JgSTQtN3fbqTAoUOHPrN79+7vdbOG/Z+qyKqtxsr3yj56aXOi9HgJidppzsnJyfsmJiYOth54tN2dBnR78e3eABpUqjRatmCUVTRBL1h9eYnaaU5jzJi3rdhzd1rHUIp4l4ic6A3CO8rSetBYa9P2+qWFS0vovBv4S7vjpm6j64HCJhE53htEk1EWvT6QxW8B3gDaHrj0mkEb0/H9+/ffvHfv3u/0BjK4Nw4cOHD/vn379GBRN5oqHUOrjykVpLZHaUD35/V5acPax0A9XtEYVGGl6lDPJ+a9507uvRixy5hbwTSESy/vLWPY+qu60MZ5cddFN+XHcmf5X3t/0Fb8j+O74gH8G0lHhV4uXv6RAAAAAElFTkSuQmCC",Qp="https://nplayer.com/assets/img/logo_main.png",ac=[_t({enabled:!0,key:"p_builtin_iina",label:"IINA播放",icon:"https://iina.io/images/iina-icon-60.png",memo:"调用IINA播放视频(使用CloudDrive链接)",url:"iina://weblink?url={clouddrive_stream_url:encode}"}),_t({enabled:!0,key:"p_builtin_vlc",label:"VLC播放",icon:"https://images.videolan.org/images/favicon.ico",memo:"调用VLC播放视频(使用CloudDrive链接)",extraMemo:'<a href="https://github.com/stefansundin/vlc-protocol" target="_blank" rel="noreferer">安装VLC协议</a>',url:"vlc://{clouddrive_stream_url}"}),_t({enabled:!0,key:"p_builtin_mpv",label:"MPV播放",icon:"https://mpv.io/images/mpv-logo-128-0baae5aa.png",memo:"调用MPV播放视频(使用CloudDrive链接)",extraMemo:'<a href="https://github.com/akiirui/mpv-handler/blob/main/README.zh-Hans.md" target="_blank" rel="noreferer">安装MPV协议</a>',url:"mpv://{clouddrive_stream_url}"}),_t({enabled:!0,key:"p_builtin_potplayer",label:"PotPlayer播放",icon:"https://t1.daumcdn.net/potplayer/main/img/favicon.ico",memo:"调用PotPlayer播放视频(使用CloudDrive链接)",url:"potplayer://{clouddrive_stream_url}"}),_t({enabled:!0,key:"p_builtin_infuse",label:"Infuse播放",icon:ex,memo:"调用Infuse播放视频(使用CloudDrive链接)",url:"infuse://x-callback-url/play?url={clouddrive_stream_url:encode}"}),_t({enabled:!1,key:"p_builtin_nplayer_mac",label:"nPlayer-mac播放",icon:Qp,memo:"调用nPlayer(mac版)播放视频(使用CloudDrive链接)",url:"nplayer-mac://weblink?url={clouddrive_stream_url:encode}&new_window=1"}),_t({enabled:!1,key:"p_builtin_nplayer_win",label:"nPlayer-win播放",icon:Qp,memo:"调用nPlayer(非mac版)播放视频(使用CloudDrive链接)",url:"nplayer-{clouddrive_stream_url:encode}"}),_t({enabled:!0,key:"p_builtin_online",label:"在线播放",icon:"https://115.com/favicon.ico",memo:"115官方在线播放(转码)",url:"https://v.anxia.com/?pickcode={pick_code}&share_id=0"})],lc=[_t({enabled:!0,key:"s_builtin_115_pure_name",label:"115-不含后缀",icon:"https://115.com/favicon.ico",memo:"使用115搜索文件名(不含后缀)",url:"{pure_name:search}"}),_t({enabled:!1,key:"s_builtin_115_full_name",label:"115-完整名称",icon:"https://115.com/favicon.ico",memo:"使用115搜索文件名(完整文件名)",url:"{full_name:search}"}),_t({enabled:!0,key:"s_builtin_115_sha",label:"115-sha1",icon:"https://115.com/favicon.ico",memo:"使用115搜索sha1相同的文件(仅适用于文件)",url:"{file_hash:search}"}),_t({enabled:!0,key:"s_builtin_google_pure_name",label:"Google-不含后缀",icon:"https://www.google.com/favicon.ico",memo:"使用Google搜索文件名(不含后缀)",url:"https://www.google.com/search?q={pure_name:encode}"}),_t({enabled:!1,key:"s_builtin_google_full_name",label:"Google-完整名称",icon:"https://www.google.com/favicon.ico",memo:"使用Google搜索文件名(完整文件名)",url:"https://www.google.com/search?q={full_name:encode}"}),_t({enabled:!0,key:"s_builtin_bing_pure_name",label:"Bing-不含后缀",icon:Jp,memo:"使用Bing搜索文件名(不含后缀)",url:"https://cn.bing.com/search?q={pure_name:encode}"}),_t({enabled:!1,key:"s_builtin_bing_full_name",label:"Bing-完整名称",icon:Jp,memo:"使用Bing搜索文件名(完整文件名)",url:"https://cn.bing.com/search?q={full_name:encode}"}),_t({enabled:!0,key:"s_builtin_115_pure_name_manual",label:"115-不含后缀-手动",icon:"https://115.com/favicon.ico",memo:"使用115搜索文件名(不含后缀),手动编辑后搜索",url:"{pure_name:manual:search}"})];var ct=(e=>(e.openConfig="openConfig",e.closeConfig="closeConfig",e.basicConfigChange="basicConfigChange",e.listConfigChange="listConfigChange",e.searchConfigChange="searchConfigChange",e.toolsConfigChange="toolsConfigChange",e.listRendered="listRendered",e.topDomChanged="topDomChange",e.officialMenuStyleChange="officialMenuStyleChange",e))(ct||{}),Wt=(e=>(e.basic="basic",e.clouddrive="clouddrive",e.list="list",e.search="search",e.menus="menus",e.searchMenus="searchMenus",e.playMenus="playMenus",e.offline="offline",e.tools="tools",e.anxia="anxia",e.about="about",e))(Wt||{});const dn={basic:"基础设置",clouddrive:"CloudDrive",list:"列表增强",search:"搜索增强",menus:"菜单设置",searchMenus:"搜索菜单",playMenus:"播放菜单",offline:"离线管理",tools:"工具",anxia:"在线播放",about:"关于"},Xp=rt.list;function tx(e){return{sizeSorter:!0,sizeSorterDirAttrInterval:100,showSha1:!1,showFolderSizeButton:!0,showOpenDirContextMenu:!0,hoverShowDirContextMenu:!1,showCopyButtonOnPathBar:!1,showGotoButtonOnPathBar:!1,noUpdateDirAfterRename:!1,noReloadAfterMove:!1,fileSelectorDefaultView:"_",...e}}async function Vr(){const e=tx(),t=await et.get(Xp,e);return{...e,...t}}async function nx(e){await et.set(Xp,e)}var Zp=(e=>(e[e.asc=0]="asc",e[e.desc=1]="desc",e))(Zp||{});async function ox(e,t,n=!1){const o=await Vr(),i=await Ct(!1),s=await li(),r=await Xn(!1);console.log("[items]",r),re({html:"正在获取子文件夹大小...",icon:"info",position:"top-end",timer:0}),pe.showLoading();for(let a=0;a<r.length;a++){const l=r[a];if(!l.isDir)continue;const u=s.find(`li[cate_id="${l.id}"]`);if(!u.length)continue;const f=u.find(".file-size span:eq(0)");if(f.text()!==""&&!n)continue;const h=await At(l.id);pe.update({html:`[${a+1} / ${r.length}] 正在获取子文件夹大小:${l.name}`}),f.text(h.size),u.addClass("ce-size-got"),a<r.length-1&&await bt(o.sizeSorterDirAttrInterval)}return pe.hideLoading(),e&&await ix(i),i}async function Wr(e,t,n,o){const i=await li();i.find('li[file_type="0"]:not(.ce-size-got)').length>0&&await ox(n);const r=i.find("ul"),a=r.children("li").toArray();a.sort(function(u,f){const h=$(u),g=$(f),b=du(h.find(".file-size span:eq(0)").text()),_=du(g.find(".file-size span:eq(0)").text());return t===0?b-_:_-b});const l=$("<ul></ul>");$.each(a,function(u,f){l.append(f)}),r.replaceWith(l),n?pe.update({title:"排序完成",html:`已完成排序: ${t===0?"小 > 大":"大 > 小"}`,icon:"success"}):re({html:`已完成排序: ${t===0?"小 > 大":"大 > 小"}`,icon:"success",timer:1500,position:"top-end"})}async function ix(e){pe.fire({toast:!0,title:"获取子文件夹大小",html:"获取子文件夹大小完成",icon:"success",showConfirmButton:!0,confirmButtonText:"大 > 小",confirmButtonColor:"#3085d6",showDenyButton:!0,denyButtonText:"小 > 大",denyButtonColor:"#d33",position:"top-end",showCloseButton:!0,closeButtonAriaLabel:"关闭",preConfirm:async()=>(console.log("preConfirm"),Wr(e,1,!0),!1),preDeny:async()=>(console.log("preDeny"),Wr(e,0,!0),!1)})}async function sx(){await cc();const t=(await vo("#js_data_list"))[0];rx(),new MutationObserver(async([o])=>{o.type==="childList"&&(window.postMessage({event:ct.listRendered}),await cc())}).observe(t,{childList:!0})}async function rx(){if(window.top===window.self)return;const e=document.querySelector("#js_pagination_box");if(!e){console.warn("[list.handleLoadAll] 未找到「#js_pagination_box」元素");return}function t(n){!document.querySelector("#js_data_list .list-contents > ul > li")||n(!0)}e.addEventListener("click",async n=>{n.preventDefault(),n.stopPropagation();const o=n.target;let i=!1;if((o.getAttribute("menu")==="load_all_file"||o.closest('[menu="load_all_file"]'))&&(i=!0),!i)return;console.log("[list.handleLoadAll] 点击了「加载全部」按钮"),await Kn(t,500,3e5);const s=document.querySelector("#js_data_list .list-contents > ul");s==null||s.removeAttribute("ce-done2");const r=document.querySelector("#js_data_list");if(r){const a=".list-contents > ul:not([ce-done2]) > li";r.querySelectorAll(a).length&&(s==null||s.setAttribute("ce-done2",""),await cc())}})}async function cc(){const e=await Vr();ux(e),dx(e);const t=await Fd(!1);for(let n=0;n<t.length;n++){const o=t.eq(n),i=await Gt(o);await ax(e,o,i)}}async function ax(e,t,n){await lx(e,t,n),await cx(e,t,n)}async function lx(e,t,n){if(!e.showSha1||!n.hash)return;t.addClass("ce-show-sha1");const o=t.find(".file-name"),i=document.createElement("span");i.classList.add("ce-file-sha1"),i.title="文件SHA1,点击复制",i.textContent=n.hash,i.addEventListener("click",async s=>{s.preventDefault(),s.stopPropagation(),an(n.hash),re({title:"复制SHA1",text:"已复制文件SHA1",icon:"success",timer:1500})}),o.append(i)}async function cx(e,t,n){if(!e.showFolderSizeButton||!n.isDir)return;const o=t.find(".file-size"),i=document.createElement("span");i.classList.add("ce-btn-folder-size"),i.title="点击获取该文件夹大小",i.textContent="大小",i.addEventListener("click",async s=>{s.preventDefault(),s.stopPropagation();const r=await At(n.id);o.find("span:eq(0)").text(r.size),t.addClass("ce-size-got"),re({title:"获取大小",text:"已获取文件夹大小",icon:"success",timer:1500})}),o.append(i)}async function ux(e){if(!e.sizeSorter)return;console.log("renderHeaderShowSubFolderSize");const t=document.querySelector(".header-size");if(!t||t.classList.contains("ce-injected"))return;const n=t,o=document.createElement("a");o.classList.add("btn-sort"),o.classList.add("ce-size-sort"),o.title="显示当前目录下已加载的子文件夹的大小,然后按大小排序",o.innerHTML=`
    <span>排序</span>
    <i icon_rel="file_size" class="icon-sort-asc"></i>
    <i icon_rel="file_size" class="icon-sort-desc"></i>
  `,o.addEventListener("click",async i=>{if(i.preventDefault(),i.stopPropagation(),!o.classList.contains("el-size-sort-ing"))try{o.classList.add("ce-size-sort-ing");let s=1;o.classList.contains("by-desc")?s=0:s=1;const r=await Ct(!1);await Wr(r,s,!1,!1),s===0?(o.classList.remove("by-desc"),o.classList.add("by-asc")):(o.classList.remove("by-asc"),o.classList.add("by-desc"))}catch(s){console.error(s)}finally{o.classList.remove("ce-size-sort-ing")}}),n.appendChild(o),n.classList.add("ce-injected")}async function dx(e){if(!e.showOpenDirContextMenu||await Ct(!1)===""||await al())return;console.log("renderHeaderOpenDirContextMenu");const n=document.querySelector(".header-name");if(!n||n.classList.contains("ce-injected"))return;const o=n,i=document.createElement("a");i.classList.add("ce-open-dir-context-menu"),i.title="打开当前目录的功能菜单",i.innerHTML="<span>目录功能菜单</span>";let s;const r=async a=>{console.log(a.clientX,a.clientY),s&&clearTimeout(s),a.preventDefault(),a.stopPropagation();try{const l=en(),u=await Ct(!1),f=i.getBoundingClientRect();l.Core.FileMenu.FileRight("1",u,!1,f.x,f.y+8,void 0,!1)}catch(l){console.error(l)}};i.addEventListener("click",r),e.hoverShowDirContextMenu&&(i.addEventListener("mouseenter",async a=>{s=setTimeout(async()=>{await r(a)},300)}),i.addEventListener("mouseleave",()=>{s&&clearTimeout(s)})),o.appendChild(i),o.classList.add("ce-injected")}async function eh(e,t){const n=[];for(const o of t){const i=Rs(e,{key:`_ce_p_${o.key}`,label:o.label,icon:o.icon,title:o.memo,onClick:async(s,r)=>{r.stopPropagation(),r.preventDefault();try{const a=await Pn();if(!a)return;const l=await Gt(a),u=await ei(),f=await or(l,o,u);if(f.includes("v.anxia.com")){const g=(await Xn(!1)).find(b=>b.playDuration&&b.playDuration>0);dl(l.id,g);return}if(console.log("[play url]",f),!f)throw new Error("无法获取有效的播放链接!");window.open(f,"_blank","noopener noreferrer")}catch(a){console.error(a),re({title:"播放失败",text:a.toString(),icon:"error"})}}});n.push(i)}return n}async function fx(e){const t=[...(await zr()).filter(n=>n.enabled),...(await ui(In.play)).filter(n=>n.enabled)];return e&&t.length===1?(await eh(Pt,t))[0]:new Pt({key:"_play_with_x",label:"播放全部",icon:"icon-operate ifo-video-play",title:"",onClick:async(n,o)=>{},subItems:[...await eh(b_,t)]})}async function px(){return new Pt({key:"_rename_dir",label:"重命名文件夹",icon:"icon-operate ifo-rename",title:'重命名当前目录,支持"高级模式"',onClick:async(e,t)=>{await e.closeMenu();const n=await Pn();!n||unsafeWindow.Core.Dir.Rename("1",n.attr("cate_id"),n.attr("title"))}})}async function hx(){return new Pt({key:"_get_tree",label:"导出目录列表数据",icon:"icon-operate ifo-move",title:"获取当前目录的全部层级的文件列表数据,并导出为JSON文件",onClick:async(e,t)=>{await e.closeMenu();const n=await Pn();if(!n)return;const o=await Gt(n);await Wd(o)}})}async function mx(){return new Pt({key:"_dc_view_in_clouddrive",label:"在CloudDrive中查看",icon:"icon-operate ifo-exportdir",title:"在CloudDrive2 Web页面中查看",onClick:async(e,t)=>{t.stopPropagation(),t.preventDefault(),await e.closeMenu();const n=await Ct(!1);if(!n||n==="0"){await nr({id:"0",name:"根目录",isDir:!0});return}const o=await Pn();if(!o)return;const i=await Gt(o);await nr(i)}})}async function gx(){return new Pt({key:"_move_dir",label:"移动文件夹",icon:"icon-operate ifo-move",title:"移动当前文件夹到其他位置",onClick:async(e,t)=>{await e.closeMenu();const n=await Pn();!n||await rl(n,"move",!0)}})}async function yx(){return new Pt({key:"_del_dir",label:"删除文件夹",icon:"icon-operate ifo-remove",title:"删除当前文件夹",onClick:async(e,t)=>{await e.closeMenu();const n=await Pn();if(!n)return;const o=await Wi();unsafeWindow.Core.FileAPI.DeleteFile([n],i=>{n.remove(),o.find("#js_top_header_file_path_box .top-file-path > .file-path").children(":last").prev()[0].click()},!0)}})}async function wx(){return new Pt({key:"_copy_dir",label:"复制文件夹",icon:"icon-operate ifo-copy",title:"复制当前文件夹",onClick:async(e,t)=>{await e.closeMenu();const n=await Pn();!n||await rl(n,"set_copy",!0)}})}async function bx(){return new Pt({key:"_copy_dir_to",label:"复制文件夹到",icon:"icon-operate ifo-copyto",title:"复制当前文件夹到其他位置",onClick:async(e,t)=>{await e.closeMenu();const n=await Pn();!n||await rl(n,"copy_list",!0)}})}async function _x(){return new Pt({key:"view_dir_attribute",label:"查看属性",icon:"icon-operate ifo-prop",onClick:async(e,t)=>{await e.closeMenu();const n=await Pn();!n||en().Core.FileAPI.getAttribute(n,{showPlayLongChange:function(o,i,s){Hb().CACHE.FileMain.List.ResetPlayLongText(o,i,s)}},function(){console.log("查看属性 ok")})}})}async function Kr(e,t){return new Pt({key:`_d_copy_names_${t}`,label:e,icon:"icon-operate ifo-copy",title:"复制当前目录下已加载的所有文件名称",onClick:async(n,o)=>{let s=(await Xn(!1)).map(r=>r.name);s=await er(s,t),an(s.join(`
`)),re({title:"复制名称",text:`已复制选中文件名。数量:${s.length},复制类型:${e}`,icon:"success"})}})}async function th(e,t){return new Pt({key:`_d_copy_paths_${t}`,label:e,icon:"icon-operate ifo-copy",title:"复制当前目录下已加载的所有文件路径",onClick:async(n,o)=>{await n.closeMenu();const i=await Xn(!1);let s=[];re({text:"正在获取文件路径...",timer:0}),pe.showLoading();try{s=await Vd(i,t),pe.close()}catch(r){console.error(r),re({text:`获取文件路径失败: ${r}`,timer:6e4,icon:"error"});return}finally{pe.hideLoading()}an(s.join(`
`)),re({title:"复制路径",text:`已复制文件的路径。数量:${s.length},复制类型:${e}`,icon:"success"})}})}async function vx(){return new Pt({key:"show_sub_folder_size",label:"子文件夹大小",title:"显示当前目录下已加载的所有子文件夹的大小,并进行排序",icon:"icon-operate ifo-prop",onClick:async(e,t)=>{await e.closeMenu(),await Wr("",Zp.desc,!0)}})}async function nh(e,t){return new rr({key:`_l_copy_name_${t}`,label:e,icon:"icon-operate ifo-copy",title:"复制名称",onClick:async(n,o)=>{await n.closeMenu();const i=await Hd();if(!i||!i.n){re({text:"无法获取名称",timer:1200});return}let s=[i.n];s=await er(s,t),an(s.join(`
`)),re({title:"复制名称",text:"已复制选中文件名",icon:"success"})}})}async function Gr(e,t){return new rr({key:`_l_copy_path_${t}`,label:e,icon:"icon-operate ifo-copy",title:"复制路径",onClick:async(n,o)=>{await n.closeMenu();const i=await Hd();if(!i||!i.n){re({text:"无法获取路径",timer:1200});return}const s=await Vi(i),r=await Zs(s),a=await tr(s,r,t);an(a),re({title:"复制路径",text:"已复制文件路径",icon:"success"})}})}async function xx(){return new rr({key:"_lc_view_in_clouddrive",label:"在CloudDrive中查看",icon:"icon-operate ifo-exportdir",title:"在CloudDrive2 Web页面中查看",onClick:async(e,t)=>{await e.closeMenu();const n=await jd();if(!n||!n.length){re({text:"无法获取文件信息",timer:1200});return}const o=await Gt(n);await nr(o)}})}let Cx=[];async function $x(){const e=[...(await zr()).filter(t=>t.enabled),...(await ui(In.play)).filter(t=>t.enabled)];return new ar({key:"_play_with_x_d",label:"播放",injectDecider:E_,title:"115在线播放",onClick:async(t,n)=>{n.stopPropagation(),n.preventDefault();const o=$(n.target).closest("li"),i=await Gt(o),s=cl(i.pickCode);i.isDir&&s.includes("v.anxia.com")?dl(i.id):window.open(s,"_blank","noopener noreferrer")},subItems:[...await o_(fi,e)]})}async function Ex(){const e=[...(await Yp()).filter(t=>t.enabled),...Cx.filter(t=>t.enabled),...(await ui(In.search)).filter(t=>t.enabled)];return new ar({key:"_search_with_name_d",label:"搜索",icon:"",title:"使用名称搜索",onClick:async(t,n)=>{n.stopPropagation(),n.preventDefault();const o=$(n.target).closest("li"),i=await zi(o),s=ll({search_value:i.n,cid:await Ct()});window.open(s,"_blank","noopener noreferrer")},subItems:[...await n_(fi,e)]})}async function kx(){return new fi({injectDecider:tf,key:"_lh_get_tree",label:"导出目录列表数据",icon:"icon-operate ifo-move",title:"获取该目录的全部层级的文件列表数据,并导出为JSON文件",onClick:async(e,t)=>{t.stopPropagation(),t.preventDefault();const n=$(t.target).closest("li"),o=await Gt(n);if(!o.isDir){re({text:"该功能仅对目录有效",icon:"warning",timer:2e3});return}await Wd(o)}})}async function Sx(){return new fi({key:"_lh_view_in_clouddrive",label:"在CloudDrive中查看",icon:"icon-operate ifo-exportdir",title:"在CloudDrive2 Web页面中查看",onClick:async(e,t)=>{t.stopPropagation(),t.preventDefault();const n=$(t.target).closest("li"),o=await Gt(n);await nr(o)}})}async function Ax(e){const t=[await oh("完整名称",Yt.full),await oh("不含后缀",Yt.pure),new hl({}),await Yr("路径(Unix)",Jt.unixPath),await Yr("路径(Windows)",Jt.winPath),await Yr("上级路径(Unix)",Jt.unixParentPath),await Yr("上级路径(Windows)",Jt.winParentPath)];return e.exportList&&t.push(new hl({}),await kx()),e.viewInCloudDrive&&t.push(new hl({}),await Sx()),new ar({key:"_lh_copy_name_path",label:"名称路径",title:"复制文件名称路径",onClick:async(n,o)=>{},subItems:t})}async function oh(e,t){return new fi({key:`_lh_copy_name_${t}`,label:e,icon:"icon-operate ifo-copy",title:e,onClick:async(n,o)=>{o.stopPropagation(),o.preventDefault();const i=$(o.target).closest("li");let r=[(await zi(i)).n];r=await er(r,t),an(r.join(`
`)),re({title:"复制名称",text:`已复制选中文件名,复制类型:${e}`,icon:"success",timer:1e3})}})}async function Yr(e,t){return new fi({key:`_lh_copy_path_${t}`,label:e,icon:"icon-operate ifo-copy",title:e,onClick:async(n,o)=>{o.stopPropagation(),o.preventDefault();const i=$(o.target).closest("li"),s=await Gt(i),r=await Zs(s),a=await tr(s,r,t);an(a),re({title:"复制路径",text:`已复制选中路径,复制类型:${e}`,icon:"success",timer:1e3})}})}async function Px(){return new ar({injectDecider:tf,key:"_open_in_new_tab",label:"新标签页",icon:"",title:"在新标签页打开",onClick:async(e,t)=>{t.stopPropagation(),t.preventDefault();const n=$(t.target).closest("li"),o=await Gt(n);if(!o||!o.id){re({text:"无法获取目录ID",timer:1200});return}const i=Ki(o.id);window.open(i,"_blank","noopener noreferrer")}})}async function Ix(){return new pl({key:"_s_smart_mkdir",label:"同名目录",icon:"icon-operate ifo-move",title:"将选中的文件移动到同名目录",onClick:await i_(!0)})}async function Tx(){return new pl({key:"_s_copy_names_paths",label:"名称路径",icon:"icon-operate ifo-copy",showIcon:!1,title:"复制选中文件的名称路径",onClick:async(e,t)=>{},subItems:[await Jr("完整名称",Yt.full),await Jr("不含后缀",Yt.pure),await Jr("完整文件名,去重",Yt.fullUnique),await Jr("不含后缀,去重",Yt.pureUnique),new ef({}),await ih("路径(Unix)",Jt.unixPath),await ih("路径(Windows)",Jt.winPath)]})}async function Jr(e,t){return new lr({key:`_s_copy_names_${t}`,label:e,icon:"icon-operate ifo-copy",showIcon:!1,title:e,onClick:async(n,o)=>{let s=(await Xn(!0)).map(r=>r.name);s=await er(s,t),an(s.join(`
`)),re({title:"复制名称",text:`已复制选中文件名。数量:${s.length},复制类型:${e}`,icon:"success",timer:1e3})}})}async function ih(e,t){return new lr({key:`_s_copy_path_${t}`,label:e,icon:"icon-operate ifo-copy",showIcon:!1,title:e,onClick:async(n,o)=>{const i=await Xn(!0);let s=[];re({text:"正在获取已选文件路径...",timer:0}),pe.showLoading();try{s=await Vd(i,t),pe.close()}catch(r){console.error(r),re({text:`获取已选文件路径失败: ${r}`,timer:6e4,icon:"error"});return}finally{pe.hideLoading()}an(s.join(`
`)),re({title:"复制路径",text:`已复制选中文件的路径。数量:${s.length},复制类型:${e}`,icon:"success",timer:1e3})}})}async function sh(){const e=await Xn(!0);if(!e.length)return;const t=Date.now().toString(),n=unsafeWindow.open(cl("xxx"),t);await bt(1e3);let o=10;for(;o>0;)n==null||n.postMessage({event:"play",body:{id:t,files:e}},"https://v.anxia.com"),await bt(1e3),o--}async function Ox(){const e=[...(await zr()).filter(t=>t.enabled),...(await ui(In.play)).filter(t=>t.enabled)];return new pl({key:"_s_play_with_x_d",label:"播放",title:"播放选中的文件",onClick:async(t,n)=>{n.stopPropagation(),n.preventDefault(),await sh()},subItems:[...await Mx(lr,e),new ef({}),new lr({label:"关于选中播放",onClick:async(t,n)=>{n.stopPropagation(),n.preventDefault(),re({title:"关于选中播放",html:`
              <p>点击主按钮(即「播放」)或「在线播放」会在线播放选中的视频。</p><br>
              <p>如果是点击调用本地播放器播放:<p>
              <p>原理: 生成m3u8文件,上传m3u8文件到115,调用播放该m3u8的CloudDrive2直链。<p>
              <p>设定: m3u8默认放在网盘根目录下的「.ce-m3u8-temp」目录下,不会自动清理。<p>
              <p>作为使用者需做的: 在CloudDrive2里设置「.ce-m3u8-temp」目录缓存时间为1秒。</p>
              <p class="text-info" style="font-size:12px;">这个目录会在首次播放时自动创建,如果想提前设置目录缓存时间,可以自己创建。另外,可以在「设置 - 菜单设置 - 全局设置」中修改「M3U8临时目录」以设置目录位置。</p>
              <br><p class="text-danger">导致播放失败的可能: CloudDrive2目录缓存工作异常,导致请求不到m3u8文件。</p>
            `,showConfirmButton:!0,width:600,timer:18e5})},icon:"data-text:❓"})]})}async function Lx(e){if(e=e.trim(),!e)throw new Error("m3u8临时目录路径为空!");const t=await Zb(e);if(t.id)return console.log("[ensureM3u8TempDir] result:",t),t.id;throw new Error("创建m3u8临时目录失败!")}async function Mx(e,t){const n=[];for(const o of t){const i=Rs(e,{key:`_ce_p_${o.key}`,label:o.label,icon:o.icon,title:o.memo,onClick:async(s,r)=>{if(r.stopPropagation(),r.preventDefault(),s.key==="_ce_p_p_builtin_online"){await sh();return}const a=await di();try{let l=await Xn(!0);if(l=l.filter(I=>I.isDir||I.isVideo||I.isImage),l.length===0){re({title:"播放失败",text:"没有可以播放的目录或媒体文件!",icon:"error",timer:2e3});return}const u=await Lx(a.m3u8TempDir),f=await Xb(l,u);console.log("[selection.buildPlayMenuItems generatePlaylistOn115]",f);const h=f.data,g=await ei(),b={id:h.file_id,name:h.file_name,parentId:h.cid,sizeBytes:h.file_size,pickCode:h.pick_code,isDir:!1,isFile:!0},_=Qs([a.m3u8TempDir,b.name],Qn.unix);re({title:"检查m3u8文件",text:"正在检查m3u8文件是否已准备就绪...",icon:"info",timer:0}),pe.showLoading(),await Mb(g,_,1e3,6e4),re({icon:"success",text:"m3u8文件已准备就绪,即将开始播放..."});const E=await or(b,o,g);window.open(E,"_blank","noopener noreferrer")}catch(l){console.error(l),re({title:"播放失败",text:l.toString(),icon:"error",timer:6e4,showConfirmButton:!0})}finally{pe.hideLoading()}}});n.push(i)}return n}const Dx={label:"选中项菜单",key:"selection",hiddenStyles:[{selector:"div.list-operate.lo-right li[menu={key}]",css:"width: 0 !important; opacity: 0 !important; padding: 0 !important; margin: 0 !important;"}],items:[{label:"下载",key:"download"},{label:"移动",key:"move"},{label:"标签",key:"edit_file_label"},{label:"重命名",key:"edit_name"},{label:"备注",key:"edit"},{label:"星标",key:"star"},{label:"删除",key:"delete"},{label:"分享",key:"public_share"},{label:"设置共享",key:"setShare"},{label:"取消共享",key:"cancelShare"},{label:"复制",key:"set_copy"},{label:"复制到...",key:"copy_list"},{label:"加密隐藏",key:"hide_file"},{label:"取消加密",key:"show_file"},{label:"评分",key:"file_score"},{label:"设为快捷入口",key:"set_category"},{label:"取消快捷入口",key:"unset_category"},{label:"显示时长",key:"show_play_long"},{label:"修改封面",key:"cover"},{label:"一键排重",key:"same"},{label:"导出目录树",key:"export_dir"},{label:"显示属性",key:"attribute"},{label:"转存至相册",key:"trans_to_album"}]},Rx={label:"列表项右键菜单",key:"context",hiddenStyles:[{selector:"div.context-menu.menu-upward li[val={key}] a",css:"display: none !important;"}],items:[{label:"打开文件",key:"view"},{label:"打开文件夹",key:"open_dir"},{label:"下载文件",key:"download"},{label:"下载文件夹",key:"download_dir"},{label:"打包下载",key:"bale_download"},{label:"刷新",key:"refresh"},{label:"复制",key:"set_copy"},{label:"复制到...",key:"copy_list"},{label:"加密隐藏",key:"hide_file"},{label:"取消加密",key:"show_file"},{label:"评分",key:"file_score"},{label:"显示时长",key:"show_play_long"},{label:"取消时长",key:"hide_play_long"},{label:"添加到我听",key:"listen"},{label:"美化",key:"magic"},{label:"修改封面",key:"cover"},{label:"删除封面",key:"del_cover"},{label:"一键排重",key:"same"},{label:"移动",key:"move"},{label:"重命名",key:"edit_name"},{label:"备注",key:"edit"},{label:"显示属性",key:"attribute"},{label:"删除",key:"delete"},{label:"播放器播放",key:"player"},{label:"转存到相册",key:"trans_to_album"},{label:"举报",key:"report"}]},Nx={label:"列表项悬浮菜单",key:"hover",hiddenStyles:[{selector:"div.file-opr[rel=menu] a[menu={key}]",css:"width: 0 !important; opacity: 0 !important; padding: 0 !important; margin: 0 !important;"},{selector:"div.context-menu li[menu={key}] a",css:"display: none !important;"}],items:[{label:"星标",key:"star"},{label:"下载文件",key:"download_one"},{label:"下载文件夹",key:"download_dir_one"},{label:"移动",key:"move"},{label:"标签",key:"edit_file_label"},{label:"重命名",key:"edit_name"},{label:"备注",key:"edit"},{label:"删除",key:"delete"},{label:"分享",key:"public_share"},{label:"取消加密",key:"show_file"},{label:"评分",key:"file_score"},{label:"设置共享",key:"setShare"},{label:"取消共享",key:"cancelShare"},{label:"复制",key:"set_copy"},{label:"显示时长",key:"show_play_long"},{label:"修改封面",key:"cover"},{label:"一键排重",key:"same"},{label:"导出目录树",key:"export_dir"},{label:"显示属性",key:"attribute"},{label:"转存至相册",key:"trans_to_album"},{label:"设为快捷入口",key:"set_category"},{label:"取消快捷入口",key:"unset_category"}]},rh=rt.hiddenOfficialMenuKeys;async function ah(){return await et.get(rh,[])}async function Bx(e,t=!1){var n;await et.set(rh,e),t&&(unsafeWindow.postMessage({event:ct.officialMenuStyleChange},"*"),(n=unsafeWindow.frames.wangpan)==null||n.postMessage({event:ct.officialMenuStyleChange},"*"))}async function Fx(e){const t=[];return e.forEach(n=>{n.items.forEach(o=>{o.hidden&&t.push(`${n.key}_${o.key}`)})}),t}async function lh(){const e=[Dx,Rx,Nx],t=await ah();return e.forEach(n=>{n.items.forEach(o=>{const i=`${n.key}_${o.key}`;t.includes(i)?o.hidden=!0:o.hidden=!1})}),e}async function Ux(){const e=await lh(),t=[];return e.forEach(n=>{n.hiddenStyles.forEach(o=>{const i=[];n.items.forEach(s=>{!s.hidden||i.push(o.selector.replace("{key}",s.key))}),i.length&&t.push(i.join(`,
`)+" { "+o.css+" }")})}),t.join(`
`)}async function ch(){const e="cloud115EnhancerOfficialMenuStyle",t=await Ux();let n=document.getElementById(e);if(n){n.innerHTML=t;return}n=document.createElement("style"),n.id=e,n.innerHTML=t,document.body.appendChild(n)}async function jx(){const{host:e,search:t}=location;if(!e.includes("115.com"))return;console.log("[Cloud115 Enhancer - menu] running..."),Hx(),document.addEventListener(tn.EVENT_CLOSE_MENU,o=>{$("#"+o.detail.menu.key).closest(".context-menu").hide()});const n=await di();!n.enabled||(qx(n),await zd(n),window.top===window.self&&zx(n),Wx(n),(t.includes("ct=file")||t.includes("mode=search"))&&(Vx(n),Kx(n),t_(n)))}async function Hx(){console.log("[Cloud115 Enhancer - menu] injectUI");const e="ceCustomUrlHelp",t=document.createElement("div");t.id=e,document.body.appendChild(t),Cn(Y0).mount(`#${e}`)}async function qx(e){!e.manageOfficialMenus||(ch(),window.addEventListener("message",async t=>{t.data.event===ct.officialMenuStyleChange&&(console.log("[Cloud115 Enhancer - menu] officialMenuStyleChange",location.href),await bt(1e3),console.log(await ah()),ch())}))}const uc=async(e,t)=>{};async function zx(e){const{[Be.dirContext]:t}=e;if(!t.enabled)return;const n=[];t.rename&&n.push(await px()),t.delete&&n.push(await yx()),t.play&&n.push(await fx(!0)),t.copyNames&&n.push(new Pt({key:"_dir_copy_names",label:"名称路径",icon:"icon-operate ifo-copy",onClick:uc,subItems:[await Kr("完整名称",Yt.full),await Kr("不含后缀",Yt.pure),await Kr("完整名称,去重",Yt.fullUnique),await Kr("不含后缀,去重",Yt.pureUnique),new __({}),await th("路径(Unix)",Jt.unixPath),await th("路径(Windows)",Jt.winPath)]}));const o=[];t.move&&o.push(await gx()),t.viewProp&&o.push(await _x()),t.showSubFolderSize&&o.push(await vx()),t.copy&&o.push(await wx()),t.copyTo&&o.push(await bx()),t.exportList&&o.push(await hx()),t.viewInCloudDrive&&o.push(await mx()),o.length===1?n.push(o[0]):o.length>1&&n.push(new Pt({key:"_dir_more",label:"更多",icon:"icon-operate ifo-open",onClick:uc,subItems:o})),await new v_({items:n,siblingSelector:'[val="upload"]',position:$o.before}).inject(),$(".ce-menu-parent .ce-menu-trigger").on("mouseover",function(){$(this).find(".ce-menu-dropdown").show()}).on("mouseout",function(){$(this).find(".ce-menu-dropdown").hide()})}async function Vx(e){const{[Be.listItemHover]:t}=e;if(!t.enabled)return;const n=[];t.openInNewTab&&n.push(await Px()),t.search&&n.push(await Ex()),t.play&&n.push(await $x()),t.copyNames&&n.push(await Ax(t)),new C_({items:n,position:$o.after,siblingSelector:'[menu="move"], [menu="delete"]'}).inject()}async function Wx(e){const{[Be.listItemContext]:t}=e;if(!t.enabled)return;const n=[],o=[];t.copyNames&&o.push(await nh("完整名称",Yt.full),await nh("不含后缀",Yt.pure),new Zd({}),await Gr("路径(Unix)",Jt.unixPath),await Gr("路径(Windows)",Jt.winPath),await Gr("上级路径(Unix)",Jt.unixParentPath),await Gr("上级路径(Windows)",Jt.winParentPath)),t.viewInCloudDrive&&o.push(new Zd({}),await xx()),o.length&&n.push(new rr({key:"_list_item_copy_name_path",label:"名称路径",icon:"icon-operate ifo-copy",onClick:uc,subItems:o})),new x_({items:n,position:$o.after,siblingSelector:'[val="refresh"]',useObserver:!0,observeTarget:document.body,disposeObserverAfterInjection:!1}).inject()}async function Kx(e){const{[Be.selection]:t}=e;if(!t.enabled)return;const n=[];location.search.includes("ac=search")||t.moveToSelfNameDir&&n.push(await Ix()),t.copyNames&&n.push(await Tx()),t.play&&n.push(await Ox()),new $_({items:n,position:$o.before,siblingSelector:"ul li"}).inject()}const uh=rt.offline;var Qr=(e=>(e.name="name",e.nameRegex="nameRegex",e.infoHash="infoHash",e.url="url",e))(Qr||{});const Gx={name:"名称",nameRegex:"名称正则",infoHash:"哈希",url:"链接"};function Yx(e){return{onlyMagnetEd2k:!1,enableOptimization:!0,reqInterval:500,maxPage:0,showInfoHash:!0,enableListManagement:!0,fixGotoPage:!1,enableSearcher:!0,searchMaxPage:5,searchKeywordType:"name",searchStatus:Ut.any,searchStopOnFound:!1,searchReqInterval:10,noGotoTaskPage:!0,...e}}async function po(){const e=Yx(),t=await et.get(uh,e);return{...e,...t}}async function dh(e){await et.set(uh,e),window.postMessage({event:Ei.configChanged,body:JSON.parse(JSON.stringify(e))},"*")}async function Jx(e){const t=await vo("#js-warp"),o=t[0].querySelectorAll("li[complete]");o.length>0&&o.forEach(async s=>{await fh(s,e)}),eC(e),new MutationObserver(async([s])=>{if(s.type==="childList"){s.addedNodes.forEach(async a=>{await fh(a,e)});const r=document.querySelector(".ce-checkbox-all input");r.checked=!1,await Xr([])}}).observe(t[0],{childList:!0})}async function Qx(e){const t=e;return{complete:t.getAttribute("complete"),cate_id:t.getAttribute("cate_id"),delete_id:t.getAttribute("delete_id"),status:t.getAttribute("status"),suffix:t.getAttribute("suffix"),name:t.getAttribute("name"),hash:t.getAttribute("hash")}}async function fh(e,t){const n=e,o=await Qx(e);tC(n,t,o),Xx(n,t,o),Zx(n,t,o)}async function Xx(e,t,n){if(!t.showInfoHash||e.querySelector(".info-hash"))return;const o=e.querySelector(".file-name"),i=document.createElement("div");i.classList.add("info-hash"),i.textContent=n.hash,i.title=`点击复制${n.hash}`,o.after(i),i.addEventListener("click",()=>{Ri(n.hash,"text"),re({text:"已复制",icon:"success",timer:800})});const s=e.querySelector(".desc-tips");s&&s.style.display!=="none"&&e.classList.add("ce-task-trouble")}async function Zx(e,t,n){const o=e.querySelector(".file-operate");if(o.querySelector(".ce-buttons"))return;const i=document.createElement("span");i.className="ce-buttons";const s=document.createElement("a");s.className="pure-button button-mini button-info",s.href=Ki(n.cate_id),s.target="_blank",s.textContent="打开",s.title="在新标签页打开目录",i.append(s),o.prepend(i)}async function eC(e){if(!e.enableListManagement)return;const t=await vo("#js-main .header-name");if(t.length===0){console.warn("[renderCheckboxAll] 找不到`#js-main .header-name`");return}const n=t[0];let o=n.querySelector(".ce-checkbox-all");o||(o=document.createElement("div"),o.classList.add("ce-checkbox"),o.classList.add("ce-checkbox-all"),o.innerHTML=`
      <input type="checkbox"/>
    `,n.prepend(o)),o.addEventListener("click",()=>{const i=o.querySelector("input").checked;document.querySelectorAll("#js-warp li").forEach(r=>{const a=r.querySelector("input");a.checked=i,r.classList.toggle("ce-selected",i)}),dc().then(r=>{Xr(r)})})}async function tC(e,t,n){if(!t.enableListManagement||e.querySelector(".ce-checkbox"))return;const o=e.querySelector(".file-name-wrap"),i=document.createElement("div");i.classList.add("ce-checkbox"),i.innerHTML=`
    <input type="checkbox" data-id="${n.hash}" />
  `,o.prepend(i),e.classList.add("ce-show-checkbox"),i.addEventListener("click",async s=>{s.shiftKey?await oC(s,e):await nC(s,e)})}async function nC(e,t){t.classList.toggle("ce-selected");const n=document.querySelector(".ce-checkbox-all input"),o=await hh(!1);let i=0;for(const r of o)r.classList.contains("ce-selected")&&i++;const s=i===o.length;n.checked=s,n.indeterminate=!s&&i>0,dc().then(r=>{Xr(r)})}async function oC(e,t){const n=await hh(!1),o=n.indexOf(t);let i=-1;for(let f=0;f<o;f++)if(n[f].classList.contains("ce-selected")){i=f;break}if(i===-1){for(let f=n.length-1;f>o;f--)if(n[f].classList.contains("ce-selected")){i=f;break}}i=i===-1?o:i;const s=Math.min(i,o),r=Math.max(i,o);let a=0;for(let f=0;f<n.length;f++){const h=n[f],g=h.querySelector(".ce-checkbox input"),b=f>=s&&f<=r;g.checked=b,b&&a++,h.classList.toggle("ce-selected",b)}const l=s===0&&r===n.length-1,u=document.querySelector(".ce-checkbox-all input");u.checked=l,u.indeterminate=!l&&a>0,dc().then(f=>{Xr(f)})}async function ph(e){var n;const t={info_hash:e.getAttribute("hash"),status:Number(e.getAttribute("status")),name:e.getAttribute("name"),file_id:e.getAttribute("cate_id"),delete_file_id:e.getAttribute("delete_id"),url:((n=e.querySelector(".file-operate a[cp_href]"))==null?void 0:n.getAttribute("cp_href"))||""};return t.name||(t.name=e.querySelector(".file-name").textContent.trim()),t}async function hh(e){const t=document.querySelectorAll("#js-warp li"),n=[];return t.forEach(async o=>{const i=o;(!e||i.classList.contains("ce-selected"))&&n.push(i)}),n}async function dc(){const e=document.querySelectorAll("#js-warp li"),t=[];return e.forEach(async n=>{const o=n;if(o.classList.contains("ce-selected")){const i=await ph(o);t.push(i)}}),t}var Ei=(e=>(e.selection="ce-offline-selection",e.configChanged="ce-offline-config-changed",e.searchPageChanged="ce-offline-search-page-changed",e))(Ei||{});async function Xr(e){window.postMessage({event:"ce-offline-selection",body:e},"*")}async function fc(e){document.querySelectorAll("#js-warp li").forEach(async n=>{const o=n,i=o.getAttribute("hash");e.includes(i)&&Yd(o)})}async function iC(e,t,n,o){var b;const i=[],s=n.maxPage||5;let r="",a=null,l="",u="",f="";n.name!==void 0&&(r=n.caseSensitive?n.name:n.name.toLowerCase()),n.nameRegex!==void 0&&(a=new RegExp(n.nameRegex)),n.infoHash!==void 0&&(l=n.caseSensitive?n.infoHash:n.infoHash.toLowerCase()),n.url!==void 0&&(u=n.caseSensitive?n.url:n.url.toLowerCase()),n.status!==void 0&&n.status!==Ut.any&&n.status.toString()!==""&&(f=n.status.toString());let h=n.stopOnFound||!1;(l||u)&&(h=!0);let g=-1;for(let _=1;_<=s&&!(g>-1&&_>g);_++){window.postMessage({event:"ce-offline-search-page-changed",body:_},"*");const E=await Od(_,e,t);g===-1&&(g=E.page_count);const I=E.tasks;for(const M of I){const P=n.caseSensitive?M.name:M.name.toLowerCase(),T=n.caseSensitive?M.info_hash:M.info_hash.toLowerCase(),H=n.caseSensitive?M.url:(b=M.url)==null?void 0:b.toLowerCase(),ie=r&&n.fuzzyName?P.includes(r):!1,U=a?a.test(P):!1,Z=l&&T===l,ce=u&&H===u;if((f?f===M.status.toString():!0)&&(ie||U||Z||ce)&&(i.push(M),h))break}if(h&&i.length)break;_<s&&await bt(o.searchReqInterval||50)}return i}async function sC(){if(!(await po()).fixGotoPage)return;const t=await kn("#js-page");if(!t){console.warn("[fixGotoPage] 找不到`#js-page`");return}const n=async r=>{if(r.key!=="Enter")return;const a=r.target,l=parseInt(a.value);if(isNaN(l)){a.select();return}parent.window.Core.OFFL5Plug.ChangePage(l)},o=async(r=!1)=>{const a=t.querySelector('input[rel="page_jump"]');if(!a)return;const l=document.createElement("input");l.setAttribute("rel","page_jump"),l.type="text",l.style.backgroundColor="#fefcea",l.title="这是 115不大助手 替换的输入框,如果想恢复原有的输入框,请在「离线设置」中关闭「修复输入页码跳转」选项",l.addEventListener("keydown",n),a.insertAdjacentElement("beforebegin",l),a.remove(),r&&l.focus()},i=Ft(async r=>{o(!0)},50),s=new MutationObserver(async([r])=>{r.type==="childList"&&i(r)});o(!1),s.observe(t,{childList:!0})}const rC={class:"ce-config ce-offline-config"},aC={class:"pure-form pure-form-aligned offline-exporter-config-form"},lC={class:"pure-control-group"},cC=c("label",{for:"noGotoTaskPage"},"添加任务后不跳转",-1),uC=c("div",{class:"pure-form-message text-success"}," 官方的添加离线任务在添加任务后可能会跳转到任务列表页,开启此选项可以避免跳转。 ",-1),dC={class:"pure-control-group"},fC=c("label",{for:"enableListManagement"},"启用批量管理",-1),pC=c("div",{class:"pure-form-message text-success"}," 可以选中多个任务进行操作,支持shift多选。 ",-1),hC={class:"pure-control-group"},mC=c("label",{for:"showInfoHash"},"显示链接哈希",-1),gC=c("div",{class:"pure-form-message text-success"}," 显示离线任务的哈希文本,点击可以复制。 ",-1),yC={class:"pure-control-group"},wC=c("label",{for:"fixGotoPage"},"修复输入页码跳转",-1),bC=c("div",{class:"pure-form-message text-success"}," 如果官方的输入页码跳转功能异常,可开启此选项。 ",-1),_C=c("div",{class:"ce-tips"},"以下是导出链接相关选项",-1),vC={class:"pure-control-group"},xC=c("label",{for:"onlyMagnetEd2k"},"只取磁力和ED2K链接",-1),CC=c("div",{class:"pure-form-message text-success"}," 导出链接时,只取磁力和ED2K链接,其他比如http链接会被略过。 ",-1),$C={class:"pure-control-group"},EC=c("label",{for:"enableOptimization"},"启用导出优化",-1),kC=c("div",{class:"pure-form-message text-success"}," 据观察,离线记录列表是将未完成的记录放在最前面的。如果只需导出未完成链接, 当获取到一个已完成的记录时,便可以停止继续获取后面的记录,节省时间。 ",-1),SC={class:"pure-control-group"},AC=c("label",{for:"reqInterval"},"导出请求数据间隔",-1),PC=c("div",{class:"pure-form-message text-success"}," 导出时请求分页的间隔,单位为毫秒,默认500。 ",-1),IC={class:"pure-control-group"},TC=c("label",{for:"maxPage"},"最多导出页数",-1),OC=c("div",{class:"pure-form-message text-success"}," 0表示不限制,否则表示最多导出的页数。 ",-1),LC=c("div",{class:"ce-tips"},[ee("以下是搜索离线任务相关选项。"),c("small",{class:"text-info"},"提示: 除了关键词,其他搜索条件都会持久保存。")],-1),MC={class:"pure-control-group"},DC=c("label",{for:"reqInterval"},"搜索请求数据间隔",-1),RC=c("div",{class:"pure-form-message text-success"}," 搜索时请求分页的间隔,单位为毫秒,默认10。 ",-1),mh=Ne({__name:"Config",async setup(e){let t,n;const o=de(([t,n]=rn(()=>po()),t=await t,n(),t));return Tt(async()=>{}),ht(o,Ft(async i=>{await dh(i),re({icon:"success",title:"设置已保存,刷新页面以使全部更改生效。",timer:1e3,position:"top-end"})},500),{deep:!0}),(i,s)=>(B(),z("div",rC,[c("form",aC,[c("fieldset",null,[c("div",lC,[cC,G(c("input",{id:"noGotoTaskPage",type:"checkbox","onUpdate:modelValue":s[0]||(s[0]=r=>o.value.noGotoTaskPage=r)},null,512),[[Ce,o.value.noGotoTaskPage]]),uC]),c("div",dC,[fC,G(c("input",{id:"enableListManagement",type:"checkbox","onUpdate:modelValue":s[1]||(s[1]=r=>o.value.enableListManagement=r)},null,512),[[Ce,o.value.enableListManagement]]),pC]),c("div",hC,[mC,G(c("input",{id:"showInfoHash",type:"checkbox","onUpdate:modelValue":s[2]||(s[2]=r=>o.value.showInfoHash=r)},null,512),[[Ce,o.value.showInfoHash]]),gC]),c("div",yC,[wC,G(c("input",{id:"fixGotoPage",type:"checkbox","onUpdate:modelValue":s[3]||(s[3]=r=>o.value.fixGotoPage=r)},null,512),[[Ce,o.value.fixGotoPage]]),bC]),_C,c("div",vC,[xC,G(c("input",{id:"onlyMagnetEd2k",type:"checkbox","onUpdate:modelValue":s[4]||(s[4]=r=>o.value.onlyMagnetEd2k=r)},null,512),[[Ce,o.value.onlyMagnetEd2k]]),CC]),c("div",$C,[EC,G(c("input",{id:"enableOptimization",type:"checkbox","onUpdate:modelValue":s[5]||(s[5]=r=>o.value.enableOptimization=r)},null,512),[[Ce,o.value.enableOptimization]]),kC]),c("div",SC,[AC,G(c("input",{id:"reqInterval",type:"number","onUpdate:modelValue":s[6]||(s[6]=r=>o.value.reqInterval=r),min:50},null,512),[[Ve,o.value.reqInterval]]),PC]),c("div",IC,[TC,G(c("input",{id:"maxPage",type:"number","onUpdate:modelValue":s[7]||(s[7]=r=>o.value.maxPage=r),min:0},null,512),[[Ve,o.value.maxPage]]),OC]),LC,c("div",MC,[DC,G(c("input",{id:"reqInterval",type:"number","onUpdate:modelValue":s[8]||(s[8]=r=>o.value.searchReqInterval=r),min:10},null,512),[[Ve,o.value.searchReqInterval]]),RC])])])]))}}),UR="",NC={class:"ce-offline-exporter"},BC={key:0},FC=c("button",{type:"button",class:"pure-button button-mini"},"设置",-1),UC=Ne({__name:"OflineExporter",setup(e){const t=`\r
`;let n,o;const i=de([]);let s={};Ot(async()=>{s=await po(),n=await Md(),console.log("[profile]",n),o=await Ld(),console.log("[space]",o),r(),await Jx(s)});async function r(){window.addEventListener("message",E=>{const{event:I,body:M}=E.data;switch(I){case Ei.selection:i.value=M;break;case Ei.configChanged:s=M;break}},!1)}async function a(E=!1,I=""){const{isConfirmed:M,value:P}=await pe.fire({title:"根据链接删除离线任务",html:`
      <div>每行一个链接,支持磁力链接和ED2K链接</div>
      <div>
        <label class="swal2-checkbox" style="display: flex;">
          <input type="checkbox" id="swalDeleteFile">
          <span class="swal2-label">同时删除文件</span>
        </label>
      </div>
      <div>
        <textarea id="swalUrls" aria-label="每行一个链接" class="swal2-textarea" placeholder="每行一个链接" style="width:80%;"></textarea>
      </div>
    `,focusConfirm:!1,didOpen:()=>{const ie=document.getElementById("swalDeleteFile");ie.checked=E;const U=document.getElementById("swalUrls");U.value=I,U.focus()},preConfirm:()=>{const ie=document.getElementById("swalDeleteFile"),U=document.getElementById("swalUrls");return{deleteFile:ie?ie.checked:!1,urls:U?U.value:""}},width:620,inputPlaceholder:"每行一个",inputAttributes:{"aria-label":"每行一个"},showCancelButton:!0,confirmButtonText:"确定",cancelButtonText:"取消"});if(!M)return;if(P===void 0){alert("请输入链接!");return}const T=[],H=P.urls.trim().split(`
`);for(let ie=0;ie<H.length;ie++){const U=H[ie].trim();if(ru(U)||au(U)){const Z=cu(U);Z&&T.push(Z.toLowerCase())}}pe.showLoading(),pe.update({html:"正在删除..."}),await ol(T,o,P.deleteFile,n.user_id),re({icon:"success",title:"删除成功!请刷新页面查看最新的列表。",timer:3e4,position:"top-end"}),await fc(T)}async function l(){const E=i.value.map(T=>T.info_hash);if(!E.length)return;const{isConfirmed:I,value:M}=await pe.fire({title:"批量删除",icon:"warning",html:`确定要删除选中的 ${E.length} 个离线记录吗?`,input:"checkbox",inputValue:0,inputPlaceholder:"同时删除文件",showCancelButton:!0,confirmButtonText:"确定",cancelButtonText:"取消"});if(!I)return;const P=!!M;pe.showLoading(),pe.update({html:"正在删除..."}),await ol(E,o,P,n.user_id),re({icon:"success",title:"删除成功",timer:800,position:"top-end"}),await fc(E),i.value=[]}async function u(E){const I=[E];s.onlyMagnetEd2k&&I.push(jt.magnetEd2k),console.log("[filters]",I),await _(o.sign,n.user_id,I)}function f(E,I){if(!I.length||I.length===1&&I[0]==="all")return E;const M={[Ut.failed]:jt.failed,[Ut.illegal]:jt.failed,[Ut.ing]:jt.failed,[Ut.success]:jt.success};return E=E.filter(P=>{if(!P.url&&!P.info_hash)return!1;const T=M[P.status];return I.includes(jt.all)||T&&I.includes(T)?!(I.includes(jt.magnetEd2k)&&(!Ag(P.info_hash)||P.url&&!ru(P.url)&&!au(P.url))):!1}),E}async function h(E,I,M){let P=[],T=1,H=0;for(;;){pe.update({html:`正在导出... 进度:第 ${T} 页`+(H?` / ${H}`:""),allowOutsideClick:!1});const ie=await Od(T,E,I);if(!ie.tasks||!ie.tasks.length)break;if(H===0&&s.maxPage>0?H=Math.min(ie.page_count,s.maxPage):H=ie.page_count,P=[...P,...f(ie.tasks,M)],s.enableOptimization&&M.includes(jt.failed)&&g(ie.tasks)){console.warn("由于开启了导出优化,且检测到已获取的记录中至少有一个「已完成」的记录,将不再获取剩下的记录");break}if(T>=H)break;T++,await bt(s.reqInterval)}return P}function g(E){for(const I of E)if(I.status===Ut.success)return!0;return!1}async function b(){const E=[jt.all];s.onlyMagnetEd2k&&E.push(jt.magnetEd2k),console.log("[filters]",E);const I=i.value;if(!I.length)return;const M=[];I.forEach(P=>{!P.url&&P.info_hash&&(P.url=lu(P.info_hash)),M.push(P.url)}),M.length&&(Ri(M.join(t),"text"),console.log("[links]",M),await pe.fire({title:"导出成功",icon:"success",html:`成功导出 ${M.length} 个链接,请粘贴到文本文件。`,showDenyButton:!0,denyButtonText:"保存到txt",allowEscapeKey:!1,allowOutsideClick:!1,preDeny:async()=>(console.log("[saveAs]"),Bi(M.join(t),`115离线链接_数量${M.length}_${Ni()}.txt`),!1)}))}async function _(E,I,M){pe.fire({title:"导出离线链接",html:"正在导出...",didOpen:()=>{pe.showLoading()}});const P=await h(E,I,M);if(pe.hideLoading(),!P.length){await pe.fire({title:"导出失败",icon:"error",html:"查询不到符合条件的离线记录!"});return}const T=[];if(P.forEach(H=>{!H.url&&H.info_hash&&(H.url=lu(H.info_hash)),T.push(H.url)}),!T.length){await pe.fire({title:"导出失败",icon:"error",html:"未完成的离线记录中没有磁力或HTTP链接!"});return}Ri(T.join(t),"text"),console.log("[links]",T),await pe.fire({title:"导出成功",icon:"success",html:`成功导出 ${T.length} 个链接,请粘贴到文本文件。`,showDenyButton:!0,denyButtonText:"保存到txt",allowEscapeKey:!1,allowOutsideClick:!1,preDeny:async()=>(console.log("[saveAs]"),Bi(T.join(t),`115离线链接_数量${T.length}_${Ni()}.txt`),!1)})}return(E,I)=>{const M=Uo("VDropdown");return B(),z("span",NC,[i.value.length?(B(),z("span",BC,[c("button",{type:"button",class:"pure-button button-small button-error",onClick:l},[ee("删除("),c("span",null,ge(i.value.length),1),ee(")")]),ee("      ")])):qe("",!0),c("button",{type:"button",class:"pure-button button-mini button-error",onClick:I[0]||(I[0]=P=>a(!1,"")),title:"填写链接以删除对应的离线任务"},"根据链接删除"),ee("   "),i.value.length?(B(),z("button",{key:1,type:"button",class:"pure-button button-mini button-warning",onClick:b,title:"导出选中任务的链接"},[ee("导出已选"),c("span",null,"("+ge(i.value.length)+")",1)])):qe("",!0),c("button",{type:"button",class:"pure-button button-mini button-error",onClick:I[1]||(I[1]=P=>u(fe(jt).failed)),title:"导出未完成链接"},"导出未完成"),c("button",{type:"button",class:"pure-button button-mini button-success",onClick:I[2]||(I[2]=P=>u(fe(jt).success)),title:"导出已完成链接"},"导出已完成"),c("button",{type:"button",class:"pure-button button-mini button-warning",onClick:I[3]||(I[3]=P=>u(fe(jt).all)),title:"导出全部链接"},"导出全部"),ee("   "),ke(M,{distance:5,"arrow-padding":10},{popper:Qe(()=>[(B(),on(Qf,null,{default:Qe(()=>[ke(mh)]),_:1}))]),default:Qe(()=>[FC]),_:1})])}}}),jR="",jC=["cate_id","delete_id","status","hash"],HC={class:"file-name-wrap"},qC={class:"file-name"},zC={task_popup:"goto",href:"javascript:;",class:"name"},VC={rel:"name"},WC={class:"desc-tips",rel:"file_down_violations"},KC={class:"txt-red",rel:"file_down_tips"},GC=["filename"],YC={class:"file-size"},JC={class:"file-process"},QC=c("i",{class:"icon-file-status ifst-failure"},null,-1),XC=c("span",{rel:"progress"},"下载失败",-1),ZC=c("i",{class:"icon-file-status ifst-success"},null,-1),e$=c("span",{rel:"progress"},"下载成功",-1),t$=c("i",{class:"icon-file-status ifst-downing"},null,-1),n$={rel:"progress"},o$=c("i",{class:"icon-file-status ifst-violation"},null,-1),i$=c("span",{rel:"progress"},"违规",-1),s$=c("i",{class:"icon-file-status ifst-failure"},null,-1),r$=c("span",{rel:"progress"},"[未知]",-1),a$={class:"file-operate",rel:"opt"},l$=c("a",{href:"javascript:;",task_popup:"goto"},[c("i",{class:"icon-operate ifo-opendir"}),c("s",null,"跳转到目录")],-1),c$=["cp_href"],u$=[c("i",{class:"icon-operate ifo-copy"},null,-1),c("s",null,"复制",-1)],d$=c("a",{href:"javascript:;",class:"btn-delete-offline"},[c("i",{class:"icon-operate ifo-remove"}),c("s",null,"删除")],-1),f$=Ne({__name:"OfflineItem",props:{item:null,space:null,profile:null},setup(e){const t=e,n=xn(()=>t.item.percentDone?parseInt(t.item.percentDone.toString()):0),o=xn(()=>{const{name:r,del_path:a}=t.item;let l=r.replace(/^.*\./,"");return a&&/\/$/.test(a)&&(l="folder"),/^[a-z\d]+$/i.test(l)||(l="unknown"),l}),i=xn(()=>{const{err:r}=t.item;return r?Xy[r]:""}),s=xn(()=>t.item.can_appeal===1);return(r,a)=>(B(),z("li",{complete:"",cate_id:e.item.file_id,delete_id:e.item.delete_file_id,status:e.item.status,hash:e.item.info_hash},[c("div",HC,[c("i",{class:Je(["file-type",`tp-${fe(o)}`])},null,2),c("div",qC,[c("em",null,[c("a",zC,[c("span",VC,ge(e.item.name),1)])])]),G(c("div",WC,[c("span",KC,ge(fe(i)),1),G(c("a",{href:"javascript:;",class:"btn-link",filename:e.item.name,rel:"violations_down_btn"},"去申诉",8,GC),[[Dt,fe(s)]])],512),[[Dt,fe(i)]])]),c("div",YC,[c("span",null,ge(fe(Ns)(e.item.size)),1)]),c("div",JC,[e.item.status===fe(Ut).failed?(B(),z(Ue,{key:0},[QC,XC],64)):e.item.status===fe(Ut).success?(B(),z(Ue,{key:1},[ZC,e$],64)):e.item.status===fe(Ut).ing?(B(),z(Ue,{key:2},[t$,c("span",n$,ge(fe(n))+"%",1)],64)):e.item.status===fe(Ut).illegal?(B(),z(Ue,{key:3},[o$,i$],64)):(B(),z(Ue,{key:4},[s$,r$],64))]),c("div",a$,[l$,c("a",{href:"javascript:;",cp_href:e.item.url,task_popup:"copy"},u$,8,c$),d$])],8,jC))}}),p$={class:"ce-offline-list"},h$=Ne({__name:"OfflineList",props:{items:null,space:null,profile:null},setup(e){return(t,n)=>(B(),z("div",p$,[c("ul",null,[(B(!0),z(Ue,null,st(e.items,(o,i)=>(B(),on(f$,{Key:i,item:o,space:e.space,profile:e.profile},null,8,["Key","item","space","profile"]))),256))])]))}}),m$={inline:"",class:"pure-form search-form",size:"small"},g$={class:"form-item",label:"关键词"},y$=["value"],w$={class:"form-item"},b$=["onKeyup"],_$={class:"form-item",label:"状态"},v$=["value"],x$=["value"],C$={class:"form-item",label:"页数"},$$=c("small",null,"页",-1),E$={class:"form-item"},k$={key:0,title:"根据「名称/名称正则」查找时,是否在找到一个结果时停止继续查找"},S$={key:0,class:"search-tips"},A$={class:"tips-body"},P$={key:0},I$=Ne({__name:"OfflineSearcher",setup(e){let t,n;const o=de(),i=de({KeywordType:Qr.name,keyword:"",status:Ut.any,maxPage:5,stopOnFound:!1});let s={...i.value};const r=de(null),a=de(!1),l=de([]),u=de(null),f=de({content:"",subContent:"",visible:!1});Ot(async()=>{t=await Md(),n=await Ld(),o.value=await po(),i.value.KeywordType=o.value.searchKeywordType,i.value.status=o.value.searchStatus,i.value.maxPage=o.value.searchMaxPage,i.value.stopOnFound=o.value.searchStopOnFound,s={...i.value},document.body.addEventListener("click",U=>{H(U)}),h()}),ht(i,Ft(async U=>{console.log("[searchParams changed]",nu(U)),b()},200),{deep:!0});async function h(){window.addEventListener("message",U=>{const{event:Z,body:ce}=U.data;switch(Z){case Ei.searchPageChanged:g(ce);break;case Ei.configChanged:o.value={...ce};break}},!1)}async function g(U){console.log("[handleSearchPageChanged]",U),await ie({subContent:`正在搜索第 ${U} 页...`,visible:!0})}async function b(){const U=await po();let Z=0;s.KeywordType!==i.value.KeywordType&&(U.searchKeywordType=i.value.KeywordType,Z++),s.status!==i.value.status&&(U.searchStatus=i.value.status,Z++),s.maxPage!==i.value.maxPage&&(U.searchMaxPage=i.value.maxPage,Z++),s.stopOnFound!==i.value.stopOnFound&&(U.searchStopOnFound=i.value.stopOnFound,Z++),Z&&(await dh(U),console.log("[handleSearchParamsChange]",U),o.value={...U}),s={...i.value}}async function _(U){var Z;(Z=r.value)==null||Z.select()}async function E(U){var Z;i.value.keyword="",(Z=r.value)==null||Z.focus()}async function I(){l.value=[],i.value.keyword="",s={...i.value},await ie({visible:!1}),await P(!1);try{parent.window.Core.OFFL5Plug.ChangePage(1)}catch(U){console.error(U)}}async function M(){var Z;l.value=[];let{keyword:U}=i.value;if(U=U.trim(),U===""){await wi(),(Z=r.value)==null||Z.select(),Gi.fire({icon:"warning",title:"关键词不能为空!"});return}a.value=!0,await ie({content:"正在搜索...",subContent:"",visible:!0});try{const ce={status:i.value.status,maxPage:i.value.maxPage,fuzzyName:!0,caseSensitive:!1,stopOnFound:i.value.stopOnFound};ce[i.value.KeywordType]=i.value.keyword,ce.infoHash&&(ce.infoHash=cu(ce.infoHash)),console.log("[search filter]",ce);const ye=await iC(n.sign,t.user_id,ce,o.value);l.value=ye,console.log("[search result]",ye),ye.length>0?await ie({visible:!1}):await ie({content:"没有符合条件的离线任务",subContent:"",visible:!0}),await P(!0)}catch(ce){console.warn("[search error]",ce),Gi.fire({icon:"error",title:ce.toString()}),await ie({content:"搜索失败!",subContent:ce.toString(),visible:!0})}finally{a.value=!1}}async function P(U=!0){var ye,Ie;!l.value.length&&U&&Gi.fire({icon:"warning",html:"没有符合条件的离线任务"}),await wi();const Z=(ye=u.value)==null?void 0:ye.querySelector("ul");if(!Z)return;const ce=document.querySelector("ul#js-warp");ce&&(ce.innerHTML=Z.innerHTML),await T(),(Ie=r.value)==null||Ie.focus()}async function T(){const U=l.value.length,Z=document.querySelector("#js-page");if(!Z)return;const ce=Z.querySelector(".left-bvf span");ce.textContent=`共搜索到 ${U} 个结果`;const ye=Z.querySelector(".pagination .con");ye.style.display="none"}async function H(U){let Z=U.target;if(Z.classList.contains("ifo-remove")&&(Z=Z.closest("a")),!Z.classList.contains("btn-delete-offline"))return;const ce=Z.closest("li"),ye=await ph(ce),Ie=[ye.info_hash];let be={title:"删除离线记录",icon:"warning",html:`确定要删除「${ye.name}」吗?`,showCancelButton:!0,confirmButtonText:"确定",cancelButtonText:"取消"};ye.delete_file_id&&(be={...be,input:"checkbox",inputValue:0,inputPlaceholder:"同时删除文件"});const{isConfirmed:O,value:ae}=await pe.fire(be);if(!O)return;const Q=!!ae;pe.showLoading(),pe.update({html:"正在删除..."}),await ol(Ie,n,Q,t.user_id),re({icon:"success",title:"删除成功",timer:800,position:"top-end"}),await fc(Ie)}async function ie(U){f.value={...f.value,...U}}return(U,Z)=>(B(),z("div",{class:Je(["ce-offline-searcher",{loading:a.value}])},[c("form",m$,[c("fieldset",null,[c("div",g$,[G(c("select",{"onUpdate:modelValue":Z[0]||(Z[0]=ce=>i.value.KeywordType=ce),size:"small",onChange:_},[(B(!0),z(Ue,null,st(fe(Gx),(ce,ye)=>(B(),z("option",{key:ye,value:ye},ge(ce),9,y$))),128))],544),[[$i,i.value.KeywordType]])]),c("div",w$,[c("div",{class:Je(["clearable-wrap",{"is-empty":i.value.keyword===""}])},[G(c("input",{ref_key:"refKeyword",ref:r,"onUpdate:modelValue":Z[1]||(Z[1]=ce=>i.value.keyword=ce),placeholder:"请输入关键词",clearable:"",onKeyup:Vp(M,["enter"])},null,40,b$),[[Ve,i.value.keyword]]),c("button",{type:"button",class:"pure-button pure-button-default button-xsmall btn-clear",onClick:E},"×")],2)]),c("div",_$,[G(c("select",{"onUpdate:modelValue":Z[2]||(Z[2]=ce=>i.value.status=ce),placeholder:"请选择",clearable:"",style:{width:"90px"}},[c("option",{value:fe(Ut).any},"-状态-",8,v$),(B(!0),z(Ue,null,st(fe(Fg),(ce,ye)=>(B(),z("option",{key:ye,value:ye},ge(ce),9,x$))),128))],512),[[$i,i.value.status]])]),c("div",C$,[G(c("input",{type:"number","onUpdate:modelValue":Z[3]||(Z[3]=ce=>i.value.maxPage=ce),min:1,max:1e5,title:"最多查找页数"},null,512),[[Ve,i.value.maxPage]]),$$]),c("div",E$,[[fe(Qr).name,fe(Qr).nameRegex].includes(i.value.KeywordType)?(B(),z("label",k$,[G(c("input",{type:"checkbox","onUpdate:modelValue":Z[4]||(Z[4]=ce=>i.value.stopOnFound=ce),class:"stop-on-found"},null,512),[[Ce,i.value.stopOnFound]]),ee(" 找到即停 ")])):qe("",!0),c("button",{type:"button",class:"pure-button pure-button-primary button-small",onClick:M},"查找"),ee("    "),c("button",{type:"button",class:"pure-button pure-button-default button-xsmall",onClick:I,title:"清空关键词;重置列表到非查找状态"},"重置")])])]),c("div",{ref_key:"refList",ref:u,class:"list"},[ke(h$,{items:l.value,space:fe(n),profile:fe(t)},null,8,["items","space","profile"])],512),f.value.visible?(B(),z("div",S$,[c("div",A$,[c("h2",null,ge(f.value.content),1),f.value.subContent?(B(),z("p",P$,ge(f.value.subContent),1)):qe("",!0)])])):qe("",!0)],2))}}),zR="";function Bn(e){return e.split("-")[0]}function ki(e){return e.split("-")[1]}function vs(e){return["top","bottom"].includes(Bn(e))?"x":"y"}function pc(e){return e==="y"?"height":"width"}function gh(e){let{reference:t,floating:n,placement:o}=e;const i=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2;let r;switch(Bn(o)){case"top":r={x:i,y:t.y-n.height};break;case"bottom":r={x:i,y:t.y+t.height};break;case"right":r={x:t.x+t.width,y:s};break;case"left":r={x:t.x-n.width,y:s};break;default:r={x:t.x,y:t.y}}const a=vs(o),l=pc(a);switch(ki(o)){case"start":r[a]=r[a]-(t[l]/2-n[l]/2);break;case"end":r[a]=r[a]+(t[l]/2-n[l]/2);break}return r}const T$=async(e,t,n)=>{const{placement:o="bottom",strategy:i="absolute",middleware:s=[],platform:r}=n;if(r==null&&console.error(["Floating UI: `platform` property was not passed to config. If you","want to use Floating UI on the web, install @floating-ui/dom","instead of the /core package. Otherwise, you can create your own","`platform`: https://floating-ui.com/docs/platform"].join(" ")),s.filter(b=>{let{name:_}=b;return _==="autoPlacement"||_==="flip"}).length>1)throw new Error(["Floating UI: duplicate `flip` and/or `autoPlacement`","middleware detected. This will lead to an infinite loop. Ensure only","one of either has been passed to the `middleware` array."].join(" "));let a=await r.getElementRects({reference:e,floating:t,strategy:i}),{x:l,y:u}=gh({...a,placement:o}),f=o,h={},g=0;for(let b=0;b<s.length;b++){if(g++,g>100)throw new Error(["Floating UI: The middleware lifecycle appears to be","running in an infinite loop. This is usually caused by a `reset`","continually being returned without a break condition."].join(" "));const{name:_,fn:E}=s[b],{x:I,y:M,data:P,reset:T}=await E({x:l,y:u,initialPlacement:o,placement:f,strategy:i,middlewareData:h,rects:a,platform:r,elements:{reference:e,floating:t}});if(l=I!=null?I:l,u=M!=null?M:u,h={...h,[_]:P!=null?P:{}},T){typeof T=="object"&&(T.placement&&(f=T.placement),T.rects&&(a=T.rects===!0?await r.getElementRects({reference:e,floating:t,strategy:i}):T.rects),{x:l,y:u}=gh({...a,placement:f})),b=-1;continue}}return{x:l,y:u,placement:f,strategy:i,middlewareData:h}};function O$(e){return{top:0,right:0,bottom:0,left:0,...e}}function yh(e){return typeof e!="number"?O$(e):{top:e,right:e,bottom:e,left:e}}function hc(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}async function Zr(e,t){t===void 0&&(t={});const{x:n,y:o,platform:i,rects:s,elements:r,strategy:a}=e,{boundary:l="clippingParents",rootBoundary:u="viewport",elementContext:f="floating",altBoundary:h=!1,padding:g=0}=t,b=yh(g),E=r[h?f==="floating"?"reference":"floating":f],I=await i.getClippingClientRect({element:await i.isElement(E)?E:E.contextElement||await i.getDocumentElement({element:r.floating}),boundary:l,rootBoundary:u}),M=hc(await i.convertOffsetParentRelativeRectToViewportRelativeRect({rect:f==="floating"?{...s.floating,x:n,y:o}:s.reference,offsetParent:await i.getOffsetParent({element:r.floating}),strategy:a}));return{top:I.top-M.top+b.top,bottom:M.bottom-I.bottom+b.bottom,left:I.left-M.left+b.left,right:M.right-I.right+b.right}}const L$=Math.min,Vo=Math.max;function mc(e,t,n){return Vo(e,L$(t,n))}const M$=e=>({name:"arrow",options:e,async fn(t){const{element:n,padding:o=0}=e!=null?e:{},{x:i,y:s,placement:r,rects:a,platform:l}=t;if(n==null)return console.warn("Floating UI: No `element` was passed to the `arrow` middleware."),{};const u=yh(o),f={x:i,y:s},h=Bn(r),g=vs(h),b=pc(g),_=await l.getDimensions({element:n}),E=g==="y"?"top":"left",I=g==="y"?"bottom":"right",M=a.reference[b]+a.reference[g]-f[g]-a.floating[b],P=f[g]-a.reference[g],T=await l.getOffsetParent({element:n}),H=T?g==="y"?T.clientHeight||0:T.clientWidth||0:0,ie=M/2-P/2,U=u[E],Z=H-_[b]-u[I],ce=H/2-_[b]/2+ie,ye=mc(U,ce,Z);return{data:{[g]:ye,centerOffset:ce-ye}}}}),D$={left:"right",right:"left",bottom:"top",top:"bottom"};function ea(e){return e.replace(/left|right|bottom|top/g,t=>D$[t])}function wh(e,t){const n=ki(e)==="start",o=vs(e),i=pc(o);let s=o==="x"?n?"right":"left":n?"bottom":"top";return t.reference[i]>t.floating[i]&&(s=ea(s)),{main:s,cross:ea(s)}}const R$={start:"end",end:"start"};function gc(e){return e.replace(/start|end/g,t=>R$[t])}const N$=["top","right","bottom","left"].reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]);function B$(e,t,n){return(e?[...n.filter(i=>ki(i)===e),...n.filter(i=>ki(i)!==e)]:n.filter(i=>Bn(i)===i)).filter(i=>e?ki(i)===e||(t?gc(i)!==i:!1):!0)}const F$=function(e){return e===void 0&&(e={}),{name:"autoPlacement",options:e,async fn(t){var n,o,i,s,r,a;const{x:l,y:u,rects:f,middlewareData:h,placement:g}=t,{alignment:b=null,allowedPlacements:_=N$,autoAlignment:E=!0,...I}=e;if((n=h.autoPlacement)!=null&&n.skip)return{};const M=B$(b,E,_),P=await Zr(t,I),T=(o=(i=h.autoPlacement)==null?void 0:i.index)!=null?o:0,H=M[T],{main:ie,cross:U}=wh(H,f);if(g!==H)return{x:l,y:u,reset:{placement:M[0]}};const Z=[P[Bn(H)],P[ie],P[U]],ce=[...(s=(r=h.autoPlacement)==null?void 0:r.overflows)!=null?s:[],{placement:H,overflows:Z}],ye=M[T+1];if(ye)return{data:{index:T+1,overflows:ce},reset:{placement:ye}};const Ie=ce.slice().sort((O,ae)=>O.overflows[0]-ae.overflows[0]),be=(a=Ie.find(O=>{let{overflows:ae}=O;return ae.every(Q=>Q<=0)}))==null?void 0:a.placement;return{data:{skip:!0},reset:{placement:be!=null?be:Ie[0].placement}}}}};function U$(e){const t=ea(e);return[gc(e),t,gc(t)]}const j$=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,o;const{placement:i,middlewareData:s,rects:r,initialPlacement:a}=t;if((n=s.flip)!=null&&n.skip)return{};const{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:f,fallbackStrategy:h="bestFit",flipAlignment:g=!0,...b}=e,_=Bn(i),I=f||(_===a||!g?[ea(a)]:U$(a)),M=[a,...I],P=await Zr(t,b),T=[];let H=((o=s.flip)==null?void 0:o.overflows)||[];if(l&&T.push(P[_]),u){const{main:ce,cross:ye}=wh(i,r);T.push(P[ce],P[ye])}if(H=[...H,{placement:i,overflows:T}],!T.every(ce=>ce<=0)){var ie,U;const ce=((ie=(U=s.flip)==null?void 0:U.index)!=null?ie:0)+1,ye=M[ce];if(ye)return{data:{index:ce,overflows:H},reset:{placement:ye}};let Ie="bottom";switch(h){case"bestFit":{var Z;const be=(Z=H.slice().sort((O,ae)=>O.overflows.filter(Q=>Q>0).reduce((Q,Ee)=>Q+Ee,0)-ae.overflows.filter(Q=>Q>0).reduce((Q,Ee)=>Q+Ee,0))[0])==null?void 0:Z.placement;be&&(Ie=be);break}case"initialPlacement":Ie=a;break}return{data:{skip:!0},reset:{placement:Ie}}}return{}}}};function H$(e){let{placement:t,rects:n,value:o}=e;const i=Bn(t),s=["left","top"].includes(i)?-1:1,r=typeof o=="function"?o({...n,placement:t}):o,{mainAxis:a,crossAxis:l}=typeof r=="number"?{mainAxis:r,crossAxis:0}:{mainAxis:0,crossAxis:0,...r};return vs(i)==="x"?{x:l,y:a*s}:{x:a*s,y:l}}const q$=function(e){return e===void 0&&(e=0),{name:"offset",options:e,fn(t){const{x:n,y:o,placement:i,rects:s}=t,r=H$({placement:i,rects:s,value:e});return{x:n+r.x,y:o+r.y,data:r}}}};function z$(e){return e==="x"?"y":"x"}const V$=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:o,placement:i}=t,{mainAxis:s=!0,crossAxis:r=!1,limiter:a={fn:I=>{let{x:M,y:P}=I;return{x:M,y:P}}},...l}=e,u={x:n,y:o},f=await Zr(t,l),h=vs(Bn(i)),g=z$(h);let b=u[h],_=u[g];if(s){const I=h==="y"?"top":"left",M=h==="y"?"bottom":"right",P=b+f[I],T=b-f[M];b=mc(P,b,T)}if(r){const I=g==="y"?"top":"left",M=g==="y"?"bottom":"right",P=_+f[I],T=_-f[M];_=mc(P,_,T)}const E=a.fn({...t,[h]:b,[g]:_});return{...E,data:{x:E.x-n,y:E.y-o}}}}},W$=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n;const{placement:o,rects:i,middlewareData:s}=t,{apply:r,...a}=e;if((n=s.size)!=null&&n.skip)return{};const l=await Zr(t,a),u=Bn(o),f=ki(o)==="end";let h,g;u==="top"||u==="bottom"?(h=u,g=f?"left":"right"):(g=u,h=f?"top":"bottom");const b=Vo(l.left,0),_=Vo(l.right,0),E=Vo(l.top,0),I=Vo(l.bottom,0),M={height:i.floating.height-(["left","right"].includes(o)?2*(E!==0||I!==0?E+I:Vo(l.top,l.bottom)):l[h]),width:i.floating.width-(["top","bottom"].includes(o)?2*(b!==0||_!==0?b+_:Vo(l.left,l.right)):l[g])};return r==null||r({...M,...i}),{data:{skip:!0},reset:{rects:!0}}}}};function yc(e){return(e==null?void 0:e.toString())==="[object Window]"}function ho(e){if(e==null)return window;if(!yc(e)){const t=e.ownerDocument;return t&&t.defaultView||window}return e}function ta(e){return ho(e).getComputedStyle(e)}function Fn(e){return yc(e)?"":e?(e.nodeName||"").toLowerCase():""}function Un(e){return e instanceof ho(e).HTMLElement}function na(e){return e instanceof ho(e).Element}function K$(e){return e instanceof ho(e).Node}function bh(e){const t=ho(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function oa(e){const{overflow:t,overflowX:n,overflowY:o}=ta(e);return/auto|scroll|overlay|hidden/.test(t+o+n)}function G$(e){return["table","td","th"].includes(Fn(e))}function _h(e){const t=navigator.userAgent.toLowerCase().includes("firefox"),n=ta(e);return n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].includes(n.willChange)||t&&n.willChange==="filter"||t&&(n.filter?n.filter!=="none":!1)}const vh=Math.min,xs=Math.max,ia=Math.round;function Si(e,t){t===void 0&&(t=!1);const n=e.getBoundingClientRect();let o=1,i=1;return t&&Un(e)&&(o=e.offsetWidth>0&&ia(n.width)/e.offsetWidth||1,i=e.offsetHeight>0&&ia(n.height)/e.offsetHeight||1),{width:n.width/o,height:n.height/i,top:n.top/i,right:n.right/o,bottom:n.bottom/i,left:n.left/o,x:n.left/o,y:n.top/i}}function mo(e){return((K$(e)?e.ownerDocument:e.document)||window.document).documentElement}function sa(e){return yc(e)?{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}:{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function xh(e){return Si(mo(e)).left+sa(e).scrollLeft}function Y$(e){const t=Si(e);return ia(t.width)!==e.offsetWidth||ia(t.height)!==e.offsetHeight}function J$(e,t,n){const o=Un(t),i=mo(t),s=Si(e,o&&Y$(t));let r={scrollLeft:0,scrollTop:0};const a={x:0,y:0};if(o||!o&&n!=="fixed")if((Fn(t)!=="body"||oa(i))&&(r=sa(t)),Un(t)){const l=Si(t,!0);a.x=l.x+t.clientLeft,a.y=l.y+t.clientTop}else i&&(a.x=xh(i));return{x:s.left+r.scrollLeft-a.x,y:s.top+r.scrollTop-a.y,width:s.width,height:s.height}}function ra(e){return Fn(e)==="html"?e:e.assignedSlot||e.parentNode||(bh(e)?e.host:null)||mo(e)}function Ch(e){return!Un(e)||getComputedStyle(e).position==="fixed"?null:e.offsetParent}function Q$(e){let t=ra(e);for(;Un(t)&&!["html","body"].includes(Fn(t));){if(_h(t))return t;t=t.parentNode}return null}function wc(e){const t=ho(e);let n=Ch(e);for(;n&&G$(n)&&getComputedStyle(n).position==="static";)n=Ch(n);return n&&(Fn(n)==="html"||Fn(n)==="body"&&getComputedStyle(n).position==="static"&&!_h(n))?t:n||Q$(e)||t}function $h(e){return{width:e.offsetWidth,height:e.offsetHeight}}function X$(e){let{rect:t,offsetParent:n,strategy:o}=e;const i=Un(n),s=mo(n);if(n===s)return t;let r={scrollLeft:0,scrollTop:0};const a={x:0,y:0};if((i||!i&&o!=="fixed")&&((Fn(n)!=="body"||oa(s))&&(r=sa(n)),Un(n))){const l=Si(n,!0);a.x=l.x+n.clientLeft,a.y=l.y+n.clientTop}return{...t,x:t.x-r.scrollLeft+a.x,y:t.y-r.scrollTop+a.y}}function Z$(e){const t=ho(e),n=mo(e),o=t.visualViewport;let i=n.clientWidth,s=n.clientHeight,r=0,a=0;return o&&(i=o.width,s=o.height,Math.abs(t.innerWidth/o.scale-o.width)<.01&&(r=o.offsetLeft,a=o.offsetTop)),{width:i,height:s,x:r,y:a}}function eE(e){var t;const n=mo(e),o=sa(e),i=(t=e.ownerDocument)==null?void 0:t.body,s=xs(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),r=xs(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0);let a=-o.scrollLeft+xh(e);const l=-o.scrollTop;return ta(i||n).direction==="rtl"&&(a+=xs(n.clientWidth,i?i.clientWidth:0)-s),{width:s,height:r,x:a,y:l}}function Eh(e){return["html","body","#document"].includes(Fn(e))?e.ownerDocument.body:Un(e)&&oa(e)?e:Eh(ra(e))}function aa(e,t){var n;t===void 0&&(t=[]);const o=Eh(e),i=o===((n=e.ownerDocument)==null?void 0:n.body),s=ho(o),r=i?[s].concat(s.visualViewport||[],oa(o)?o:[]):o,a=t.concat(r);return i?a:a.concat(aa(ra(r)))}function tE(e,t){const n=t.getRootNode==null?void 0:t.getRootNode();if(e.contains(t))return!0;if(n&&bh(n)){let o=t;do{if(o&&e===o)return!0;o=o.parentNode||o.host}while(o)}return!1}function nE(e){const t=Si(e),n=t.top+e.clientTop,o=t.left+e.clientLeft;return{top:n,left:o,x:o,y:n,right:o+e.clientWidth,bottom:n+e.clientHeight,width:e.clientWidth,height:e.clientHeight}}function kh(e,t){return t==="viewport"?hc(Z$(e)):na(t)?nE(t):hc(eE(mo(e)))}function oE(e){const t=aa(ra(e)),o=["absolute","fixed"].includes(ta(e).position)&&Un(e)?wc(e):e;return na(o)?t.filter(i=>na(i)&&tE(i,o)&&Fn(i)!=="body"):[]}function iE(e){let{element:t,boundary:n,rootBoundary:o}=e;const s=[...n==="clippingParents"?oE(t):[].concat(n),o],r=s[0],a=s.reduce((l,u)=>{const f=kh(t,u);return l.top=xs(f.top,l.top),l.right=vh(f.right,l.right),l.bottom=vh(f.bottom,l.bottom),l.left=xs(f.left,l.left),l},kh(t,r));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}const sE={getElementRects:e=>{let{reference:t,floating:n,strategy:o}=e;return{reference:J$(t,wc(n),o),floating:{...$h(n),x:0,y:0}}},convertOffsetParentRelativeRectToViewportRelativeRect:e=>X$(e),getOffsetParent:e=>{let{element:t}=e;return wc(t)},isElement:e=>na(e),getDocumentElement:e=>{let{element:t}=e;return mo(t)},getClippingClientRect:e=>iE(e),getDimensions:e=>{let{element:t}=e;return $h(t)},getClientRects:e=>{let{element:t}=e;return t.getClientRects()}},rE=(e,t,n)=>T$(e,t,{platform:sE,...n});var aE=Object.defineProperty,lE=Object.defineProperties,cE=Object.getOwnPropertyDescriptors,Sh=Object.getOwnPropertySymbols,uE=Object.prototype.hasOwnProperty,dE=Object.prototype.propertyIsEnumerable,Ah=(e,t,n)=>t in e?aE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jn=(e,t)=>{for(var n in t||(t={}))uE.call(t,n)&&Ah(e,n,t[n]);if(Sh)for(var n of Sh(t))dE.call(t,n)&&Ah(e,n,t[n]);return e},Cs=(e,t)=>lE(e,cE(t));function Ph(e,t){for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&(typeof t[n]=="object"&&e[n]?Ph(e[n],t[n]):e[n]=t[n])}const Hn={disabled:!1,distance:5,skidding:0,container:"body",boundary:void 0,instantMove:!1,disposeTimeout:5e3,popperTriggers:[],strategy:"absolute",preventOverflow:!0,flip:!0,shift:!0,overflowPadding:0,arrowPadding:0,arrowOverflow:!0,themes:{tooltip:{placement:"top",triggers:["hover","focus","touch"],hideTriggers:e=>[...e,"click"],delay:{show:200,hide:0},handleResize:!1,html:!1,loadingContent:"..."},dropdown:{placement:"bottom",triggers:["click"],delay:0,handleResize:!0,autoHide:!0},menu:{$extend:"dropdown",triggers:["hover","focus"],popperTriggers:["hover","focus"],delay:{show:0,hide:400}}}};function Ai(e,t){let n=Hn.themes[e]||{},o;do o=n[t],typeof o>"u"?n.$extend?n=Hn.themes[n.$extend]||{}:(n=null,o=Hn[t]):n=null;while(n);return o}function fE(e){const t=[e];let n=Hn.themes[e]||{};do n.$extend&&!n.$resetCss?(t.push(n.$extend),n=Hn.themes[n.$extend]||{}):n=null;while(n);return t.map(o=>`v-popper--theme-${o}`)}function Ih(e){const t=[e];let n=Hn.themes[e]||{};do n.$extend?(t.push(n.$extend),n=Hn.themes[n.$extend]||{}):n=null;while(n);return t}let Wo=!1;if(typeof window<"u"){Wo=!1;try{const e=Object.defineProperty({},"passive",{get(){Wo=!0}});window.addEventListener("test",null,e)}catch{}}let Th=!1;typeof window<"u"&&typeof navigator<"u"&&(Th=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);const Oh=["auto","top","bottom","left","right"].reduce((e,t)=>e.concat([t,`${t}-start`,`${t}-end`]),[]),Lh={hover:"mouseenter",focus:"focus",click:"click",touch:"touchstart"},Mh={hover:"mouseleave",focus:"blur",click:"click",touch:"touchend"};function Dh(e,t){const n=e.indexOf(t);n!==-1&&e.splice(n,1)}function bc(){return new Promise(e=>requestAnimationFrame(()=>{requestAnimationFrame(e)}))}const fn=[];let Ko=null;const Rh={};function Nh(e){let t=Rh[e];return t||(t=Rh[e]=[]),t}let _c=function(){};typeof window<"u"&&(_c=window.Element);function Ge(e){return function(t){return Ai(t.theme,e)}}const vc="__floating-vue__popper";var Bh=()=>Ne({name:"VPopper",provide(){return{[vc]:{parentPopper:this}}},inject:{[vc]:{default:null}},props:{theme:{type:String,required:!0},targetNodes:{type:Function,required:!0},referenceNode:{type:Function,default:null},popperNode:{type:Function,required:!0},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:Ge("disabled")},positioningDisabled:{type:Boolean,default:Ge("positioningDisabled")},placement:{type:String,default:Ge("placement"),validator:e=>Oh.includes(e)},delay:{type:[String,Number,Object],default:Ge("delay")},distance:{type:[Number,String],default:Ge("distance")},skidding:{type:[Number,String],default:Ge("skidding")},triggers:{type:Array,default:Ge("triggers")},showTriggers:{type:[Array,Function],default:Ge("showTriggers")},hideTriggers:{type:[Array,Function],default:Ge("hideTriggers")},popperTriggers:{type:Array,default:Ge("popperTriggers")},popperShowTriggers:{type:[Array,Function],default:Ge("popperShowTriggers")},popperHideTriggers:{type:[Array,Function],default:Ge("popperHideTriggers")},container:{type:[String,Object,_c,Boolean],default:Ge("container")},boundary:{type:[String,_c],default:Ge("boundary")},strategy:{type:String,validator:e=>["absolute","fixed"].includes(e),default:Ge("strategy")},autoHide:{type:[Boolean,Function],default:Ge("autoHide")},handleResize:{type:Boolean,default:Ge("handleResize")},instantMove:{type:Boolean,default:Ge("instantMove")},eagerMount:{type:Boolean,default:Ge("eagerMount")},popperClass:{type:[String,Array,Object],default:Ge("popperClass")},computeTransformOrigin:{type:Boolean,default:Ge("computeTransformOrigin")},autoMinSize:{type:Boolean,default:Ge("autoMinSize")},autoSize:{type:[Boolean,String],default:Ge("autoSize")},autoMaxSize:{type:Boolean,default:Ge("autoMaxSize")},autoBoundaryMaxSize:{type:Boolean,default:Ge("autoBoundaryMaxSize")},preventOverflow:{type:Boolean,default:Ge("preventOverflow")},overflowPadding:{type:[Number,String],default:Ge("overflowPadding")},arrowPadding:{type:[Number,String],default:Ge("arrowPadding")},arrowOverflow:{type:Boolean,default:Ge("arrowOverflow")},flip:{type:Boolean,default:Ge("flip")},shift:{type:Boolean,default:Ge("shift")},shiftCrossAxis:{type:Boolean,default:Ge("shiftCrossAxis")},noAutoFocus:{type:Boolean,default:Ge("noAutoFocus")}},emits:["show","hide","update:shown","apply-show","apply-hide","close-group","close-directive","auto-hide","resize","dispose"],data(){return{isShown:!1,isMounted:!1,skipTransition:!1,classes:{showFrom:!1,showTo:!1,hideFrom:!1,hideTo:!0},result:{x:0,y:0,placement:"",strategy:this.strategy,arrow:{x:0,y:0,centerOffset:0},transformOrigin:null},shownChildren:new Set,lastAutoHide:!0}},computed:{popperId(){return this.ariaId!=null?this.ariaId:this.randomId},shouldMountContent(){return this.eagerMount||this.isMounted},slotData(){return{popperId:this.popperId,isShown:this.isShown,shouldMountContent:this.shouldMountContent,skipTransition:this.skipTransition,autoHide:typeof this.autoHide=="function"?this.lastAutoHide:this.autoHide,show:this.show,hide:this.hide,handleResize:this.handleResize,onResize:this.onResize,classes:Cs(jn({},this.classes),{popperClass:this.popperClass}),result:this.positioningDisabled?null:this.result,attrs:this.$attrs}},parentPopper(){var e;return(e=this[vc])==null?void 0:e.parentPopper},hasPopperShowTriggerHover(){var e,t;return((e=this.popperTriggers)==null?void 0:e.includes("hover"))||((t=this.popperShowTriggers)==null?void 0:t.includes("hover"))}},watch:jn(jn({shown:"$_autoShowHide",disabled(e){e?this.dispose():this.init()},async container(){this.isShown&&(this.$_ensureTeleport(),await this.$_computePosition())}},["triggers","positioningDisabled"].reduce((e,t)=>(e[t]="$_refreshListeners",e),{})),["placement","distance","skidding","boundary","strategy","overflowPadding","arrowPadding","preventOverflow","shift","shiftCrossAxis","flip"].reduce((e,t)=>(e[t]="$_computePosition",e),{})),created(){this.$_isDisposed=!0,this.randomId=`popper_${[Math.random(),Date.now()].map(e=>e.toString(36).substring(2,10)).join("_")}`,this.autoMinSize&&console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'),this.autoMaxSize&&console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.")},mounted(){this.init(),this.$_detachPopperNode()},activated(){this.$_autoShowHide()},deactivated(){this.hide()},beforeUnmount(){this.dispose()},methods:{show({event:e=null,skipDelay:t=!1,force:n=!1}={}){var o,i;((o=this.parentPopper)==null?void 0:o.lockedChild)&&this.parentPopper.lockedChild!==this||(this.$_pendingHide=!1,(n||!this.disabled)&&(((i=this.parentPopper)==null?void 0:i.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_scheduleShow(e,t),this.$emit("show"),this.$_showFrameLocked=!0,requestAnimationFrame(()=>{this.$_showFrameLocked=!1})),this.$emit("update:shown",!0))},hide({event:e=null,skipDelay:t=!1}={}){var n;if(!this.$_hideInProgress){if(this.shownChildren.size>0){this.$_pendingHide=!0;return}if(this.hasPopperShowTriggerHover&&this.$_isAimingPopper()){this.parentPopper&&(this.parentPopper.lockedChild=this,clearTimeout(this.parentPopper.lockedChildTimer),this.parentPopper.lockedChildTimer=setTimeout(()=>{this.parentPopper.lockedChild===this&&(this.parentPopper.lockedChild.hide({skipDelay:t}),this.parentPopper.lockedChild=null)},1e3));return}((n=this.parentPopper)==null?void 0:n.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_pendingHide=!1,this.$_scheduleHide(e,t),this.$emit("hide"),this.$emit("update:shown",!1)}},init(){var e,t;!this.$_isDisposed||(this.$_isDisposed=!1,this.isMounted=!1,this.$_events=[],this.$_preventShow=!1,this.$_referenceNode=(t=(e=this.referenceNode)==null?void 0:e.call(this))!=null?t:this.$el,this.$_targetNodes=this.targetNodes().filter(n=>n.nodeType===n.ELEMENT_NODE),this.$_popperNode=this.popperNode(),this.$_innerNode=this.$_popperNode.querySelector(".v-popper__inner"),this.$_arrowNode=this.$_popperNode.querySelector(".v-popper__arrow-container"),this.$_swapTargetAttrs("title","data-original-title"),this.$_detachPopperNode(),this.triggers.length&&this.$_addEventListeners(),this.shown&&this.show())},dispose(){this.$_isDisposed||(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.$_detachPopperNode(),this.isMounted=!1,this.isShown=!1,this.$_updateParentShownChildren(!1),this.$_swapTargetAttrs("data-original-title","title"),this.$emit("dispose"))},async onResize(){this.isShown&&(await this.$_computePosition(),this.$emit("resize"))},async $_computePosition(){var e;if(this.$_isDisposed||this.positioningDisabled)return;const t={strategy:this.strategy,middleware:[]};(this.distance||this.skidding)&&t.middleware.push(q$({mainAxis:this.distance,crossAxis:this.skidding}));const n=this.placement.startsWith("auto");if(n?t.middleware.push(F$({alignment:(e=this.placement.split("-")[1])!=null?e:""})):t.placement=this.placement,this.preventOverflow&&(this.shift&&t.middleware.push(V$({padding:this.overflowPadding,boundary:this.boundary,crossAxis:this.shiftCrossAxis})),!n&&this.flip&&t.middleware.push(j$({padding:this.overflowPadding,boundary:this.boundary}))),t.middleware.push(M$({element:this.$_arrowNode,padding:this.arrowPadding})),this.arrowOverflow&&t.middleware.push({name:"arrowOverflow",fn:({placement:i,rects:s,middlewareData:r})=>{let a;const{centerOffset:l}=r.arrow;return i.startsWith("top")||i.startsWith("bottom")?a=Math.abs(l)>s.reference.width/2:a=Math.abs(l)>s.reference.height/2,{data:{overflow:a}}}}),this.autoMinSize||this.autoSize){const i=this.autoSize?this.autoSize:this.autoMinSize?"min":null;t.middleware.push({name:"autoSize",fn:({rects:s,placement:r,middlewareData:a})=>{var l;if((l=a.autoSize)!=null&&l.skip)return{};let u,f;return r.startsWith("top")||r.startsWith("bottom")?u=s.reference.width:f=s.reference.height,this.$_innerNode.style[i==="min"?"minWidth":i==="max"?"maxWidth":"width"]=u!=null?`${u}px`:null,this.$_innerNode.style[i==="min"?"minHeight":i==="max"?"maxHeight":"height"]=f!=null?`${f}px`:null,{data:{skip:!0},reset:{rects:!0}}}})}(this.autoMaxSize||this.autoBoundaryMaxSize)&&(this.$_innerNode.style.maxWidth=null,this.$_innerNode.style.maxHeight=null,t.middleware.push(W$({boundary:this.boundary,padding:this.overflowPadding,apply:({width:i,height:s})=>{this.$_innerNode.style.maxWidth=i!=null?`${i}px`:null,this.$_innerNode.style.maxHeight=s!=null?`${s}px`:null}})));const o=await rE(this.$_referenceNode,this.$_popperNode,t);Object.assign(this.result,{x:o.x,y:o.y,placement:o.placement,strategy:o.strategy,arrow:jn(jn({},o.middlewareData.arrow),o.middlewareData.arrowOverflow)})},$_scheduleShow(e=null,t=!1){if(this.$_updateParentShownChildren(!0),this.$_hideInProgress=!1,clearTimeout(this.$_scheduleTimer),Ko&&this.instantMove&&Ko.instantMove&&Ko!==this.parentPopper){Ko.$_applyHide(!0),this.$_applyShow(!0);return}t?this.$_applyShow():this.$_scheduleTimer=setTimeout(this.$_applyShow.bind(this),this.$_computeDelay("show"))},$_scheduleHide(e=null,t=!1){if(this.shownChildren.size>0){this.$_pendingHide=!0;return}this.$_updateParentShownChildren(!1),this.$_hideInProgress=!0,clearTimeout(this.$_scheduleTimer),this.isShown&&(Ko=this),t?this.$_applyHide():this.$_scheduleTimer=setTimeout(this.$_applyHide.bind(this),this.$_computeDelay("hide"))},$_computeDelay(e){const t=this.delay;return parseInt(t&&t[e]||t||0)},async $_applyShow(e=!1){clearTimeout(this.$_disposeTimer),clearTimeout(this.$_scheduleTimer),this.skipTransition=e,!this.isShown&&(this.$_ensureTeleport(),await bc(),await this.$_computePosition(),await this.$_applyShowEffect(),this.positioningDisabled||this.$_registerEventListeners([...aa(this.$_referenceNode),...aa(this.$_popperNode)],"scroll",()=>{this.$_computePosition()}))},async $_applyShowEffect(){if(this.$_hideInProgress)return;if(this.computeTransformOrigin){const t=this.$_referenceNode.getBoundingClientRect(),n=this.$_popperNode.querySelector(".v-popper__wrapper"),o=n.parentNode.getBoundingClientRect(),i=t.x+t.width/2-(o.left+n.offsetLeft),s=t.y+t.height/2-(o.top+n.offsetTop);this.result.transformOrigin=`${i}px ${s}px`}this.isShown=!0,this.$_applyAttrsToTarget({"aria-describedby":this.popperId,"data-popper-shown":""});const e=this.showGroup;if(e){let t;for(let n=0;n<fn.length;n++)t=fn[n],t.showGroup!==e&&(t.hide(),t.$emit("close-group"))}fn.push(this),document.body.classList.add("v-popper--some-open");for(const t of Ih(this.theme))Nh(t).push(this),document.body.classList.add(`v-popper--some-open--${t}`);this.$emit("apply-show"),this.classes.showFrom=!0,this.classes.showTo=!1,this.classes.hideFrom=!1,this.classes.hideTo=!1,await bc(),this.classes.showFrom=!1,this.classes.showTo=!0,this.noAutoFocus||this.$_popperNode.focus()},async $_applyHide(e=!1){if(this.shownChildren.size>0){this.$_pendingHide=!0,this.$_hideInProgress=!1;return}if(clearTimeout(this.$_scheduleTimer),!this.isShown)return;this.skipTransition=e,Dh(fn,this),fn.length===0&&document.body.classList.remove("v-popper--some-open");for(const n of Ih(this.theme)){const o=Nh(n);Dh(o,this),o.length===0&&document.body.classList.remove(`v-popper--some-open--${n}`)}Ko===this&&(Ko=null),this.isShown=!1,this.$_applyAttrsToTarget({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(this.$_disposeTimer);const t=Ai(this.theme,"disposeTimeout");t!==null&&(this.$_disposeTimer=setTimeout(()=>{this.$_popperNode&&(this.$_detachPopperNode(),this.isMounted=!1)},t)),this.$_removeEventListeners("scroll"),this.$emit("apply-hide"),this.classes.showFrom=!1,this.classes.showTo=!1,this.classes.hideFrom=!0,this.classes.hideTo=!1,await bc(),this.classes.hideFrom=!1,this.classes.hideTo=!0},$_autoShowHide(){this.shown?this.show():this.hide()},$_ensureTeleport(){if(this.$_isDisposed)return;let e=this.container;if(typeof e=="string"?e=window.document.querySelector(e):e===!1&&(e=this.$_targetNodes[0].parentNode),!e)throw new Error("No container for popover: "+this.container);e.appendChild(this.$_popperNode),this.isMounted=!0},$_addEventListeners(){const e=n=>{this.isShown&&!this.$_hideInProgress||(n.usedByTooltip=!0,!this.$_preventShow&&this.show({event:n}))};this.$_registerTriggerListeners(this.$_targetNodes,Lh,this.triggers,this.showTriggers,e),this.$_registerTriggerListeners([this.$_popperNode],Lh,this.popperTriggers,this.popperShowTriggers,e);const t=n=>{n.usedByTooltip||this.hide({event:n})};this.$_registerTriggerListeners(this.$_targetNodes,Mh,this.triggers,this.hideTriggers,t),this.$_registerTriggerListeners([this.$_popperNode],Mh,this.popperTriggers,this.popperHideTriggers,t)},$_registerEventListeners(e,t,n){this.$_events.push({targetNodes:e,eventType:t,handler:n}),e.forEach(o=>o.addEventListener(t,n,Wo?{passive:!0}:void 0))},$_registerTriggerListeners(e,t,n,o,i){let s=n;o!=null&&(s=typeof o=="function"?o(s):o),s.forEach(r=>{const a=t[r];a&&this.$_registerEventListeners(e,a,i)})},$_removeEventListeners(e){const t=[];this.$_events.forEach(n=>{const{targetNodes:o,eventType:i,handler:s}=n;!e||e===i?o.forEach(r=>r.removeEventListener(i,s)):t.push(n)}),this.$_events=t},$_refreshListeners(){this.$_isDisposed||(this.$_removeEventListeners(),this.$_addEventListeners())},$_handleGlobalClose(e,t=!1){this.$_showFrameLocked||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),t&&(this.$_preventShow=!0,setTimeout(()=>{this.$_preventShow=!1},300)))},$_detachPopperNode(){this.$_popperNode.parentNode&&this.$_popperNode.parentNode.removeChild(this.$_popperNode)},$_swapTargetAttrs(e,t){for(const n of this.$_targetNodes){const o=n.getAttribute(e);o&&(n.removeAttribute(e),n.setAttribute(t,o))}},$_applyAttrsToTarget(e){for(const t of this.$_targetNodes)for(const n in e){const o=e[n];o==null?t.removeAttribute(n):t.setAttribute(n,o)}},$_updateParentShownChildren(e){let t=this.parentPopper;for(;t;)e?t.shownChildren.add(this.randomId):(t.shownChildren.delete(this.randomId),t.$_pendingHide&&t.hide()),t=t.parentPopper},$_isAimingPopper(){const e=this.$_referenceNode.getBoundingClientRect();if($s>=e.left&&$s<=e.right&&Es>=e.top&&Es<=e.bottom){const t=this.$_popperNode.getBoundingClientRect(),n=$s-go,o=Es-yo,s=t.left+t.width/2-go+(t.top+t.height/2)-yo+t.width+t.height,r=go+n*s,a=yo+o*s;return la(go,yo,r,a,t.left,t.top,t.left,t.bottom)||la(go,yo,r,a,t.left,t.top,t.right,t.top)||la(go,yo,r,a,t.right,t.top,t.right,t.bottom)||la(go,yo,r,a,t.left,t.bottom,t.right,t.bottom)}return!1}},render(){return this.$slots.default(this.slotData)}});typeof document<"u"&&typeof window<"u"&&(Th?(document.addEventListener("touchstart",Fh,Wo?{passive:!0,capture:!0}:!0),document.addEventListener("touchend",hE,Wo?{passive:!0,capture:!0}:!0)):(window.addEventListener("mousedown",Fh,!0),window.addEventListener("click",pE,!0)),window.addEventListener("resize",yE));function Fh(e){for(let t=0;t<fn.length;t++){const n=fn[t];try{const o=n.popperNode();n.$_mouseDownContains=o.contains(e.target)}catch{}}}function pE(e){Uh(e)}function hE(e){Uh(e,!0)}function Uh(e,t=!1){const n={};for(let o=fn.length-1;o>=0;o--){const i=fn[o];try{const s=i.$_containsGlobalTarget=mE(i,e);i.$_pendingHide=!1,requestAnimationFrame(()=>{if(i.$_pendingHide=!1,!n[i.randomId]&&jh(i,s,e)){if(i.$_handleGlobalClose(e,t),!e.closeAllPopover&&e.closePopover&&s){let a=i.parentPopper;for(;a;)n[a.randomId]=!0,a=a.parentPopper;return}let r=i.parentPopper;for(;r&&jh(r,r.$_containsGlobalTarget,e);){r.$_handleGlobalClose(e,t);r=r.parentPopper}}})}catch{}}}function mE(e,t){const n=e.popperNode();return e.$_mouseDownContains||n.contains(t.target)}function jh(e,t,n){return n.closeAllPopover||n.closePopover&&t||gE(e,n)&&!t}function gE(e,t){if(typeof e.autoHide=="function"){const n=e.autoHide(t);return e.lastAutoHide=n,n}return e.autoHide}function yE(e){for(let t=0;t<fn.length;t++)fn[t].$_computePosition(e)}let go=0,yo=0,$s=0,Es=0;typeof window<"u"&&window.addEventListener("mousemove",e=>{go=$s,yo=Es,$s=e.clientX,Es=e.clientY},Wo?{passive:!0}:void 0);function la(e,t,n,o,i,s,r,a){const l=((r-i)*(t-s)-(a-s)*(e-i))/((a-s)*(n-e)-(r-i)*(o-t)),u=((n-e)*(t-s)-(o-t)*(e-i))/((a-s)*(n-e)-(r-i)*(o-t));return l>=0&&l<=1&&u>=0&&u<=1}var ca=(e,t)=>{const n=e.__vccOpts||e;for(const[o,i]of t)n[o]=i;return n};const wE={extends:Bh()};function bE(e,t,n,o,i,s){return B(),z("div",{ref:"reference",class:Je(["v-popper",{"v-popper--shown":e.slotData.isShown}])},[un(e.$slots,"default",I_(Sp(e.slotData)))],2)}var _E=ca(wE,[["render",bE]]);function vE(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);var n=e.indexOf("Trident/");if(n>0){var o=e.indexOf("rv:");return parseInt(e.substring(o+3,e.indexOf(".",o)),10)}var i=e.indexOf("Edge/");return i>0?parseInt(e.substring(i+5,e.indexOf(".",i)),10):-1}let ua;function xc(){xc.init||(xc.init=!0,ua=vE()!==-1)}var da={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){xc(),wi(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const e=document.createElement("object");this._resizeObject=e,e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",ua&&this.$el.appendChild(e),e.data="about:blank",ua||this.$el.appendChild(e)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!ua&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const xE=e1();Xv("data-v-b329ee4c");const CE={class:"resize-observer",tabindex:"-1"};Zv();const $E=xE((e,t,n,o,i,s)=>(B(),on("div",CE)));da.render=$E,da.__scopeId="data-v-b329ee4c",da.__file="src/components/ResizeObserver.vue";var Hh=(e="theme")=>({computed:{themeClass(){return fE(this[e])}}});const EE=Ne({name:"VPopperContent",components:{ResizeObserver:da},mixins:[Hh()],props:{popperId:String,theme:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,autoHide:Boolean,handleResize:Boolean,classes:Object,result:Object},emits:["hide","resize"],methods:{toPx(e){return e!=null&&!isNaN(e)?`${e}px`:null}}}),kE=["id","aria-hidden","tabindex","data-popper-placement"],SE={ref:"inner",class:"v-popper__inner"},AE=[c("div",{class:"v-popper__arrow-outer"},null,-1),c("div",{class:"v-popper__arrow-inner"},null,-1)];function PE(e,t,n,o,i,s){const r=Uo("ResizeObserver");return B(),z("div",{id:e.popperId,ref:"popover",class:Je(["v-popper__popper",[e.themeClass,e.classes.popperClass,{"v-popper__popper--shown":e.shown,"v-popper__popper--hidden":!e.shown,"v-popper__popper--show-from":e.classes.showFrom,"v-popper__popper--show-to":e.classes.showTo,"v-popper__popper--hide-from":e.classes.hideFrom,"v-popper__popper--hide-to":e.classes.hideTo,"v-popper__popper--skip-transition":e.skipTransition,"v-popper__popper--arrow-overflow":e.result&&e.result.arrow.overflow,"v-popper__popper--no-positioning":!e.result}]]),style:Tn(e.result?{position:e.result.strategy,transform:`translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)`}:void 0),"aria-hidden":e.shown?"false":"true",tabindex:e.autoHide?0:void 0,"data-popper-placement":e.result?e.result.placement:void 0,onKeyup:t[2]||(t[2]=Vp(a=>e.autoHide&&e.$emit("hide"),["esc"]))},[c("div",{class:"v-popper__backdrop",onClick:t[0]||(t[0]=a=>e.autoHide&&e.$emit("hide"))}),c("div",{class:"v-popper__wrapper",style:Tn(e.result?{transformOrigin:e.result.transformOrigin}:void 0)},[c("div",SE,[e.mounted?(B(),z(Ue,{key:0},[c("div",null,[un(e.$slots,"default")]),e.handleResize?(B(),on(r,{key:0,onNotify:t[1]||(t[1]=a=>e.$emit("resize",a))})):qe("",!0)],64)):qe("",!0)],512),c("div",{ref:"arrow",class:"v-popper__arrow-container",style:Tn(e.result?{left:e.toPx(e.result.arrow.x),top:e.toPx(e.result.arrow.y)}:void 0)},AE,4)],4)],46,kE)}var qh=ca(EE,[["render",PE]]),zh={methods:{show(...e){return this.$refs.popper.show(...e)},hide(...e){return this.$refs.popper.hide(...e)},dispose(...e){return this.$refs.popper.dispose(...e)},onResize(...e){return this.$refs.popper.onResize(...e)}}};const IE=Ne({name:"VPopperWrapper",components:{Popper:_E,PopperContent:qh},mixins:[zh,Hh("finalTheme")],props:{theme:{type:String,default:null}},computed:{finalTheme(){var e;return(e=this.theme)!=null?e:this.$options.vPopperTheme}},methods:{getTargetNodes(){return Array.from(this.$el.children).filter(e=>e!==this.$refs.popperContent.$el)}}});function TE(e,t,n,o,i,s){const r=Uo("PopperContent"),a=Uo("Popper");return B(),on(a,{ref:"popper",theme:e.finalTheme,"target-nodes":e.getTargetNodes,"popper-node":()=>e.$refs.popperContent.$el,class:Je([e.themeClass])},{default:Qe(({popperId:l,isShown:u,shouldMountContent:f,skipTransition:h,autoHide:g,show:b,hide:_,handleResize:E,onResize:I,classes:M,result:P})=>[un(e.$slots,"default",{shown:u,show:b,hide:_}),ke(r,{ref:"popperContent","popper-id":l,theme:e.finalTheme,shown:u,mounted:f,"skip-transition":h,"auto-hide":g,"handle-resize":E,classes:M,result:P,onHide:_,onResize:I},{default:Qe(()=>[un(e.$slots,"popper",{shown:u,hide:_})]),_:2},1032,["popper-id","theme","shown","mounted","skip-transition","auto-hide","handle-resize","classes","result","onHide","onResize"])]),_:3},8,["theme","target-nodes","popper-node","class"])}var Cc=ca(IE,[["render",TE]]);const OE=Ne(Cs(jn({},Cc),{name:"VDropdown",vPopperTheme:"dropdown"})),LE=Ne(Cs(jn({},Cc),{name:"VMenu",vPopperTheme:"menu"})),ME=Ne(Cs(jn({},Cc),{name:"VTooltip",vPopperTheme:"tooltip"})),DE=Ne({name:"VTooltipDirective",components:{Popper:Bh(),PopperContent:qh},mixins:[zh],inheritAttrs:!1,props:{theme:{type:String,default:"tooltip"},html:{type:Boolean,default:e=>Ai(e.theme,"html")},content:{type:[String,Number,Function],default:null},loadingContent:{type:String,default:e=>Ai(e.theme,"loadingContent")}},data(){return{asyncContent:null}},computed:{isContentAsync(){return typeof this.content=="function"},loading(){return this.isContentAsync&&this.asyncContent==null},finalContent(){return this.isContentAsync?this.loading?this.loadingContent:this.asyncContent:this.content}},watch:{content:{handler(){this.fetchContent(!0)},immediate:!0},async finalContent(){await this.$nextTick(),this.$refs.popper.onResize()}},created(){this.$_fetchId=0},methods:{fetchContent(e){if(typeof this.content=="function"&&this.$_isShown&&(e||!this.$_loading&&this.asyncContent==null)){this.asyncContent=null,this.$_loading=!0;const t=++this.$_fetchId,n=this.content(this);n.then?n.then(o=>this.onResult(t,o)):this.onResult(t,n)}},onResult(e,t){e===this.$_fetchId&&(this.$_loading=!1,this.asyncContent=t)},onShow(){this.$_isShown=!0,this.fetchContent()},onHide(){this.$_isShown=!1}}}),RE=["innerHTML"],NE=["textContent"];function BE(e,t,n,o,i,s){const r=Uo("PopperContent"),a=Uo("Popper");return B(),on(a,Ip({ref:"popper"},e.$attrs,{theme:e.theme,"popper-node":()=>e.$refs.popperContent.$el,onApplyShow:e.onShow,onApplyHide:e.onHide}),{default:Qe(({popperId:l,isShown:u,shouldMountContent:f,skipTransition:h,autoHide:g,hide:b,handleResize:_,onResize:E,classes:I,result:M})=>[ke(r,{ref:"popperContent",class:Je({"v-popper--tooltip-loading":e.loading}),"popper-id":l,theme:e.theme,shown:u,mounted:f,"skip-transition":h,"auto-hide":g,"handle-resize":_,classes:I,result:M,onHide:b,onResize:E},{default:Qe(()=>[e.html?(B(),z("div",{key:0,innerHTML:e.finalContent},null,8,RE)):(B(),z("div",{key:1,textContent:ge(e.finalContent)},null,8,NE))]),_:2},1032,["class","popper-id","theme","shown","mounted","skip-transition","auto-hide","handle-resize","classes","result","onHide","onResize"])]),_:1},16,["theme","popper-node","onApplyShow","onApplyHide"])}var FE=ca(DE,[["render",BE]]);const Vh="v-popper--has-tooltip";function UE(e,t){let n=e.placement;if(!n&&t)for(const o of Oh)t[o]&&(n=o);return n||(n=Ai(e.theme||"tooltip","placement")),n}function Wh(e,t,n){let o;const i=typeof t;return i==="string"?o={content:t}:t&&i==="object"?o=t:o={content:!1},o.placement=UE(o,n),o.targetNodes=()=>[e],o.referenceNode=()=>e,o}let $c,ks,jE=0;function HE(){if($c)return;ks=de([]),$c=Cn({name:"VTooltipDirectiveApp",setup(){return{directives:ks}},render(){return this.directives.map(t=>u0(FE,Cs(jn({},t.options),{shown:t.shown||t.options.shown,key:t.id})))},devtools:{hide:!0}});const e=document.createElement("div");document.body.appendChild(e),$c.mount(e)}function qE(e,t,n){HE();const o=de(Wh(e,t,n)),i=de(!1),s={id:jE++,options:o,shown:i};return ks.value.push(s),e.classList&&e.classList.add(Vh),e.$_popper={options:o,item:s,show(){i.value=!0},hide(){i.value=!1}}}function Kh(e){if(e.$_popper){const t=ks.value.indexOf(e.$_popper.item);t!==-1&&ks.value.splice(t,1),delete e.$_popper,delete e.$_popperOldShown,delete e.$_popperMountTarget}e.classList&&e.classList.remove(Vh)}function Gh(e,{value:t,modifiers:n}){const o=Wh(e,t,n);if(!o.content||Ai(o.theme||"tooltip","disabled"))Kh(e);else{let i;e.$_popper?(i=e.$_popper,i.options.value=o):i=qE(e,t,n),typeof t.shown<"u"&&t.shown!==e.$_popperOldShown&&(e.$_popperOldShown=t.shown,t.shown?i.show():i.hide())}}var zE={beforeMount:Gh,updated:Gh,beforeUnmount(e){Kh(e)}};function Yh(e){e.addEventListener("click",Qh),e.addEventListener("touchstart",Xh,Wo?{passive:!0}:!1)}function Jh(e){e.removeEventListener("click",Qh),e.removeEventListener("touchstart",Xh),e.removeEventListener("touchend",Zh),e.removeEventListener("touchcancel",em)}function Qh(e){const t=e.currentTarget;e.closePopover=!t.$_vclosepopover_touch,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}function Xh(e){if(e.changedTouches.length===1){const t=e.currentTarget;t.$_vclosepopover_touch=!0;const n=e.changedTouches[0];t.$_vclosepopover_touchPoint=n,t.addEventListener("touchend",Zh),t.addEventListener("touchcancel",em)}}function Zh(e){const t=e.currentTarget;if(t.$_vclosepopover_touch=!1,e.changedTouches.length===1){const n=e.changedTouches[0],o=t.$_vclosepopover_touchPoint;e.closePopover=Math.abs(n.screenY-o.screenY)<20&&Math.abs(n.screenX-o.screenX)<20,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}}function em(e){const t=e.currentTarget;t.$_vclosepopover_touch=!1}var VE={beforeMount(e,{value:t,modifiers:n}){e.$_closePopoverModifiers=n,(typeof t>"u"||t)&&Yh(e)},updated(e,{value:t,oldValue:n,modifiers:o}){e.$_closePopoverModifiers=o,t!==n&&(typeof t>"u"||t?Yh(e):Jh(e))},beforeUnmount(e){Jh(e)}};function WE(e,t={}){e.$_vTooltipInstalled||(e.$_vTooltipInstalled=!0,Ph(Hn,t),e.directive("tooltip",zE),e.directive("close-popper",VE),e.component("VTooltip",ME),e.component("VDropdown",OE),e.component("VMenu",LE))}const fa={version:"2.0.0-beta.20",install:WE,options:Hn},GR="";async function KE(){const e=await po(),{host:t,search:n}=location;t==="115.com"&&GE(e),!(t!=="115.com"||!n.includes("offline=1&tab=offline"))&&(await YE(),await JE(),sC())}async function GE(e){const t=en();if(!e.noGotoTaskPage||window!==window.top||t.Core.OFFL5Plug)return;async function n(o){t.Core&&o(!0)}try{await Kn(n,250,3e4),t.Core.OFFL5Plug||t.$.getScript("https://cdnres.115.com/site/static/plug/offline_wl/offline5.0.js",()=>{t.Core.OFFL5Plug.AddClient({})})}catch(o){throw new Error(`[disableGotoTaskPage] wait Core failed:${o.message}`)}}async function YE(){console.log("[Cloud115 Enhancer] Injecting offline exporter...");const e="cloud115OfflineExporter",t=await po();document.body.classList.add("cloud115-page-offline"),t.enableListManagement&&document.body.classList.add("ce-list-m"),$("body").append(`<div id="${e}"/>`);const n=Cn(UC);n.use(fa),n.mount(`#${e}`)}async function JE(){console.log("[Cloud115 Enhancer] Injecting offline searcher...");const e="cloud115OfflineSearcher",t=await po();document.body.classList.add("cloud115-page-offline"),t.enableSearcher&&document.body.classList.add("ce-list-s"),$("body").append(`<div id="${e}"/>`);const n=Cn(I$);n.use(fa),n.mount(`#${e}`)}var Rt=(e=>(e[e.UNKNOWN=0]="UNKNOWN",e[e.OPEN_CLEANER=1]="OPEN_CLEANER",e[e.CLOSE_CLEANER=2]="CLOSE_CLEANER",e[e.CLEANER_OPENED=3]="CLEANER_OPENED",e[e.INVOKE_FILTER=4]="INVOKE_FILTER",e[e.OPEN_EMPTY_CLEANER=5]="OPEN_EMPTY_CLEANER",e[e.CLOSE_EMPTY_CLEANER=6]="CLOSE_EMPTY_CLEANER",e[e.EMPTY_CLEANER_OPENED=7]="EMPTY_CLEANER_OPENED",e))(Rt||{});const QE={class:"cloud115-eh-cleaner-trigger"},XE=[c("span",null,"清理文件",-1)],ZE=Ne({__name:"Trigger",setup(e){de(!1);const t=de(!0);async function n(a){switch(a.data.type){case Rt.INVOKE_FILTER:await Gb(a.data.payload);break;case Rt.CLEANER_OPENED:await r(a.data.payload);break}}Ot(async()=>{console.log("[CleanerTrigger onMounted]"),window.addEventListener("message",n)}),Bo(()=>{console.log("[CleanerTrigger onUnmounted]"),window.removeEventListener("message",n)});async function o(){await s(),xo({type:Rt.OPEN_CLEANER},window.parent)}let i=0;async function s(){const a=uu("cid");!a||a==="0"||(clearTimeout(i),i=window.setTimeout(async()=>{re({icon:"error",text:"打开清理工具失败!"})},1e3))}async function r(a){console.log("成功打开Cleaner"),clearTimeout(i)}return(a,l)=>G((B(),z("span",QE,[un(a.$slots,"default",{},()=>[c("span",{class:"btn-open pure-button pure-button-primary",onClick:o,title:"打开清理文件工具"},XE)])],512)),[[Dt,t.value]])}}),JR="";var We=(e=>(e[e.suffix=0]="suffix",e[e.keyword=1]="keyword",e))(We||{}),xt=(e=>(e[e.append=0]="append",e[e.cover=1]="cover",e[e.clear=2]="clear",e[e.reset=3]="reset",e[e.assign=4]="assign",e))(xt||{}),yt=(e=>(e.none="",e.prepare="查询文件...",e.prepared="查询文件完成",e.prepareFailed="查询失败",e.deleting="删除文件中...",e.success="清理完成",e.failed="清理失败",e))(yt||{});kt.all,lt.all,kt.video,lt.video,kt.audio,lt.audio,kt.image,lt.image,kt.doc,lt.doc,kt.app,lt.app,kt.archive,lt.archive;const ek=new Map([[lt.all,kt.all],[lt.video,kt.video],[lt.audio,kt.audio],[lt.image,kt.image],[lt.doc,kt.doc],[lt.app,kt.app],[lt.archive,kt.archive]]),pa="#",tm="#",tk=[{type:We.suffix,queryOnly:!1,label:"默认",memo:"请谨慎使用!",size:5,values:["txt","url","html","htm","mht"]},{type:We.suffix,queryOnly:!0,label:"🔍115筛选",memo:"仅用于查询",size:102400,values:["#视频","#音频","#图片","#文档","#应用","#压缩包"]}],nk=["#論壇文宣","#宣傳文本","最新地址","最新网址","论坛地址","永久地址","地址发布","扫码 安装","扫码 下载","免費 掃碼","澳门 赌场","皇冠 赌场","免费18禁手游","免费黄游手游","在线影城","秀场 小视频","裸秀 主播 免费看","第一会所 宣传","SIS 影视联盟",'"最 新 位 址 獲 取"','"社 區 最 新 情 報"','"聚 合 全 網 H 直 播"'],ok=["#論壇文宣","美女 裸聊","秀场 视频","澳门 赌场","皇冠 赌场","影视 联盟","2048 社区","1024 社区","会所 宣传","扫码 安装","社区 关注","免費 掃碼","找回家","防屏蔽","封殺00","秀场 小视频","裸秀 主播 免费看",'"Free Adult Movie"',"奔驰宝马","最新网址","最新免費","免费试用","美女荷官","凤凰娛樂","观看指南","女神在线","更多无水印","免费在线","国产精品","免費原版","獨家資源","成人光碟","最新AV","FDZone","发布器","QR-1024","在這等你","激情祼聊","看妹不用等","真人祼聊","zz.jpg","X8B9.COM.gif","第一会所 宣传","SIS 影视联盟","淘精網","激情咖啡","手機影城","免费手机看片","U視娛樂","加微信","我愛看片手機版","平台正式上線"],ik=[{type:We.keyword,queryOnly:!1,label:"默认",memo:"请谨慎使用!",size:100,values:nk},{type:We.keyword,queryOnly:!1,label:"⚠️大杀器⚠️",memo:"请谨慎使用!",size:100,values:ok},{type:We.keyword,queryOnly:!0,label:"只查询示例",memo:"这是一个示例",size:10240,values:["奔驰宝马","美女荷官",'"最 新 位 址 獲 取"']}];function Go(e){return{id:Date.now().toString(),type:e,queryOnly:!1,label:"",values:"",memo:"",size:0,sort:0,createdAt:0,updatedAt:0}}function nm(e,t){e=e.trim();const n=t===We.keyword&&sk(e),o=t===We.suffix&&rk(e);let i=e;return n&&(i=ak(e)),o&&(i=lk(e).toString()),{type:t,value:e,forDir:n,isFilter:o,pattern:i,num:-1,fileIds:[],size:-1,status:yt.none}}function om(e){return[yt.prepare,yt.deleting].includes(e.status)}function sk(e){return new RegExp(`^${pa}[\\S]{2,}`).test(e)}function rk(e){return new RegExp(`^${tm}[\\S]{2,}`).test(e)}function ak(e){const t=new RegExp(`^${pa}`);return e.replace(t,"")}function lk(e){const t=new RegExp(`^${tm}`);let n=e.replace(t,"");const o=ek.get(n);if(!o)throw new Error(`"${e}"不是有效的筛选!`);return o}async function Yo(e,t){let n;typeof e=="string"?n=e.split(/[\r\n]+/):n=e;const o=new Set;for(let s=0;s<n.length;s++){const r=n[s].trim();r.length>1&&o.add(r)}const i=[];return o.forEach(s=>{i.push(nm(s,t))}),i}function im(e){return/(^'.+'$)|(^".+"$)/.test(e)}function Ec(e){return im(e)?e.replace(/^['"]|['"]$/g,""):e}function ck(e,t){if(e===""||t==="")return!1;if(e=e.toLowerCase(),im(t))return e.includes(Ec(t).toLowerCase());const n=t.split(/\s+/);for(let o=0;o<n.length;o++)if(!e.includes(n[o].toLowerCase()))return!1;return!0}async function sm(e,t,n){const o=nm(e.value,e.type);o.num=0,o.size=0,o.fileIds=[];const i=new Set;let s=0;n.maxSize&&(s=n.maxSize*1024*1024);for(let r=0;r<t.length;r++){const a=!!t[r].fid,l=a?t[r].fid:t[r].cid;if(!l||e.type===We.keyword&&(a&&e.forDir||!a&&!e.forDir))continue;const u=parseFloat(t[r].s);s&&a&&u>s||e.type===We.keyword&&!ck(t[r].n,e.pattern)||i.has(l)||(i.add(l),o.size+=u)}return o.fileIds=Array.from(i),o.num=o.fileIds.length,o}const uk={class:"group-manager"},dk={key:0,class:"label-readonly",title:"当前分组只可用于查询"},fk=["title"],pk=c("small",null,"分组:",-1),hk={class:"pure-form pure-form-stacked group-form"},mk=c("label",{for:"groupLabel"},"标题",-1),gk=c("label",{for:"groupMemo"},"备注",-1),yk={for:"groupValues"},wk={key:0,class:"text-info"},bk={key:1,class:"text-info"},_k=["onClick"],vk=c("small",{class:"text-primary"},"(点击添加)",-1),xk=c("label",{for:"groupMemo"},[ee(" 文件大小 "),c("span",{class:"text-info"},[ee("只清理小于该大小的文件,单位"),c("b",null,"MB")])],-1),Ck={class:"groups-list"},$k={key:0,class:"text-danger"},Ek=c("span",{class:"text-info"},"或",-1),kk=c("br",null,null,-1),Sk=c("br",null,null,-1),Ak={class:"pure-table pure-table-bordered"},Pk=c("thead",null,[c("tr",null,[c("th",{width:"25"},"#"),c("th",{width:"70"},"只查询"),c("th",{width:"150"},"名称"),c("th",{width:"150"},"备注"),c("th",{width:"70"},[ee("大小"),c("small",null,"MB")]),c("th",{width:"220"},"操作")])],-1),Ik={align:"center"},Tk=["onClick"],Ok=c("button",{type:"button",class:"pure-button button-xsmall text-danger"},"删除",-1),Lk={class:"group-confirm-delete"},Mk=["onClick"],Dk=["onClick"],rm=Ne({__name:"GroupManager",props:{type:null,storageKey:null,config:null},emits:["change"],setup(e,{emit:t}){const n=e,o=de(Go(n.type)),i=de([]),s=de(!1),r=de(Go(n.type)),a=de(null),l=de(!1),u=de(null),f=[lt.video,lt.audio,lt.image,lt.doc,lt.app,lt.archive];ht(i,async be=>{console.log("[groups change]",be),Co(n.storageKey,be,!1),be.length||(s.value=!1,l.value=!1)},{deep:!0});let h=!1;Ot(async()=>{if(console.log("[GroupManager onMounted]"),!h){h=!0,i.value=Ds(n.storageKey,[]),console.log("[groups]",i.value);const{suffixGroup:be,keywordGroup:O}=n.config;if(i.value.length){const ae=i.value.find(Q=>Q.id===(n.type===We.suffix?be:O));console.log("[group last choosen]",ae),o.value=ae||i.value[0],t("change",o.value)}else n.type===We.suffix&&!be&&(await U(),Co(rt.cleanerConfig,{suffixGroup:o.value.id},!0)),n.type===We.keyword&&!O&&(await U(),Co(rt.cleanerConfig,{keywordGroup:o.value.id},!0))}}),Bo(async()=>{console.log("[GroupManager onUnmounted]")});async function g(be){const O=`#${be}`;r.value.values.includes(O)||(r.value.values+=(`
`+O).trim()+`
`)}async function b(){s.value=!0,l.value=!1}async function _(){s.value=!1}async function E(){a.value.show()}async function I(){a.value.hide()}async function M(){l.value=!1}async function P(){l.value=!0,s.value=!1}async function T(){u.value.show()}async function H(){u.value.hide()}async function ie(){r.value.createdAt&&(r.value=Go(n.type)),r.value.size=5,n.type===We.keyword&&(r.value.size=100),await E()}async function U(){let be=[];n.type===We.suffix?be=tk:be=ik;for(let O=0;O<be.length;O++){const ae={...Go(be[O].type),...be[O]};r.value=ae,r.value.type=ae.type,r.value.queryOnly=ae.queryOnly,r.value.size=ae.size,r.value.label=ae.label,r.value.memo=ae.memo,r.value.createdAt=0,r.value.updatedAt=0,Array.isArray(ae.values)?r.value.values=ae.values.join(`
`):r.value.values=ae.values,await ye(),await H()}i.value.length&&await Ie(i.value[0])}async function Z(be,O=!1){if(!O){const{isConfirmed:Q}=await pe.fire({html:`确定删除"${o.value.label}"?`,icon:"question"});if(!Q)return}let ae=-1;for(let Q=0;Q<i.value.length;Q++)if(i.value[Q].id===o.value.id){ae=Q;break}i.value.splice(ae,1),i.value.length?o.value=i.value[0]:o.value=Go(n.type),t("change",o.value),await re({icon:"success",title:"删除成功!",timer:1500})}async function ce(be){r.value=be,await E()}async function ye(){let be=[];try{be=await Yo(r.value.values,r.value.type)}catch(D){await pe.fire({icon:"error",text:D.message});return}if(r.value.label=r.value.label.trim(),r.value.memo=r.value.memo.trim(),r.value.label===""){await re({icon:"warning",text:"请输入标题!"});return}let O=-1;for(let D=0;D<i.value.length;D++)if(i.value[D].id===r.value.id&&r.value.id){O=D;break}const ae=Ni();r.value.updatedAt=ae,r.value.createdAt||(r.value.createdAt=ae);let Q=[];for(let D=0;D<be.length;D++)Q.push(be[D].value);r.value.values=Q.join(`
`).trim(),console.log("[saveGroup]",r.value,O),O===-1?(i.value.push(r.value),re({icon:"success",text:"添加成功"})):(i.value[O]=r.value,re({icon:"success",text:"更新成功"}));const Ee=!o.value.createdAt;Ee&&(o.value=r.value),(r.value.id===o.value.id||Ee)&&t("change",r.value),await I()}async function Ie(be){o.value=be;const{id:O}=o.value;n.type===We.suffix&&(n.config.suffixGroup=O,Co(rt.cleanerConfig,{suffixGroup:O},!0)),n.type===We.keyword&&(n.config.keywordGroup=O,Co(rt.cleanerConfig,{keywordGroup:O},!0)),t("change",be)}return(be,O)=>{const ae=Uo("VDropdown");return B(),z("div",uk,[o.value.queryOnly?(B(),z("span",dk," 只查询 ")):qe("",!0),o.value.createdAt?(B(),z("a",{key:1,class:"group-label",href:"javascript:void(0)",title:`当前使用的分组: ${o.value.label}`,onClick:O[0]||(O[0]=Q=>ce(o.value))},[c("span",null,[pk,ee(" "+ge(o.value.label),1)])],8,fk)):qe("",!0),ke(ae,{ref_key:"form",ref:a,onHide:_,onShow:b,distance:5,"arrow-padding":100},{popper:Qe(()=>[c("form",hk,[c("fieldset",null,[c("div",null,[mk,G(c("input",{type:"text","onUpdate:modelValue":O[1]||(O[1]=Q=>r.value.label=Q),id:"groupLabel",class:"pure-input-1-2",placeholder:"分组标题"},null,512),[[Ve,r.value.label]]),ee("    "),r.value.queryOnly?(B(),z("button",{key:0,type:"button",class:"pure-button button-small button-warning",onClick:O[2]||(O[2]=Q=>r.value.queryOnly=!1)},"已设置为仅用于查询 | 点击取消设置")):qe("",!0),r.value.queryOnly?qe("",!0):(B(),z("button",{key:1,type:"button",class:"pure-button button-small pure-button-primary",onClick:O[3]||(O[3]=Q=>r.value.queryOnly=!0)},"设置为仅用于查询"))]),c("div",null,[gk,G(c("input",{type:"text","onUpdate:modelValue":O[4]||(O[4]=Q=>r.value.memo=Q),id:"groupMemo",placeholder:"分组备注"},null,512),[[Ve,r.value.memo]])]),c("div",null,[c("label",yk,[ee(" 特征列表 "),n.type===fe(We).keyword?(B(),z("span",wk,[ee(" 默认只匹配文件名。前面带"),c("b",null,ge(fe(pa)),1),ee("则只匹配目录名。 ")])):qe("",!0),n.type===fe(We).suffix?(B(),z("span",bk,[ee(" 支持115自带筛选: "),(B(),z(Ue,null,st(f,(Q,Ee)=>c("span",{class:"filter-label text-success",key:Ee,onClick:D=>g(Q)}," #"+ge(Q),9,_k)),64)),vk])):qe("",!0)]),G(c("textarea",{id:"groupValues","onUpdate:modelValue":O[5]||(O[5]=Q=>r.value.values=Q),rows:"5",placeholder:"每行一个"},null,512),[[Ve,r.value.values]])]),c("div",null,[xk,G(c("input",{type:"number","onUpdate:modelValue":O[6]||(O[6]=Q=>r.value.size=Q),class:"pure-input-1-2",placeholder:"文件大小小于该数值才清理"},null,512),[[Ve,r.value.size]])]),c("button",{type:"button",class:"pure-button pure-button-primary",onClick:ye},ge(r.value.createdAt?"更新":"添加"),1),ee("      "),c("button",{type:"button",class:"pure-button",onClick:I},"取消")])])]),default:Qe(()=>[c("a",{href:"javascript:void(0)",class:"text-primary",onClick:ie},"新增分组")]),_:1},512),ke(ae,{ref_key:"list",ref:u,onHide:M,onShow:P,distance:5},{popper:Qe(()=>[c("div",Ck,[i.value.length?qe("",!0):(B(),z("h3",$k,[ee(" 还没有添加任何分组。你可以: "),c("button",{type:"button",class:"pure-button button-small",onClick:ie},"添加"),ee("   "),Ek,ee("   "),c("button",{type:"button",class:"pure-button button-small",onClick:U},"使用脚本内置"),kk,Sk])),c("table",Ak,[Pk,c("tbody",null,[(B(!0),z(Ue,null,st(i.value,(Q,Ee)=>(B(),z("tr",{key:Ee},[c("td",null,ge(Ee+1),1),c("td",Ik,ge(Q.queryOnly?"是":"否"),1),c("td",null,ge(Q.label),1),c("td",null,ge(Q.memo),1),c("td",null,ge(Q.size),1),c("td",null,[c("button",{type:"button",class:"pure-button button-xsmall text-primary",onClick:D=>Ie(Q)},"载入",8,Tk),ee("   "),ke(ae,null,{popper:Qe(()=>[c("div",Lk,[c("button",{type:"button",class:"pure-button button-error",onClick:D=>Z(Q,!0)},"确定",8,Mk)])]),default:Qe(()=>[Ok]),_:2},1024),ee("   "),c("button",{type:"button",class:"pure-button button-xsmall",onClick:D=>ce(Q)},"编辑",8,Dk)])]))),128))])])])]),default:Qe(()=>[c("a",{href:"javascript:void(0)",class:"text-primary",onClick:T},"分组列表")]),_:1},512)])}}}),QR="",Rk={class:"cloud115-eh-cleaner"},Nk=[c("span",null,"清理文件",-1)],Bk={key:0,class:"cloud115-eh-cleaner-help"},Fk=[Pp('<div><h2>免责声明</h2><div><p>该工具仅作为学习测试用途,使用该工具造成的任何结果由使用人承担。</p></div><hr><h2>说明</h2><ul style="color:#f40;"><li class="text-primary">始于清理,但不止于清理!</li><li>* 仅对当前查看的目录及其子目录生效。</li><li>* 通过『新增分组 / 分组列表』管理你的清理特征。</li><li>* 建议整理自己的特征,也欢迎在交流中分享你的特征。</li><li>* 『只查询』按钮,只会进行查询。</li><li>* 『一键清理』是先查询,再进行删除!</li><li>* 由于搜索接口限制,如果某个关键词结果数量超过1万,可能会清理不完全,可以多执行几次清理。</li><li>* <b>清理期间,请保持当前页面处于激活状态!</b></li><li>* <b>请谨慎操作!请谨慎操作!请谨慎操作!</b></li></ul><hr><h3>按 后缀名 清理</h3><div><p>1. 点击『分组列表』,选择一个分组;</p><p>2. 确认一下后缀名和文件大小限制等的设定;</p><p>3. 点击『一键清理』按钮,耐心等待。</p></div><hr><h3>按 关键词 清理</h3><div> 基本同上,略。 <br><br><p>P.S. 关键词按『全包含』进行匹配,不区分大小写。</p><p>关键词`免费在线`,匹配文件名&quot;blabla-免费在线.mp4&quot;,<b class="text-danger">不匹配</b>文件名`blabla-免费的xxx在线.mp4`。</p><p>关键词`免费 在线`,匹配文件名&quot;blabla-免费在线.mp4&quot;,<b class="text-success">也匹配</b>文件名`blabla-免费的xxx在线.mp4`。</p><p class="text-danger">如需要 `免费 在线` 作为一个整体去匹配,可以使用`英文单/双引号`包裹,如`&quot;免费 在线&quot;`</p></div></div>',1)],Uk={class:"header actions-bar"},jk=c("span",{class:"title"},"文件清理工具",-1),Hk={type:"button",class:"pure-button button-success"},qk=c("i",{class:"file-type tp-folder",style:{}},null,-1),zk=["disabled"],Vk=["disabled"],Wk=c("small",null,"毫秒",-1),Kk=["disabled"],Gk=c("br",null,null,-1),Yk={class:"by-box by-suffix"},Jk={class:"by-header"},Qk=c("span",{class:"title"},[ee("按"),c("b",null,"后缀名"),ee("清理")],-1),Xk={class:"pure-button-group",role:"group"},Zk=["disabled"],e2={class:"pure-table pure-table-bordered"},t2=c("thead",null,[c("tr",null,[c("th",{width:"25"},"#"),c("th",{width:"100"},"后缀名"),c("th",{width:"95"},"文件数量"),c("th",{width:"80"},"合计大小"),c("th",{width:"150"},"操作"),c("th",{width:"200"},"状态")])],-1),n2=["onClick"],o2=["onClick"],i2=["onClick"],s2=c("br",null,null,-1),r2={class:"by-box by-keyword"},a2={class:"by-header"},l2=c("span",{class:"title"},[ee("按"),c("b",null,"关键词"),ee("清理")],-1),c2={class:"pure-button-group",role:"group"},u2=["disabled"],d2={class:"pure-table pure-table-bordered"},f2=c("thead",null,[c("tr",null,[c("th",{width:"25"},"#"),c("th",{width:"100"},"关键词"),c("th",{width:"95"},"文件/目录数量"),c("th",{width:"80"},"合计大小"),c("th",{width:"150"},"操作"),c("th",{width:"200"},"状态")])],-1),p2=["href"],h2={class:"file-type tp-folder"},m2=["onClick"],g2=["onClick"],y2=c("br",null,null,-1),w2={class:"footer actions-bar"},b2=c("span",{class:"title"},"文件清理工具",-1),_2={type:"button",class:"pure-button button-success"},v2=c("i",{class:"file-type tp-folder",style:{}},null,-1),x2=Ne({__name:"Cleaner",setup(e){const t=de(!1),n=de(!0),o=de(Go(We.suffix)),i=de(Go(We.keyword)),s=de({maxSize:5,matchName:!1}),r=de({maxSize:100,matchName:!0}),a=de([]),l=de([]),u=de(!1),f=de({initialized:!1,pageSize:1150,reqInterval:800,deleteSize:1150,...Ds(rt.cleanerConfig,{})}),h=de(!0),g=de(""),b=de([]);async function _(D){D.data.type===Rt.OPEN_CLEANER&&(await E(D.data.payload),xo({type:Rt.CLEANER_OPENED},D.source))}Ot(async()=>{console.log("[Cleaner onMounted]"),f.value.initialized||(f.value.initialized=!0,Co(rt.cleanerConfig,f.value,!1)),window.addEventListener("message",_)}),Bo(()=>{console.log("[Cleaner onUnmounted]"),window.removeEventListener("message",_)});async function E(D){t.value=!0;const K=await Ct();if(K==="0"||K===""){await I(),await pe.fire({icon:"warning",html:"<h2>不允许在根目录使用该工具!</h2>"});return}g.value&&g.value!==K&&(console.warn("目录变化,重置"),await H(xt.reset),await ie(xt.reset)),b.value=await Ud(),g.value=K}async function I(){t.value=!1}async function M(){Co(rt.cleanerConfig,f.value,!1),re({icon:"success",text:"保存成功",timer:1800}),h.value=!0}async function P(D){const K={};D.isFilter?K.type=D.pattern:K.suffix=D.pattern;let N=unsafeWindow.frames[0];for(let we=0;we<unsafeWindow.frames.length;we++)if(unsafeWindow.frames[we].name==="wangpan"){N=unsafeWindow.frames[we];break}xo({type:Rt.INVOKE_FILTER,payload:K},N),await I(),re({icon:"info",text:`已调用115筛选: ${D.value}`,timer:2500})}async function T(D,K){const{value:N}=await pe.fire({input:"textarea",title:D,html:"每行一个,最短两个字符。"+(K===We.keyword?`<br>默认只匹配文件名,不匹配目录名。<br>使用 "<b>${pa}目录名关键词</b>" 格式指定只匹配目录名的关键词。`:""),width:620,inputPlaceholder:"每行一个,最短两个字符",inputAttributes:{"aria-label":"每行一个,最短两个字符"},showCancelButton:!0});return N!==void 0?N.trim():""}async function H(D,K){let N="",we=[];switch(D){case xt.assign:N=K.trim(),N.trim()===""?a.value=[]:(we=await Yo(N,We.suffix),a.value=we);break;case xt.append:N=await T("添加后缀",We.suffix),we=await Yo(N,We.suffix);const Ae=[];a.value.forEach(De=>Ae.push(De.value.toLowerCase())),we.forEach(De=>{Ae.includes(De.value.toLowerCase())||a.value.push(De)});break;case xt.cover:N=await T("覆盖后缀",We.suffix),N.trim()!==""&&(we=await Yo(N,We.suffix),a.value=we);break;case xt.clear:a.value=[];break;case xt.reset:a.value.forEach(De=>{De.num=-1,De.fileIds=[],De.status=yt.none,De.size=-1});break}}async function ie(D,K){let N="",we=[];switch(D){case xt.assign:N=K.trim(),N.trim()===""?l.value=[]:(we=await Yo(N,We.keyword),l.value=we);break;case xt.append:N=await T("添加关键词",We.keyword),we=await Yo(N,We.keyword);const Ae=[];l.value.forEach(De=>Ae.push(De.value.toLowerCase())),we.forEach(De=>{Ae.includes(De.value.toLowerCase())||l.value.push(De)});break;case xt.cover:N=await T("覆盖关键词",We.keyword),N.trim()!==""&&(we=await Yo(N,We.keyword),l.value=we);break;case xt.clear:l.value=[];break;case xt.reset:l.value.forEach(De=>{De.num=-1,De.fileIds=[],De.status=yt.none,De.size=-1});break}}async function U(D){if(console.log("[cleanBySuffix]",D),await H(xt.reset),!a.value.length){await pe.fire({icon:"warning",text:"请先设置后缀!"});return}if(!D){const{isConfirmed:K}=await pe.fire({icon:"warning",html:'请在清理前确认"后缀和大小限制的设置"是否符合预期!',confirmButtonText:"没问题,开始清理",showDenyButton:!0,denyButtonText:"等会"});if(!K)return}u.value=!0;try{for(let K=0;K<a.value.length;K++){const N=a.value[K];await Z(N,D,!1,!0),await bt(f.value.reqInterval)}}catch(K){console.error(K)}u.value=!1}async function Z(D,K,N,we){if(console.log("[cleanBySuffixSingle]",D,K),!K&&!we){const{isConfirmed:Ae}=await pe.fire({icon:"warning",html:`确认执行条件 "后缀: <b class="text-primary">${D.pattern}</b>, 小于: <b>${s.value.maxSize}</b> MB" 的清理?`,confirmButtonText:"没问题,开始清理",showDenyButton:!0,denyButtonText:"等会"});if(!Ae)return}try{if(!N){u.value=!0,D.fileIds=[],D.size=-1,D.num=-1,D.status=yt.prepare;const Ae=await Ie(D);D.status=yt.prepared;const{fileIds:De,size:he}=await sm(D,Ae,s.value);D.fileIds=De,D.size=he,D.num=De.length,u.value=!1}if(!K)if(D.num>0){D.status=yt.deleting,u.value=!0;const Ae=await Nd(g.value,D.fileIds,f.value.deleteSize,1e3);u.value=!1,Ae>0?D.status=yt.success+` / 数量 <= ${Ae}`:D.status=yt.failed}else D.status=yt.success+" / 无"}catch(Ae){console.error(Ae),u.value=!1,await pe.fire({title:"cleanBySuffixSingle - 发生错误",html:Ae.toString()})}}async function ce(D){if(console.log("[cleanByKeyword]",D),await ie(xt.reset),!l.value.length){await pe.fire({icon:"warning",text:"请先设置关键词!"});return}if(!D){const{isConfirmed:K}=await pe.fire({icon:"warning",html:'请在清理前确认"关键词和大小限制的设置"是否符合预期!',confirmButtonText:"没问题,开始清理",showDenyButton:!0,denyButtonText:"等会"});if(!K)return}u.value=!0;try{for(let K=0;K<l.value.length;K++){const N=l.value[K];await ye(N,D,!1,!0),await bt(f.value.reqInterval)}}catch(K){console.error(K)}u.value=!1}async function ye(D,K,N,we){if(console.log("[cleanByKeywordSingle]",D,K),!K&&!we){const{isConfirmed:Ae}=await pe.fire({icon:"warning",html:`确认执行条件 "关键词: <b class="text-primary">${D.pattern}</b>, 小于: <b class="text-primary">${r.value.maxSize}</b> MB" 的清理?`,confirmButtonText:"没问题,开始清理",showDenyButton:!0,denyButtonText:"等会"});if(!Ae)return}try{if(!N){u.value=!0,D.fileIds=[],D.size=-1,D.num=-1,D.status=yt.prepare;const Ae=await be(D);D.status=yt.prepared;const{fileIds:De,size:he,num:ue}=await sm(D,Ae,r.value);D.fileIds=De,D.size=he,D.num=ue,u.value=!1}if(!K)if(D.num>0){D.status=yt.deleting,u.value=!0;const Ae=await Nd(g.value,D.fileIds,f.value.deleteSize,1e3);u.value=!1,Ae>0?D.status=yt.success+` / 数量 <= ${Ae}`:D.status=yt.failed,D.num>9e3&&(console.warn("[cleanByKeywordSingle] 补充处理..."),await ye(D,K,!1,!0))}else D.status=yt.success+" / 无"}catch(Ae){console.error(Ae),u.value=!1;let De=!0;const he={title:"cleanByKeywordSingle - 发生错误",html:Ae.toString()};Ae instanceof Ka&&(D.status=yt.prepareFailed+` / ${Ae.message}`,Ae instanceof od&&(he.timer=2e3,De=!1)),De?await pe.fire(he):pe.fire(he)}}async function Ie(D){const K=await Ct(),N=Gn({cid:K,limit:f.value.pageSize});D.isFilter?N.type=D.pattern:N.suffix=D.value;const we=await ai(N,f.value.reqInterval);return console.log("[files]",we),we}async function be(D){const K=await Ct(),N=Ug({search_value:Ec(D.pattern),cid:K,limit:f.value.pageSize}),we=await Cb(N,f.value.reqInterval,!0);return console.log("[files]",we),we}function O(D){return ll({search_value:Ec(D.pattern),cid:g.value},b.value[b.value.length-1])}async function ae(D){console.log("[onSuffixGroupChange]",D),o.value=D,s.value.maxSize=D.size,await H(xt.assign,D.values)}async function Q(D){console.log("[onKeywordGroupChange]",D),i.value=D,r.value.maxSize=D.size,await ie(xt.assign,D.values)}async function Ee(){document.querySelector(".cloud115-eh-cleaner-drawer").scrollTo(0,0)}return(D,K)=>G((B(),z("span",Rk,[un(D.$slots,"default",{},()=>[c("span",{class:"btn-open pure-button pure-button-primary",onClick:E},Nk)]),t.value?(B(),z("div",Bk,Fk)):qe("",!0),G(c("div",{class:Je(["cloud115-eh-cleaner-drawer",{loading:u.value}])},[c("div",Uk,[jk,c("span",{class:"close"},[c("button",{type:"button",class:"pure-button button-error",onClick:I},"关闭")]),c("button",Hk,[c("b",null,[qk,ee(" "+ge(b.value.join(" / ")),1)])])]),c("div",null,[ee(" 请求分页: "),G(c("input",{type:"number","onUpdate:modelValue":K[0]||(K[0]=N=>f.value.pageSize=N),min:30,max:1150,disabled:h.value},null,8,zk),[[Ve,f.value.pageSize]]),ee(" 请求间隔: "),G(c("input",{type:"number","onUpdate:modelValue":K[1]||(K[1]=N=>f.value.reqInterval=N),min:200,max:1e6,disabled:h.value},null,8,Vk),[[Ve,f.value.reqInterval]]),Wk,ee(" 每次删除: "),G(c("input",{type:"number","onUpdate:modelValue":K[2]||(K[2]=N=>f.value.deleteSize=N),min:1,max:1150,disabled:h.value},null,8,Kk),[[Ve,f.value.deleteSize]]),c("span",{class:"config-toggle",onClick:K[3]||(K[3]=N=>h.value=!h.value)},"设置参数"),h.value?qe("",!0):(B(),z("button",{key:0,type:"button",class:"pure-button pure-button-primary button-small",onClick:M}," 保存配置 "))]),Gk,c("div",Yk,[c("div",Jk,[Qk,ee("      "),c("div",Xk,[c("button",{type:"button",class:"pure-button",onClick:K[4]||(K[4]=N=>U(!0))},"只查询"),c("button",{type:"button",class:"pure-button pure-button-primary",onClick:K[5]||(K[5]=N=>U(!1)),disabled:o.value.queryOnly}," 一键清理 ",8,Zk)]),ee(" 小于 "),G(c("input",{type:"number","onUpdate:modelValue":K[6]||(K[6]=N=>s.value.maxSize=N),class:"filter-size"},null,512),[[Ve,s.value.maxSize]]),ee(" MB (0表示不限制) "),ke(rm,{type:fe(We).suffix,"storage-key":"suffixGroups",onChange:ae,config:f.value},null,8,["type","config"])]),c("table",e2,[t2,c("tbody",null,[(B(!0),z(Ue,null,st(a.value,(N,we)=>(B(),z("tr",{key:we,class:Je({active:fe(om)(N),"is-filter":N.isFilter})},[c("td",null,ge(we+1),1),c("td",null,[c("a",{href:"javascript:void(0)",class:"pattern",onClick:Ae=>P(N),title:"筛选"},ge(N.value),9,n2)]),c("td",null,ge(N.num>=0?N.num:""),1),c("td",null,ge(N.size>0?fe(Ns)(N.size):""),1),c("td",null,[c("button",{type:"button",class:"pure-button button-xsmall",onClick:Ae=>Z(N,!0,!1,!0)},"查询",8,o2),ee("   "),N.num>0&&!o.value.queryOnly?(B(),z("button",{key:0,type:"button",class:"pure-button button-warning button-xsmall",onClick:Ae=>Z(N,!1,!0,!1)},"清理",8,i2)):qe("",!0)]),c("td",null,ge(N.status),1)],2))),128))])])]),s2,c("div",r2,[c("div",a2,[l2,ee("      "),c("div",c2,[c("button",{type:"button",class:"pure-button",onClick:K[7]||(K[7]=N=>ce(!0))},"只查询"),c("button",{type:"button",class:"pure-button pure-button-primary",onClick:K[8]||(K[8]=N=>ce(!1)),disabled:i.value.queryOnly}," 一键清理 ",8,u2)]),ee(" 小于 "),G(c("input",{type:"number","onUpdate:modelValue":K[9]||(K[9]=N=>r.value.maxSize=N),class:"filter-size"},null,512),[[Ve,r.value.maxSize]]),ee(" MB (0表示不限制) "),ke(rm,{type:fe(We).keyword,"storage-key":"keywordGroups",onChange:Q,config:f.value},null,8,["type","config"])]),c("table",d2,[f2,c("tbody",null,[(B(!0),z(Ue,null,st(l.value,(N,we)=>(B(),z("tr",{key:we,class:Je({active:fe(om)(N),"is-dir":N.forDir})},[c("td",null,ge(we+1),1),c("td",null,[c("a",{href:O(N),target:"_blank",class:"pattern",title:"搜索"},[G(c("i",h2,null,512),[[Dt,N.forDir]]),ee(" "+ge(N.pattern),1)],8,p2)]),c("td",null,ge(N.num>=0?N.num:""),1),c("td",null,ge(N.size>0?fe(Ns)(N.size):""),1),c("td",null,[c("button",{type:"button",class:"pure-button button-xsmall",onClick:Ae=>ye(N,!0,!1,!0)},"查询",8,m2),ee("   "),N.num>0&&!i.value.queryOnly?(B(),z("button",{key:0,type:"button",class:"pure-button button-warning button-xsmall",onClick:Ae=>ye(N,!1,!0,!1)}," 清理 ",8,g2)):qe("",!0)]),c("td",null,ge(N.status),1)],2))),128))])])]),y2,c("div",w2,[b2,c("span",{class:"close"},[c("button",{type:"button",class:"pure-button button-error",onClick:I},"关闭")]),c("button",_2,[c("b",null,[v2,ee(" "+ge(b.value.join(" / ")),1)])]),ee("     "),c("button",{type:"button",class:"pure-button button-small",onClick:Ee}," 回到顶部 ")])],2),[[Dt,t.value]])],512)),[[Dt,n.value]])}}),eN="",C2={class:"ce-empty-cleaner-trigger"},$2=[c("span",null,"空文件夹",-1)],E2=Ne({__name:"Trigger",setup(e){de(!1);const t=de(!0);async function n(a){switch(a.data.type){case Rt.EMPTY_CLEANER_OPENED:await r(a.data.payload);break}}Ot(async()=>{console.log("[EmptyCleanerTrigger onMounted]"),window.addEventListener("message",n)}),Bo(()=>{console.log("[EmptyCleanerTrigger onUnmounted]"),window.removeEventListener("message",n)});async function o(){await s(),xo({type:Rt.OPEN_EMPTY_CLEANER},window.parent)}let i=0;async function s(){const a=uu("cid");!a||a==="0"||(clearTimeout(i),i=window.setTimeout(async()=>{re({icon:"error",text:"打开清理空文件夹工具失败!"})},1e3))}async function r(a){console.log("成功打开EmptyCleaner"),clearTimeout(i)}return(a,l)=>G((B(),z("span",C2,[un(a.$slots,"default",{},()=>[c("span",{class:"btn-open pure-button pure-button-primary",onClick:o,title:"打开清理空文件夹工具"},$2)])],512)),[[Dt,t.value]])}}),nN="",k2=/^(?:\| )+\|-/;async function*S2(e){const t=["/"],n=e.trim().split(`
`);let o=0;for(const i of n){const s=k2.exec(i);if(s===null)continue;const a=s[0].length,l=a/2-1,u=i.slice(a);l>=t.length?t.push(u):t[l]=u,o+=1;const f=t.slice(0,l+1).join("/");yield{index:o,name:u,path:su(f,!0)}}}function am(e={}){return{name:"",path:"",id:"",url:"",checked:!1,deleted:!1,disabled:!1,repeated:!1,ensured:!1,...e}}function kc(){return{suffixes:new Set,nameCounter:{},nameToPaths:{},repeatedPaths:new Set,maybeDirs:{}}}class A2{constructor(t,n=!1){_e(this,"logs",[]);_e(this,"_dirId","");_e(this,"_dirPath","");_e(this,"_dirAttr",null);_e(this,"_treeText","");_e(this,"_keepTree",!1);_e(this,"_treeFile",null);_e(this,"_tailData",kc());_e(this,"_emptyItems",new Map);_e(this,"logSubscribers",[]);_e(this,"emptyItemSubscribers",[]);_e(this,"treeFileSubscribers",[]);t&&this.setDirId(t),this._keepTree=n}addLogSubscriber(t){this.logSubscribers.push(t)}addEmptyItemSubscriber(t){this.emptyItemSubscribers.push(t)}addTreeFileSubscriber(t){this.treeFileSubscribers.push(t)}async setDirId(t){this._dirId=t,this._dirAttr=await At(t);const n=[...this._dirAttr.paths.slice(1).map(o=>o.file_name),this._dirAttr.file_name];this._dirPath=n.join("/")}async setKeepTree(t){this._keepTree=t}getTreeFile(){return this._treeFile}async isReady(){return!!this._dirPath}async run(){var o;if(!await this.isReady()){this.log(`运行异常!未获取到目录路径,目录ID=${this._dirId}`);return}if(((o=this._dirAttr)==null?void 0:o.folder_count)===0){this.log(`目录(id=${this._dirId}) "${this._dirPath}" 没有子目录,无需清理`);return}const t=Date.now();await this.exportTree(),await this.parseTree(),await this.queryFiles(),await this.handleMaybeDirs(),await this.detectEmpty(),await this.checkRealEmpty();const n=((Date.now()-t)/1e3).toFixed(2);this.log(`清理空目录检测阶段完成,合计耗时 ${n} 秒`),console.log("emptyItems:",this._emptyItems)}async exportTree(){const t=Date.now();this.log(`========导出目录树(目录ID=${this._dirId}, 路径=${this._dirPath})========`);const n=await Ab(this._dirId);console.log("exportTree",n),this.log("已发起导出处理,等待导出完成...");const o=await Pb(n.data.export_id);console.log("exportTree",o),this.log(`导出目录树成功,PickCode为${o.data.pick_code}`);const i=await kb(o.data.pick_code);console.log("downloadItem",i),this.log("正在读取目录树文件内容...");const r=await(await fetch(i.url.url,{credentials:"include",headers:{Cookie:i.cookie}})).blob();if(this._treeText=await r.text(),this.log("目录树文件内容读取完成"),this._keepTree)this.onTreeFileGenerated(i),this.log(`目录树文件保留,不会被删除。文件: ${i.file_name}`);else{const l=await nl(this._dirId,[i.file_id]);console.log("deleteResult",l),this.log("目录树文件已删除")}const a=((Date.now()-t)/1e3).toFixed(2);this.log(`导出目录树完成,耗时 ${a} 秒`),this.log("=".repeat(60))}async parseTree(){const t=Date.now();this.log("解析目录树...");const n=kc(),o=[],i=this._dirPath.split("/").slice(0,-1).join("/");console.log("[parseTree] parentPath:",i);for await(const r of S2(this._treeText)){const a=i+r.path;o.includes(a)&&n.repeatedPaths.add(a),o.push(a)}for(let r=0;r<o.length;r++){if(o[r+1]&&o[r+1].startsWith(o[r]+"/"))continue;let a=o[r].split("/").pop();if(!a)a=o[r];else{const l=Fb(a,/^\w+$/);if(l)n.suffixes.add(l.toLowerCase());else{const u=o[r].replace(/\/[^\/]+$/,"");n.maybeDirs[u]||(n.maybeDirs[u]=new Set),n.maybeDirs[u].add(a)}}n.nameToPaths[a]||(n.nameToPaths[a]=[]),n.nameToPaths[a].push(o[r]),n.nameCounter[a]||(n.nameCounter[a]=0),n.nameCounter[a]+=1}console.log("[parseTree] result:",n);const s=((Date.now()-t)/1e3).toFixed(2);this.log(`解析目录树完成,耗时 ${s} 秒`),this.log("=".repeat(60)),this._tailData=n}async queryFiles(){const t=Date.now(),n=this._tailData,o=n.suffixes.size;this.log(`根据后缀(数量: ${o})获取文件列表...`);let i=0;for(const r of n.suffixes){const a=Gn({suffix:r,limit:1150,cid:this._dirId});try{const l=Date.now();this.log(`[${i+1} / ${o}] 正在获取后缀"${r}"的文件列表...`);const u=await ai(a),f=((Date.now()-l)/1e3).toFixed(2);this.log(`[${i+1} / ${o}] 获取后缀"${r}"的文件列表成功,文件数量:${u.length}。耗时 ${f} 秒`);for(const h of u)h.c===Ta.violation?console.warn(`违规: id=${h.fid}, pc=${h.pc}, cid=${h.cid}, name=${h.n}`):h.c===Ta.auditing&&console.warn(`审核中: id=${h.fid}, pc=${h.pc}, cid=${h.cid}, name=${h.n}`),n.nameCounter[h.n]&&n.nameCounter[h.n]--}catch(l){console.error(`[queryFiles] getFiles error! suffix: ${r}, error:`,l),this.log(`[${i+1} / ${o}] 获取后缀"${r}"的文件列表失败!错误: ${l.toString()}`)}i++}const s=((Date.now()-t)/1e3).toFixed(2);this.log(`根据后缀获取文件列表完成。耗时 ${s} 秒`),this.log("=".repeat(60))}async handleMaybeDirs(){const t=Date.now(),n=this._tailData;this.log("========根据上级路径排除无后缀文件========");const o=Object.keys(n.maybeDirs).length;let i=0;for(const[r,a]of Object.entries(n.maybeDirs)){const l=await ci(r),u=Gn({limit:1150,cid:l});try{const f=Date.now();this.log(`[${i+1} / ${o}] 正在获取上级路径 "${r}" 的文件列表...`);const h=await ai(u),g=((Date.now()-f)/1e3).toFixed(2);this.log(`[${i+1} / ${o}] 获取上级路径 "${r}" 的文件列表成功,文件数量:${h.length}。耗时 ${g} 秒`);for(const b of h)a.has(b.n)&&b.fid&&(this.log(`[${i+1} / ${o}] 上级路径 "${r}" 下的 "${b.n}" 是一个文件`),n.nameCounter[b.n]&&n.nameCounter[b.n]--)}catch(f){console.error(`[handleMaybeDirs] getFiles error! cid: ${l}, error:`,f),this.log(`[${i+1} / ${o}] 获取上级路径(cid=${l}) "${r}" 的文件列表失败!错误: ${f.toString()}`)}i++}const s=((Date.now()-t)/1e3).toFixed(2);this.log(`根据上级路径排除无后缀文件完成。耗时 ${s} 秒`),this.log("=".repeat(60))}async detectEmpty(){const t=Date.now(),n=this._tailData;this.log("========开始检测路径========");let o=0,i=Object.keys(n.nameCounter).length;for(const[r,a]of Object.entries(n.nameCounter)){if(!a){o++;continue}const l=n.nameToPaths[r];this.log(`[${o+1} / ${i}] 名称 "${r}" 有 ${a} 个路径需要检测`);for(let u=0;u<l.length;u++){const f=l[u];if(this._emptyItems.has(f)){console.log(`[detectEmpty] path "${f}" already exists in _emptyItems`);continue}if(n.repeatedPaths.has(f)){this.log(`名称 "${r}" 路径 "${f}" 存在重复,将对其所在的目录进行检测`),await this.checkDirContainsRepeated(f);continue}this.log(`[${o+1} / ${i}] 正在检测名称 "${r}" 第 ${u+1}/${a} 个路径: ${f}`);try{const h=await ci(f,!1);if(h){this.log(`检测到该末端路径 "${f}" 是一个空目录(ID: ${h})`);const g=am({id:h,name:r,path:f,url:Ki(h),ensured:!1});await this.addEmptyItem(g)}}catch(h){h instanceof Ga?this.log(`路径 "${f}" 不是一个目录`):(console.error(`[detectEmpty] getDirIdByPath failed! path: ${f}, error:`,h),this.log(`获取路径 "${f}" 的ID失败!错误: ${h.toString()}`))}}o++}const s=((Date.now()-t)/1e3).toFixed(2);this.log(`检测路径完成,耗时 ${s} 秒`),this.log("=".repeat(60))}async checkDirContainsRepeated(t){const n=il(t,"..",Qn.unix),o=t.split("/").pop();console.log("[checkDirContainsRepeated] parentPath:",n);let i="";try{if(i=await ci(n,!1),!i){this.log(`❌ 根据路径"${n}"获取目录ID失败: 目录不存在!`);return}}catch(r){console.error(`[checkDirContainsRepeated] getDirIdByPath error! path: ${n}, error:`,r),this.log(`获取路径 "${n}" 的ID失败!错误: ${r.toString()}`);return}const s=Gn({limit:1150,cid:i});try{const r=Date.now();this.log(`正在获取目录(id=${i})的文件列表...`);const a=await ai(s),l=((Date.now()-r)/1e3).toFixed(2);this.log(`获取目录(id=${i})的文件列表成功,文件数量:${a.length}。耗时 ${l} 秒`);for(const u of a)if(!(u.fid||u.n!==o))try{const f=await At(u.cid);if(f.file_name)if(f.folder_count===0&&f.count===0){this.log(`目录(id=${i})的子目录(id=${u.cid})为空`);const h=am({id:u.cid,name:f.file_name,path:f.paths.map(g=>g.file_name).slice(1).join("/"),url:Ki(u.cid),repeated:!0,ensured:!0,attr:f});await this.addEmptyItem(h)}else this.log(`目录(id=${i})的子目录(id=${u.cid})不为空`);else this.log(`❌ 获取目录(id=${u.cid})属性失败!`)}catch(f){console.error(`[checkDirContainsRepeated] getAttr error! cid: ${u.cid}, error:`,f),this.log(`获取目录(id=${u.cid})属性失败!异常: ${f.toString()}`)}}catch(r){console.error(`[checkDirContainsRepeated] getFiles error! cid: ${i}, error:`,r),this.log(`获取目录(id=${i})的文件列表失败!错误: ${r.toString()}`)}}async checkRealEmpty(){const t=Date.now();this.log("========确认是否真的为空目录========");for(const o of this._emptyItems.values())if(!o.ensured)try{const i=await At(o.id);o.ensured=!0,o.attr=i,i.count===0&&i.folder_count===0?this.log(`目录(id=${o.id}) "${o.path}" 确认为空`):(o.disabled=!0,o.memo="目录不为空,请手动检查和处理",this.log(`目录(id=${o.id}) "${o.path}" 确认不为空,请手动检查和处理`))}catch(i){console.error(`[checkRealEmpty] getAttr error! cid: ${o.id}, error:`,i),this.log(`获取目录(id=${o.id}) "${o.path}" 属性失败!异常: ${i.toString()}`),o.disabled=!0,o.memo="确认是否为空目录失败,请手动检查和处理"}const n=((Date.now()-t)/1e3).toFixed(2);this.log(`确认是否真的为空目录完成,耗时 ${n} 秒`),this.log("=".repeat(60))}async onTreeFileGenerated(t){this._treeFile=t;for(const n of this.treeFileSubscribers)n(t)}async addEmptyItem(t){if(this._emptyItems.has(t.id)){console.log(`[addEmptyItem] path(id=${t.id}) "${t.path}" already exists in _emptyItems`);return}this._emptyItems.set(t.id,t);for(const n of this.emptyItemSubscribers)n(t)}async getEmptyItems(){return Array.from(this._emptyItems.values())}async log(t){t=`[${new Date().toLocaleString()}] ${t}`,this.logs.push(t);for(const n of this.logSubscribers)n(t)}async reset(){this.logs=[],this._emptyItems=new Map,this._tailData=kc(),this._treeFile=null}}const oN="",P2=(e,t)=>{const n=e.__vccOpts||e;for(const[o,i]of t)n[o]=i;return n},I2={},T2={class:"ce-empty-cleaner-help"},O2=[Pp('<div data-v-414bf5e0><h2 data-v-414bf5e0>免责声明</h2><div data-v-414bf5e0><p data-v-414bf5e0>该工具仅作为学习测试用途,使用该工具造成的任何结果由使用人承担。</p></div><hr data-v-414bf5e0><h2 data-v-414bf5e0>说明</h2><ul style="color:#00f;" data-v-414bf5e0><li class="text-danger text-bold" data-v-414bf5e0> * <span style="font-size:120%;" data-v-414bf5e0>不要</span>直接清理一个巨大的文件夹!比如包含超过5万个文件夹。 太大的文件夹可能会导出目录树失败,且可能导致账号被系统风控。 </li><li data-v-414bf5e0>* 对于巨大的文件夹,可以分开清理下级文件夹。</li><li data-v-414bf5e0>* 只有违规文件的文件夹也会被检测到并列出,需要手动处理。</li><li data-v-414bf5e0>* 请谨慎操作!请谨慎操作!请谨慎操作!</li></ul><hr data-v-414bf5e0><h2 data-v-414bf5e0>流程</h2><ul style="color:#f40;" data-v-414bf5e0><li data-v-414bf5e0>1.确认当前显示的目录是否为需要进行清理的目录。</li><li data-v-414bf5e0>2.点击「检测空文件夹」按钮。</li><li data-v-414bf5e0>3.保持当前页面处于激活状态,留意日志区域的输出,耐心等待。</li><li data-v-414bf5e0>4.当看到「空文件夹检测已完成」的提示时,说明检测完成。</li><li data-v-414bf5e0>5.如果有空文件夹,会在空文件夹列表显示。</li><li data-v-414bf5e0>6.每个空文件夹都可以单独进行打开、获取详情、删除等操作。</li><li data-v-414bf5e0>7.批量删除: 勾选需要删除的空文件夹,点击「删除选中」进行删除。</li></ul><hr data-v-414bf5e0><h3 data-v-414bf5e0>原理和优劣</h3><div class="text-primary" data-v-414bf5e0> 本工具原理是导出目录树,然后根据后缀名查询文件,接着排除目录树中的文件,最后再判断目录树中剩余的项是否为空文件夹。 </div><ul data-v-414bf5e0><li class="text-bold text-success" data-v-414bf5e0>优点:</li><li class="text-success" data-v-414bf5e0>在子文件夹数量较多时,比逐层逐个查询文件列表要快得多。</li><li class="text-warning text-bold" data-v-414bf5e0>缺点:</li><li class="text-warning" data-v-414bf5e0>* 后缀名数量较多时,查询文件数据耗时较长。</li><li class="text-warning" data-v-414bf5e0>* 排除真实文件后,如剩余需判断项较多,耗时较长。</li><li class="text-warning" data-v-414bf5e0>* 不能判断大小为0且有空子文件夹的文件夹。</li></ul></div>',1)];function L2(e,t){return B(),z("div",T2,O2)}const M2=P2(I2,[["render",L2],["__scopeId","data-v-414bf5e0"]]),D2={class:"ce-empty-cleaner"},R2=[c("span",null,"清理空文件夹",-1)],N2={key:0},B2={class:"header actions-bar"},F2=c("span",{class:"title"},"空文件夹清理工具",-1),U2={class:"ce-path ce-label ce-label-primary-plain"},j2=["href"],H2=c("i",{class:"file-type tp-folder",style:{}},null,-1),q2={class:"top-actions"},z2={class:"pure-form pure-form-aligned"},V2={class:"pure-control-group"},W2={key:0},K2=c("span",null,"文件夹数量:",-1),G2={class:"text-primary"},Y2={key:1},J2=c("span",null,"文件数量:",-1),Q2={class:"text-primary"},X2=c("span",{title:"不会删除目录树文件"},"保留目录树文件",-1),Z2={key:0},eS=["href"],tS={key:0},nS={key:0},oS={class:"text-primary"},iS={class:"ec-items"},sS={class:"pure-table pure-table-bordered"},rS=c("th",{width:"25"},"#",-1),aS={width:"30"},lS=["disabled"],cS=c("th",{width:"140"},"ID",-1),uS=c("th",null,"路径",-1),dS=c("th",{width:"150"},"操作",-1),fS=["onUpdate:modelValue","onChange","disabled"],pS={key:0},hS={class:"ce-label ce-label-danger"},mS={key:0},gS=[c("span",{class:"label-danger"},"已删除",-1)],yS={key:1},wS=["onClick","disabled"],bS=["onClick"],_S=["href"],vS={key:0},xS=c("br",null,null,-1),CS={class:"footer actions-bar"},$S=c("span",{class:"title"},"空文件夹清理工具",-1),ES={class:"ce-path ce-label ce-label-primary-plain"},kS=["href"],SS=c("i",{class:"file-type tp-folder",style:{}},null,-1),AS=Ne({__name:"EmptyCleaner",setup(e){const t=de(!1),n=de(!0),o=de(!1),i=de(""),s=de([]),r=de(null),a=de([]),l=de(!1),u=de(null),f=de([]),h=de([]),g=de(null),b=de(null),_=xn(()=>b.value?Kb(b.value.pick_code):""),E=xn(()=>i.value?Ki(i.value):"");let I;const M=de({keepTree:!1});async function P(he){he.data.type===Rt.OPEN_EMPTY_CLEANER&&(await T(he.data.payload),xo({type:Rt.EMPTY_CLEANER_OPENED},he.source))}Ot(async()=>{console.log("[EmptyCleaner onMounted]"),window.addEventListener("message",P),I=new A2(i.value),I.addLogSubscriber(Ee),I.addEmptyItemSubscriber(D),I.addTreeFileSubscriber(Q)}),Bo(()=>{console.log("[EmptyCleaner onUnmounted]"),window.removeEventListener("message",P)});async function T(he){t.value=!0;const ue=await Ct();if(ue==="0"||ue===""){await Ae(),await pe.fire({icon:"warning",html:"<h2>不允许在根目录使用该工具!</h2>"});return}i.value&&i.value!==ue&&console.warn("目录变化,重置"),r.value=await At(ue),s.value=[...r.value.paths.slice(1).map(He=>He.file_name),r.value.file_name],i.value=ue}async function H(){l.value=!1,f.value=[],h.value=[],a.value=[],b.value=null}async function ie(){try{o.value=!0,await H(),await I.reset(),await I.setKeepTree(M.value.keepTree),await I.setDirId(i.value),await I.run(),pe.fire({title:"空文件夹检测已完成"})}catch(he){console.error(he),pe.fire({title:"空文件夹检测失败",text:he.toString()})}finally{o.value=!1}}async function U(he){const ue=h.value.join(`
`);if(he==="copy")await yu(ue)?re({text:"已复制清理空文件夹日志",timer:1200}):re({text:"复制清理空文件夹日志失败",timer:1200});else if(he==="download"){let He=`清理空文件夹日志-${i.value}.txt`;Bi(ue,He)}}async function Z(he,ue,He="path"){const ot=ue==="all"?a.value:f.value;let Me="";He==="path"?Me=ot.map(it=>it.path).join(`
`):He==="full"&&(Me=JSON.stringify(ot,null,2));const tt=He==="path"?"路径":"数据";if(he==="copy")await yu(Me)?re({text:`已复制${tt}到剪贴板`,timer:1200}):re({text:`复制${tt}失败`,timer:1200});else if(he==="download"){let it=`空文件夹${tt}-${i.value}-数量${ot.length}`;Bi(Me,`${it}.${He==="path"?"txt":"json"}`)}}async function ce(he){const ue=he==="all"?a.value:f.value;for(const He of ue)window.open(He.url),await bt(100)}async function ye(){unsafeWindow.parent.Core.FileSelectDG.Open(async(he,ue)=>{console.log("[Core.FileSelectDG.Open]",he,ue);const He=he[he.length-1];await H(),i.value=He.cid,r.value=await At(He.cid),s.value=[...r.value.paths.slice(1).map(ot=>ot.file_name),r.value.file_name]},{select:1,nf:1,show_record:0,show_copy:1,btn_txt:"选择该目录",select_txt:"清理空文件夹"})}async function Ie(he,ue){if(he.deleted){re({text:"该目录已删除,不能再次删除!",timer:2e3,showConfirmButton:!0});return}o.value=!0,await O([he.id])&&(he.deleted=!0),o.value=!1}async function be(){if(!f.value.length)return;const he=f.value.filter(ue=>!ue.deleted).map(ue=>ue.id);if(!he.length){re({text:"没有可删除的目录!",timer:2e3,showConfirmButton:!0});return}if(o.value=!0,await O(he))for(const ue of f.value)ue.deleted=!0;o.value=!1}async function O(he){try{const ue=await nl(i.value,he);if(ue.state)return!0;re({text:`删除失败: ${ue.errno} - ${ue.error}`,timer:1200})}catch(ue){console.error(ue),re({text:`删除失败!${ue.toString()}`,timer:1200})}return!1}async function ae(he){o.value=!0;try{const ue=await At(he.id),He=Me=>new Date(Number(Me)*1e3).toLocaleString(),{isConfirmed:ot}=await pe.fire({title:"目录属性",html:`<div class="ce-ec-detail">
        <p><span>类型:</span> 文件夹</p>
        <p><span>大小:</span> ${ue.size}</p>
        <p><span>创建时间:</span> ${He(ue.ptime)}</p>
        <p><span>修改时间:</span> ${He(ue.utime)}</p>
        <p><span>位置:</span> ${he.path}</p>
      </div>
      `,showDenyButton:!0,denyButtonText:"关闭",showConfirmButton:!0,confirmButtonText:"查看目录"});ot&&window.open(he.url)}catch(ue){re({text:`获取目录属性失败!${ue.toString()}`,timer:1e4,showConfirmButton:!0})}finally{o.value=!1}}async function Q(he){b.value=he}async function Ee(he){h.value.push(he),await wi(),g.value.scrollTop=g.value.scrollHeight}async function D(he){a.value.push(he)}async function K(){console.log("[onAllCheckedChange]",l.value);for(const he of a.value)he.disabled||(he.checked=l.value);await we()}async function N(he,ue){console.log("[onCheckChange]",he,ue),l.value=a.value.every(He=>He.checked),u.value.indeterminate=!l.value&&a.value.some(He=>He.checked),await we()}async function we(){f.value=a.value.filter(he=>he.checked)}async function Ae(){t.value=!1}async function De(){document.querySelector(".ce-empty-cleaner-drawer").scrollTo(0,0)}return(he,ue)=>{var He,ot;return G((B(),z("span",D2,[un(he.$slots,"default",{},()=>[c("span",{class:"btn-open pure-button pure-button-primary",onClick:T},R2)]),t.value?(B(),z("div",N2,[ke(M2)])):qe("",!0),G(c("div",{class:Je(["ce-empty-cleaner-drawer",{loading:o.value}])},[c("div",B2,[F2,c("span",{class:"close"},[c("button",{type:"button",class:"pure-button button-error",onClick:Ae},"关闭")]),c("div",U2,[c("a",{target:"_blank",href:fe(E),title:"打开目录"},[H2,ee(" "+ge(s.value.join(" / ")),1)],8,j2)])]),c("div",null,[c("div",q2,[c("div",null,[c("button",{type:"button",class:"pure-button pure-button-primary",onClick:ie},"检测空文件夹"),ee("     "),c("button",{type:"button",class:"pure-button button-success",onClick:ye},"切换目录")]),c("div",null,[c("form",z2,[c("fieldset",null,[c("div",V2,[r.value?(B(),z("label",W2,[K2,ee("  "),c("b",G2,ge((He=r.value)==null?void 0:He.folder_count),1)])):qe("",!0),r.value?(B(),z("label",Y2,[J2,ee("  "),c("b",Q2,ge((ot=r.value)==null?void 0:ot.count),1)])):qe("",!0),c("label",null,[G(c("input",{type:"checkbox",class:"ce-checkbox","onUpdate:modelValue":ue[0]||(ue[0]=Me=>M.value.keepTree=Me)},null,512),[[Ce,M.value.keepTree]]),ee("  "),X2,b.value?(B(),z("span",Z2,[ee("    "),c("a",{href:fe(_),class:"text-primary",target:"_blank"},"查看目录树文件",8,eS)])):qe("",!0)])])])])])]),c("h3",null,[ee(" 日志 "),h.value.length?(B(),z("span",tS,[ee("     "),c("button",{type:"button",class:"pure-button button-xsmall",onClick:ue[1]||(ue[1]=Me=>U("copy"))},"复制日志"),ee("     "),c("button",{type:"button",class:"pure-button button-xsmall",onClick:ue[2]||(ue[2]=Me=>U("download"))},"保存日志")])):qe("",!0)]),c("div",{ref_key:"refLogs",ref:g,class:"ec-logs"},[(B(!0),z(Ue,null,st(h.value,(Me,tt)=>(B(),z("div",{key:tt},ge(Me),1))),128))],512),c("h3",null,[ee(" 空文件夹 "),a.value.length?(B(),z("span",nS,[c("span",oS," ( "+ge(a.value.length)+" )",1),ee("     "),c("button",{type:"button",class:"pure-button button-xsmall",onClick:ue[3]||(ue[3]=Me=>Z("copy","all","path"))},"复制路径"),ee("   "),c("button",{type:"button",class:"pure-button button-xsmall",onClick:ue[4]||(ue[4]=Me=>Z("copy","all","full"))},"复制数据"),ee("     "),c("button",{type:"button",class:"pure-button button-xsmall",onClick:ue[5]||(ue[5]=Me=>Z("download","all","path"))},"保存路径"),ee("   "),c("button",{type:"button",class:"pure-button button-xsmall",onClick:ue[6]||(ue[6]=Me=>Z("download","all","full"))},"保存数据")])):qe("",!0)]),c("div",iS,[c("table",sS,[c("thead",null,[c("tr",null,[rS,c("th",aS,[G(c("input",{ref_key:"refAllChecked",ref:u,type:"checkbox",class:"ce-checkbox","onUpdate:modelValue":ue[7]||(ue[7]=Me=>l.value=Me),onChange:K,disabled:!a.value.length},null,40,lS),[[Ce,l.value]])]),cS,uS,dS])]),c("tbody",null,[(B(!0),z(Ue,null,st(a.value,(Me,tt)=>(B(),z("tr",{key:tt,class:Je({"tr-deleted":Me.deleted})},[c("td",null,ge(tt+1),1),c("td",null,[G(c("input",{type:"checkbox",class:"ce-checkbox","onUpdate:modelValue":it=>Me.checked=it,onChange:it=>N(Me,tt),disabled:Me.disabled},null,40,fS),[[Ce,Me.checked]])]),c("td",null,ge(Me.id),1),c("td",null,[c("div",null,ge(Me.path),1),Me.memo?(B(),z("div",pS,[c("span",hS,ge(Me.memo),1)])):qe("",!0)]),c("td",null,[Me.deleted?(B(),z("div",mS,gS)):(B(),z("div",yS,[c("button",{type:"button",class:"pure-button button-xsmall button-error",onClick:it=>Ie(Me),disabled:Me.disabled},"删除",8,wS),ee("   "),c("button",{type:"button",class:"pure-button button-xsmall",onClick:it=>ae(Me)},"详情",8,bS),ee("   "),c("a",{class:"pure-button button-xsmall",href:Me.url,target:"_blank"},"打开",8,_S)]))])],2))),128))])]),f.value.length?(B(),z("div",vS,[xS,c("button",{type:"button",class:"pure-button button-error",onClick:be},"删除选中 ("+ge(f.value.length)+")",1),ee("     "),c("button",{type:"button",class:"pure-button button-xsmall",onClick:ue[8]||(ue[8]=Me=>Z("copy","checked","path"))},"复制已选路径"),ee("   "),c("button",{type:"button",class:"pure-button button-xsmall",onClick:ue[9]||(ue[9]=Me=>Z("copy","checked","full"))},"复制已选数据"),ee("     "),c("button",{type:"button",class:"pure-button button-xsmall",onClick:ue[10]||(ue[10]=Me=>Z("download","checked","path"))},"保存已选路径"),ee("   "),c("button",{type:"button",class:"pure-button button-xsmall",onClick:ue[11]||(ue[11]=Me=>Z("download","checked","full"))},"保存已选数据"),ee("     "),c("button",{type:"button",class:"pure-button button-success button-xsmall",onClick:ue[12]||(ue[12]=Me=>ce("checked"))},"打开已选")])):qe("",!0)])]),c("div",CS,[$S,c("span",{class:"close"},[c("button",{type:"button",class:"pure-button button-error",onClick:Ae},"关闭")]),ee("     "),c("button",{type:"button",class:"pure-button button-small",onClick:De}," 回到顶部 "),c("div",ES,[c("a",{target:"_blank",href:fe(E),title:"打开目录"},[SS,ee(" "+ge(s.value.join(" / ")),1)],8,kS)])])],2),[[Dt,t.value]])],512)),[[Dt,n.value]])}}}),aN="",lN="";async function PS(){const{host:e,search:t}=location;e==="115.com"&&(console.log("[Cleaner] running..."),t.includes("ct=file")?(await IS(),await TS()):(await OS(),await LS()))}async function ha(){return typeof window.$<"u"}async function IS(){await ha()||console.log("[Cleaner injectTrigger] JQuery not found");const e="cloud115Cleaner",t=await kn("#js_path_add_dir"),n=document.createElement("span");n.id=e,t.insertAdjacentElement("afterend",n),Cn(ZE).mount(`#${e}`)}async function TS(){await ha()||console.log("[Cleaner injectEmptyTrigger] JQuery not found");const e="cloud115EmptyCleaner",t=await kn("#js_path_add_dir"),n=document.createElement("span");n.id=e,t.insertAdjacentElement("afterend",n),Cn(E2).mount(`#${e}`)}async function OS(){await ha()||console.log("[Cleaner injectUI] JQuery not found");const e="cloud115Cleaner",t=document.createElement("div");t.id=e,document.body.appendChild(t);const n=Cn(x2);n.use(fa),n.mount(`#${e}`),Ms("清理文件",async()=>{xo({type:Rt.OPEN_CLEANER},window.parent)})}async function LS(){await ha()||console.log("[Cleaner injectEmptyUI] JQuery not found");const e="cloud115EmptyCleaner",t=document.createElement("div");t.id=e,document.body.appendChild(t);const n=Cn(AS);n.use(fa),n.mount(`#${e}`),Ms("清理空目录",async()=>{xo({type:Rt.OPEN_EMPTY_CLEANER},window.parent)})}const lm=rt.basic,Sc={name:"115不大助手",version:"0.6.23",author:{name:"生瓜太保",email:"mailme@miao.com"},greasyforkUrl:"https://greasyfork.org/zh-CN/scripts/474231-115%E4%B8%8D%E5%A4%A7%E5%8A%A9%E6%89%8B-full?locale_override=1"};function MS(e){return{qps:4,showOfflineEntry:!1,offlineEntryLabel:"云下载",showAddOffline:!1,addOfflineLabel:"添加",transferDefaultOffline:!1,showFavEntry:!1,favEntryLabel:"星标",hideWatermark:!0,fakeAccountEnabled:!1,fakeAccountId:"",fakeAccountName:"",fakeAccountAvatar:"",fakeAccountVip:"",...e}}async function ma(){const e=MS(),t=await et.get(lm,e);return{...e,...t}}async function DS(e){await et.set(lm,e)}async function RS(e){if(!e.showOfflineEntry)return;const{search:t}=location;if(!t.includes("ct=file"))return;console.log("[Cloud115 Enhancer] showOfflineEntry");const n=await Wn("a#js_filter_btn"),o="https://115.com/?ct=index&ac=offline_new_tpl&offline=1&tab=offline",i="background:#fffcea;",s=`点击跳转到「云下载」页面。该按钮由 ${Sc.name} 注入`,r=e.offlineEntryLabel?`<span>${e.offlineEntryLabel}</span>`:"",a=$(`<a href="javascript:;" class="button btn-line" title="${s}" tab_btn="wangpan" mode-tab="offline" style="${i}">
    <i class="icon-operate ifo-linktask"></i>
    ${r}
  </a>`);n.after(a),a.on("click",()=>{try{en().oofUtil.urlMaintain.changeMode("wangpan",{tab:"offline"})}catch(l){console.log('[Cloud115 Enhancer] showOfflineEntry failed with "top.oofUtil.urlMaintain.changeMode".',l),location.href=o}})}async function NS(e){if(!e.showAddOffline)return;const{search:t}=location;if(!t.includes("ct=file"))return;console.log("[Cloud115 Enhancer] showAddOffline");const n=await Wn("a#js_filter_btn"),o="background:#fffcea;",i=`点击打开到「添加云下载」对话框。该按钮由 ${Sc.name} 注入`,s=e.addOfflineLabel?`<span>${e.addOfflineLabel}</span>`:"",r=$(`<a href="javascript:;" class="button btn-line" menu="offline_task" style="${o}" title="${i}">
    <i class="icon-operate ifo-linktask"></i>${s}
  </a>`);n.after(r)}async function BS(e){if(!e.showFavEntry)return;const{search:t}=location;if(!t.includes("ct=file"))return;console.log("[Cloud115 Enhancer] showFavEntry");const n=await Wn("a#js_filter_btn"),o="https://115.com/?tab=label&show_label=1&label_id=-1&mode=wangpan",i="background:#fffcea;",s=`点击跳转到「星标」页面。该按钮由 ${Sc.name} 注入`,r=e.favEntryLabel?`<span>${e.favEntryLabel}</span>`:"",a=$(`<a href="javascript:;" class="button btn-line" title="${s}" tab_btn="wangpan" mode-tab="{tab:'label',label_id:-1,show_label:1}" style="${i}">
    <i class="icon-operate ifo-fav"></i>
    ${r}
  </a>`);n.after(a),a.on("click",()=>{try{en().oofUtil.urlMaintain.changeMode("wangpan",{tab:"label",label_id:-1,show_label:1})}catch(l){console.log('[Cloud115 Enhancer] showFavEntry failed with "top.oofUtil.urlMaintain.changeMode".',l),location.href=o}})}async function FS(e){if(!e.transferDefaultOffline)return;const{search:t}=location;if(window.top!==window||!t.includes("mode=wangpan"))return;console.log("[Cloud115 Enhancer] makeTransferDefaultOffline");const n=await Wn('#js_sub_nav_scroller a[mode-tab="upload"]');n.attr("mode-tab","offline").attr("href","https://115.com/?tab=offline&mode=wangpan"),n.find("i").removeClass("icon-ns-transfer").removeClass("icon-nv-file inf-transmit").addClass("icon-operate ifo-linktask").css({filter:"invert(0.6)",marginRight:12,zoom:1.2})}async function US(e){if(!!e.hideWatermark){console.log("[Cloud115 Enhancer] hideWatermark");try{const t=await kn('div[class^="fp-"]');t.classList.add("hidden-watermark"),t.style.display="none"}catch(t){console.error("[Cloud115 Enhancer] hideWatermark",t.message)}}}async function jS(e){window.top===window.self&&(await bt(1e3),Ac(e),window.addEventListener("message",async t=>{const n=t.data.event,o=t.data.body;n===ct.basicConfigChange&&(console.log("[Cloud115 Enhancer] basicConfigChange"),Ac(o))}))}let Ss=null;async function HS(){Ss&&clearTimeout(Ss),Ss=setTimeout(async()=>{const e=await ma();Ac(e)},5e3)}async function Ac(e){Ss&&clearTimeout(Ss);const t=async(n,o)=>{const i=await Wn('[rel="user_id"]',100);i.data("origin")||i.data("origin",i.text()),o?i.text(i.data("origin")):i.text(n.fakeAccountId);const s=await Wn('[rel="user_name"]',100);s.data("origin")||s.data("origin",$(s[0]).text()),o?s.text(s.data("origin")):s.text(n.fakeAccountName);const r=await Wn('img[rel="user_face"], .user-avatar img',100);r.data("origin")||r.data("origin",r.attr("src")),o?r.attr("src",r.data("origin")):(r.attr("rel","noreferrer"),r.attr("src",n.fakeAccountAvatar));const a=await Wn(".sign-vip-card",100);a.data("origin")||a.data("origin",$(a[0]).text()),o?a.text(a.data("origin")):a.text(n.fakeAccountVip)};try{e.fakeAccountEnabled?await t(e,!1):await t(e,!0)}catch(n){console.error(n)}finally{e.fakeAccountEnabled&&HS()}}async function qS(){const e=await ma(),{host:t,search:n}=location;!/115\.com$/.test(t)||(US(e),RS(e),NS(e),BS(e),FS(e),jS(e))}const cm=Symbol("addTab"),um=Symbol("updateTab"),dm=Symbol("deleteTab"),fm=Symbol("tabsProvider");function ga(e,t){const n=fs(e,t);if(typeof n>"u")throw new Error(`Could not resolve ${e.description}`);return n}const zS=["data-tab-id","aria-hidden"],pn=Ne({__name:"Tab",props:{panelClass:{type:[String,Object,Array],default:"tabs-component-panel"},id:{type:String,default:null},name:{type:String,required:!0},prefix:{type:String,default:""},suffix:{type:String,default:""},isDisabled:{type:Boolean,default:!1},navItemClass:{type:[String,Object,Array],required:!1,default:null},navItemLinkClass:{type:[String,Object,Array],required:!1,default:null}},setup(e,{expose:t}){const n=e,o=de(!1),i=ga(fm),s=ga(cm),r=ga(um),a=ga(dm),l=n.prefix+n.name+n.suffix,u=n.id?n.id:n.name.toLowerCase().replace(/ /g,"-"),f=u+"-pane",h=xn(()=>"#"+(n.isDisabled?"":u));return ht(()=>i.activeTabHash,()=>{o.value=h.value===i.activeTabHash}),ht(()=>Object.assign({},n),()=>{r(u,{name:n.name,header:n.prefix+n.name+n.suffix,isDisabled:n.isDisabled,hash:h.value,index:i.tabs.length,computedId:u,paneId:f,navItemClass:n.navItemClass,navItemLinkClass:n.navItemLinkClass})}),Tt(()=>{s({name:n.name,header:l,isDisabled:n.isDisabled,hash:h.value,index:i.tabs.length,computedId:u,paneId:f,navItemClass:n.navItemClass,navItemLinkClass:n.navItemLinkClass})}),op(()=>{a(u)}),t({header:l,computedId:u,paneId:f,hash:h,isActive:o}),(g,b)=>G((B(),z("section",{ref:"tab",id:f,"data-tab-id":fe(u),"aria-hidden":!o.value,class:Je(e.panelClass),role:"tabpanel",tabindex:"-1"},[un(g.$slots,"default")],10,zS)),[[Dt,o.value]])}});class VS{get(t){const n=localStorage.getItem(t);if(n===null)return null;const o=JSON.parse(n);return o?new Date(o.expires)<new Date?(localStorage.removeItem(t),null):o.value:null}set(t,n,o){const i=new Date().getTime(),s=new Date(i+o*6e4);localStorage.setItem(t,JSON.stringify({value:n,expires:s}))}}const pm=new VS,WS=["aria-controls","aria-selected","href","onClick","innerHTML"],KS=Ne({__name:"Tabs",props:{cacheLifetime:{type:Number,default:5},options:{type:Object,required:!1,default:()=>({useUrlFragment:!0,defaultTabHash:null})},wrapperClass:{type:[String,Object,Array],default:"tabs-component"},panelsWrapperClass:{type:[String,Object,Array],default:"tabs-component-panels"},navClass:{type:[String,Object,Array],default:"tabs-component-tabs"},navItemClass:{type:[String,Object,Array],default:"tabs-component-tab"},navItemDisabledClass:{type:[String,Object,Array],default:"is-disabled"},navItemActiveClass:{type:[String,Object,Array],default:"is-active"},navItemInactiveClass:{type:[String,Object,Array],default:"is-inactive"},navItemLinkClass:{type:[String,Object,Array],default:"tabs-component-tab-a"},navItemLinkActiveClass:{type:[String,Object,Array],default:"is-active"},navItemLinkInactiveClass:{type:[String,Object,Array],default:"is-inactive"},navItemLinkDisabledClass:{type:[String,Object,Array],default:"is-disabled"}},emits:["changed","clicked"],setup(e,{expose:t,emit:n}){const o=e,i=kr({activeTabHash:"",lastActiveTabHash:"",tabs:[]});ds(fm,i),ds(cm,a=>{i.tabs.push(a)}),ds(um,(a,l)=>{const u=i.tabs.findIndex(f=>f.computedId===a);l.isActive=i.tabs[u].isActive,i.tabs[u]=l}),ds(dm,a=>{const l=i.tabs.findIndex(u=>u.computedId===a);i.tabs.splice(l,1)});const s=(a,l)=>{l&&!o.options.useUrlFragment&&l.preventDefault();const u=r(a);if(!u)return;if(l&&u.isDisabled){l.preventDefault();return}if(i.lastActiveTabHash===u.hash){n("clicked",{tab:u});return}if(i.tabs.forEach(h=>{h.isActive=h.hash===u.hash}),n("changed",{tab:u}),i.lastActiveTabHash=i.activeTabHash=u.hash,o.cacheLifetime<=0)return;const f=`vue-tabs-component.cache.${window.location.host}${window.location.pathname}`;pm.set(f,u.hash,o.cacheLifetime)},r=a=>i.tabs.find(l=>l.hash===a);return Ot(()=>{if(i.tabs.length){if(window.addEventListener("hashchange",()=>s(window.location.hash)),r(window.location.hash)){s(window.location.hash);return}if(o.cacheLifetime>0){const a=`vue-tabs-component.cache.${window.location.host}${window.location.pathname}`,l=pm.get(a);if(l!==null&&r(l)){s(l);return}if(o.options.defaultTabHash&&r("#"+o.options.defaultTabHash)){s("#"+o.options.defaultTabHash);return}}s(i.tabs[0].hash)}}),t({...$v(i),selectTab:s,findTab:r}),(a,l)=>(B(),z("div",{class:Je(e.wrapperClass)},[c("ul",{role:"tablist",class:Je(e.navClass)},[(B(!0),z(Ue,null,st(i.tabs,(u,f)=>{var h,g;return B(),z("li",{key:f,class:Je([(h=u.navItemClass)!=null?h:e.navItemClass,u.isDisabled?e.navItemDisabledClass:"",u.isActive?e.navItemActiveClass:u.isDisabled?"":e.navItemInactiveClass]),role:"presentation"},[c("a",{role:"tab",class:Je([(g=u.navItemLinkClass)!=null?g:e.navItemLinkClass,u.isDisabled?e.navItemLinkDisabledClass:"",u.isActive?e.navItemLinkActiveClass:u.isDisabled?"":e.navItemLinkInactiveClass]),"aria-controls":u.paneId,"aria-selected":u.isActive,href:u.hash,onClick:b=>s(u.hash,b),innerHTML:u.header,tabindex:"0"},null,10,WS)],2)}),128))],2),c("div",{class:Je(e.panelsWrapperClass)},[un(a.$slots,"default")],2)],2))}}),GS={class:"ce-config ce-basic-config"},YS={class:"pure-form pure-form-aligned"},JS=c("legend",null,"API",-1),QS={class:"pure-control-group"},XS=c("label",{for:"basic_qps"},"全局QPS",-1),ZS=c("div",{class:"pure-form-message text-success"}," 控制脚本请求115 API的频率,越大频率越高,建议设置5以下。 ",-1),eA=c("legend",null,"UI优化",-1),tA={class:"pure-control-group"},nA=c("label",{for:"basic_showOfflineEntry"},"显示云下载入口按钮",-1),oA={class:"pure-form-message text-success"},iA={class:"pure-control-group"},sA=c("label",{for:"basic_showAddOffline"},"显示添加云下载按钮",-1),rA={class:"pure-form-message text-success"},aA={class:"pure-control-group"},lA=c("label",{for:"basic_transferDefaultOffline"},"近期传输默认云下载",-1),cA=c("div",{class:"pure-form-message text-success"}," 点击左边栏的「传输」默认进入「云下载」页面。 ",-1),uA={class:"pure-control-group"},dA=c("label",{for:"basic_showFavEntry"},"显示星标入口按钮",-1),fA={class:"pure-form-message text-success"},pA=c("legend",null,"配置管理",-1),hA=c("br",null,null,-1),mA=c("br",null,null,-1),gA=c("div",{class:"text-success"},[c("b",null,"导入说明:"),ee(" 如有导入部分配置的需求,可以自行编辑json配置文件,只保留需要的配置key(仅限第一级),但必须保留`_`开头的key。 ")],-1),yA=c("br",null,null,-1),wA=c("legend",null,"隐私保护",-1),bA={class:"pure-control-group"},_A=c("label",{for:"basic_hideWatermark"},"隐藏水印",-1),vA=c("div",{class:"pure-form-message text-success"}," 网页水印是肉眼看不到的,但通过一些处理可以看到,水印内容是你的账号标识。 如果你需要截图并发给别人,可以考虑开启隐藏。 ",-1),xA={class:"pure-control-group"},CA=c("label",{for:"basic_fakeAccountEnabled"},"隐藏身份",-1),$A=c("div",{class:"pure-form-message text-success"}," 修改右上角显示的账号信息,不会真的修改。编辑后即可生效,无需刷新页面。 ",-1),EA={class:"pure-control-group"},kA=c("label",null,"账号ID",-1),SA={class:"pure-control-group"},AA=c("label",null,"用户名",-1),PA={class:"pure-control-group"},IA=c("label",null,"头像",-1),TA={class:"avatar-preview"},OA=["src"],LA={class:"pure-control-group"},MA=c("label",null,"VIP等级",-1),DA=Ne({__name:"Config",async setup(e){let t,n;const o=de(([t,n]=rn(()=>ma()),t=await t,n(),t));Tt(async()=>{}),ht(o,Ft(async a=>{await DS(a),re({icon:"success",title:"设置已保存,刷新页面以使全部更改生效。",timer:1e3,position:"top-end"}),window.postMessage({event:ct.basicConfigChange,body:nu(a)})},500),{deep:!0});async function i(a,l,u="warning"){const{isConfirmed:f}=await pe.fire({title:a,text:l,icon:u,showCancelButton:!0,confirmButtonText:"确认"});return f}async function s(){if(!!await i("导出配置","是否确认导出当前配置?"))try{await Dg(),re({icon:"success",title:"导出成功"})}catch(a){pe.fire(a.toString())}}async function r(){if(!!await i("导入配置","导入后将覆盖当前配置,是否继续?"))try{const a=await Rg();console.log(a),Gi.fire({icon:"success",title:"导入成功,刷新页面后生效。将在5秒后自动刷新页面...",timer:5e3}),setTimeout(()=>{window.location.reload()},5e3)}catch(a){pe.fire({title:"导入失败",html:a.toString()+'<br/><p class="text-danger">必须有字段 "_schema": "pan115_enhancer_configs" 。</p>'})}}return(a,l)=>(B(),z("div",GS,[c("form",YS,[c("fieldset",null,[JS,c("div",QS,[XS,G(c("input",{id:"basic_qps",type:"number",min:"1",max:"9",step:"1","onUpdate:modelValue":l[0]||(l[0]=u=>o.value.qps=u)},null,512),[[Ve,o.value.qps]]),ZS]),eA,c("div",tA,[nA,G(c("input",{id:"basic_showOfflineEntry",type:"checkbox","onUpdate:modelValue":l[1]||(l[1]=u=>o.value.showOfflineEntry=u)},null,512),[[Ce,o.value.showOfflineEntry]]),c("div",oA,[ee(" 在「网盘」页面顶部工具栏显示「云下载」入口按钮。按钮文本为 "),G(c("input",{"onUpdate:modelValue":l[2]||(l[2]=u=>o.value.offlineEntryLabel=u),class:"input-small",placeholder:"可以为空"},null,512),[[Ve,o.value.offlineEntryLabel]])])]),c("div",iA,[sA,G(c("input",{id:"basic_showAddOffline",type:"checkbox","onUpdate:modelValue":l[3]||(l[3]=u=>o.value.showAddOffline=u)},null,512),[[Ce,o.value.showAddOffline]]),c("div",rA,[ee(" 在「网盘」页面顶部工具栏显示「添加云下载」按钮。按钮文本为 "),G(c("input",{"onUpdate:modelValue":l[4]||(l[4]=u=>o.value.addOfflineLabel=u),class:"input-small",placeholder:"可以为空"},null,512),[[Ve,o.value.addOfflineLabel]])])]),c("div",aA,[lA,G(c("input",{id:"basic_transferDefaultOffline",type:"checkbox","onUpdate:modelValue":l[5]||(l[5]=u=>o.value.transferDefaultOffline=u)},null,512),[[Ce,o.value.transferDefaultOffline]]),cA]),c("div",uA,[dA,G(c("input",{id:"basic_showFavEntry",type:"checkbox","onUpdate:modelValue":l[6]||(l[6]=u=>o.value.showFavEntry=u)},null,512),[[Ce,o.value.showFavEntry]]),c("div",fA,[ee(" 在「网盘」页面顶部工具栏显示「星标」入口按钮。按钮文本为 "),G(c("input",{"onUpdate:modelValue":l[7]||(l[7]=u=>o.value.favEntryLabel=u),class:"input-small",placeholder:"可以为空"},null,512),[[Ve,o.value.favEntryLabel]])])]),pA,c("div",{class:"pure-control-group"},[c("button",{type:"button",class:"pure-button pure-button-primary",onClick:s},"导出配置"),ee("      "),c("button",{type:"button",class:"pure-button button-success",onClick:r},"导入配置"),hA,mA,gA,yA]),wA,c("div",bA,[_A,G(c("input",{id:"basic_hideWatermark",type:"checkbox","onUpdate:modelValue":l[8]||(l[8]=u=>o.value.hideWatermark=u)},null,512),[[Ce,o.value.hideWatermark]]),vA]),c("div",xA,[CA,G(c("input",{id:"basic_fakeAccountEnabled",type:"checkbox","onUpdate:modelValue":l[9]||(l[9]=u=>o.value.fakeAccountEnabled=u)},null,512),[[Ce,o.value.fakeAccountEnabled]]),$A]),c("div",EA,[kA,G(c("input",{"onUpdate:modelValue":l[10]||(l[10]=u=>o.value.fakeAccountId=u),placeholder:"自定义账号ID",class:"pure-input-2-3"},null,512),[[Ve,o.value.fakeAccountId]])]),c("div",SA,[AA,G(c("input",{"onUpdate:modelValue":l[11]||(l[11]=u=>o.value.fakeAccountName=u),placeholder:"自定义用户名",class:"pure-input-2-3"},null,512),[[Ve,o.value.fakeAccountName]])]),c("div",PA,[IA,G(c("input",{"onUpdate:modelValue":l[12]||(l[12]=u=>o.value.fakeAccountAvatar=u),placeholder:"支持网络图片地址或base64编码",class:"pure-input-2-3"},null,512),[[Ve,o.value.fakeAccountAvatar]]),c("span",TA,[o.value.fakeAccountAvatar?(B(),z("img",{key:0,src:o.value.fakeAccountAvatar,alt:"头像预览",width:"20",height:"20"},null,8,OA)):qe("",!0)])]),c("div",LA,[MA,G(c("input",{"onUpdate:modelValue":l[13]||(l[13]=u=>o.value.fakeAccountVip=u),placeholder:"自定义VIP等级",class:"pure-input-2-3"},null,512),[[Ve,o.value.fakeAccountVip]])])])])]))}}),cN="",RA={class:"pure-form pure-form-aligned"},NA=["disabled"],BA={class:"pure-control-group"},FA=c("label",null,[c("span",{class:"text-danger"},"*"),ee(" 地址")],-1),UA={class:"pure-control-group"},jA=c("label",null,[c("span",{class:"text-danger"},"*"),ee(" 资源根路径")],-1),HA={class:"pure-control-group"},qA=c("label",null,"备注",-1),zA={class:"pure-control-group"},VA=c("label",null,"平台",-1),WA=["value"],KA=c("small",{class:"text-info"},"如果是macOS版,而且有包含日韩文的文件或目录,建议选上,可以避免播放链接无效的问题。",-1),GA=Ne({__name:"ConfigItem",props:{config:null,deletable:{type:Boolean}},emits:["change","delete","activate"],setup(e,{emit:t}){const n=e;Tt(async()=>{});async function o(){n.config.active=!0,t("activate",n.config)}async function i(){t("delete")}return ht(n.config,Ft(async s=>{t("change",s)},500),{deep:!0}),(s,r)=>(B(),z("div",{class:Je(["ce-clouddrive-config-item",{active:e.config.active}])},[c("form",RA,[c("fieldset",null,[c("legend",null,[c("button",{type:"button",class:Je(["pure-button button-small",[e.config.active?"button-success":"pure-button-primary"]]),onClick:o,disabled:e.config.active},ge(e.config.active?"当前使用该配置":"使用该配置"),11,NA),e.deletable?(B(),z("button",{key:0,type:"button",class:"pure-button button-error button-small",onClick:i}," 删除 ")):qe("",!0)]),c("div",BA,[FA,G(c("input",{"onUpdate:modelValue":r[0]||(r[0]=a=>e.config.url=a),placeholder:"CloudDrive服务地址,如「http://localhost:19798」",class:"pure-input-2-3"},null,512),[[Ve,e.config.url]])]),c("div",UA,[jA,G(c("input",{"onUpdate:modelValue":r[1]||(r[1]=a=>e.config.root=a),placeholder:"即当前115账号在CloudDrive中的资源名称,如「115」",class:"pure-input-2-3"},null,512),[[Ve,e.config.root]])]),c("div",HA,[qA,G(c("input",{"onUpdate:modelValue":r[2]||(r[2]=a=>e.config.memo=a),placeholder:"备注信息",class:"pure-input-2-3"},null,512),[[Ve,e.config.memo]])]),c("div",zA,[VA,G(c("select",{"onUpdate:modelValue":r[3]||(r[3]=a=>e.config.platform=a)},[(B(!0),z(Ue,null,st(fe(_u),a=>(B(),z("option",{key:a,value:a},ge(a),9,WA))),128))],512),[[$i,e.config.platform]]),ee("   "),KA])])])],2))}}),uN="",YA={class:"ce-config ce-clouddrive-config"},JA=c("div",{class:"ce-tips cd-tips"},[c("p",null,[c("a",{href:"https://www.clouddrive2.com/?ref=cloud115-enhancer",rel:"noreferer",target:"_blank",class:"text-bold text-primary"},"CloudDrive"),ee(" 是一个强大的多云盘管理工具,为用户提供包含云盘本地挂载的一站式的多云盘解决方案。 ")]),c("p",null,"本脚本主要是借助CloudDrive实现原码视频播放的功能(具体可以在「播放菜单」面板中查看)。")],-1),QA={class:"ce-list"},XA=c("div",{class:"ce-tips"},[c("p",{class:"text-primary"}," 暂时发现IINA是支持`file://`协议的,这时候播放器可以读取到同目录的字幕文件。 配置地址示例: file:///Users/you/115,根路径不用填。 ")],-1),ZA=c("div",{class:"ce-tips"}," 编辑配置后,请记得点击「保存全部配置」。 ",-1),eP={class:"ce-actions"},tP=["disabled"],nP=Ne({__name:"Config",async setup(e){let t,n;const o=de(([t,n]=rn(()=>vu()),t=await t,n(),t));Tt(async()=>{});async function i(){await xu(o.value),re({icon:"success",title:"设置已保存。",timer:800,position:"top-end"})}async function s(){o.value.push(Aa())}async function r(l,u){const{isConfirmed:f}=await pe.fire({icon:"warning",html:`确定要删除第 ${u+1} 个配置「${l.url}」吗?`});!f||(o.value.splice(u,1),await i(),re({icon:"success",title:`「${l.url}」已删除!`}))}async function a(l,u){l.forEach((f,h)=>{f.active=h===u}),await xu(l),re({icon:"success",title:"设置已保存。",timer:800,position:"top-end"})}return(l,u)=>(B(),z("div",YA,[JA,c("div",QA,[(B(!0),z(Ue,null,st(o.value,(f,h)=>(B(),on(GA,{key:h,config:f,index:h,deletable:o.value.length>1,onDelete:g=>r(f,h),onActivate:g=>a(o.value,h)},null,8,["config","index","deletable","onDelete","onActivate"]))),128))]),XA,ZA,c("div",eP,[c("button",{type:"button",class:"pure-button pure-button-primary button-large",onClick:i,disabled:!o.value.length}," 保存全部配置 ",8,tP),ee("      "),c("button",{type:"button",class:"pure-button pure-button-success button-large",onClick:s}," 添加配置 ")])]))}}),dN="",oP={class:"ce-config ce-list-config"},iP={class:"pure-form pure-form-aligned"},sP={class:"pure-control-group"},rP=c("label",{for:"showOpenDirContextMenu"},'显示"目录功能菜单"按钮',-1),aP=c("div",{class:"pure-form-message text-success"},[c("div",null,"在官方的「文件名」列头部增加「目录功能菜单」按钮,点击即可打开当前目录的右键菜单。")],-1),lP={class:"pure-control-group"},cP=c("label",{for:"sizeSorter"},"大小排序",-1),uP=c("div",{class:"pure-form-message text-success"},[c("div",null,"在官方的「大小」列头部增加「排序」按钮,可以获取文件夹的大小,然后进行排序。"),c("div",null,"请注意该功能只会对当前加载的文件进行排序,如果有多页文件并需要对全部文件进行排序,请先点击「加载全部」后再使用该排序功能。")],-1),dP={class:"pure-control-group"},fP=c("label",{for:"sizeSorterDirAttrInterval"},"大小排序-获取目录大小间隔",-1),pP=c("div",{class:"pure-form-message text-success"}," 「大小排序」功能需要获取文件夹大小,这个设置是获取文件夹大小的间隔时间,单位是豪秒。 ",-1),hP={class:"pure-control-group"},mP=c("label",{for:"showSha1"},"显示文件SHA1",-1),gP=c("div",{class:"pure-form-message text-success"}," 在文件名下方显示文件SHA1,点击可以复制。 ",-1),yP={class:"pure-control-group"},wP=c("label",{for:"showFolderSizeButton"},"显示文件夹获取大小按钮",-1),bP=c("div",{class:"pure-form-message text-success"}," 点击按钮可以获取单个文件夹的大小。 ",-1),_P={class:"pure-control-group"},vP=c("label",{for:"showCopyButtonOnPathBar"},"在路径栏显示复制按钮",-1),xP=c("div",{class:"pure-form-message text-success"}," 点击后,复制当前路径到剪贴板。 ",-1),CP={class:"pure-control-group"},$P=c("label",{for:"showGotoButtonOnPathBar"},[ee(" 在路径栏显示前往按钮 "),c("small",{class:"ce-label"},"DEV")],-1),EP=c("div",{class:"pure-form-message text-success"}," 点击后,路径栏变为可输入状态,输入路径后按回车即可前往该路径。 ",-1),kP={class:"pure-control-group"},SP=c("label",{for:"noUpdateDirAfterRename"}," 重命名后不刷新文件列表 ",-1),AP=c("div",{class:"pure-form-message text-success"}," 仅支持单个文件或目录的重命名。在使用当前目录增强菜单项「重命名文件夹」时会忽略该选项。 ",-1),PP={class:"pure-control-group"},IP=c("label",{for:"noUpdateDirAfterMove"}," 移动后不刷新文件列表 ",-1),TP=c("div",{class:"pure-form-message text-success text-linethrough"},[c("b",null,"启用后如果进行了移动操作,列表的全选会受影响,如已选数量不准确。"),c("br"),c("b",{class:"text-danger"},"该功能主要目的是持续高效地在进行移动操作,如果在移动后还需要其他操作,请记得手动刷新列表!")],-1),OP={class:"pure-control-group"},LP=c("label",{for:"fileSelectorDefaultView"},"文件选择器默认视图",-1),MP=[c("option",{value:"view"},"大图标",-1),c("option",{value:"list"},"列表",-1),c("option",{value:"_"},"系统默认",-1)],DP=c("div",{class:"pure-form-message text-success"},[c("div",null,"设置打开页面后初次使用的视图。"),c("div",{class:"text-warning"},"如果在刷新页面前在选择器切换到了其他视图,该选项将不会生效,但刷新页面后会恢复。")],-1),RP=Ne({__name:"Config",async setup(e){let t,n;const o=de(([t,n]=rn(()=>Vr()),t=await t,n(),t));return Tt(async()=>{}),ht(o,Ft(async i=>{await nx(i),re({icon:"success",title:"设置已保存,刷新页面以使全部更改生效。",timer:1e3,position:"top-end"}),window.postMessage({event:ct.listConfigChange,body:JSON.parse(JSON.stringify(i))})},500),{deep:!0}),(i,s)=>(B(),z("div",oP,[c("form",iP,[c("fieldset",null,[c("div",sP,[rP,G(c("input",{id:"showOpenDirContextMenu",type:"checkbox","onUpdate:modelValue":s[0]||(s[0]=r=>o.value.showOpenDirContextMenu=r)},null,512),[[Ce,o.value.showOpenDirContextMenu]]),ee("    "),c("small",{onClick:s[1]||(s[1]=r=>o.value.hoverShowDirContextMenu=!o.value.hoverShowDirContextMenu),class:Je(["ce-label",{"ce-label-success":o.value.hoverShowDirContextMenu}]),title:"鼠标悬浮在按钮代替点击操作"},ge(o.value.hoverShowDirContextMenu?"✓ 鼠标悬浮触发(已启用)":"× 鼠标悬浮触发(未启用)"),3),aP]),c("div",lP,[cP,G(c("input",{id:"sizeSorter",type:"checkbox","onUpdate:modelValue":s[2]||(s[2]=r=>o.value.sizeSorter=r)},null,512),[[Ce,o.value.sizeSorter]]),uP]),c("div",dP,[fP,G(c("input",{id:"sizeSorterDirAttrInterval",type:"number","onUpdate:modelValue":s[3]||(s[3]=r=>o.value.sizeSorterDirAttrInterval=r),min:"50",max:"999999"},null,512),[[Ve,o.value.sizeSorterDirAttrInterval]]),ee(" 毫秒 "),pP]),c("div",hP,[mP,G(c("input",{id:"showSha1",type:"checkbox","onUpdate:modelValue":s[4]||(s[4]=r=>o.value.showSha1=r)},null,512),[[Ce,o.value.showSha1]]),gP]),c("div",yP,[wP,G(c("input",{id:"showFolderSizeButton",type:"checkbox","onUpdate:modelValue":s[5]||(s[5]=r=>o.value.showFolderSizeButton=r)},null,512),[[Ce,o.value.showFolderSizeButton]]),bP]),c("div",_P,[vP,G(c("input",{id:"showCopyButtonOnPathBar",type:"checkbox","onUpdate:modelValue":s[6]||(s[6]=r=>o.value.showCopyButtonOnPathBar=r)},null,512),[[Ce,o.value.showCopyButtonOnPathBar]]),xP]),c("div",CP,[$P,G(c("input",{id:"showGotoButtonOnPathBar",type:"checkbox","onUpdate:modelValue":s[7]||(s[7]=r=>o.value.showGotoButtonOnPathBar=r)},null,512),[[Ce,o.value.showGotoButtonOnPathBar]]),EP]),c("div",kP,[SP,G(c("input",{id:"noUpdateDirAfterRename",type:"checkbox","onUpdate:modelValue":s[8]||(s[8]=r=>o.value.noUpdateDirAfterRename=r)},null,512),[[Ce,o.value.noUpdateDirAfterRename]]),AP]),c("div",PP,[IP,G(c("input",{id:"noUpdateDirAfterMove",type:"checkbox","onUpdate:modelValue":s[9]||(s[9]=r=>o.value.noReloadAfterMove=r)},null,512),[[Ce,o.value.noReloadAfterMove]]),TP])]),c("fieldset",null,[c("div",OP,[LP,G(c("select",{id:"fileSelectorDefaultView","onUpdate:modelValue":s[10]||(s[10]=r=>o.value.fileSelectorDefaultView=r)},MP,512),[[$i,o.value.fileSelectorDefaultView]]),DP])])])]))}}),mN="",hm=rt.search;function NP(e){return{showSelectTargetButtonOnPathBar:!0,...e}}async function mm(){const e=NP(),t=await et.get(hm,e);return{...e,...t}}async function BP(e){await et.set(hm,e)}const FP={class:"ce-config ce-search-config"},UP={class:"pure-form pure-form-aligned"},jP={class:"pure-control-group"},HP=c("label",{for:"showSelectTargetButtonOnPathBar"},"显示选择目标目录按钮",-1),qP=c("div",{class:"pure-form-message text-success"}," 在路径栏显示选择目标目录按钮。即可以在搜索结果页直接选择其他目录进行搜索,而不必返回列表页进入目录后再搜索。 ",-1),zP=Ne({__name:"Config",async setup(e){let t,n;const o=de(([t,n]=rn(()=>mm()),t=await t,n(),t));return Tt(async()=>{}),ht(o,Ft(async i=>{await BP(i),re({icon:"success",title:"设置已保存,刷新页面以使全部更改生效。",timer:1e3,position:"top-end"}),window.postMessage({event:ct.searchConfigChange,body:JSON.parse(JSON.stringify(i))})},500),{deep:!0}),(i,s)=>(B(),z("div",FP,[c("form",UP,[c("fieldset",null,[c("div",jP,[HP,G(c("input",{id:"showSelectTargetButtonOnPathBar",type:"checkbox","onUpdate:modelValue":s[0]||(s[0]=r=>o.value.showSelectTargetButtonOnPathBar=r)},null,512),[[Ce,o.value.showSelectTargetButtonOnPathBar]]),qP])])])]))}}),gN="";async function VP(e){const t=`https://qrcodeapi.115.com/api/1.0/${e}/1.0/token/`;return(await fetch(t)).json()}const WP={[0]:"等待扫码",[1]:"已扫码",[2]:"登录成功",[-1]:"已失效",[-2]:"已取消"};let Pc=new AbortController;async function KP(){Pc.abort()}async function GP(e){const t=new URLSearchParams;t.append("uid",e.uid),t.append("time",e.time.toString()),t.append("sign",e.sign);const n="https://qrcodeapi.115.com/get/status/?"+t.toString();return Pc=new AbortController,(await fetch(n,{signal:Pc.signal})).json()}function YP(e){return{domain:"",hostOnly:!1,httpOnly:!0,name:"",path:"",sameSite:"",secure:!1,session:!1,storeId:"0",value:"",id:0,...e}}async function JP(e){return`UID=${e.UID}; CID=${e.CID}; SEID=${e.SEID}`}async function QP(e,t=[]){const n=[],o=Object.keys(e);let i=["115.com",...t];i=[...new Set(i)];const s={hostOnly:!1,httpOnly:!0,path:"/",sameSite:"unspecified",secure:!1,session:!1,storeId:"0"};let r=1;for(let a=0;a<o.length;a++){const l=o[a],u=[];for(const f of i)u.push(YP({...s,name:l,value:e[l],domain:f,id:r++}));n.push(...u)}return n}async function XP(e,t){const n=new FormData;n.append("app",t),n.append("account",e);const o=`https://passportapi.115.com/app/1.0/${t}/1.0/login/qrcode/`;return(await fetch(o,{method:"POST",body:n})).json()}async function ZP(e,t){const n=`https://qrcodeapi.115.com/api/1.0/web/1.0/qrcode?uid=${t}`;return(await fetch(n)).blob()}var gm=(e=>(e.web="web",e.android="android",e._115android="115android",e.ios="ios",e._115ipad="115ipad",e.tv="tv",e.alipaymini="alipaymini",e.wechatmini="wechatmini",e.qandroid="qandroid",e._115ios="115ios",e.ipad="ipad",e.qios="qios",e.qipad="qipad",e.linux="linux",e.mac="mac",e.windows="windows",e))(gm||{});const eI={web:"网页版",android:"115生活(Android端)",["115android"]:"115(Android端)",ios:"115生活(iOS端)",["115ipad"]:"115(iPad端)",tv:"115网盘(Android电视端)",alipaymini:"115生活(支付宝小程序)",wechatmini:"115生活(微信小程序)",qandroid:"115管理(Android端)",["115ios"]:"115(iOS端)"};async function tI(e,t){return new Promise((n,o)=>{const i=new FileReader;i.onloadend=()=>{if(typeof i.result=="string"){if(t instanceof HTMLImageElement)t.src=i.result;else{const s=document.createElement("img");s.src=i.result,t.appendChild(s)}n()}else console.error("[renderQrcode]","reader.result is not string!"),o("reader.result is not string!")},i.onerror=s=>{console.error("[renderQrcode]",s),o(s)},i.readAsDataURL(e)})}async function nI(e){document.addEventListener("qrcodeStatusChange",t=>{const n=t.detail;e(n)})}async function oI(e){const t=new CustomEvent("qrcodeStatusChange",{detail:e});document.dispatchEvent(t)}async function iI(e,t,n=6e4){return new Promise(async(o,i)=>{console.log("[qrcodeLogin]",e,t,n);const s=await VP(e),r=await ZP(e,s.data.uid);await tI(r,t);let a=!0,l=setTimeout(()=>{a=!1,i("[qrcode login] timeout!")},n),u="";for(;a;)try{const h=(await GP(s.data)).data.status;if(oI(h),h===0)console.log(`[qrcode login] status=${h} - waiting.`);else if(h===1)console.log(`[qrcode login] status=${h} - scanned.`);else if(h===2){console.log(`[qrcode login] status=${h} - signed.`);break}else if(h===-1){clearTimeout(l),u=`[qrcode login] status=${h} - expired.`;break}else if(h===-2){clearTimeout(l),u=`[qrcode login] status=${h} - canceled.`;break}}catch(f){console.error("[qrcode login]",f),u=f;break}clearTimeout(l),u?i(u):o(XP(s.data.uid,e))})}const ym=rt.tools;function sI(e){return{scanApp:gm.alipaymini,...e}}async function rI(){const e=sI(),t=await et.get(ym,e);return{...e,...t}}async function aI(e){await et.set(ym,e)}const lI={class:"ce-tools-item"},cI={class:"pure-form pure-form-aligned"},uI=c("legend",null,"扫码获取Cookie",-1),dI={class:"pure-control-group"},fI=["disabled"],pI=["value"],hI=["disabled"],mI={key:0,class:"text-warning text-bold"},gI={key:1},yI=c("div",{class:"text-danger"},"扫码登录后,所选设备之前的登录将会失效,所以请尽量选不常用的。",-1),wI=c("div",{class:"text-primary"},"请注意,扫码得到的Cookie会跟随发起扫码的设备,如果发起扫码的设备退出登录,扫码得到的Cookie也会随之失效。",-1),bI=c("div",{class:"text-success"},"如要避免上述问题,可以考虑使用手机验证码登录小程序并获取其Cookie。",-1),_I={class:"pure-control-group"},vI=Ne({__name:"GetCookie",props:{app:null},emits:["app-change"],setup(e,{emit:t}){const o=de(e.app),i=de(!1),s=de(!1),r=de(!1),a=de(),l=6e4,u=de(),f=xn(()=>u.value?WP[u.value]:"");ht(o,M=>{t("app-change",M),g()}),Tt(async()=>{}),Ot(async()=>{await nI(_)});async function h(){await g();try{const M=document.querySelector("#ceGetCookieQrcode"),P=await iI(o.value,M,l);a.value=P.data}catch(M){if(console.error(M),M.name==="AbortError")return;pe.fire({icon:"error",title:"扫码失败",text:M.toString()})}finally{i.value=!1,s.value=!1,u.value=void 0}}async function g(){a.value=void 0,s.value=!1,r.value=!1,i.value=!1,u.value=void 0,await I()}async function b(){s.value=!0}async function _(M){console.log("[handleStatusChange]",M),u.value=M}async function E(M){var H;const P=(H=a.value)==null?void 0:H.cookie;if(!P)return;let T="";if(M==="text")T=await JP(P);else if(M==="json"){const ie=await QP(P);T=JSON.stringify(ie,null,2)}Ng(T),Gi.fire({icon:"success",title:"已复制到剪贴板",timer:1500})}async function I(){await KP()}return(M,P)=>(B(),z("div",lI,[c("form",cI,[c("fieldset",null,[uI,c("div",dI,[G(c("select",{"onUpdate:modelValue":P[0]||(P[0]=T=>o.value=T),disabled:i.value},[(B(!0),z(Ue,null,st(fe(eI),(T,H)=>(B(),z("option",{value:H,key:H},ge(T),9,pI))),128))],8,fI),[[$i,o.value]]),ee("    "),c("button",{type:"button",class:"pure-button pure-button-primary",onClick:h,disabled:i.value}," 开始 ",8,hI),ee("    "),fe(f)?(B(),z("span",mI,ge(fe(f)),1)):qe("",!0),a.value?(B(),z("span",gI,[ee("      "),c("button",{type:"button",class:"pure-button button-success",onClick:P[1]||(P[1]=T=>E("text"))}," 复制文本格式Cookie "),ee("    "),c("button",{type:"button",class:"pure-button button-success",onClick:P[2]||(P[2]=T=>E("json"))}," 复制JSON格式Cookie ")])):qe("",!0)]),yI,wI,bI,G(c("div",_I,[c("img",{id:"ceGetCookieQrcode",alt:"qrcode",onLoad:b},null,32)],512),[[Dt,s.value]])])])]))}}),xI={class:"ce-tools-item"},CI={class:"pure-form pure-form-aligned"},$I=c("legend",null,"文件清理",-1),EI={class:"pure-control-group"},kI=c("div",{class:"ce-tips"},"根据后缀、大小和名称等条件进行文件清理。请在「网盘」页中点击以下按钮。",-1),SI=c("br",null,null,-1),AI={class:"pure-control-group"},PI=c("div",{class:"ce-tips"},"尽快找到空文件夹进行清理。请在「网盘」页中点击以下按钮。",-1),II=Ne({__name:"Cleaner",setup(e){async function t(o,i){o&&(await n(),await bt(1e3)),window.postMessage({event:ct.closeConfig}),postMessage({type:i==="Cleaner"?Rt.OPEN_CLEANER:Rt.OPEN_EMPTY_CLEANER})}async function n(){return new Promise(async(o,i)=>{unsafeWindow.parent.Core.FileSelectDG.Open((s,r)=>{console.log("[Core.FileSelectDG.Open]",s,r);const a=s[s.length-1],l=unsafeWindow.parent.wangpan;try{l.Main.GotoDir(1,a.cid,0,""),o()}catch(u){pe.fire({icon:"error",title:"打开文件夹失败",text:`请在文件列表页面中打开!不要在离线任务之类的页面打开。异常: ${u.toString()}`})}},{select:1,nf:1,show_record:0,show_copy:1,btn_txt:"打开清理工具",select_txt:"清理"})})}return(o,i)=>(B(),z("div",xI,[c("form",CI,[c("fieldset",null,[$I,c("div",EI,[kI,c("button",{type:"button",class:"pure-button button-success",onClick:i[0]||(i[0]=s=>t(!1,"Cleaner"))}," 清理当前文件夹 "),ee("      "),c("button",{type:"button",class:"pure-button button-success",onClick:i[1]||(i[1]=s=>t(!0,"Cleaner"))}," 清理指定文件夹 ")]),SI,c("div",AI,[PI,c("button",{type:"button",class:"pure-button button-warning",onClick:i[2]||(i[2]=s=>t(!1,"EmptyCleaner"))}," 清理当前文件夹下的空文件夹 "),ee("      "),c("button",{type:"button",class:"pure-button button-warning",onClick:i[3]||(i[3]=s=>t(!0,"EmptyCleaner"))}," 清理指定文件夹下的空文件夹 ")])])])]))}}),TI={class:"ce-config ce-tools-config"},OI={class:"item"},LI=Ne({__name:"Config",async setup(e){let t,n;const o=de(([t,n]=rn(()=>rI()),t=await t,n(),t));Tt(async()=>{}),ht(o,Ft(async s=>{await aI(s),window.postMessage({event:ct.toolsConfigChange,body:JSON.parse(JSON.stringify(s))})},100),{deep:!0});async function i(s){o.value.scanApp=s}return(s,r)=>(B(),z("div",TI,[c("div",OI,[ke(vI,{app:o.value.scanApp,onAppChange:i},null,8,["app"]),ke(II)])]))}}),yN="",MI={class:"menu-config-block menu-basic-config"},DI={class:"pure-form pure-form-stacked"},RI=c("legend",null,"全局设置",-1),NI={class:"pure-control-group"},BI=c("label",{for:"basic_enabled"},"启用",-1),FI={class:"pure-control-group"},UI=c("label",{for:"basic_hideSelectionMenuLabel"},"隐藏顶部菜单文本",-1),jI={class:"pure-control-group"},HI=c("label",{for:"basic_enableInSearch"},"在搜索结果页中启用",-1),qI={class:"pure-control-group"},zI=c("label",{for:"basic_manageOfficialMenus"},"控制官方菜单",-1),VI={class:"pure-control-group"},WI=c("label",{for:"basic_forceManualBeforeOpenOnKey"},"强制使用手动输入模式的辅助键",-1),KI=["value"],GI={class:"pure-control-group"},YI=c("label",{for:"basic_m3u8TempDirName"},"M3U8临时目录",-1),JI=Ne({__name:"BasicConfig",props:{config:null},setup(e,{emit:t}){const n=e;async function o(i){const r={keyToTriggerManual:"在按下该按键时点击菜单项,会触发手动输入模式,此时会打开一个输入框,修改文本后,点击「确定」或按下Ctrl+Enter,即可继续完成菜单项的操作。",m3u8TempDir:"「M3U8临时目录」用于临时存放生成的m3u8文件。在选中多个视频文件后,在顶部菜单栏会有一个「播放」菜单项,点击后会生成对应的m3u8文件,然后调用播放器播放这个m3u8以实现播放多个视频的效果。"}[i];r&&pe.fire({html:r})}return(i,s)=>(B(),z("div",MI,[c("form",DI,[c("fieldset",null,[RI,c("div",NI,[BI,G(c("input",{id:"basic_enabled",type:"checkbox","onUpdate:modelValue":s[0]||(s[0]=r=>n.config.enabled=r)},null,512),[[Ce,n.config.enabled]])]),c("div",FI,[UI,G(c("input",{id:"basic_hideSelectionMenuLabel",type:"checkbox","onUpdate:modelValue":s[1]||(s[1]=r=>n.config.hideSelectionMenuLabel=r)},null,512),[[Ce,n.config.hideSelectionMenuLabel]])]),c("div",jI,[HI,G(c("input",{id:"basic_enableInSearch",type:"checkbox","onUpdate:modelValue":s[2]||(s[2]=r=>n.config.enableInSearch=r)},null,512),[[Ce,n.config.enableInSearch]])]),c("div",qI,[zI,G(c("input",{id:"basic_manageOfficialMenus",type:"checkbox","onUpdate:modelValue":s[3]||(s[3]=r=>n.config.manageOfficialMenus=r)},null,512),[[Ce,n.config.manageOfficialMenus]])]),c("div",VI,[WI,c("span",{class:"ce-label ce-label-warning ce-config-help",onClick:s[4]||(s[4]=r=>o("keyToTriggerManual"))},"说明"),G(c("select",{id:"basic_forceManualBeforeOpenOnKey","onUpdate:modelValue":s[5]||(s[5]=r=>n.config.keyToTriggerManual=r)},[(B(!0),z(Ue,null,st(fe(gn),(r,a)=>(B(),z("option",{key:a,value:a},ge(r),9,KI))),128))],512),[[$i,n.config.keyToTriggerManual]])]),c("div",GI,[YI,c("span",{class:"ce-label ce-label-warning ce-config-help",onClick:s[6]||(s[6]=r=>o("m3u8TempDir"))},"说明"),G(c("input",{id:"basic_m3u8TempDirName","onUpdate:modelValue":s[7]||(s[7]=r=>n.config.m3u8TempDir=r)},null,512),[[Ve,n.config.m3u8TempDir]])])])])]))}}),wN="",QI={class:"menu-config-block"},XI={class:"pure-form pure-form-stacked"},ZI=c("label",{for:"listItemHover_enabled"},"启用",-1),eT=c("label",{for:"listItemHover_openInNewTab"},"新标签页打开",-1),tT=c("label",{for:"listItemHover_search",class:"text-primary"},"搜索",-1),nT=c("label",{for:"listItemHover_play",class:"text-primary"},"播放",-1),oT=c("label",{for:"listItemHover_copyFileName"},"名称路径",-1),iT=c("label",{for:"listItemHover_exportList"},"导出列表数据",-1),sT=c("label",{for:"listItemHover_viewInCloudDrive"},"在CloudDrive中查看",-1),rT=Ne({__name:"ListItemHoverConfig",props:{config:null},setup(e){return(t,n)=>(B(),z("div",QI,[c("form",XI,[c("fieldset",null,[c("legend",null,ge(fe(Fi).listItemHover),1),c("div",null,[ZI,G(c("input",{id:"listItemHover_enabled",type:"checkbox","onUpdate:modelValue":n[0]||(n[0]=o=>e.config.enabled=o)},null,512),[[Ce,e.config.enabled]])]),c("div",null,[eT,G(c("input",{id:"listItemHover_openInNewTab",type:"checkbox","onUpdate:modelValue":n[1]||(n[1]=o=>e.config.openInNewTab=o)},null,512),[[Ce,e.config.openInNewTab]])]),c("div",null,[tT,G(c("input",{id:"listItemHover_search",type:"checkbox","onUpdate:modelValue":n[2]||(n[2]=o=>e.config.search=o)},null,512),[[Ce,e.config.search]])]),c("div",null,[nT,G(c("input",{id:"listItemHover_play",type:"checkbox","onUpdate:modelValue":n[3]||(n[3]=o=>e.config.play=o)},null,512),[[Ce,e.config.play]])]),c("div",null,[oT,G(c("input",{id:"listItemHover_copyFileName",type:"checkbox","onUpdate:modelValue":n[4]||(n[4]=o=>e.config.copyNames=o)},null,512),[[Ce,e.config.copyNames]])]),c("div",null,[iT,G(c("input",{id:"listItemHover_exportList",type:"checkbox","onUpdate:modelValue":n[5]||(n[5]=o=>e.config.exportList=o)},null,512),[[Ce,e.config.exportList]])]),c("div",null,[sT,G(c("input",{id:"listItemHover_viewInCloudDrive",type:"checkbox","onUpdate:modelValue":n[6]||(n[6]=o=>e.config.viewInCloudDrive=o)},null,512),[[Ce,e.config.viewInCloudDrive]])])])])]))}}),aT={class:"menu-config-block"},lT={class:"pure-form pure-form-stacked"},cT=c("label",{for:"listItemContext_enabled"},"启用",-1),uT=c("label",{for:"listItemContext_copyFileName"},"名称路径",-1),dT=c("label",{for:"listItemContext_viewInCloudDrive"},"在CloudDrive中查看",-1),fT=Ne({__name:"ListItemContextConfig",props:{config:null},setup(e){return(t,n)=>(B(),z("div",aT,[c("form",lT,[c("fieldset",null,[c("legend",null,ge(fe(Fi).listItemContext),1),c("div",null,[cT,G(c("input",{id:"listItemContext_enabled",type:"checkbox","onUpdate:modelValue":n[0]||(n[0]=o=>e.config.enabled=o)},null,512),[[Ce,e.config.enabled]])]),c("div",null,[uT,G(c("input",{id:"listItemContext_copyFileName",type:"checkbox","onUpdate:modelValue":n[1]||(n[1]=o=>e.config.copyNames=o)},null,512),[[Ce,e.config.copyNames]])]),c("div",null,[dT,G(c("input",{id:"listItemContext_viewInCloudDrive",type:"checkbox","onUpdate:modelValue":n[2]||(n[2]=o=>e.config.viewInCloudDrive=o)},null,512),[[Ce,e.config.viewInCloudDrive]])])])])]))}}),pT={class:"menu-config-block"},hT={class:"pure-form pure-form-stacked"},mT=c("label",{for:"selection_enabled"},"启用",-1),gT=c("label",{for:"selection_moveToSelfNameDir"},"移动到同名目录",-1),yT=c("label",{for:"selection_copyFileName"},"名称路径",-1),wT=c("label",{for:"selection_play"},"播放",-1),bT=Ne({__name:"SelectionConfig",props:{config:null},setup(e){return(t,n)=>(B(),z("div",pT,[c("form",hT,[c("fieldset",null,[c("legend",null,ge(fe(Fi).selection),1),c("div",null,[mT,G(c("input",{id:"selection_enabled",type:"checkbox","onUpdate:modelValue":n[0]||(n[0]=o=>e.config.enabled=o)},null,512),[[Ce,e.config.enabled]])]),c("div",null,[gT,G(c("input",{id:"selection_moveToSelfNameDir",type:"checkbox","onUpdate:modelValue":n[1]||(n[1]=o=>e.config.moveToSelfNameDir=o)},null,512),[[Ce,e.config.moveToSelfNameDir]])]),c("div",null,[yT,G(c("input",{id:"selection_copyFileName",type:"checkbox","onUpdate:modelValue":n[2]||(n[2]=o=>e.config.copyNames=o)},null,512),[[Ce,e.config.copyNames]])]),c("div",null,[wT,G(c("input",{id:"selection_play",type:"checkbox","onUpdate:modelValue":n[3]||(n[3]=o=>e.config.play=o)},null,512),[[Ce,e.config.play]])])])])]))}}),_T={class:"menu-config-block"},vT={class:"pure-form pure-form-stacked"},xT=c("label",{for:"dirContext_enabled"},"启用",-1),CT=c("label",{for:"dirContext_rename"},"重命名",-1),$T=c("label",{for:"dirContext_delete"},"删除",-1),ET=c("label",{for:"dirContext_play"},"播放全部",-1),kT=c("label",{for:"dirContext_copyFileName"},"名称路径",-1),ST=c("label",{for:"dirContext_move"},"移动",-1),AT=c("label",{for:"dirContext_copy"},"复制",-1),PT=c("label",{for:"dirContext_copyTo"},"复制到",-1),IT=c("label",{for:"dirContext_viewProperties"},"查看属性",-1),TT=c("label",{for:"dirContext_showSubFolderSize"},"子文件夹大小",-1),OT=c("label",{for:"dirContext_exportList"},"导出列表数据",-1),LT=c("label",{for:"dirContext_viewInCloudDrive"},"在CloudDrive中查看",-1),MT=Ne({__name:"DirContextConfig",props:{config:null},setup(e){async function t(){const n="当前目录右键菜单的打开方式: <br>1.右键单击文件列表表头;<br>2.右键单击文件列表空白处。";pe.fire({html:n,customClass:"ce-swal-text-left"})}return(n,o)=>(B(),z("div",_T,[c("form",vT,[c("fieldset",null,[c("legend",null,[ee(ge(fe(Fi).dirContext)+" ",1),c("span",{class:"ce-label ce-label-warning ce-config-help",onClick:t},"说明")]),c("div",null,[xT,G(c("input",{id:"dirContext_enabled",type:"checkbox","onUpdate:modelValue":o[0]||(o[0]=i=>e.config.enabled=i)},null,512),[[Ce,e.config.enabled]])]),c("div",null,[CT,G(c("input",{id:"dirContext_rename",type:"checkbox","onUpdate:modelValue":o[1]||(o[1]=i=>e.config.rename=i)},null,512),[[Ce,e.config.rename]])]),c("div",null,[$T,G(c("input",{id:"dirContext_delete",type:"checkbox","onUpdate:modelValue":o[2]||(o[2]=i=>e.config.delete=i)},null,512),[[Ce,e.config.delete]])]),c("div",null,[ET,G(c("input",{id:"dirContext_play",type:"checkbox","onUpdate:modelValue":o[3]||(o[3]=i=>e.config.play=i)},null,512),[[Ce,e.config.play]])]),c("div",null,[kT,G(c("input",{id:"dirContext_copyFileName",type:"checkbox","onUpdate:modelValue":o[4]||(o[4]=i=>e.config.copyNames=i)},null,512),[[Ce,e.config.copyNames]])]),c("div",null,[ST,G(c("input",{id:"dirContext_move",type:"checkbox","onUpdate:modelValue":o[5]||(o[5]=i=>e.config.move=i)},null,512),[[Ce,e.config.move]])]),c("div",null,[AT,G(c("input",{id:"dirContext_copy",type:"checkbox","onUpdate:modelValue":o[6]||(o[6]=i=>e.config.copy=i)},null,512),[[Ce,e.config.copy]])]),c("div",null,[PT,G(c("input",{id:"dirContext_copyTo",type:"checkbox","onUpdate:modelValue":o[7]||(o[7]=i=>e.config.copyTo=i)},null,512),[[Ce,e.config.copyTo]])]),c("div",null,[IT,G(c("input",{id:"dirContext_viewProperties",type:"checkbox","onUpdate:modelValue":o[8]||(o[8]=i=>e.config.viewProp=i)},null,512),[[Ce,e.config.viewProp]])]),c("div",null,[TT,G(c("input",{id:"dirContext_showSubFolderSize",type:"checkbox","onUpdate:modelValue":o[9]||(o[9]=i=>e.config.showSubFolderSize=i)},null,512),[[Ce,e.config.showSubFolderSize]])]),c("div",null,[OT,G(c("input",{id:"dirContext_exportList",type:"checkbox","onUpdate:modelValue":o[10]||(o[10]=i=>e.config.exportList=i)},null,512),[[Ce,e.config.exportList]])]),c("div",null,[LT,G(c("input",{id:"dirContext_viewInCloudDrive",type:"checkbox","onUpdate:modelValue":o[11]||(o[11]=i=>e.config.viewInCloudDrive=i)},null,512),[[Ce,e.config.viewInCloudDrive]])])])])]))}}),DT={class:"official-menu-config"},RT=c("div",{class:"ce-tips"},[c("p",null,"开启「菜单设置 - 全局设置 - 控制官方菜单」后才会生效。"),c("p",{class:"text-primary"},"该功能仅支持隐藏菜单。点击「隐藏」后刷新页面生效,如需取消请点击「取消隐藏」。")],-1),NT={class:"pure-form pure-form-stacked"},BT=["onClick"],FT=["onClick"],UT=Ne({__name:"OfficialMenuConfig",setup(e){const t=de([]),n=de(!1);Tt(async()=>{t.value=await lh(),console.log("official menu groups",t.value,location.href)}),Ot(()=>{document.body.addEventListener("click",()=>{n.value||(n.value=!0)})}),ht(t,Ft(async s=>{if(!n.value)return;const r=await Fx(s);await Bx(r,!0),re({icon:"success",title:"官方菜单设置已保存,已生效。",timer:1e3,position:"top-end"})},500),{deep:!0});async function o(s){s.hidden=!s.hidden}async function i(s){const{isConfirmed:r}=await pe.fire({icon:"warning",html:`确认要重置分组「${s.label}」的隐藏状态吗?`,confirmButtonText:"确认",showDenyButton:!0,denyButtonText:"关闭"});!r||s.items.forEach(a=>{a.hidden=!1})}return(s,r)=>(B(),z("div",DT,[RT,(B(!0),z(Ue,null,st(t.value,(a,l)=>(B(),z("div",{key:l,class:"menu-config-block"},[c("form",NT,[c("fieldset",null,[c("legend",null,[ee(ge(a.label)+" ",1),c("span",{class:"ce-label ce-label-warning",title:"取消该分组下全部的隐藏设置",onClick:u=>i(a)}," 重置 ",8,BT)]),(B(!0),z(Ue,null,st(a.items,(u,f)=>(B(),z("div",{key:f,class:Je({hidden:u.hidden})},[c("label",null,[ee(ge(u.label)+" ",1),c("small",null,ge(u.key),1)]),c("span",{class:"ce-toggle",onClick:h=>o(u)},ge(u.hidden?"取消隐藏":"隐藏"),9,FT)],2))),128))])])]))),128))]))}}),bN="",jT={key:0,class:"ce-menu-config"},HT=c("div",{class:"ce-tips"},[c("p",null,"「搜索」功能菜单支持自定义,可在「搜索菜单」设置面板中添加和管理。"),c("p",null,"「播放」功能菜单支持自定义,可在「播放菜单」设置面板中添加和管理。")],-1),qT=c("hr",{class:"ce-hr"},null,-1),zT=c("h1",null,"官方菜单设置",-1),VT=Ne({__name:"MenuConfig",async setup(e){let t,n;const o=de(([t,n]=rn(()=>di()),t=await t,n(),t));return de(!1),Tt(async()=>{}),ht(o,Ft(async i=>{await w_(i),re({icon:"success",title:"设置已保存,刷新页面以使全部更改生效。",timer:1e3,position:"top-end"})},500),{deep:!0}),(i,s)=>o.value.enabled!==void 0?(B(),z("div",jT,[HT,ke(JI,{config:o.value},null,8,["config"]),ke(rT,{config:o.value.listItemHover},null,8,["config"]),ke(fT,{config:o.value.listItemContext},null,8,["config"]),ke(bT,{config:o.value.selection},null,8,["config"]),ke(MT,{config:o.value.dirContext},null,8,["config"]),qT,c("div",null,[zT,c("div",null,[ke(UT)])])])):qe("",!0)}}),_N="",WT={class:"ce-custom-url"},KT={class:"pure-form pure-form-aligned"},GT={class:"ce-custom-url-index"},YT={class:"pure-control-group"},JT=c("label",null,"启用",-1),QT={class:"pure-control-group"},XT=c("label",null,"唯一标识",-1),ZT={class:"pure-control-group"},eO=c("label",null,"显示名称",-1),tO={class:"pure-control-group"},nO=c("label",null,"图标",-1),oO={class:"pure-control-group"},iO={class:"pure-control-group"},sO=c("label",null,"后台打开",-1),rO={class:"pure-control-group"},aO=c("label",null,"备注",-1),lO={key:0,class:"pure-control-group"},cO=c("label",null,"Mutation",-1),wm=Ne({__name:"CustomUrl",props:{item:null,index:null},emits:["delete"],setup(e,{emit:t}){const n=de(!0);function o(){t("delete")}async function i(){n.value=!n.value,n.value&&re({title:"已开启高级模式",text:"请谨慎修改,不正确的代码可能会导致脚本崩溃。",icon:"info",timer:2e3})}async function s(){window.postMessage({event:"customUrlHelp"},"*")}async function r(){const a=`
  <div style="text-align:left;">
    <p>自定义代码,用于生成最终的链接。</p><br>
    <p>代码会被包含在一个async匿名函数中执行,最终应该返回一个链接字符串。</p>
    <p>传入的参数名为「payload」,其结构如下:</p>
    <p>- url: 之前自动处理得到的链接</p>
    <p>- file:当前文件信息</p>
    <p>- customUrl:当前自定义规则信息</p>
    <p>- cloudDriveConfig:CloudDrive设置信息</p><br>
    <p>示例:</p>
    <pre style="text-align:left;font-size:12px;">
    const {
      url,
      file,
      customUrl,
      cloudDriveConfig
    } = payload
    const sth = await fetch(\`https://api.sth.com/foo?bar=\${file.pc}\`)
    return \`https://example.com/do?key=\${sth}\`
    </pre>
  </div>
  `;await pe.fire({title:"Mutation 说明",html:a,width:480,position:"top-start",backdrop:!1})}return(a,l)=>(B(),z("div",WT,[c("form",KT,[c("fieldset",null,[c("legend",null,[c("span",GT,"# "+ge(e.index+1),1),c("button",{type:"button",class:"pure-button button-error button-small",onClick:o}," 删除 ")]),c("div",YT,[JT,G(c("input",{"onUpdate:modelValue":l[0]||(l[0]=u=>e.item.enabled=u),type:"checkbox",id:"customUrl_enabled"},null,512),[[Ce,e.item.enabled]])]),c("div",QT,[XT,G(c("input",{"onUpdate:modelValue":l[1]||(l[1]=u=>e.item.key=u),id:"customUrl_key",class:"pure-input-2-3",placeholder:"英文、数字或下划线"},null,512),[[Ve,e.item.key]])]),c("div",ZT,[eO,G(c("input",{"onUpdate:modelValue":l[2]||(l[2]=u=>e.item.label=u),id:"customUrl_label",class:"pure-input-2-3",placeholder:"菜单文本,尽量简洁"},null,512),[[Ve,e.item.label]])]),c("div",tO,[nO,G(c("input",{"onUpdate:modelValue":l[3]||(l[3]=u=>e.item.icon=u),id:"customUrl_icon",class:"pure-input-2-3",placeholder:"图标class、图片链接或图片data:image"},null,512),[[Ve,e.item.icon]])]),c("div",oO,[c("label",{onDblclick:i}," 链接 ",32),G(c("textarea",{"onUpdate:modelValue":l[4]||(l[4]=u=>e.item.url=u),id:"customUrl_url",class:"pure-input-2-3",placeholder:"链接地址,支持变量,变量列表请点击右侧「查看变量」"},null,512),[[Ve,e.item.url]]),ee("   "),c("a",{href:"javascript:void(0)",class:"text-primary",onClick:s},"查看变量")]),c("div",iO,[sO,G(c("input",{"onUpdate:modelValue":l[5]||(l[5]=u=>e.item.openInBackground=u),id:"customUrl_openInBackground",type:"checkbox"},null,512),[[Ce,e.item.openInBackground]])]),c("div",rO,[aO,G(c("input",{"onUpdate:modelValue":l[6]||(l[6]=u=>e.item.memo=u),id:"customUrl_memo",class:"pure-input-2-3"},null,512),[[Ve,e.item.memo]])]),n.value?(B(),z("div",lO,[cO,G(c("textarea",{"onUpdate:modelValue":l[7]||(l[7]=u=>e.item.mutation=u),id:"customUrl_mutation",class:"pure-input-2-3",placeholder:"自定义代码生成最终链接,具体请看右侧「查看说明」"},null,512),[[Ve,e.item.mutation]]),ee("   "),c("a",{href:"javascript:void(0)",class:"text-primary",onClick:r},"查看说明")])):qe("",!0)])])]))}}),vN="",uO={class:"ce-config ce-search-urls ce-custom-urls"},dO={class:"ce-menu-urls-builtin"},fO={class:"pure-form pure-form-aligned"},pO=["for"],hO=["id","onUpdate:modelValue"],mO={class:"text-info item-memo"},gO=["onClick"],yO={class:"ce-custom-urls-list"},wO={class:"ce-custom-urls-actions"},bO=["disabled"],_O=Ne({__name:"SearchUrls",async setup(e){let t,n;const o=de(([t,n]=rn(()=>Yp()),t=await t,n(),t)),i=de(([t,n]=rn(()=>ui(In.search)),t=await t,n(),t));Tt(async()=>{}),ht(o,Ft(async f=>{const h=[];f.forEach(g=>{g.enabled&&h.push(g.key)}),await J0(h),re({icon:"success",title:"预置搜索菜单设置已保存,刷新页面以使全部更改生效。",timer:1e3,position:"top-end"})},500),{deep:!0});async function s(){const f=[];for(const h of i.value){if(!await r(h,f.length))return;if(f.includes(h.key)){re({icon:"error",title:`第 ${f.length+1} 个记录的「唯一标识: ${h.key}」重复!`});return}f.push(h.key)}await Qd(In.search,i.value),re({icon:"success",title:"保存成功!"})}async function r(f,h){const g=/^\w+$/;return f.key=f.key.trim(),g.test(f.key)?(f.label=f.label.trim(),f.label===""?(re({icon:"error",title:`第 ${h+1} 个记录的「显示名称」不能为空!`}),!1):(f.url=f.url.trim(),f.url===""?(re({icon:"error",title:`第 ${h+1} 个记录的「链接」不能为空!`}),!1):(f.icon=f.icon.trim(),f.memo=f.memo.trim(),!0))):(re({icon:"error",title:`第 ${h+1} 个记录的「唯一标识」错误!只能包含字母、数字、下划线。`}),!1)}async function a(){i.value.push(_t())}async function l(f,h){const{isConfirmed:g}=await pe.fire({icon:"warning",html:`确定要删除第 ${h+1} 个记录「${f.label}」吗?`});!g||(i.value.splice(h,1),await s(),re({icon:"success",title:`「${f.label}」已删除!`}))}async function u(f){const h=JSON.stringify(f,null,2),g=`ce-url-item-denifition-${f.key}`,{isConfirmed:b}=await pe.fire({title:`「${f.label}」的定义`,html:`<h3>${f.memo}</h3>
      <pre id="${g}" style="text-align:left;font-size:12px;"></pre>`,confirmButtonText:"复制",showCancelButton:!0,position:"top-left",heightAuto:!0,didOpen:()=>{document.getElementById(g).textContent=h}});!b||(navigator.clipboard.writeText(h),re({icon:"success",title:"已复制到剪贴板!"}))}return(f,h)=>(B(),z("div",uO,[c("h1",null,[ee("预置搜索菜单 "),G(c("small",null,"( "+ge(o.value.length)+" )",513),[[Dt,o.value.length]])]),c("div",dO,[c("form",fO,[c("fieldset",null,[(B(!0),z(Ue,null,st(o.value,(g,b)=>(B(),z("div",{key:b,class:"pure-control-group"},[c("label",{for:`builtin_${g.key}`},ge(g.label),9,pO),G(c("input",{id:`builtin_${g.key}`,type:"checkbox","onUpdate:modelValue":_=>g.enabled=_},null,8,hO),[[Ce,g.enabled]]),ee("      "),c("span",mO,ge(g.memo),1),ee("      "),c("button",{type:"button",class:"pure-button button-small",onClick:_=>u(g)},"查看定义",8,gO)]))),128))])])]),c("h1",null,[ee("自定义搜索菜单 "),G(c("small",null,"( "+ge(i.value.length)+" )",513),[[Dt,i.value.length]])]),c("div",yO,[(B(!0),z(Ue,null,st(i.value,(g,b)=>(B(),on(wm,{key:b,item:g,index:b,onDelete:_=>l(g,b)},null,8,["item","index","onDelete"]))),128))]),c("div",wO,[c("button",{type:"button",class:"pure-button pure-button-primary button-large",onClick:s,disabled:!i.value.length}," 保存自定义搜索菜单 ",8,bO),ee("      "),c("button",{type:"button",class:"pure-button pure-button-success button-large",onClick:a}," 添加自定义搜索菜单 ")])]))}}),xN="",vO={class:"ce-config ce-play-urls ce-custom-urls"},xO=c("div",{class:"ce-tips"},[c("p",null,[ee("支持常见的视频、音频和图片格式,也支持目录播放。预置播放菜单使用的链接变量是 "),c("b",null,"{clouddrive_stream_url}"),ee(" , 会根据文件或目录自动使用相应的链接。")]),c("p",null,"播放功能依赖CloudDrive,请先在「CloudDrive」设置面板中进行配置。")],-1),CO={class:"ce-menu-urls-builtin"},$O={class:"pure-form pure-form-aligned"},EO=["for"],kO=["id","onUpdate:modelValue"],SO={class:"text-info item-memo"},AO=["onClick"],PO=["innerHTML"],IO={class:"ce-custom-urls-list"},TO=c("div",{class:"ce-tips"}," 编辑后,请记得点击「保存自定义播放菜单」。 ",-1),OO={class:"ce-custom-urls-actions"},LO=["disabled"],MO=Ne({__name:"PlayUrls",async setup(e){let t,n;const o=de(([t,n]=rn(()=>zr()),t=await t,n(),t)),i=de(([t,n]=rn(()=>ui(In.play)),t=await t,n(),t));Tt(async()=>{}),ht(o,Ft(async f=>{const h=[];f.forEach(g=>{g.enabled&&h.push(g.key)}),await Q0(h),re({icon:"success",title:"预置搜索菜单设置已保存,刷新页面以使全部更改生效。",timer:1e3,position:"top-end"})},500),{deep:!0});async function s(){const f=[];for(const h of i.value){if(!await r(h,f.length))return;if(f.includes(h.key)){re({icon:"error",title:`第 ${f.length+1} 个记录的「唯一标识: ${h.key}」重复!`});return}f.push(h.key)}await Qd(In.play,i.value),re({icon:"success",title:"保存成功!"})}async function r(f,h){const g=/^\w+$/;return f.key=f.key.trim(),g.test(f.key)?(f.label=f.label.trim(),f.label===""?(re({icon:"error",title:`第 ${h+1} 个记录的「显示名称」不能为空!`}),!1):(f.url=f.url.trim(),f.url===""?(re({icon:"error",title:`第 ${h+1} 个记录的「链接」不能为空!`}),!1):(f.icon=f.icon.trim(),f.memo=f.memo.trim(),!0))):(re({icon:"error",title:`第 ${h+1} 个记录的「唯一标识」错误!只能包含字母、数字、下划线。`}),!1)}async function a(){i.value.push(_t())}async function l(f,h){const{isConfirmed:g}=await pe.fire({icon:"warning",html:`确定要删除第 ${h+1} 个记录「${f.label}」吗?`});!g||(i.value.splice(h,1),await s(),re({icon:"success",title:`「${f.label}」已删除!`}))}async function u(f){const h=JSON.stringify(f,null,2),g=`ce-url-item-denifition-${f.key}`,{isConfirmed:b}=await pe.fire({title:`「${f.label}」的定义`,html:`<h3>${f.memo}</h3>
      <pre id="${g}" style="text-align:left;font-size:12px;"></pre>`,confirmButtonText:"复制",showCancelButton:!0,position:"top-left",heightAuto:!0,didOpen:()=>{document.getElementById(g).innerText=h}});!b||(navigator.clipboard.writeText(h),re({icon:"success",title:"已复制到剪贴板!"}))}return(f,h)=>(B(),z("div",vO,[c("h1",null,[ee("预置播放菜单 "),G(c("small",null,"( "+ge(o.value.length)+" )",513),[[Dt,o.value.length]])]),xO,c("div",CO,[c("form",$O,[c("fieldset",null,[(B(!0),z(Ue,null,st(o.value,(g,b)=>(B(),z("div",{key:b,class:"pure-control-group"},[c("label",{for:`builtin_${g.key}`},ge(g.label),9,EO),G(c("input",{id:`builtin_${g.key}`,type:"checkbox","onUpdate:modelValue":_=>g.enabled=_},null,8,kO),[[Ce,g.enabled]]),ee("      "),c("span",SO,ge(g.memo),1),ee("      "),c("button",{type:"button",class:"pure-button button-small",onClick:_=>u(g)},"查看定义",8,AO),g.extraMemo?(B(),z("span",{key:0,innerHTML:g.extraMemo,class:"extra-memo"},null,8,PO)):qe("",!0)]))),128))])])]),c("h1",null,[ee("自定义播放菜单 "),G(c("small",null,"( "+ge(i.value.length)+" )",513),[[Dt,i.value.length]])]),c("div",IO,[(B(!0),z(Ue,null,st(i.value,(g,b)=>(B(),on(wm,{key:b,item:g,index:b,onDelete:_=>l(g,b)},null,8,["item","index","onDelete"]))),128))]),TO,c("div",OO,[c("button",{type:"button",class:"pure-button pure-button-primary button-large",onClick:s,disabled:!i.value.length}," 保存自定义播放菜单 ",8,LO),ee("      "),c("button",{type:"button",class:"pure-button pure-button-success button-large",onClick:a}," 添加自定义播放菜单 ")])]))}}),CN="",bm=rt.anxia;function DO(e){return{defaultWebFull:!1,defaultOpenPlayList:!1,...e}}async function _m(){const e=DO(),t=await et.get(bm,e);return{...e,...t}}async function RO(e){await et.set(bm,e)}const NO={class:"ce-config ce-anxia-config"},BO={class:"pure-form pure-form-aligned"},FO={class:"pure-control-group"},UO=c("label",{for:"defaultWebFull"},"自动网页全屏",-1),jO=c("div",{class:"pure-form-message text-success"},[c("div",null,"进入播放页后自动使播放器网页全屏。")],-1),HO={class:"pure-control-group"},qO=c("label",{for:"defaultOpenPlayList"},"自动展开播放列表",-1),zO=c("div",{class:"pure-form-message text-success"},[c("div",null,"进入播放页后自动展开播放列表。")],-1),VO=Ne({__name:"Config",async setup(e){let t,n;const o=de(([t,n]=rn(()=>_m()),t=await t,n(),t));return Tt(async()=>{}),ht(o,Ft(async i=>{await RO(i),re({icon:"success",title:"设置已保存,刷新页面以使全部更改生效。",timer:1e3,position:"top-end"}),window.postMessage({event:ct.listConfigChange,body:JSON.parse(JSON.stringify(i))})},500),{deep:!0}),(i,s)=>(B(),z("div",NO,[c("form",BO,[c("fieldset",null,[c("div",FO,[UO,G(c("input",{id:"defaultWebFull",type:"checkbox","onUpdate:modelValue":s[0]||(s[0]=r=>o.value.defaultWebFull=r)},null,512),[[Ce,o.value.defaultWebFull]]),jO]),c("div",HO,[qO,G(c("input",{id:"defaultOpenPlayList",type:"checkbox","onUpdate:modelValue":s[1]||(s[1]=r=>o.value.defaultOpenPlayList=r)},null,512),[[Ce,o.value.defaultOpenPlayList]]),zO])])])]))}}),$N="",vm=function(){return document.ontouchstart!==null?"click":"touchstart"},ya="__vue_click_away__",xm=function(e,t,n){Cm(e);let o=n.context,i=t.value,s=!1;setTimeout(function(){s=!0},0),e[ya]=function(r){if((!e||!e.contains(r.target))&&i&&s&&typeof i=="function")return i.call(o,r)},document.addEventListener(vm(),e[ya],!1)},Cm=function(e){document.removeEventListener(vm(),e[ya],!1),delete e[ya]},WO={mounted:xm,updated:function(e,t,n){t.value!==t.oldValue&&xm(e,t,n)},unmounted:Cm},KO=Ne({__name:"Drawer",props:{isOpen:{type:Boolean,required:!1,default:!1},maxWidth:{type:String,required:!1,default:"600px"},speed:{type:Number,required:!1,default:100},backgroundColor:{type:String,required:!1,default:"#fafafa"}},emits:["close"],setup(e,{emit:t}){const n=e,o=de(!1),i=de(!1),s=a=>{const l=document.querySelector("body");l.style.overflow=a?"hidden":""},r=a=>{!a.target.classList.contains("ce-drawer__overlay")||i.value||t("close")};return Ot(()=>{o.value=n.isOpen}),ht(()=>n.isOpen,a=>{i.value=!0,a?(s(!0),o.value=!0):(s(!1),setTimeout(()=>o.value=!1,n.speed)),setTimeout(()=>i.value=!1,n.speed)}),(a,l)=>(B(),z("div",null,[c("div",{class:Je(["ce-drawer",{"is-open":e.isOpen,"is-visible":o.value}])},[c("div",{class:"ce-drawer__overlay",style:Tn({transitionDuration:`${e.speed}ms`})},null,4),G((B(),z("div",{class:"ce-drawer__content",style:Tn({maxWidth:e.maxWidth,transitionDuration:`${e.speed}ms`,backgroundColor:e.backgroundColor})},[un(a.$slots,"default")],4)),[[fe(WO),r]])],2)]))}}),kN="",GO={class:"ce-about"},YO=c("p",null,"115不大助手(以下简称「脚本」),是一个仅用于学习编程的小脚本。",-1),JO=c("br",null,null,-1),QO=c("p",null,"脚本不会收集您的任何个人信息。",-1),XO=c("p",null,"脚本仅借助了官方已有的功能,无任何破解行为。",-1),ZO=c("p",null,"脚本代码本身已包含全部依赖,无任何远程引用。",-1),eL=c("br",null,null,-1),tL=c("br",null,null,-1),nL=c("br",null,null,-1),oL=c("hr",{class:"ce-hr"},null,-1),iL=["href"],sL=Ne({__name:"About",setup(e){const t={name:"115不大助手",version:"0.6.23",author:{name:"生瓜太保",email:"mailme@miao.com"},greasyforkUrl:"https://greasyfork.org/zh-CN/scripts/474231-115%E4%B8%8D%E5%A4%A7%E5%8A%A9%E6%89%8B-full?locale_override=1"};return(n,o)=>(B(),z("div",GO,[YO,JO,QO,XO,ZO,eL,tL,nL,oL,c("div",null,[c("a",{href:fe(t).greasyforkUrl,class:"text-bold text-primary",target:"_blank",rel:"noreferrer noopener",title:"到Greasyfork查看"},[ee(ge(fe(t).name)+" ",1),c("small",null,"v"+ge(fe(t).version),1)],8,iL),ee("  "),c("small",null,"by "+ge(fe(t).author.name),1)])]))}}),rL={class:"ce-config-main"},aL={class:"ce-config-main-header"},lL=c("h1",null,"设置",-1),cL={class:"ce-intro"},uL=["href"],dL={class:"ce-config-main-body"},fL=Ne({__name:"Config",setup(e){const t={name:"115不大助手",version:"0.6.23",author:{name:"生瓜太保",email:"mailme@miao.com"},greasyforkUrl:"https://greasyfork.org/zh-CN/scripts/474231-115%E4%B8%8D%E5%A4%A7%E5%8A%A9%E6%89%8B-full?locale_override=1"},n=de(!1),o=de(!1),i=de();Ot(async()=>{window.addEventListener("message",u=>{const{event:f,body:h}=u.data;f===ct.openConfig&&(n.value||(n.value=!0),s(h)),f===ct.closeConfig&&r()},!1)});async function s(u){var f;o.value=!0,console.log("[openDrawer]",u),u&&(await wi(),(f=i.value)==null||f.selectTab(`#${u}`))}async function r(){o.value=!1}async function a(...u){console.log("[tabClicked]",u)}async function l(...u){console.log("[tabChanged]",u)}return(u,f)=>(B(),on(Qf,null,{default:Qe(()=>[c("div",rL,[ke(KO,{"is-open":o.value,onClose:r,"max-width":"1030px",speed:500},{default:Qe(()=>[c("div",aL,[lL,c("span",cL,[c("a",{href:fe(t).greasyforkUrl,class:"text-bold text-primary",target:"_blank",rel:"noreferrer noopener",title:"到Greasyfork查看"},[ee(ge(fe(t).name)+" ",1),c("small",null,"v"+ge(fe(t).version),1)],8,uL),ee("  "),c("small",null,"by "+ge(fe(t).author.name),1)]),c("div",{class:"ce-config-main-close",onClick:r},"关闭")]),c("div",dL,[ke(fe(KS),{ref_key:"refTabs",ref:i,options:{useUrlFragment:!1},onClicked:a,onChanged:l},{default:Qe(()=>[ke(fe(pn),{id:fe(Wt).basic,name:fe(dn).basic},{default:Qe(()=>[ke(DA)]),_:1},8,["id","name"]),ke(fe(pn),{id:fe(Wt).clouddrive,name:fe(dn).clouddrive},{default:Qe(()=>[ke(nP)]),_:1},8,["id","name"]),ke(fe(pn),{id:fe(Wt).list,name:fe(dn).list},{default:Qe(()=>[ke(RP)]),_:1},8,["id","name"]),ke(fe(pn),{id:fe(Wt).search,name:fe(dn).search},{default:Qe(()=>[ke(zP)]),_:1},8,["id","name"]),ke(fe(pn),{id:fe(Wt).menus,name:fe(dn).menus},{default:Qe(()=>[ke(VT)]),_:1},8,["id","name"]),ke(fe(pn),{id:fe(Wt).searchMenus,name:fe(dn).searchMenus},{default:Qe(()=>[ke(_O)]),_:1},8,["id","name"]),ke(fe(pn),{id:fe(Wt).playMenus,name:fe(dn).playMenus},{default:Qe(()=>[ke(MO)]),_:1},8,["id","name"]),ke(fe(pn),{id:fe(Wt).offline,name:fe(dn).offline},{default:Qe(()=>[ke(mh)]),_:1},8,["id","name"]),ke(fe(pn),{id:fe(Wt).tools,name:fe(dn).tools},{default:Qe(()=>[ke(LI)]),_:1},8,["id","name"]),ke(fe(pn),{id:fe(Wt).anxia,name:fe(dn).anxia},{default:Qe(()=>[ke(VO)]),_:1},8,["id","name"]),ke(fe(pn),{id:fe(Wt).about,name:fe(dn).about},{default:Qe(()=>[ke(sL)]),_:1},8,["id","name"])]),_:1},512)])]),_:1},8,["is-open"])])]),_:1}))}}),SN="",AN="";async function pL(){const{host:e}=location;!e.includes("115.com")||window.top===window.self&&(console.log("[Cloud115 Enhancer - main] running..."),hL(),gL(),mL())}async function hL(){console.log("[Cloud115 Enhancer - main] injectUI");const e="cloud115ConfigMain",t=document.createElement("div");t.id=e,document.body.appendChild(t),Cn(fL).mount(`#${e}`),Ms("设置",async()=>{window.postMessage({event:ct.openConfig})}),Ms("扫码获取Cookie",async()=>{window.postMessage({event:ct.openConfig,body:Wt.tools})}),wL()}async function mL(){if(window!==window.parent)return;new MutationObserver(async([t])=>{t.type==="childList"&&window.postMessage({event:ct.topDomChanged})}).observe(document.body,{childList:!0})}async function gL(){const e=document.querySelector(".bottom-side .navigation-ceiling ul");if(!e){_L();return}const t=document.createElement("li"),n=document.createElement("a");n.href="javascript:;",n.style.textAlign="center",n.style.backgroundColor="#fefcea",n.style.padding="4px 10px 4px",n.addEventListener("click",async o=>{await wa()}),n.title="打开「115不大助手」设置",n.innerHTML='<i class="isn-setting"></i><span>不大助手</span>',t.appendChild(n),e.insertBefore(t,e.firstChild)}async function yL(){return!!document.querySelector("#js-login-box")}async function wL(){console.log("[handleLoginPage]"),await yL()&&(document.body.classList.add("ce-login-page"),bL())}async function bL(){console.log("[injectOpenConfigButtonOnLoginPage");const e=document.querySelector(".right-side a");if(!e){console.warn("[injectOpenConfigButtonOnLoginPage] '.right-side a' not found");return}const t=document.createElement("a");t.href="javascript:;",t.className="ce-entry",t.addEventListener("click",async o=>{await wa()}),t.title="打开「115不大助手」设置",t.innerHTML='<i class="isn-setting"></i><span>115不大助手</span>',e.insertAdjacentElement("beforebegin",t);const n=document.createElement("a");n.href="javascript:;",n.className="ce-entry",n.addEventListener("click",async o=>{await wa(Wt.tools)}),n.title="打开扫码获取Cookie",n.innerHTML='<i class="isn-scan"></i><span>扫码获取Cookie</span>',e.insertAdjacentElement("beforebegin",n)}async function _L(){const e=document.querySelector(".sub-footer ul");if(!e)return;const t=document.createElement("li"),n=document.createElement("a");n.href="javascript:;",n.addEventListener("click",async o=>{await wa()}),n.title="打开「115不大助手」设置",n.innerHTML='<i class="isn-setting"></i><span>115不大助手</span>',t.appendChild(n),e.insertBefore(t,e.firstChild)}async function wa(e){window.postMessage({event:ct.openConfig,body:e})}const PN="";function qn(e){return Array.isArray?Array.isArray(e):km(e)==="[object Array]"}const vL=1/0;function xL(e){if(typeof e=="string")return e;let t=e+"";return t=="0"&&1/e==-vL?"-0":t}function CL(e){return e==null?"":xL(e)}function $n(e){return typeof e=="string"}function $m(e){return typeof e=="number"}function $L(e){return e===!0||e===!1||EL(e)&&km(e)=="[object Boolean]"}function Em(e){return typeof e=="object"}function EL(e){return Em(e)&&e!==null}function Qt(e){return e!=null}function Ic(e){return!e.trim().length}function km(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const IN="Extended search is not available",kL="Incorrect 'index' type",SL=e=>`Invalid value for key ${e}`,AL=e=>`Pattern length exceeds max of ${e}.`,PL=e=>`Missing ${e} property in key`,IL=e=>`Property 'weight' in key '${e}' must be a positive integer`,Sm=Object.prototype.hasOwnProperty;class TL{constructor(t){this._keys=[],this._keyMap={};let n=0;t.forEach(o=>{let i=Am(o);this._keys.push(i),this._keyMap[i.id]=i,n+=i.weight}),this._keys.forEach(o=>{o.weight/=n})}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Am(e){let t=null,n=null,o=null,i=1,s=null;if($n(e)||qn(e))o=e,t=Pm(e),n=Tc(e);else{if(!Sm.call(e,"name"))throw new Error(PL("name"));const r=e.name;if(o=r,Sm.call(e,"weight")&&(i=e.weight,i<=0))throw new Error(IL(r));t=Pm(r),n=Tc(r),s=e.getFn}return{path:t,id:n,weight:i,src:o,getFn:s}}function Pm(e){return qn(e)?e:e.split(".")}function Tc(e){return qn(e)?e.join("."):e}function OL(e,t){let n=[],o=!1;const i=(s,r,a)=>{if(!!Qt(s))if(!r[a])n.push(s);else{let l=r[a];const u=s[l];if(!Qt(u))return;if(a===r.length-1&&($n(u)||$m(u)||$L(u)))n.push(CL(u));else if(qn(u)){o=!0;for(let f=0,h=u.length;f<h;f+=1)i(u[f],r,a+1)}else r.length&&i(u,r,a+1)}};return i(e,$n(t)?t.split("."):t,0),o?n:n[0]}var Re={...{isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1},...{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},...{location:0,threshold:.6,distance:100},...{useExtendedSearch:!1,getFn:OL,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}};const LL=/[^ ]+/g;function ML(e=1,t=3){const n=new Map,o=Math.pow(10,t);return{get(i){const s=i.match(LL).length;if(n.has(s))return n.get(s);const r=1/Math.pow(s,.5*e),a=parseFloat(Math.round(r*o)/o);return n.set(s,a),a},clear(){n.clear()}}}class Oc{constructor({getFn:t=Re.getFn,fieldNormWeight:n=Re.fieldNormWeight}={}){this.norm=ML(n,3),this.getFn=t,this.isCreated=!1,this.setIndexRecords()}setSources(t=[]){this.docs=t}setIndexRecords(t=[]){this.records=t}setKeys(t=[]){this.keys=t,this._keysMap={},t.forEach((n,o)=>{this._keysMap[n.id]=o})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,$n(this.docs[0])?this.docs.forEach((t,n)=>{this._addString(t,n)}):this.docs.forEach((t,n)=>{this._addObject(t,n)}),this.norm.clear())}add(t){const n=this.size();$n(t)?this._addString(t,n):this._addObject(t,n)}removeAt(t){this.records.splice(t,1);for(let n=t,o=this.size();n<o;n+=1)this.records[n].i-=1}getValueForItemAtKeyId(t,n){return t[this._keysMap[n]]}size(){return this.records.length}_addString(t,n){if(!Qt(t)||Ic(t))return;let o={v:t,i:n,n:this.norm.get(t)};this.records.push(o)}_addObject(t,n){let o={i:n,$:{}};this.keys.forEach((i,s)=>{let r=i.getFn?i.getFn(t):this.getFn(t,i.path);if(!!Qt(r)){if(qn(r)){let a=[];const l=[{nestedArrIndex:-1,value:r}];for(;l.length;){const{nestedArrIndex:u,value:f}=l.pop();if(!!Qt(f))if($n(f)&&!Ic(f)){let h={v:f,i:u,n:this.norm.get(f)};a.push(h)}else qn(f)&&f.forEach((h,g)=>{l.push({nestedArrIndex:g,value:h})})}o.$[s]=a}else if($n(r)&&!Ic(r)){let a={v:r,n:this.norm.get(r)};o.$[s]=a}}}),this.records.push(o)}toJSON(){return{keys:this.keys,records:this.records}}}function Im(e,t,{getFn:n=Re.getFn,fieldNormWeight:o=Re.fieldNormWeight}={}){const i=new Oc({getFn:n,fieldNormWeight:o});return i.setKeys(e.map(Am)),i.setSources(t),i.create(),i}function DL(e,{getFn:t=Re.getFn,fieldNormWeight:n=Re.fieldNormWeight}={}){const{keys:o,records:i}=e,s=new Oc({getFn:t,fieldNormWeight:n});return s.setKeys(o),s.setIndexRecords(i),s}function ba(e,{errors:t=0,currentLocation:n=0,expectedLocation:o=0,distance:i=Re.distance,ignoreLocation:s=Re.ignoreLocation}={}){const r=t/e.length;if(s)return r;const a=Math.abs(o-n);return i?r+a/i:a?1:r}function RL(e=[],t=Re.minMatchCharLength){let n=[],o=-1,i=-1,s=0;for(let r=e.length;s<r;s+=1){let a=e[s];a&&o===-1?o=s:!a&&o!==-1&&(i=s-1,i-o+1>=t&&n.push([o,i]),o=-1)}return e[s-1]&&s-o>=t&&n.push([o,s-1]),n}const Jo=32;function NL(e,t,n,{location:o=Re.location,distance:i=Re.distance,threshold:s=Re.threshold,findAllMatches:r=Re.findAllMatches,minMatchCharLength:a=Re.minMatchCharLength,includeMatches:l=Re.includeMatches,ignoreLocation:u=Re.ignoreLocation}={}){if(t.length>Jo)throw new Error(AL(Jo));const f=t.length,h=e.length,g=Math.max(0,Math.min(o,h));let b=s,_=g;const E=a>1||l,I=E?Array(h):[];let M;for(;(M=e.indexOf(t,_))>-1;){let Z=ba(t,{currentLocation:M,expectedLocation:g,distance:i,ignoreLocation:u});if(b=Math.min(Z,b),_=M+f,E){let ce=0;for(;ce<f;)I[M+ce]=1,ce+=1}}_=-1;let P=[],T=1,H=f+h;const ie=1<<f-1;for(let Z=0;Z<f;Z+=1){let ce=0,ye=H;for(;ce<ye;)ba(t,{errors:Z,currentLocation:g+ye,expectedLocation:g,distance:i,ignoreLocation:u})<=b?ce=ye:H=ye,ye=Math.floor((H-ce)/2+ce);H=ye;let Ie=Math.max(1,g-ye+1),be=r?h:Math.min(g+ye,h)+f,O=Array(be+2);O[be+1]=(1<<Z)-1;for(let Q=be;Q>=Ie;Q-=1){let Ee=Q-1,D=n[e.charAt(Ee)];if(E&&(I[Ee]=+!!D),O[Q]=(O[Q+1]<<1|1)&D,Z&&(O[Q]|=(P[Q+1]|P[Q])<<1|1|P[Q+1]),O[Q]&ie&&(T=ba(t,{errors:Z,currentLocation:Ee,expectedLocation:g,distance:i,ignoreLocation:u}),T<=b)){if(b=T,_=Ee,_<=g)break;Ie=Math.max(1,2*g-_)}}if(ba(t,{errors:Z+1,currentLocation:g,expectedLocation:g,distance:i,ignoreLocation:u})>b)break;P=O}const U={isMatch:_>=0,score:Math.max(.001,T)};if(E){const Z=RL(I,a);Z.length?l&&(U.indices=Z):U.isMatch=!1}return U}function BL(e){let t={};for(let n=0,o=e.length;n<o;n+=1){const i=e.charAt(n);t[i]=(t[i]||0)|1<<o-n-1}return t}class Tm{constructor(t,{location:n=Re.location,threshold:o=Re.threshold,distance:i=Re.distance,includeMatches:s=Re.includeMatches,findAllMatches:r=Re.findAllMatches,minMatchCharLength:a=Re.minMatchCharLength,isCaseSensitive:l=Re.isCaseSensitive,ignoreLocation:u=Re.ignoreLocation}={}){if(this.options={location:n,threshold:o,distance:i,includeMatches:s,findAllMatches:r,minMatchCharLength:a,isCaseSensitive:l,ignoreLocation:u},this.pattern=l?t:t.toLowerCase(),this.chunks=[],!this.pattern.length)return;const f=(g,b)=>{this.chunks.push({pattern:g,alphabet:BL(g),startIndex:b})},h=this.pattern.length;if(h>Jo){let g=0;const b=h%Jo,_=h-b;for(;g<_;)f(this.pattern.substr(g,Jo),g),g+=Jo;if(b){const E=h-Jo;f(this.pattern.substr(E),E)}}else f(this.pattern,0)}searchIn(t){const{isCaseSensitive:n,includeMatches:o}=this.options;if(n||(t=t.toLowerCase()),this.pattern===t){let _={isMatch:!0,score:0};return o&&(_.indices=[[0,t.length-1]]),_}const{location:i,distance:s,threshold:r,findAllMatches:a,minMatchCharLength:l,ignoreLocation:u}=this.options;let f=[],h=0,g=!1;this.chunks.forEach(({pattern:_,alphabet:E,startIndex:I})=>{const{isMatch:M,score:P,indices:T}=NL(t,_,E,{location:i+I,distance:s,threshold:r,findAllMatches:a,minMatchCharLength:l,includeMatches:o,ignoreLocation:u});M&&(g=!0),h+=P,M&&T&&(f=[...f,...T])});let b={isMatch:g,score:g?h/this.chunks.length:1};return g&&o&&(b.indices=f),b}}class wo{constructor(t){this.pattern=t}static isMultiMatch(t){return Om(t,this.multiRegex)}static isSingleMatch(t){return Om(t,this.singleRegex)}search(){}}function Om(e,t){const n=e.match(t);return n?n[1]:null}class FL extends wo{constructor(t){super(t)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(t){const n=t===this.pattern;return{isMatch:n,score:n?0:1,indices:[0,this.pattern.length-1]}}}class UL extends wo{constructor(t){super(t)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(t){const o=t.indexOf(this.pattern)===-1;return{isMatch:o,score:o?0:1,indices:[0,t.length-1]}}}class jL extends wo{constructor(t){super(t)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(t){const n=t.startsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,this.pattern.length-1]}}}class HL extends wo{constructor(t){super(t)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(t){const n=!t.startsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}}class qL extends wo{constructor(t){super(t)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(t){const n=t.endsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[t.length-this.pattern.length,t.length-1]}}}class zL extends wo{constructor(t){super(t)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(t){const n=!t.endsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}}class Lm extends wo{constructor(t,{location:n=Re.location,threshold:o=Re.threshold,distance:i=Re.distance,includeMatches:s=Re.includeMatches,findAllMatches:r=Re.findAllMatches,minMatchCharLength:a=Re.minMatchCharLength,isCaseSensitive:l=Re.isCaseSensitive,ignoreLocation:u=Re.ignoreLocation}={}){super(t),this._bitapSearch=new Tm(t,{location:n,threshold:o,distance:i,includeMatches:s,findAllMatches:r,minMatchCharLength:a,isCaseSensitive:l,ignoreLocation:u})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(t){return this._bitapSearch.searchIn(t)}}class Mm extends wo{constructor(t){super(t)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(t){let n=0,o;const i=[],s=this.pattern.length;for(;(o=t.indexOf(this.pattern,n))>-1;)n=o+s,i.push([o,n-1]);const r=!!i.length;return{isMatch:r,score:r?0:1,indices:i}}}const Lc=[FL,Mm,jL,HL,zL,qL,UL,Lm],Dm=Lc.length,VL=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,WL="|";function KL(e,t={}){return e.split(WL).map(n=>{let o=n.trim().split(VL).filter(s=>s&&!!s.trim()),i=[];for(let s=0,r=o.length;s<r;s+=1){const a=o[s];let l=!1,u=-1;for(;!l&&++u<Dm;){const f=Lc[u];let h=f.isMultiMatch(a);h&&(i.push(new f(h,t)),l=!0)}if(!l)for(u=-1;++u<Dm;){const f=Lc[u];let h=f.isSingleMatch(a);if(h){i.push(new f(h,t));break}}}return i})}const GL=new Set([Lm.type,Mm.type]);class YL{constructor(t,{isCaseSensitive:n=Re.isCaseSensitive,includeMatches:o=Re.includeMatches,minMatchCharLength:i=Re.minMatchCharLength,ignoreLocation:s=Re.ignoreLocation,findAllMatches:r=Re.findAllMatches,location:a=Re.location,threshold:l=Re.threshold,distance:u=Re.distance}={}){this.query=null,this.options={isCaseSensitive:n,includeMatches:o,minMatchCharLength:i,findAllMatches:r,ignoreLocation:s,location:a,threshold:l,distance:u},this.pattern=n?t:t.toLowerCase(),this.query=KL(this.pattern,this.options)}static condition(t,n){return n.useExtendedSearch}searchIn(t){const n=this.query;if(!n)return{isMatch:!1,score:1};const{includeMatches:o,isCaseSensitive:i}=this.options;t=i?t:t.toLowerCase();let s=0,r=[],a=0;for(let l=0,u=n.length;l<u;l+=1){const f=n[l];r.length=0,s=0;for(let h=0,g=f.length;h<g;h+=1){const b=f[h],{isMatch:_,indices:E,score:I}=b.search(t);if(_){if(s+=1,a+=I,o){const M=b.constructor.type;GL.has(M)?r=[...r,...E]:r.push(E)}}else{a=0,s=0,r.length=0;break}}if(s){let h={isMatch:!0,score:a/s};return o&&(h.indices=r),h}}return{isMatch:!1,score:1}}}const Mc=[];function JL(...e){Mc.push(...e)}function Dc(e,t){for(let n=0,o=Mc.length;n<o;n+=1){let i=Mc[n];if(i.condition(e,t))return new i(e,t)}return new Tm(e,t)}const _a={AND:"$and",OR:"$or"},Rc={PATH:"$path",PATTERN:"$val"},Nc=e=>!!(e[_a.AND]||e[_a.OR]),QL=e=>!!e[Rc.PATH],XL=e=>!qn(e)&&Em(e)&&!Nc(e),Rm=e=>({[_a.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function Nm(e,t,{auto:n=!0}={}){const o=i=>{let s=Object.keys(i);const r=QL(i);if(!r&&s.length>1&&!Nc(i))return o(Rm(i));if(XL(i)){const l=r?i[Rc.PATH]:s[0],u=r?i[Rc.PATTERN]:i[l];if(!$n(u))throw new Error(SL(l));const f={keyId:Tc(l),pattern:u};return n&&(f.searcher=Dc(u,t)),f}let a={children:[],operator:s[0]};return s.forEach(l=>{const u=i[l];qn(u)&&u.forEach(f=>{a.children.push(o(f))})}),a};return Nc(e)||(e=Rm(e)),o(e)}function ZL(e,{ignoreFieldNorm:t=Re.ignoreFieldNorm}){e.forEach(n=>{let o=1;n.matches.forEach(({key:i,norm:s,score:r})=>{const a=i?i.weight:null;o*=Math.pow(r===0&&a?Number.EPSILON:r,(a||1)*(t?1:s))}),n.score=o})}function eM(e,t){const n=e.matches;t.matches=[],Qt(n)&&n.forEach(o=>{if(!Qt(o.indices)||!o.indices.length)return;const{indices:i,value:s}=o;let r={indices:i,value:s};o.key&&(r.key=o.key.src),o.idx>-1&&(r.refIndex=o.idx),t.matches.push(r)})}function tM(e,t){t.score=e.score}function nM(e,t,{includeMatches:n=Re.includeMatches,includeScore:o=Re.includeScore}={}){const i=[];return n&&i.push(eM),o&&i.push(tM),e.map(s=>{const{idx:r}=s,a={item:t[r],refIndex:r};return i.length&&i.forEach(l=>{l(s,a)}),a})}class Pi{constructor(t,n={},o){this.options={...Re,...n},this.options.useExtendedSearch,this._keyStore=new TL(this.options.keys),this.setCollection(t,o)}setCollection(t,n){if(this._docs=t,n&&!(n instanceof Oc))throw new Error(kL);this._myIndex=n||Im(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(t){!Qt(t)||(this._docs.push(t),this._myIndex.add(t))}remove(t=()=>!1){const n=[];for(let o=0,i=this._docs.length;o<i;o+=1){const s=this._docs[o];t(s,o)&&(this.removeAt(o),o-=1,i-=1,n.push(s))}return n}removeAt(t){this._docs.splice(t,1),this._myIndex.removeAt(t)}getIndex(){return this._myIndex}search(t,{limit:n=-1}={}){const{includeMatches:o,includeScore:i,shouldSort:s,sortFn:r,ignoreFieldNorm:a}=this.options;let l=$n(t)?$n(this._docs[0])?this._searchStringList(t):this._searchObjectList(t):this._searchLogical(t);return ZL(l,{ignoreFieldNorm:a}),s&&l.sort(r),$m(n)&&n>-1&&(l=l.slice(0,n)),nM(l,this._docs,{includeMatches:o,includeScore:i})}_searchStringList(t){const n=Dc(t,this.options),{records:o}=this._myIndex,i=[];return o.forEach(({v:s,i:r,n:a})=>{if(!Qt(s))return;const{isMatch:l,score:u,indices:f}=n.searchIn(s);l&&i.push({item:s,idx:r,matches:[{score:u,value:s,norm:a,indices:f}]})}),i}_searchLogical(t){const n=Nm(t,this.options),o=(a,l,u)=>{if(!a.children){const{keyId:h,searcher:g}=a,b=this._findMatches({key:this._keyStore.get(h),value:this._myIndex.getValueForItemAtKeyId(l,h),searcher:g});return b&&b.length?[{idx:u,item:l,matches:b}]:[]}const f=[];for(let h=0,g=a.children.length;h<g;h+=1){const b=a.children[h],_=o(b,l,u);if(_.length)f.push(..._);else if(a.operator===_a.AND)return[]}return f},i=this._myIndex.records,s={},r=[];return i.forEach(({$:a,i:l})=>{if(Qt(a)){let u=o(n,a,l);u.length&&(s[l]||(s[l]={idx:l,item:a,matches:[]},r.push(s[l])),u.forEach(({matches:f})=>{s[l].matches.push(...f)}))}}),r}_searchObjectList(t){const n=Dc(t,this.options),{keys:o,records:i}=this._myIndex,s=[];return i.forEach(({$:r,i:a})=>{if(!Qt(r))return;let l=[];o.forEach((u,f)=>{l.push(...this._findMatches({key:u,value:r[f],searcher:n}))}),l.length&&s.push({idx:a,item:r,matches:l})}),s}_findMatches({key:t,value:n,searcher:o}){if(!Qt(n))return[];let i=[];if(qn(n))n.forEach(({v:s,i:r,n:a})=>{if(!Qt(s))return;const{isMatch:l,score:u,indices:f}=o.searchIn(s);l&&i.push({score:u,key:t,value:s,idx:r,norm:a,indices:f})});else{const{v:s,n:r}=n,{isMatch:a,score:l,indices:u}=o.searchIn(s);a&&i.push({score:l,key:t,value:s,norm:r,indices:u})}return i}}Pi.version="7.0.0",Pi.createIndex=Im,Pi.parseIndex=DL,Pi.config=Re,Pi.parseQuery=Nm,JL(YL);const oM={class:"ce-goto-input-wrap"},iM=["disabled"],sM=["disabled"],rM={class:"ce-goto-sug"},aM=["onMousedown","sid"],lM={class:"ce-goto-sug-index"},cM={class:"ce-goto-sug-prefix"},uM=c("span",{class:"ce-goto-sep"},"/",-1),dM={class:"ce-goto-sug-name"},fM=Ne({__name:"GotoPath",setup(e){const t=de(!1),n=de(!1),o=de(null),i=de(null),s=de(""),r=de([]),a=de(!1),l=xn(()=>s.value.trim().length>0);let u="";Ot(async()=>{var O;t.value=!0,(O=i.value)==null||O.focus(),window.addEventListener("message",async ae=>{if(ae.data.event===ct.listRendered){const Ee=await Ct(!1);Ee!==u&&(r.value=[],await Z(!1)),u=Ee}})});async function f(O){if(console.log("[handleKeydown]",O.key),Kd(O),O.key==="Enter"){H.value>-1?ye():await Ie(s.value);return}if(O.key==="Escape"){await be();return}["ArrowUp","ArrowDown"].includes(O.key)?ie(O):h(O)}const h=Ft(async O=>{g()},200);async function g(){try{r.value=[],await Z(!1);const O={keyword:"",parentId:await Ct(!1),parentPath:await sl(),isSubOfCurrent:!0};console.log("[getSug] searchData:",O);const ae=await P(O,!1);if(console.log("[searchData] items:",ae),!ae.length){re({icon:"warning",text:"没有匹配的建议",timer:1500,position:"top-right"});return}const Q=await b(ae,O);console.log("[searchData] sugs:",Q),r.value=Q,H.value=-1,await Z(Q.length>0)}catch(O){console.warn(O),await Z(!1),re({icon:"error",text:O.toString(),timer:2e3,position:"top-right"})}}async function b(O,ae){const Q=[];for(let N=0;N<O.length;N++){const we=O[N];Q.push({id:we.id,prefix:ae.parentPath==="/"?"":ae.parentPath,name:we.name,active:!1})}const Ee=s.value.trim();if(!Ee)return Q;const D=/^(\.\/)?[^\/]+/.test(Ee),K=il(Ee,"../");if(console.log("[toSug] isSubOfCurrent:",D,"kwParentPath:",K),D||K===ae.parentPath){const N=new Pi(Q,{keys:["name"],threshold:.6,includeScore:!0});let we=Ee;if(K===ae.parentPath){const he=Ee.split(/[\\/]/).filter(Boolean);we=he[he.length-1]}const Ae=N.search(we);console.log("[toSug] fuse res:",Ae);let De=!1;return Ae.forEach(he=>{he.score===void 0?(console.warn("[toSug] r.score is undefined:",he),De=!0,he.score=0):he.score!==void 0&&isNaN(he.score)&&(console.warn("[toSug] r.score is NaN:",he),De=!0,he.score=0)}),De&&Ae.sort((he,ue)=>he.score-ue.score),Ae.map(he=>he.item)}return Q}const _=new Map,E=new Map;async function I(O){return _.get(O)||!1}async function M(O,ae){_.set(O,ae)}async function P(O,ae){const Q=E.get(O.parentPath);if(Q)return console.log(`[getSubDirs] path "${O.parentPath}" is cached`),Q.items;if(await I(O.parentPath))return console.warn(`[getSubDirs] path "${O.parentPath}" is loading`),[];await M(O.parentPath,!0);try{const Ee=Gn({cid:O.parentId,limit:1150,show_dir:Ia.true}),D=await Dd(Ee);if(!D.count)return[];const K=[];for(let N=0;N<D.data.length;N++){const we=await Vi(D.data[N]);if(we.isDir)K.push(we);else if(ae)break}return E.set(O.parentPath,{count:K.length,dirPath:O.parentPath,dirId:O.parentId,items:K}),K}catch(Ee){console.warn(Ee)}finally{await M(O.parentPath,!1)}return[]}async function T(O,ae){console.log("[handleSugClick]",O,ae);const Q=Qs([O.prefix,O.name]);console.log("[handleSugClick] path:",Q),await Ie(Q)}const H=de(-1);async function ie(O){var D;console.log("[navigateSug]",O.key),O.preventDefault(),O.stopPropagation();let ae=H.value;if(O.key==="ArrowUp")ae--;else if(O.key==="ArrowDown")ae++;else if(O.key==="Enter"){const K=r.value[H.value];K&&await T(K,O);return}else return;ae<0?ae=0:ae>=r.value.length&&(ae=r.value.length-1),H.value=ae,r.value.forEach((K,N)=>{K.active=N===ae});const Q=r.value[ae];if(!Q)return;const Ee=(D=o.value)==null?void 0:D.querySelector(`[sid="${Q.id}"]`);Ee==null||Ee.scrollIntoView()}async function U(){var O;s.value="",(O=i.value)==null||O.focus(),await g()}async function Z(O){var ae;a.value=O,O&&((ae=i.value)==null||ae.focus())}async function ce(O){if(Nb(O))return"0";const ae=await sl();return O=Xs(O,Qn.unix),O=il(ae,O,Qn.unix),await ci(O)}async function ye(){const O=r.value[H.value];if(!O)return;const ae=Qs([O.prefix,O.name],Qn.unix);console.log("[gotoByCurrentSug] path:",ae),await Ie(ae)}async function Ie(O){var ae;if(!n.value){O=O.trim(),re({text:"正在获取路径信息...",timer:0,position:"top-right"}),pe.showLoading(),n.value=!0;try{const Q=await ce(O);unsafeWindow.Main.GotoDir(1,Q,0,""),re({icon:"success",text:"获取路径信息成功,现在打开...",timer:1e3,position:"top-right"}),(ae=i.value)==null||ae.focus(),r.value=[],H.value=-1}catch(Q){pe.fire({icon:"error",title:"跳转失败",text:Q.message})}finally{pe.hideLoading(),n.value=!1}}}async function be(){if(H.value>-1)r.value.forEach(O=>O.active=!1),H.value=-1,await Z(!1);else{const O=document.querySelector("#ceGotoPathApp");O==null||O.style.setProperty("display","none");const ae=document.querySelector(".ce-goto-path-active");ae==null||ae.classList.remove("ce-goto-path-active"),t.value=!1}}return(O,ae)=>(B(),z("div",{ref_key:"refMain",ref:o,class:Je(["ce-goto-main",{"ce-goto-sug-shown":a.value}])},[c("div",oM,[G(c("input",{ref_key:"refInput",ref:i,"onUpdate:modelValue":ae[0]||(ae[0]=Q=>s.value=Q),class:"ce-goto-input",placeholder:"回车确认跳转 | Esc关闭 | 可搜索当前目录的子目录显示下拉列表,上下方向键选择",onKeydown:f},null,544),[[Ve,s.value]]),c("button",{type:"button",class:"ce-goto-input-btn","data-cmd":"clear",onClick:U,title:"清空输入框",disabled:!fe(l)},"清空",8,iM),c("button",{type:"button",class:"ce-goto-input-btn","data-cmd":"toggle",onClick:ae[1]||(ae[1]=Q=>Z(!1)),title:"收起建议列表",disabled:!a.value},"收起",8,sM)]),c("div",rM,[(B(!0),z(Ue,null,st(r.value,(Q,Ee)=>(B(),z("div",{key:Ee,class:Je(["ce-goto-sug-item",{active:Q.active}]),onMousedown:M0(D=>T(Q,D),["left","stop","prevent"]),sid:Q.id},[c("span",lM,ge(Ee+1),1),c("span",cM,ge(Q.prefix),1),uM,c("span",dM,ge(Q.name),1)],42,aM))),128))])],2))}}),DN="";async function pM(){const e=await Vr(),{host:t,search:n}=location;!/115\.com$/.test(t)||(console.log("[List] running...",e),(n.includes("ct=file")||n.includes("mode=search"))&&sx(),mM(e),hM(e),setTimeout(async()=>{await wM(),bM(e),_M(e)},2e3))}async function hM(e){const{fileSelectorDefaultView:t}=e;t&&(console.log("[setSelectorView]",t),unsafeWindow.localStorage.setItem("FS_view",t))}async function mM(e){const{host:t,search:n}=location;if(!n.includes("ct=file"))return;const o=await kn("#js_top_header_file_path_box");e.showGotoButtonOnPathBar&&yM(e,o),e.showCopyButtonOnPathBar&&gM(e,o)}async function gM(e,t){const n="ceCopyPath";let o=t.querySelector(`#${n}`);const i=async()=>{const r=await sl();an(r),re({icon:"success",text:"路径已复制",timer:1e3,position:"top-right"})};o||(o=await(async()=>{const r=document.createElement("button");return r.className="pure-button button-mini ce-path-btn",r.id=n,r.title="复制路径",r.innerHTML="<span>复制</span>",r.addEventListener("click",i),r})(),t.prepend(o))}async function yM(e,t){const n=t.querySelector(".top-file-path"),o="ceGotoPath";let i=t.querySelector(`#${o}`);const s=Cn(fM),r="ceGotoPathApp",a=async()=>{await l()},l=async()=>{if(t.classList.toggle("ce-goto-path-active"),t.classList.contains("ce-goto-path-active"))await u();else{const g=t.querySelector(`#${r}`);g&&(g.style.display="none")}},u=async()=>{let g=t.querySelector(`#${r}`);g||(g=await h(),n.after(g)),g.querySelector(".ce-goto-main")?setTimeout(()=>{const _=document.querySelector(".ce-goto-input");_==null||_.focus()},200):s.mount(g),g.style.display="block"},f=async()=>{const g=document.createElement("button");return g.className="pure-button button-mini ce-path-btn text-primary",g.id=o,g.title=`
      【这是一个实验功能】
      跳转到指定路径。使用:
      - 空白、单个斜杠: 根目录
      - 相对路径1: 开头不带斜杠,当前目录下的子路径
      - 相对路径2: 开头带有../,当前目录的上级目录,可以多级
      - 绝对路径: 开头带有斜杠,从根目录开始的路径

      斜杠风格不限,支持模糊搜索当前目录的子目录。
      回车键跳转,Esc键关闭输入框。`,g.innerHTML="<span>跳转</span>",g.addEventListener("click",a),g},h=async()=>{const g=document.createElement("div");return g.id=r,g.style.width="50%",g};i||(i=await f(),t.prepend(i))}async function wM(){if(window!==window.top)return;async function e(t){var o,i;const n=en();n&&((i=(o=n.Core)==null?void 0:o.FileConfig)==null?void 0:i.DataAPI)&&t(!0)}try{return await Kn(e,250,3e4)}catch(t){throw new Error(`awaitDataAPI failed:${t.toString()}`)}}async function bM(e){if(!e.noUpdateDirAfterRename||window!==window.top)return;let t=!0,n="",o=!1;const i=en(),s=Core.FileReNameDG.Show,r=i.Core.Dir.Rename,a=i.Core.FileConfig.DataAPI.UpdateDir;i.Core.FileReNameDG.Show=async(...l)=>{n=l[0],o=!0,s(...l)},i.Core.Dir.Rename=async(...l)=>{n=l[1],o=!1,r(...l)},i.Core.FileConfig.DataAPI.UpdateDir=async l=>{if(t){const u=await Wi();let f=`li[file_id="${n}"]`;o||(f=`li[cate_id="${n}"]`);const h=u.find(f);if(h.length){if(h.hasClass("ce-temp-cur-dir")){console.warn("[list handleNoUpdateDirAfterRename] $file is ce-temp-cur-dir"),re({icon:"warning",text:"重命名的是当前目录,忽略「重命名后不刷新列表」选项"}),a(l);return}if(re({icon:"info",text:"启用了「重命名后不刷新列表」选项,不会刷新文件列表"}),h.find(".file-modified span").text("刚刚"),!o){const g=await At(n),{file_name:b}=g;h.attr("cate_name",b),h.attr("title",b);const _=h.find(".file-name a.name");_.length?(_.attr("title",b).text(b),_.text(b)):console.warn("[list handleNoUpdateDirAfterRename] $name not found")}}else console.warn("[list handleNoUpdateDirAfterRename] $file not found")}else a(l)},window.addEventListener("message",async l=>{var f;if(l.data.event===ct.topDomChanged){const h=document.querySelector("div.dialog-box.window-current > div.dialog-header > h3");if(h&&((f=h.textContent)==null?void 0:f.includes("重命名"))){const g=document.querySelector("div.dialog-box.window-current .file-rename");if(!g){console.warn("[list handleNoUpdateDirAfterRename] .file-rename not found");return}const b=document.createElement("div"),_=`
          <div style="padding: 0px 20px;">
            <label style="font-size: 18px; color: #1890ff;">
              <input id="cbNoUpdateDir" type="checkbox" style="width: 22px; height: 22px; vertical-align: sub;"> 重命名后不刷新列表
            </label>
            <p style="font-size: 12px; color: #ff4949;">在使用当前目录增强菜单项「重命名文件夹」时会忽略该选项。</p>
          </div>`;b.innerHTML=_,g.insertAdjacentElement("afterend",b);const E=document.querySelector("#cbNoUpdateDir");E&&(E.checked=t,E.addEventListener("change",()=>{t=E.checked}))}}})}async function _M(e){if(!e.noReloadAfterMove||window!==window.top)return;let t=!0,n=[];const o=en(),i=o.Core.FileMenu.DoEvent,s=o.Core.FileConfig.DataAPI.Reload;o.Core.FileConfig.DataAPI.Reload=async(...r)=>{if(t){re({icon:"info",text:"启用了「移动后不刷新文本列表」选项,不会刷新文件列表"});for(let a=0;a<n.length;a++)Yd(n[a][0])}else s(...r)},o.Core.FileMenu.DoEvent=async(...r)=>{n=r[0],i(...r)},window.addEventListener("message",async r=>{var l;if(r.data.event===ct.topDomChanged){const u=document.querySelector("div.dialog-box.window-current > div.dialog-header > h3");if(u&&((l=u.textContent)==null?void 0:l.includes("打开要移动"))){const f=document.querySelector("div.dialog-box.window-current .select-footer");if(!f){console.warn("[list handleNoUpdateDirAfterMove] .select-footer not found");return}let h=document.querySelector("#cbNoReload");if(!h){const g=document.createElement("div"),b=`
            <div style="padding: 6px 30px 0px;">
              <label style="font-size: 18px; color: #1890ff;">
                <input id="cbNoReload" type="checkbox" style="width: 22px; height: 22px; vertical-align: sub;"> 移动后不刷新列表
              </label>
              <p style="font-size: 14px; color: #ff4949;">启用该功能并且执行过移动操作后,会影响列表的全选功能,此时如需全选,请先手动刷新列表!</p>
            </div>`;g.innerHTML=b,f.insertAdjacentElement("afterend",g),h=document.querySelector("#cbNoReload"),h&&(h.checked=t,h.addEventListener("change",()=>{t=h.checked}))}}}})}const RN="";async function vM(){const e=await mm();!await al()||(console.log("[Search] running...",e),$M(),xM(e))}async function xM(e){const t=await kn(".top-file-path");e.showSelectTargetButtonOnPathBar&&CM(e,t)}async function CM(e,t){console.log("[showSelectTargetButtonOnPathBar]");const n="ce-btn-select";let o=t.querySelector(`.${n}`);const i=async()=>{unsafeWindow.parent.Core.FileSelectDG.Open((r,a)=>{console.log("[Core.FileSelectDG.Open]",r,a);const l=r[r.length-1],u=document.createElement("a");u.href="javascript:;",u.className="dir-tab",u.textContent=l.cname,u.style.display="none",u.setAttribute("search_btn_file",l.cid),t.querySelector(".file-path").append(u),u.click()},{select:1,nf:1,show_record:0,show_copy:1,btn_txt:"在该目录下搜索",select_txt:"搜索"})};o||(o=await(async()=>{const r=document.createElement("a");return r.className=`dir-tab ${n}`,r.href="javascript:;",r.title="选择目录",r.textContent="选择目录",r.addEventListener("click",i),r})(),t.append(o))}async function $M(e){document.body.classList.add("ce-search-page"),parent.document.body.classList.add("ce-search-page")}const NN="";async function EM(){console.log("[Tools] running...")}const BN="";async function kM(){const{host:e,search:t}=location;if(!e.includes("anxia.com"))return;console.log("[anxia] run");const n=await _m();AM(n),PM(n),SM()}async function SM(e){const t=async o=>{const i=document.createElement("li");i.setAttribute("pickcode",o.pickCode),i.setAttribute("style","padding:0px;");const s=document.createElement("a");return s.href="/?hls=1&pickcode="+o.pickCode,s.setAttribute("style","height:auto;text-decoration:none;padding:5px 0 5px 5px;"),s.setAttribute("title",o.name),s.innerHTML='<span style="word-break:break-all">'+o.name+"</span>",i.appendChild(s),i};let n="";window.addEventListener("message",async o=>{if(o.data.event==="play"){const i=await kn("ul#js-video_list"),s=o.data.body.id;if(n&&n===s)if(i.childElementCount){console.log(`[playSelected] same id: ${s} 但是播放列表已经渲染过了,忽略`);return}else console.warn(`[playSelected] same id: ${s} 但是播放列表为空,将会进行渲染`);n=s;const r=o.data.body.files;console.log(`[playSelected] id: ${s}, files: `,r);const a=await Promise.all(r.map(t));i==null||i.append(...a);const l=document.querySelector(".video-playlist .vpl-container");l&&(l.style.display="block");const u=i==null?void 0:i.querySelector("a");u==null||u.click();const f=document.querySelector("#js-video_container");f&&f.classList.remove("video-container-nolist")}})}async function AM(e){if(!e.defaultWebFull)return;const t=await kn('[rel="web_fullscreen"]');t.querySelector('[rel="tooltips"]').innerText==="网页全屏"&&t.click()}async function PM(e){if(!e.defaultOpenPlayList)return;const t=await kn("a#js_pl_control_expand");t.querySelector('[rel="tooltips"]').innerText==="展开播放列表"&&t.click()}function IM(e,t,n,o){return e<t||e>n?o:e}location.host==="115.com"&&(window.COMMONHEADERUSERINFO=window.COMMONHEADERUSERINFO||{}),(async()=>{console.log("Cloud115 Enhancer launched!");const e=await ma(),t=Pd({rateLimit:{...Ad,duration:1,points:IM(e.qps,1,9,4)}}),n=Id(t);await vb(n),jx(),KE(),PS(),qS(),pM(),vM(),EM(),kM(),pL()})()})();