// ==UserScript== // @name 爱问答助手 // @namespace aiask/askHelper // @version 1.2.3 // @author aiask // @description 全平台问答助手,一键获取整个页面的试题答案,目前支持【超星学习通、知到智慧树、国开、广开、江开、上开、芯位教育、云慕学苑、职教云、川农在线、长江雨课堂(半兼容)、安徽继续教育平台、青书学堂、睿学在线、成教云、京人平台、绎通继教云、】,更多平台开发中... // @license MIT // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAAXNSR0IArs4c6QAAAHVQTFRFR3BMgICBQD8/QUVHQ0ZIRUhKX2FiQD8/Tk1NP0VJPzs7Pz8/QD4+UE9QQD8/PVlnQD8/M6vj////n5+fN5C60NDQSl9qOXWSZL/qTFNXzOr4QWl8yMjItLS02traOIOnNZzN6OfnlJeZ9/f3PYGgpdrzmdXxgSBJqQAAABB0Uk5TAP5E6vys+7/Q0RhsfPFV/OwFarYAAAEESURBVHjapdHrboMgGIBhUHBaD/sAlTE8VOt2/5c4GlBMRZOl7w8j+kQQ0FaVwbG48IDq+piMPcgkO1bD/8DXvhD4/fb9ePDuGiqa2krV7pO1AxSLYIl2ABoeTLSvYMBi4N0sphOAlVaqg1aTPggmZYYaFvNMBYGQz6G6m2vbhEBvF81MxALFTDpbQQd3ZhvBgxqiFfBEO/CJ7ZxkNPcUbWBwn5DJw4KSsJHcHPCTLLDuQxpLkiMLbAIWJs1wBRVkyAFXT7Sa+AYQjTywNfOD74DNA18I9Ifjpg7Es/3Jj5eKyIEcBgNwhk5L8XMPonMQQcfNhBfRpIfbFbiRskCX5enFyz/07TSN9vGxKwAAAABJRU5ErkJggg== // @match *://*.asklib.com/* // @match *://*.chaoxing.com/* // @match *://*.hlju.edu.cn/* // @match *://lms.ouchn.cn/* // @match *://xczxzdbf.moodle.qwbx.ouchn.cn/* // @match *://tongyi.aliyun.com/qianwen/* // @match *://chatglm.cn/* // @match *://*.zhihuishu.com/* // @match *://course.ougd.cn/* // @match *://moodle.syxy.ouchn.cn/* // @match *://moodle.qwbx.ouchn.cn/* // @match *://elearning.bjou.edu.cn/* // @match *://whkpc.hnqtyq.cn:5678/* // @match *://study.ouchn.cn/* // @match *://www.51xinwei.com/* // @match *://*.w-ling.cn/* // @match *://xuexi.jsou.cn/* // @match *://*.edu-edu.com/* // @match *://xuexi.jsou.cn/* // @match *://spoc-exam.icve.com.cn/* // @match *://*.icve.com.cn/* // @match *://zice.cnzx.info/* // @match *://any.cnzx.info:81/* // @match *://www.icourse163.org/* // @match *://*.yuketang.cn/* // @match *://*.shou.org.cn/* // @match *://main.ahjxjy.cn/* // @match *://exam.chinaedu.net/* // @match *://degree.qingshuxuetang.com/* // @match *://cce.org.uooconline.com/* // @match *://*.courshare.cn/* // @match *://*.cep.webtrn.cn/* // @match *://*.webtrn.cn/* // @match *://*.cj-edu.com/* // @match *://*.ytccr.com/* // @require https://cdn.bootcdn.net/ajax/libs/vue/3.4.21/vue.global.prod.js // @require https://cdn.bootcdn.net/ajax/libs/vue-demi/0.14.6/index.iife.js // @require data:application/javascript,%3Bwindow.Vue%3DVue%3B // @require https://cdn.bootcdn.net/ajax/libs/element-plus/2.6.3/index.full.min.js // @require https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js // @require https://cdn.bootcdn.net/ajax/libs/highlight.js/11.9.0/highlight.min.js // @require https://cdn.bootcdn.net/ajax/libs/markdown-it/13.0.1/markdown-it.min.js // @require https://cdn.bootcdn.net/ajax/libs/dompurify/3.0.11/purify.min.js // @resource ttf https://www.forestpolice.org/ttf/2.0/table.json // @resource ttf2 https://cdn.jsdmirror.com/gh/chengbianruan/staticfile/1.json // @connect 127.0.0.1 // @connect icodef.com // @connect muketool.com // @connect wk66.top // @connect 82.157.105.20 // @connect tikuhai.com // @connect zhihuishu.com // @connect yuketang.cn // @connect greasyfork.org // @grant GM_addStyle // @grant GM_deleteValue // @grant GM_getResourceText // @grant GM_getValue // @grant GM_info // @grant GM_listValues // @grant GM_setValue // @grant GM_xmlhttpRequest // @grant unsafeWindow // @run-at document-start // @antifeature payment 第三方接口存在付费项 // @downloadURL none // ==/UserScript== (a=>{if(typeof GM_addStyle=="function"){GM_addStyle(a);return}const o=document.createElement("style");o.textContent=a,document.head.append(o)})(` @charset "UTF-8";button[data-v-dd8b0264]{margin:10px}.aah_plat span[data-v-dd8b0264]{margin:5px}.el-row{margin-bottom:20px}.el-row:last-child{margin-bottom:0}.el-col{border-radius:4px}.grid-content{border-radius:4px;min-height:36px}.aah_btn{width:100%}.aah_active{box-shadow:0 0 5px #0af}.aah_password input{--el-input-inner-height: calc(var(--el-input-height, 32px) - 2px);background:none;border:none;box-sizing:border-box;color:var(--el-input-text-color, var(--el-text-color-regular));flex-grow:1;font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);outline:none;padding:0;width:100%;margin:auto}.el-input__inner{border:none!important;margin:auto;--el-input-inner-height: calc(var(--el-input-height, 32px) - 2px);background:none;border:none;box-sizing:border-box;color:var(--el-input-text-color, var(--el-text-color-regular));flex-grow:1;font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);outline:none;padding:0;width:100%}.aah_bomHet50{padding:13px 0 13px 10px}.aah_bomHet50 span{display:inline-block;line-height:24px;padding-left:14px;color:#a8a8b3}.aah_bomHet50 span i{display:inline-block;width:10px;height:10px;border:1px solid #DBDFE9;border-radius:2px;vertical-align:middle;margin-right:4px;margin-top:-2px}.aah_bomHet50 .dq i{background-color:#ecf5ff;box-shadow:0 0 5px #0af}.aah_bomHet50 .yp i{background-color:#f0f9eb;border-color:#409eff}.aah_bomHet50 .wp i{background-color:#fef0f0;border-color:#f56c6c}.aah_title img{max-width:100%;height:auto;overflow:hidden}.aah_title{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:10px}#AiAskApp .aah_wrapper>div{pointer-events:none}#AiAskApp .aah_wrapper>div>div{pointer-events:none}.aah-dialog{pointer-events:auto}@media (max-width: 600px){#AiAskApp .aah-scrollbar,#AiAskApp .aah-scrollbar__wrap{max-height:50vh!important}}@media (min-width: 601px){#AiAskApp .aah-scrollbar,#AiAskApp .aah-scrollbar__wrap{max-height:700px!important}}.minimized-dialog img{pointer-events:auto;width:50px!important;z-index:999;position:fixed;bottom:0;right:0}.aah_breadcrumb{margin-bottom:20px}:root{--aah-color-white: #ffffff;--aah-color-black: #000000;--aah-color-primary-rgb: 64, 158, 255;--aah-color-success-rgb: 103, 194, 58;--aah-color-warning-rgb: 230, 162, 60;--aah-color-danger-rgb: 245, 108, 108;--aah-color-error-rgb: 245, 108, 108;--aah-color-info-rgb: 144, 147, 153;--aah-font-size-extra-large: 20px;--aah-font-size-large: 18px;--aah-font-size-medium: 16px;--aah-font-size-base: 14px;--aah-font-size-small: 13px;--aah-font-size-extra-small: 12px;--aah-font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "\u5FAE\u8F6F\u96C5\u9ED1", Arial, sans-serif;--aah-font-weight-primary: 500;--aah-font-line-height-primary: 24px;--aah-index-normal: 1;--aah-index-top: 1000;--aah-index-popper: 2000;--aah-border-radius-base: 4px;--aah-border-radius-small: 2px;--aah-border-radius-round: 20px;--aah-border-radius-circle: 100%;--aah-transition-duration: .3s;--aah-transition-duration-fast: .2s;--aah-transition-function-ease-in-out-bezier: cubic-bezier(.645, .045, .355, 1);--aah-transition-function-fast-bezier: cubic-bezier(.23, 1, .32, 1);--aah-transition-all: all var(--aah-transition-duration) var(--aah-transition-function-ease-in-out-bezier);--aah-transition-fade: opacity var(--aah-transition-duration) var(--aah-transition-function-fast-bezier);--aah-transition-md-fade: transform var(--aah-transition-duration) var(--aah-transition-function-fast-bezier), opacity var(--aah-transition-duration) var(--aah-transition-function-fast-bezier);--aah-transition-fade-linear: opacity var(--aah-transition-duration-fast) linear;--aah-transition-border: border-color var(--aah-transition-duration-fast) var(--aah-transition-function-ease-in-out-bezier);--aah-transition-box-shadow: box-shadow var(--aah-transition-duration-fast) var(--aah-transition-function-ease-in-out-bezier);--aah-transition-color: color var(--aah-transition-duration-fast) var(--aah-transition-function-ease-in-out-bezier);--aah-component-size-large: 40px;--aah-component-size: 32px;--aah-component-size-small: 24px}:root{color-scheme:light;--aah-color-primary: #409eff;--aah-color-primary-light-3: #79bbff;--aah-color-primary-light-5: #a0cfff;--aah-color-primary-light-7: #c6e2ff;--aah-color-primary-light-8: #d9ecff;--aah-color-primary-light-9: #ecf5ff;--aah-color-primary-dark-2: #337ecc;--aah-color-success: #67c23a;--aah-color-success-light-3: #95d475;--aah-color-success-light-5: #b3e19d;--aah-color-success-light-7: #d1edc4;--aah-color-success-light-8: #e1f3d8;--aah-color-success-light-9: #f0f9eb;--aah-color-success-dark-2: #529b2e;--aah-color-warning: #e6a23c;--aah-color-warning-light-3: #eebe77;--aah-color-warning-light-5: #f3d19e;--aah-color-warning-light-7: #f8e3c5;--aah-color-warning-light-8: #faecd8;--aah-color-warning-light-9: #fdf6ec;--aah-color-warning-dark-2: #b88230;--aah-color-danger: #f56c6c;--aah-color-danger-light-3: #f89898;--aah-color-danger-light-5: #fab6b6;--aah-color-danger-light-7: #fcd3d3;--aah-color-danger-light-8: #fde2e2;--aah-color-danger-light-9: #fef0f0;--aah-color-danger-dark-2: #c45656;--aah-color-error: #f56c6c;--aah-color-error-light-3: #f89898;--aah-color-error-light-5: #fab6b6;--aah-color-error-light-7: #fcd3d3;--aah-color-error-light-8: #fde2e2;--aah-color-error-light-9: #fef0f0;--aah-color-error-dark-2: #c45656;--aah-color-info: #909399;--aah-color-info-light-3: #b1b3b8;--aah-color-info-light-5: #c8c9cc;--aah-color-info-light-7: #dedfe0;--aah-color-info-light-8: #e9e9eb;--aah-color-info-light-9: #f4f4f5;--aah-color-info-dark-2: #73767a;--aah-bg-color: #ffffff;--aah-bg-color-page: #f2f3f5;--aah-bg-color-overlay: #ffffff;--aah-text-color-primary: #303133;--aah-text-color-regular: #606266;--aah-text-color-secondary: #909399;--aah-text-color-placeholder: #a8abb2;--aah-text-color-disabled: #c0c4cc;--aah-border-color: #dcdfe6;--aah-border-color-light: #e4e7ed;--aah-border-color-lighter: #ebeef5;--aah-border-color-extra-light: #f2f6fc;--aah-border-color-dark: #d4d7de;--aah-border-color-darker: #cdd0d6;--aah-fill-color: #f0f2f5;--aah-fill-color-light: #f5f7fa;--aah-fill-color-lighter: #fafafa;--aah-fill-color-extra-light: #fafcff;--aah-fill-color-dark: #ebedf0;--aah-fill-color-darker: #e6e8eb;--aah-fill-color-blank: #ffffff;--aah-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, .04), 0px 8px 20px rgba(0, 0, 0, .08);--aah-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, .12);--aah-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, .12);--aah-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, .08), 0px 12px 32px rgba(0, 0, 0, .12), 0px 8px 16px -8px rgba(0, 0, 0, .16);--aah-disabled-bg-color: var(--aah-fill-color-light);--aah-disabled-text-color: var(--aah-text-color-placeholder);--aah-disabled-border-color: var(--aah-border-color-light);--aah-overlay-color: rgba(0, 0, 0, .8);--aah-overlay-color-light: rgba(0, 0, 0, .7);--aah-overlay-color-lighter: rgba(0, 0, 0, .5);--aah-mask-color: rgba(255, 255, 255, .9);--aah-mask-color-extra-light: rgba(255, 255, 255, .3);--aah-border-width: 1px;--aah-border-style: solid;--aah-border-color-hover: var(--aah-text-color-disabled);--aah-border: var(--aah-border-width) var(--aah-border-style) var(--aah-border-color);--aah-svg-monochrome-grey: var(--aah-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--aah-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.aah-fade-in-linear-enter-active,.aah-fade-in-linear-leave-active{transition:var(--aah-transition-fade-linear)}.aah-fade-in-linear-enter-from,.aah-fade-in-linear-leave-to{opacity:0}.aah-fade-in-enter-active,.aah-fade-in-leave-active{transition:all var(--aah-transition-duration) cubic-bezier(.55,0,.1,1)}.aah-fade-in-enter-from,.aah-fade-in-leave-active{opacity:0}.aah-zoom-in-center-enter-active,.aah-zoom-in-center-leave-active{transition:all var(--aah-transition-duration) cubic-bezier(.55,0,.1,1)}.aah-zoom-in-center-enter-from,.aah-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.aah-zoom-in-top-enter-active,.aah-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--aah-transition-md-fade);transform-origin:center top}.aah-zoom-in-top-enter-active[data-popper-placement^=top],.aah-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.aah-zoom-in-top-enter-from,.aah-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.aah-zoom-in-bottom-enter-active,.aah-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--aah-transition-md-fade);transform-origin:center bottom}.aah-zoom-in-bottom-enter-from,.aah-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.aah-zoom-in-left-enter-active,.aah-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--aah-transition-md-fade);transform-origin:top left}.aah-zoom-in-left-enter-from,.aah-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--aah-transition-duration) height ease-in-out,var(--aah-transition-duration) padding-top ease-in-out,var(--aah-transition-duration) padding-bottom ease-in-out}.aah-collapse-transition-leave-active,.aah-collapse-transition-enter-active{transition:var(--aah-transition-duration) max-height ease-in-out,var(--aah-transition-duration) padding-top ease-in-out,var(--aah-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--aah-transition-duration) width ease-in-out,var(--aah-transition-duration) padding-left ease-in-out,var(--aah-transition-duration) padding-right ease-in-out}.aah-list-enter-active,.aah-list-leave-active{transition:all 1s}.aah-list-enter-from,.aah-list-leave-to{opacity:0;transform:translateY(-30px)}.aah-list-leave-active{position:absolute!important}.aah-opacity-transition{transition:opacity var(--aah-transition-duration) cubic-bezier(.55,0,.1,1)}.aah-icon-loading{animation:rotating 2s linear infinite}.aah-icon--right{margin-left:5px}.aah-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.aah-icon{--color: inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.aah-icon.is-loading{animation:rotating 2s linear infinite}.aah-icon svg{height:1em;width:1em}.aah-affix--fixed{position:fixed}.aah-alert{--aah-alert-padding: 8px 16px;--aah-alert-border-radius-base: var(--aah-border-radius-base);--aah-alert-title-font-size: 14px;--aah-alert-title-with-description-font-size: 16px;--aah-alert-description-font-size: 14px;--aah-alert-close-font-size: 16px;--aah-alert-close-customed-font-size: 14px;--aah-alert-icon-size: 16px;--aah-alert-icon-large-size: 28px;width:100%;padding:var(--aah-alert-padding);margin:0;box-sizing:border-box;border-radius:var(--aah-alert-border-radius-base);position:relative;background-color:var(--aah-color-white);overflow:hidden;opacity:1;display:flex;align-items:center;transition:opacity var(--aah-transition-duration-fast)}.aah-alert.is-light .aah-alert__close-btn{color:var(--aah-text-color-placeholder)}.aah-alert.is-dark .aah-alert__close-btn,.aah-alert.is-dark .aah-alert__description{color:var(--aah-color-white)}.aah-alert.is-center{justify-content:center}.aah-alert--success{--aah-alert-bg-color: var(--aah-color-success-light-9)}.aah-alert--success.is-light{background-color:var(--aah-alert-bg-color);color:var(--aah-color-success)}.aah-alert--success.is-light .aah-alert__description{color:var(--aah-color-success)}.aah-alert--success.is-dark{background-color:var(--aah-color-success);color:var(--aah-color-white)}.aah-alert--info{--aah-alert-bg-color: var(--aah-color-info-light-9)}.aah-alert--info.is-light{background-color:var(--aah-alert-bg-color);color:var(--aah-color-info)}.aah-alert--info.is-light .aah-alert__description{color:var(--aah-color-info)}.aah-alert--info.is-dark{background-color:var(--aah-color-info);color:var(--aah-color-white)}.aah-alert--warning{--aah-alert-bg-color: var(--aah-color-warning-light-9)}.aah-alert--warning.is-light{background-color:var(--aah-alert-bg-color);color:var(--aah-color-warning)}.aah-alert--warning.is-light .aah-alert__description{color:var(--aah-color-warning)}.aah-alert--warning.is-dark{background-color:var(--aah-color-warning);color:var(--aah-color-white)}.aah-alert--error{--aah-alert-bg-color: var(--aah-color-error-light-9)}.aah-alert--error.is-light{background-color:var(--aah-alert-bg-color);color:var(--aah-color-error)}.aah-alert--error.is-light .aah-alert__description{color:var(--aah-color-error)}.aah-alert--error.is-dark{background-color:var(--aah-color-error);color:var(--aah-color-white)}.aah-alert__content{display:flex;flex-direction:column;gap:4px}.aah-alert .aah-alert__icon{font-size:var(--aah-alert-icon-size);width:var(--aah-alert-icon-size);margin-right:8px}.aah-alert .aah-alert__icon.is-big{font-size:var(--aah-alert-icon-large-size);width:var(--aah-alert-icon-large-size);margin-right:12px}.aah-alert__title{font-size:var(--aah-alert-title-font-size);line-height:24px}.aah-alert__title.with-description{font-size:var(--aah-alert-title-with-description-font-size)}.aah-alert .aah-alert__description{font-size:var(--aah-alert-description-font-size);margin:0}.aah-alert .aah-alert__close-btn{font-size:var(--aah-alert-close-font-size);opacity:1;position:absolute;top:12px;right:16px;cursor:pointer}.aah-alert .aah-alert__close-btn.is-customed{font-style:normal;font-size:var(--aah-alert-close-customed-font-size);line-height:24px;top:8px}.aah-alert-fade-enter-from,.aah-alert-fade-leave-active{opacity:0}.aah-aside{overflow:auto;box-sizing:border-box;flex-shrink:0;width:var(--aah-aside-width, 300px)}.aah-autocomplete{position:relative;display:inline-block}.aah-autocomplete__popper.aah-popper{background:var(--aah-bg-color-overlay);border:1px solid var(--aah-border-color-light);box-shadow:var(--aah-box-shadow-light)}.aah-autocomplete__popper.aah-popper .aah-popper__arrow:before{border:1px solid var(--aah-border-color-light)}.aah-autocomplete__popper.aah-popper[data-popper-placement^=top] .aah-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.aah-autocomplete__popper.aah-popper[data-popper-placement^=bottom] .aah-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.aah-autocomplete__popper.aah-popper[data-popper-placement^=left] .aah-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.aah-autocomplete__popper.aah-popper[data-popper-placement^=right] .aah-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.aah-autocomplete-suggestion{border-radius:var(--aah-border-radius-base);box-sizing:border-box}.aah-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.aah-autocomplete-suggestion__list{margin:0;padding:0}.aah-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:var(--aah-text-color-regular);font-size:var(--aah-font-size-base);list-style:none;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aah-autocomplete-suggestion li:hover,.aah-autocomplete-suggestion li.highlighted{background-color:var(--aah-fill-color-light)}.aah-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid var(--aah-color-black)}.aah-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.aah-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:var(--aah-text-color-secondary)}.aah-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.aah-autocomplete-suggestion.is-loading li:hover{background-color:var(--aah-bg-color-overlay)}.aah-autocomplete-suggestion.is-loading .aah-icon-loading{vertical-align:middle}.aah-avatar{--aah-avatar-text-color: var(--aah-color-white);--aah-avatar-bg-color: var(--aah-text-color-disabled);--aah-avatar-text-size: 14px;--aah-avatar-icon-size: 18px;--aah-avatar-border-radius: var(--aah-border-radius-base);--aah-avatar-size-large: 56px;--aah-avatar-size-small: 24px;--aah-avatar-size: 40px;display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;text-align:center;overflow:hidden;color:var(--aah-avatar-text-color);background:var(--aah-avatar-bg-color);width:var(--aah-avatar-size);height:var(--aah-avatar-size);font-size:var(--aah-avatar-text-size)}.aah-avatar>img{display:block;width:100%;height:100%}.aah-avatar--circle{border-radius:50%}.aah-avatar--square{border-radius:var(--aah-avatar-border-radius)}.aah-avatar--icon{font-size:var(--aah-avatar-icon-size)}.aah-avatar--small{--aah-avatar-size: 24px}.aah-avatar--large{--aah-avatar-size: 56px}.aah-backtop{--aah-backtop-bg-color: var(--aah-bg-color-overlay);--aah-backtop-text-color: var(--aah-color-primary);--aah-backtop-hover-bg-color: var(--aah-border-color-extra-light);position:fixed;background-color:var(--aah-backtop-bg-color);width:40px;height:40px;border-radius:50%;color:var(--aah-backtop-text-color);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:var(--aah-box-shadow-lighter);cursor:pointer;z-index:5}.aah-backtop:hover{background-color:var(--aah-backtop-hover-bg-color)}.aah-backtop__icon{font-size:20px}.aah-badge{--aah-badge-bg-color: var(--aah-color-danger);--aah-badge-radius: 10px;--aah-badge-font-size: 12px;--aah-badge-padding: 6px;--aah-badge-size: 18px;position:relative;vertical-align:middle;display:inline-block;width:fit-content}.aah-badge__content{background-color:var(--aah-badge-bg-color);border-radius:var(--aah-badge-radius);color:var(--aah-color-white);display:inline-flex;justify-content:center;align-items:center;font-size:var(--aah-badge-font-size);height:var(--aah-badge-size);padding:0 var(--aah-badge-padding);white-space:nowrap;border:1px solid var(--aah-bg-color)}.aah-badge__content.is-fixed{position:absolute;top:0;right:calc(1px + var(--aah-badge-size) / 2);transform:translateY(-50%) translate(100%);z-index:var(--aah-index-normal)}.aah-badge__content.is-fixed.is-dot{right:5px}.aah-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.aah-badge__content--primary{background-color:var(--aah-color-primary)}.aah-badge__content--success{background-color:var(--aah-color-success)}.aah-badge__content--warning{background-color:var(--aah-color-warning)}.aah-badge__content--info{background-color:var(--aah-color-info)}.aah-badge__content--danger{background-color:var(--aah-color-danger)}.aah-breadcrumb{font-size:14px;line-height:1}.aah-breadcrumb:before,.aah-breadcrumb:after{display:table;content:""}.aah-breadcrumb:after{clear:both}.aah-breadcrumb__separator{margin:0 9px;font-weight:700;color:var(--aah-text-color-placeholder)}.aah-breadcrumb__separator.aah-icon{margin:0 6px;font-weight:400}.aah-breadcrumb__separator.aah-icon svg{vertical-align:middle}.aah-breadcrumb__item{float:left;display:inline-flex;align-items:center}.aah-breadcrumb__inner{color:var(--aah-text-color-regular)}.aah-breadcrumb__inner.is-link,.aah-breadcrumb__inner a{font-weight:700;text-decoration:none;transition:var(--aah-transition-color);color:var(--aah-text-color-primary)}.aah-breadcrumb__inner.is-link:hover,.aah-breadcrumb__inner a:hover{color:var(--aah-color-primary);cursor:pointer}.aah-breadcrumb__item:last-child .aah-breadcrumb__inner,.aah-breadcrumb__item:last-child .aah-breadcrumb__inner:hover,.aah-breadcrumb__item:last-child .aah-breadcrumb__inner a,.aah-breadcrumb__item:last-child .aah-breadcrumb__inner a:hover{font-weight:400;color:var(--aah-text-color-regular);cursor:text}.aah-breadcrumb__item:last-child .aah-breadcrumb__separator{display:none}.aah-button-group{display:inline-block;vertical-align:middle}.aah-button-group:before,.aah-button-group:after{display:table;content:""}.aah-button-group:after{clear:both}.aah-button-group>.aah-button{float:left;position:relative}.aah-button-group>.aah-button+.aah-button{margin-left:0}.aah-button-group>.aah-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.aah-button-group>.aah-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.aah-button-group>.aah-button:first-child:last-child{border-top-right-radius:var(--aah-border-radius-base);border-bottom-right-radius:var(--aah-border-radius-base);border-top-left-radius:var(--aah-border-radius-base);border-bottom-left-radius:var(--aah-border-radius-base)}.aah-button-group>.aah-button:first-child:last-child.is-round{border-radius:var(--aah-border-radius-round)}.aah-button-group>.aah-button:first-child:last-child.is-circle{border-radius:50%}.aah-button-group>.aah-button:not(:first-child):not(:last-child){border-radius:0}.aah-button-group>.aah-button:not(:last-child){margin-right:-1px}.aah-button-group>.aah-button:hover,.aah-button-group>.aah-button:focus,.aah-button-group>.aah-button:active{z-index:1}.aah-button-group>.aah-button.is-active{z-index:1}.aah-button-group>.aah-dropdown>.aah-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:var(--aah-button-divide-border-color)}.aah-button-group .aah-button--primary:first-child{border-right-color:var(--aah-button-divide-border-color)}.aah-button-group .aah-button--primary:last-child{border-left-color:var(--aah-button-divide-border-color)}.aah-button-group .aah-button--primary:not(:first-child):not(:last-child){border-left-color:var(--aah-button-divide-border-color);border-right-color:var(--aah-button-divide-border-color)}.aah-button-group .aah-button--success:first-child{border-right-color:var(--aah-button-divide-border-color)}.aah-button-group .aah-button--success:last-child{border-left-color:var(--aah-button-divide-border-color)}.aah-button-group .aah-button--success:not(:first-child):not(:last-child){border-left-color:var(--aah-button-divide-border-color);border-right-color:var(--aah-button-divide-border-color)}.aah-button-group .aah-button--warning:first-child{border-right-color:var(--aah-button-divide-border-color)}.aah-button-group .aah-button--warning:last-child{border-left-color:var(--aah-button-divide-border-color)}.aah-button-group .aah-button--warning:not(:first-child):not(:last-child){border-left-color:var(--aah-button-divide-border-color);border-right-color:var(--aah-button-divide-border-color)}.aah-button-group .aah-button--danger:first-child{border-right-color:var(--aah-button-divide-border-color)}.aah-button-group .aah-button--danger:last-child{border-left-color:var(--aah-button-divide-border-color)}.aah-button-group .aah-button--danger:not(:first-child):not(:last-child){border-left-color:var(--aah-button-divide-border-color);border-right-color:var(--aah-button-divide-border-color)}.aah-button-group .aah-button--info:first-child{border-right-color:var(--aah-button-divide-border-color)}.aah-button-group .aah-button--info:last-child{border-left-color:var(--aah-button-divide-border-color)}.aah-button-group .aah-button--info:not(:first-child):not(:last-child){border-left-color:var(--aah-button-divide-border-color);border-right-color:var(--aah-button-divide-border-color)}.aah-button{--aah-button-font-weight: var(--aah-font-weight-primary);--aah-button-border-color: var(--aah-border-color);--aah-button-bg-color: var(--aah-fill-color-blank);--aah-button-text-color: var(--aah-text-color-regular);--aah-button-disabled-text-color: var(--aah-disabled-text-color);--aah-button-disabled-bg-color: var(--aah-fill-color-blank);--aah-button-disabled-border-color: var(--aah-border-color-light);--aah-button-divide-border-color: rgba(255, 255, 255, .5);--aah-button-hover-text-color: var(--aah-color-primary);--aah-button-hover-bg-color: var(--aah-color-primary-light-9);--aah-button-hover-border-color: var(--aah-color-primary-light-7);--aah-button-active-text-color: var(--aah-button-hover-text-color);--aah-button-active-border-color: var(--aah-color-primary);--aah-button-active-bg-color: var(--aah-button-hover-bg-color);--aah-button-outline-color: var(--aah-color-primary-light-5);--aah-button-hover-link-text-color: var(--aah-color-info);--aah-button-active-color: var(--aah-text-color-primary)}.aah-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--aah-button-text-color);text-align:center;box-sizing:border-box;outline:none;transition:.1s;font-weight:var(--aah-button-font-weight);-webkit-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--aah-button-bg-color);border:var(--aah-border);border-color:var(--aah-button-border-color);padding:8px 15px;font-size:var(--aah-font-size-base);border-radius:var(--aah-border-radius-base)}.aah-button:hover{color:var(--aah-button-hover-text-color);border-color:var(--aah-button-hover-border-color);background-color:var(--aah-button-hover-bg-color);outline:none}.aah-button:active{color:var(--aah-button-active-text-color);border-color:var(--aah-button-active-border-color);background-color:var(--aah-button-active-bg-color);outline:none}.aah-button:focus-visible{outline:2px solid var(--aah-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.aah-button>span{display:inline-flex;align-items:center}.aah-button+.aah-button{margin-left:12px}.aah-button.is-round{padding:8px 15px}.aah-button::-moz-focus-inner{border:0}.aah-button [class*=aah-icon]+span{margin-left:6px}.aah-button [class*=aah-icon] svg{vertical-align:bottom}.aah-button.is-plain{--aah-button-hover-text-color: var(--aah-color-primary);--aah-button-hover-bg-color: var(--aah-fill-color-blank);--aah-button-hover-border-color: var(--aah-color-primary)}.aah-button.is-active{color:var(--aah-button-active-text-color);border-color:var(--aah-button-active-border-color);background-color:var(--aah-button-active-bg-color);outline:none}.aah-button.is-disabled,.aah-button.is-disabled:hover{color:var(--aah-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--aah-button-disabled-bg-color);border-color:var(--aah-button-disabled-border-color)}.aah-button.is-loading{position:relative;pointer-events:none}.aah-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--aah-mask-color-extra-light)}.aah-button.is-round{border-radius:var(--aah-border-radius-round)}.aah-button.is-circle{width:32px;border-radius:50%;padding:8px}.aah-button.is-text{color:var(--aah-button-text-color);border:0 solid transparent;background-color:transparent}.aah-button.is-text.is-disabled{color:var(--aah-button-disabled-text-color);background-color:transparent!important}.aah-button.is-text:not(.is-disabled):hover{background-color:var(--aah-fill-color-light)}.aah-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--aah-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.aah-button.is-text:not(.is-disabled):active{background-color:var(--aah-fill-color)}.aah-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--aah-fill-color-light)}.aah-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--aah-fill-color)}.aah-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--aah-fill-color-dark)}.aah-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.aah-button.is-link{border-color:transparent;color:var(--aah-button-text-color);background:transparent;padding:2px;height:auto}.aah-button.is-link:hover{color:var(--aah-button-hover-link-text-color)}.aah-button.is-link.is-disabled{color:var(--aah-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.aah-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.aah-button.is-link:not(.is-disabled):active{color:var(--aah-button-active-color);border-color:transparent;background-color:transparent}.aah-button--text{border-color:transparent;background:transparent;color:var(--aah-color-primary);padding-left:0;padding-right:0}.aah-button--text.is-disabled{color:var(--aah-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.aah-button--text:not(.is-disabled):hover{color:var(--aah-color-primary-light-3);border-color:transparent;background-color:transparent}.aah-button--text:not(.is-disabled):active{color:var(--aah-color-primary-dark-2);border-color:transparent;background-color:transparent}.aah-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.aah-button--primary{--aah-button-text-color: var(--aah-color-white);--aah-button-bg-color: var(--aah-color-primary);--aah-button-border-color: var(--aah-color-primary);--aah-button-outline-color: var(--aah-color-primary-light-5);--aah-button-active-color: var(--aah-color-primary-dark-2);--aah-button-hover-text-color: var(--aah-color-white);--aah-button-hover-link-text-color: var(--aah-color-primary-light-5);--aah-button-hover-bg-color: var(--aah-color-primary-light-3);--aah-button-hover-border-color: var(--aah-color-primary-light-3);--aah-button-active-bg-color: var(--aah-color-primary-dark-2);--aah-button-active-border-color: var(--aah-color-primary-dark-2);--aah-button-disabled-text-color: var(--aah-color-white);--aah-button-disabled-bg-color: var(--aah-color-primary-light-5);--aah-button-disabled-border-color: var(--aah-color-primary-light-5)}.aah-button--primary.is-plain,.aah-button--primary.is-text,.aah-button--primary.is-link{--aah-button-text-color: var(--aah-color-primary);--aah-button-bg-color: var(--aah-color-primary-light-9);--aah-button-border-color: var(--aah-color-primary-light-5);--aah-button-hover-text-color: var(--aah-color-white);--aah-button-hover-bg-color: var(--aah-color-primary);--aah-button-hover-border-color: var(--aah-color-primary);--aah-button-active-text-color: var(--aah-color-white)}.aah-button--primary.is-plain.is-disabled,.aah-button--primary.is-plain.is-disabled:hover,.aah-button--primary.is-plain.is-disabled:focus,.aah-button--primary.is-plain.is-disabled:active,.aah-button--primary.is-text.is-disabled,.aah-button--primary.is-text.is-disabled:hover,.aah-button--primary.is-text.is-disabled:focus,.aah-button--primary.is-text.is-disabled:active,.aah-button--primary.is-link.is-disabled,.aah-button--primary.is-link.is-disabled:hover,.aah-button--primary.is-link.is-disabled:focus,.aah-button--primary.is-link.is-disabled:active{color:var(--aah-color-primary-light-5);background-color:var(--aah-color-primary-light-9);border-color:var(--aah-color-primary-light-8)}.aah-button--success{--aah-button-text-color: var(--aah-color-white);--aah-button-bg-color: var(--aah-color-success);--aah-button-border-color: var(--aah-color-success);--aah-button-outline-color: var(--aah-color-success-light-5);--aah-button-active-color: var(--aah-color-success-dark-2);--aah-button-hover-text-color: var(--aah-color-white);--aah-button-hover-link-text-color: var(--aah-color-success-light-5);--aah-button-hover-bg-color: var(--aah-color-success-light-3);--aah-button-hover-border-color: var(--aah-color-success-light-3);--aah-button-active-bg-color: var(--aah-color-success-dark-2);--aah-button-active-border-color: var(--aah-color-success-dark-2);--aah-button-disabled-text-color: var(--aah-color-white);--aah-button-disabled-bg-color: var(--aah-color-success-light-5);--aah-button-disabled-border-color: var(--aah-color-success-light-5)}.aah-button--success.is-plain,.aah-button--success.is-text,.aah-button--success.is-link{--aah-button-text-color: var(--aah-color-success);--aah-button-bg-color: var(--aah-color-success-light-9);--aah-button-border-color: var(--aah-color-success-light-5);--aah-button-hover-text-color: var(--aah-color-white);--aah-button-hover-bg-color: var(--aah-color-success);--aah-button-hover-border-color: var(--aah-color-success);--aah-button-active-text-color: var(--aah-color-white)}.aah-button--success.is-plain.is-disabled,.aah-button--success.is-plain.is-disabled:hover,.aah-button--success.is-plain.is-disabled:focus,.aah-button--success.is-plain.is-disabled:active,.aah-button--success.is-text.is-disabled,.aah-button--success.is-text.is-disabled:hover,.aah-button--success.is-text.is-disabled:focus,.aah-button--success.is-text.is-disabled:active,.aah-button--success.is-link.is-disabled,.aah-button--success.is-link.is-disabled:hover,.aah-button--success.is-link.is-disabled:focus,.aah-button--success.is-link.is-disabled:active{color:var(--aah-color-success-light-5);background-color:var(--aah-color-success-light-9);border-color:var(--aah-color-success-light-8)}.aah-button--warning{--aah-button-text-color: var(--aah-color-white);--aah-button-bg-color: var(--aah-color-warning);--aah-button-border-color: var(--aah-color-warning);--aah-button-outline-color: var(--aah-color-warning-light-5);--aah-button-active-color: var(--aah-color-warning-dark-2);--aah-button-hover-text-color: var(--aah-color-white);--aah-button-hover-link-text-color: var(--aah-color-warning-light-5);--aah-button-hover-bg-color: var(--aah-color-warning-light-3);--aah-button-hover-border-color: var(--aah-color-warning-light-3);--aah-button-active-bg-color: var(--aah-color-warning-dark-2);--aah-button-active-border-color: var(--aah-color-warning-dark-2);--aah-button-disabled-text-color: var(--aah-color-white);--aah-button-disabled-bg-color: var(--aah-color-warning-light-5);--aah-button-disabled-border-color: var(--aah-color-warning-light-5)}.aah-button--warning.is-plain,.aah-button--warning.is-text,.aah-button--warning.is-link{--aah-button-text-color: var(--aah-color-warning);--aah-button-bg-color: var(--aah-color-warning-light-9);--aah-button-border-color: var(--aah-color-warning-light-5);--aah-button-hover-text-color: var(--aah-color-white);--aah-button-hover-bg-color: var(--aah-color-warning);--aah-button-hover-border-color: var(--aah-color-warning);--aah-button-active-text-color: var(--aah-color-white)}.aah-button--warning.is-plain.is-disabled,.aah-button--warning.is-plain.is-disabled:hover,.aah-button--warning.is-plain.is-disabled:focus,.aah-button--warning.is-plain.is-disabled:active,.aah-button--warning.is-text.is-disabled,.aah-button--warning.is-text.is-disabled:hover,.aah-button--warning.is-text.is-disabled:focus,.aah-button--warning.is-text.is-disabled:active,.aah-button--warning.is-link.is-disabled,.aah-button--warning.is-link.is-disabled:hover,.aah-button--warning.is-link.is-disabled:focus,.aah-button--warning.is-link.is-disabled:active{color:var(--aah-color-warning-light-5);background-color:var(--aah-color-warning-light-9);border-color:var(--aah-color-warning-light-8)}.aah-button--danger{--aah-button-text-color: var(--aah-color-white);--aah-button-bg-color: var(--aah-color-danger);--aah-button-border-color: var(--aah-color-danger);--aah-button-outline-color: var(--aah-color-danger-light-5);--aah-button-active-color: var(--aah-color-danger-dark-2);--aah-button-hover-text-color: var(--aah-color-white);--aah-button-hover-link-text-color: var(--aah-color-danger-light-5);--aah-button-hover-bg-color: var(--aah-color-danger-light-3);--aah-button-hover-border-color: var(--aah-color-danger-light-3);--aah-button-active-bg-color: var(--aah-color-danger-dark-2);--aah-button-active-border-color: var(--aah-color-danger-dark-2);--aah-button-disabled-text-color: var(--aah-color-white);--aah-button-disabled-bg-color: var(--aah-color-danger-light-5);--aah-button-disabled-border-color: var(--aah-color-danger-light-5)}.aah-button--danger.is-plain,.aah-button--danger.is-text,.aah-button--danger.is-link{--aah-button-text-color: var(--aah-color-danger);--aah-button-bg-color: var(--aah-color-danger-light-9);--aah-button-border-color: var(--aah-color-danger-light-5);--aah-button-hover-text-color: var(--aah-color-white);--aah-button-hover-bg-color: var(--aah-color-danger);--aah-button-hover-border-color: var(--aah-color-danger);--aah-button-active-text-color: var(--aah-color-white)}.aah-button--danger.is-plain.is-disabled,.aah-button--danger.is-plain.is-disabled:hover,.aah-button--danger.is-plain.is-disabled:focus,.aah-button--danger.is-plain.is-disabled:active,.aah-button--danger.is-text.is-disabled,.aah-button--danger.is-text.is-disabled:hover,.aah-button--danger.is-text.is-disabled:focus,.aah-button--danger.is-text.is-disabled:active,.aah-button--danger.is-link.is-disabled,.aah-button--danger.is-link.is-disabled:hover,.aah-button--danger.is-link.is-disabled:focus,.aah-button--danger.is-link.is-disabled:active{color:var(--aah-color-danger-light-5);background-color:var(--aah-color-danger-light-9);border-color:var(--aah-color-danger-light-8)}.aah-button--info{--aah-button-text-color: var(--aah-color-white);--aah-button-bg-color: var(--aah-color-info);--aah-button-border-color: var(--aah-color-info);--aah-button-outline-color: var(--aah-color-info-light-5);--aah-button-active-color: var(--aah-color-info-dark-2);--aah-button-hover-text-color: var(--aah-color-white);--aah-button-hover-link-text-color: var(--aah-color-info-light-5);--aah-button-hover-bg-color: var(--aah-color-info-light-3);--aah-button-hover-border-color: var(--aah-color-info-light-3);--aah-button-active-bg-color: var(--aah-color-info-dark-2);--aah-button-active-border-color: var(--aah-color-info-dark-2);--aah-button-disabled-text-color: var(--aah-color-white);--aah-button-disabled-bg-color: var(--aah-color-info-light-5);--aah-button-disabled-border-color: var(--aah-color-info-light-5)}.aah-button--info.is-plain,.aah-button--info.is-text,.aah-button--info.is-link{--aah-button-text-color: var(--aah-color-info);--aah-button-bg-color: var(--aah-color-info-light-9);--aah-button-border-color: var(--aah-color-info-light-5);--aah-button-hover-text-color: var(--aah-color-white);--aah-button-hover-bg-color: var(--aah-color-info);--aah-button-hover-border-color: var(--aah-color-info);--aah-button-active-text-color: var(--aah-color-white)}.aah-button--info.is-plain.is-disabled,.aah-button--info.is-plain.is-disabled:hover,.aah-button--info.is-plain.is-disabled:focus,.aah-button--info.is-plain.is-disabled:active,.aah-button--info.is-text.is-disabled,.aah-button--info.is-text.is-disabled:hover,.aah-button--info.is-text.is-disabled:focus,.aah-button--info.is-text.is-disabled:active,.aah-button--info.is-link.is-disabled,.aah-button--info.is-link.is-disabled:hover,.aah-button--info.is-link.is-disabled:focus,.aah-button--info.is-link.is-disabled:active{color:var(--aah-color-info-light-5);background-color:var(--aah-color-info-light-9);border-color:var(--aah-color-info-light-8)}.aah-button--large{--aah-button-size: 40px;height:var(--aah-button-size);padding:12px 19px;font-size:var(--aah-font-size-base);border-radius:var(--aah-border-radius-base)}.aah-button--large [class*=aah-icon]+span{margin-left:8px}.aah-button--large.is-round{padding:12px 19px}.aah-button--large.is-circle{width:var(--aah-button-size);padding:12px}.aah-button--small{--aah-button-size: 24px;height:var(--aah-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--aah-border-radius-base) - 1px)}.aah-button--small [class*=aah-icon]+span{margin-left:4px}.aah-button--small.is-round{padding:5px 11px}.aah-button--small.is-circle{width:var(--aah-button-size);padding:5px}.aah-calendar{--aah-calendar-border: var(--aah-table-border, 1px solid var(--aah-border-color-lighter));--aah-calendar-header-border-bottom: var(--aah-calendar-border);--aah-calendar-selected-bg-color: var(--aah-color-primary-light-9);--aah-calendar-cell-width: 85px;background-color:var(--aah-fill-color-blank)}.aah-calendar__header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:var(--aah-calendar-header-border-bottom)}.aah-calendar__title{color:var(--aah-text-color);align-self:center}.aah-calendar__body{padding:12px 20px 35px}.aah-calendar-table{table-layout:fixed;width:100%}.aah-calendar-table thead th{padding:12px 0;color:var(--aah-text-color-regular);font-weight:400}.aah-calendar-table:not(.is-range) td.prev,.aah-calendar-table:not(.is-range) td.next{color:var(--aah-text-color-placeholder)}.aah-calendar-table td{border-bottom:var(--aah-calendar-border);border-right:var(--aah-calendar-border);vertical-align:top;transition:background-color var(--aah-transition-duration-fast) ease}.aah-calendar-table td.is-selected{background-color:var(--aah-calendar-selected-bg-color)}.aah-calendar-table td.is-today{color:var(--aah-color-primary)}.aah-calendar-table tr:first-child td{border-top:var(--aah-calendar-border)}.aah-calendar-table tr td:first-child{border-left:var(--aah-calendar-border)}.aah-calendar-table tr.aah-calendar-table__row--hide-border td{border-top:none}.aah-calendar-table .aah-calendar-day{box-sizing:border-box;padding:8px;height:var(--aah-calendar-cell-width)}.aah-calendar-table .aah-calendar-day:hover{cursor:pointer;background-color:var(--aah-calendar-selected-bg-color)}.aah-card{--aah-card-border-color: var(--aah-border-color-light);--aah-card-border-radius: 4px;--aah-card-padding: 20px;--aah-card-bg-color: var(--aah-fill-color-blank)}.aah-card{border-radius:var(--aah-card-border-radius);border:1px solid var(--aah-card-border-color);background-color:var(--aah-card-bg-color);overflow:hidden;color:var(--aah-text-color-primary);transition:var(--aah-transition-duration)}.aah-card.is-always-shadow{box-shadow:var(--aah-box-shadow-light)}.aah-card.is-hover-shadow:hover,.aah-card.is-hover-shadow:focus{box-shadow:var(--aah-box-shadow-light)}.aah-card__header{padding:calc(var(--aah-card-padding) - 2px) var(--aah-card-padding);border-bottom:1px solid var(--aah-card-border-color);box-sizing:border-box}.aah-card__body{padding:var(--aah-card-padding)}.aah-card__footer{padding:calc(var(--aah-card-padding) - 2px) var(--aah-card-padding);border-top:1px solid var(--aah-card-border-color);box-sizing:border-box}.aah-carousel__item{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:calc(var(--aah-index-normal) - 1)}.aah-carousel__item.is-active{z-index:calc(var(--aah-index-normal) - 1)}.aah-carousel__item.is-animating{transition:transform .4s ease-in-out}.aah-carousel__item--card{width:50%;transition:transform .4s ease-in-out}.aah-carousel__item--card.is-in-stage{cursor:pointer;z-index:var(--aah-index-normal)}.aah-carousel__item--card.is-in-stage:hover .aah-carousel__mask,.aah-carousel__item--card.is-in-stage.is-hover .aah-carousel__mask{opacity:.12}.aah-carousel__item--card.is-active{z-index:calc(var(--aah-index-normal) + 1)}.aah-carousel__item--card-vertical{width:100%;height:50%}.aah-carousel__mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--aah-color-white);opacity:.24;transition:var(--aah-transition-duration-fast)}.aah-carousel{--aah-carousel-arrow-font-size: 12px;--aah-carousel-arrow-size: 36px;--aah-carousel-arrow-background: rgba(31, 45, 61, .11);--aah-carousel-arrow-hover-background: rgba(31, 45, 61, .23);--aah-carousel-indicator-width: 30px;--aah-carousel-indicator-height: 2px;--aah-carousel-indicator-padding-horizontal: 4px;--aah-carousel-indicator-padding-vertical: 12px;--aah-carousel-indicator-out-color: var(--aah-border-color-hover);position:relative}.aah-carousel--horizontal,.aah-carousel--vertical{overflow:hidden}.aah-carousel__container{position:relative;height:300px}.aah-carousel__arrow{border:none;outline:none;padding:0;margin:0;height:var(--aah-carousel-arrow-size);width:var(--aah-carousel-arrow-size);cursor:pointer;transition:var(--aah-transition-duration);border-radius:50%;background-color:var(--aah-carousel-arrow-background);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:var(--aah-carousel-arrow-font-size);display:inline-flex;justify-content:center;align-items:center}.aah-carousel__arrow--left{left:16px}.aah-carousel__arrow--right{right:16px}.aah-carousel__arrow:hover{background-color:var(--aah-carousel-arrow-hover-background)}.aah-carousel__arrow i{cursor:pointer}.aah-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:calc(var(--aah-index-normal) + 1)}.aah-carousel__indicators--horizontal{bottom:0;left:50%;transform:translate(-50%)}.aah-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.aah-carousel__indicators--outside{bottom:calc(var(--aah-carousel-indicator-height) + var(--aah-carousel-indicator-padding-vertical) * 2);text-align:center;position:static;transform:none}.aah-carousel__indicators--outside .aah-carousel__indicator:hover button{opacity:.64}.aah-carousel__indicators--outside button{background-color:var(--aah-carousel-indicator-out-color);opacity:.24}.aah-carousel__indicators--right{right:0}.aah-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.aah-carousel__indicators--labels .aah-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px;color:#000}.aah-carousel__indicators--labels .aah-carousel__indicator{padding:6px 4px}.aah-carousel__indicator{background-color:transparent;cursor:pointer}.aah-carousel__indicator:hover button{opacity:.72}.aah-carousel__indicator--horizontal{display:inline-block;padding:var(--aah-carousel-indicator-padding-vertical) var(--aah-carousel-indicator-padding-horizontal)}.aah-carousel__indicator--vertical{padding:var(--aah-carousel-indicator-padding-horizontal) var(--aah-carousel-indicator-padding-vertical)}.aah-carousel__indicator--vertical .aah-carousel__button{width:var(--aah-carousel-indicator-height);height:calc(var(--aah-carousel-indicator-width) / 2)}.aah-carousel__indicator.is-active button{opacity:1}.aah-carousel__button{display:block;opacity:.48;width:var(--aah-carousel-indicator-width);height:var(--aah-carousel-indicator-height);background-color:#fff;border:none;outline:none;padding:0;margin:0;cursor:pointer;transition:var(--aah-transition-duration)}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{transform:translateY(-50%) translate(-10px);opacity:0}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{transform:translateY(-50%) translate(10px);opacity:0}.aah-transitioning{filter:url(#elCarouselHorizontal)}.aah-transitioning-vertical{filter:url(#elCarouselVertical)}.aah-cascader-panel{--aah-cascader-menu-text-color: var(--aah-text-color-regular);--aah-cascader-menu-selected-text-color: var(--aah-color-primary);--aah-cascader-menu-fill: var(--aah-bg-color-overlay);--aah-cascader-menu-font-size: var(--aah-font-size-base);--aah-cascader-menu-radius: var(--aah-border-radius-base);--aah-cascader-menu-border: solid 1px var(--aah-border-color-light);--aah-cascader-menu-shadow: var(--aah-box-shadow-light);--aah-cascader-node-background-hover: var(--aah-fill-color-light);--aah-cascader-node-color-disabled: var(--aah-text-color-placeholder);--aah-cascader-color-empty: var(--aah-text-color-placeholder);--aah-cascader-tag-background: var(--aah-fill-color)}.aah-cascader-panel{display:flex;border-radius:var(--aah-cascader-menu-radius);font-size:var(--aah-cascader-menu-font-size)}.aah-cascader-panel.is-bordered{border:var(--aah-cascader-menu-border);border-radius:var(--aah-cascader-menu-radius)}.aah-cascader-menu{min-width:180px;box-sizing:border-box;color:var(--aah-cascader-menu-text-color);border-right:var(--aah-cascader-menu-border)}.aah-cascader-menu:last-child{border-right:none}.aah-cascader-menu:last-child .aah-cascader-node{padding-right:20px}.aah-cascader-menu__wrap.aah-scrollbar__wrap{height:204px}.aah-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.aah-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.aah-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;color:var(--aah-cascader-color-empty)}.aah-cascader-menu__empty-text .is-loading{margin-right:2px}.aah-cascader-node{position:relative;display:flex;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:none}.aah-cascader-node.is-selectable.in-active-path{color:var(--aah-cascader-menu-text-color)}.aah-cascader-node.in-active-path,.aah-cascader-node.is-selectable.in-checked-path,.aah-cascader-node.is-active{color:var(--aah-cascader-menu-selected-text-color);font-weight:700}.aah-cascader-node:not(.is-disabled){cursor:pointer}.aah-cascader-node:not(.is-disabled):hover,.aah-cascader-node:not(.is-disabled):focus{background:var(--aah-cascader-node-background-hover)}.aah-cascader-node.is-disabled{color:var(--aah-cascader-node-color-disabled);cursor:not-allowed}.aah-cascader-node__prefix{position:absolute;left:10px}.aah-cascader-node__postfix{position:absolute;right:10px}.aah-cascader-node__label{flex:1;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aah-cascader-node>.aah-checkbox{margin-right:0}.aah-cascader-node>.aah-radio{margin-right:0}.aah-cascader-node>.aah-radio .aah-radio__label{padding-left:0}.aah-cascader{--aah-cascader-menu-text-color: var(--aah-text-color-regular);--aah-cascader-menu-selected-text-color: var(--aah-color-primary);--aah-cascader-menu-fill: var(--aah-bg-color-overlay);--aah-cascader-menu-font-size: var(--aah-font-size-base);--aah-cascader-menu-radius: var(--aah-border-radius-base);--aah-cascader-menu-border: solid 1px var(--aah-border-color-light);--aah-cascader-menu-shadow: var(--aah-box-shadow-light);--aah-cascader-node-background-hover: var(--aah-fill-color-light);--aah-cascader-node-color-disabled: var(--aah-text-color-placeholder);--aah-cascader-color-empty: var(--aah-text-color-placeholder);--aah-cascader-tag-background: var(--aah-fill-color);display:inline-block;vertical-align:middle;position:relative;font-size:var(--aah-font-size-base);line-height:32px;outline:none}.aah-cascader:not(.is-disabled):hover .aah-input__wrapper{cursor:pointer;box-shadow:0 0 0 1px var(--aah-input-hover-border-color) inset}.aah-cascader .aah-input{display:flex;cursor:pointer}.aah-cascader .aah-input .aah-input__inner{text-overflow:ellipsis;cursor:pointer}.aah-cascader .aah-input .aah-input__suffix-inner .aah-icon{height:calc(100% - 2px)}.aah-cascader .aah-input .aah-input__suffix-inner .aah-icon svg{vertical-align:middle}.aah-cascader .aah-input .icon-arrow-down{transition:transform var(--aah-transition-duration);font-size:14px}.aah-cascader .aah-input .icon-arrow-down.is-reverse{transform:rotate(180deg)}.aah-cascader .aah-input .icon-circle-close:hover{color:var(--aah-input-clear-hover-color, var(--aah-text-color-secondary))}.aah-cascader .aah-input.is-focus .aah-input__wrapper{box-shadow:0 0 0 1px var(--aah-input-focus-border-color, var(--aah-color-primary)) inset}.aah-cascader--large{font-size:14px;line-height:40px}.aah-cascader--small{font-size:12px;line-height:24px}.aah-cascader.is-disabled .aah-cascader__label{z-index:calc(var(--aah-index-normal) + 1);color:var(--aah-disabled-text-color)}.aah-cascader__dropdown{--aah-cascader-menu-text-color: var(--aah-text-color-regular);--aah-cascader-menu-selected-text-color: var(--aah-color-primary);--aah-cascader-menu-fill: var(--aah-bg-color-overlay);--aah-cascader-menu-font-size: var(--aah-font-size-base);--aah-cascader-menu-radius: var(--aah-border-radius-base);--aah-cascader-menu-border: solid 1px var(--aah-border-color-light);--aah-cascader-menu-shadow: var(--aah-box-shadow-light);--aah-cascader-node-background-hover: var(--aah-fill-color-light);--aah-cascader-node-color-disabled: var(--aah-text-color-placeholder);--aah-cascader-color-empty: var(--aah-text-color-placeholder);--aah-cascader-tag-background: var(--aah-fill-color)}.aah-cascader__dropdown{font-size:var(--aah-cascader-menu-font-size);border-radius:var(--aah-cascader-menu-radius)}.aah-cascader__dropdown.aah-popper{background:var(--aah-cascader-menu-fill);border:var(--aah-cascader-menu-border);box-shadow:var(--aah-cascader-menu-shadow)}.aah-cascader__dropdown.aah-popper .aah-popper__arrow:before{border:var(--aah-cascader-menu-border)}.aah-cascader__dropdown.aah-popper[data-popper-placement^=top] .aah-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.aah-cascader__dropdown.aah-popper[data-popper-placement^=bottom] .aah-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.aah-cascader__dropdown.aah-popper[data-popper-placement^=left] .aah-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.aah-cascader__dropdown.aah-popper[data-popper-placement^=right] .aah-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.aah-cascader__dropdown.aah-popper{box-shadow:var(--aah-cascader-menu-shadow)}.aah-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.aah-cascader__tags .aah-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--aah-cascader-tag-background)}.aah-cascader__tags .aah-tag:not(.is-hit){border-color:transparent}.aah-cascader__tags .aah-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.aah-cascader__tags .aah-tag .aah-icon-close{flex:none;background-color:var(--aah-text-color-placeholder);color:var(--aah-color-white)}.aah-cascader__tags .aah-tag .aah-icon-close:hover{background-color:var(--aah-text-color-secondary)}.aah-cascader__tags.is-validate{right:55px}.aah-cascader__collapse-tags{white-space:normal;z-index:var(--aah-index-normal)}.aah-cascader__collapse-tags .aah-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--aah-fill-color)}.aah-cascader__collapse-tags .aah-tag:not(.is-hit){border-color:transparent}.aah-cascader__collapse-tags .aah-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.aah-cascader__collapse-tags .aah-tag .aah-icon-close{flex:none;background-color:var(--aah-text-color-placeholder);color:var(--aah-color-white)}.aah-cascader__collapse-tags .aah-tag .aah-icon-close:hover{background-color:var(--aah-text-color-secondary)}.aah-cascader__suggestion-panel{border-radius:var(--aah-cascader-menu-radius)}.aah-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:var(--aah-font-size-base);color:var(--aah-cascader-menu-text-color);text-align:center}.aah-cascader__suggestion-item{display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 15px;text-align:left;outline:none;cursor:pointer}.aah-cascader__suggestion-item:hover,.aah-cascader__suggestion-item:focus{background:var(--aah-cascader-node-background-hover)}.aah-cascader__suggestion-item.is-checked{color:var(--aah-cascader-menu-selected-text-color);font-weight:700}.aah-cascader__suggestion-item>span{margin-right:10px}.aah-cascader__empty-text{margin:10px 0;color:var(--aah-cascader-color-empty)}.aah-cascader__search-input{flex:1;height:24px;min-width:60px;margin:2px 0 2px 11px;padding:0;color:var(--aah-cascader-menu-text-color);border:none;outline:none;box-sizing:border-box;background:transparent}.aah-cascader__search-input::placeholder{color:transparent}.aah-check-tag{background-color:var(--aah-color-info-light-9);border-radius:var(--aah-border-radius-base);color:var(--aah-color-info);cursor:pointer;display:inline-block;font-size:var(--aah-font-size-base);line-height:var(--aah-font-size-base);padding:7px 15px;transition:var(--aah-transition-all);font-weight:700}.aah-check-tag:hover{background-color:var(--aah-color-info-light-7)}.aah-check-tag.is-checked.aah-check-tag--primary{background-color:var(--aah-color-primary-light-8);color:var(--aah-color-primary)}.aah-check-tag.is-checked.aah-check-tag--primary:hover{background-color:var(--aah-color-primary-light-7)}.aah-check-tag.is-checked.aah-check-tag--success{background-color:var(--aah-color-success-light-8);color:var(--aah-color-success)}.aah-check-tag.is-checked.aah-check-tag--success:hover{background-color:var(--aah-color-success-light-7)}.aah-check-tag.is-checked.aah-check-tag--warning{background-color:var(--aah-color-warning-light-8);color:var(--aah-color-warning)}.aah-check-tag.is-checked.aah-check-tag--warning:hover{background-color:var(--aah-color-warning-light-7)}.aah-check-tag.is-checked.aah-check-tag--danger{background-color:var(--aah-color-danger-light-8);color:var(--aah-color-danger)}.aah-check-tag.is-checked.aah-check-tag--danger:hover{background-color:var(--aah-color-danger-light-7)}.aah-check-tag.is-checked.aah-check-tag--error{background-color:var(--aah-color-error-light-8);color:var(--aah-color-error)}.aah-check-tag.is-checked.aah-check-tag--error:hover{background-color:var(--aah-color-error-light-7)}.aah-check-tag.is-checked.aah-check-tag--info{background-color:var(--aah-color-info-light-8);color:var(--aah-color-info)}.aah-check-tag.is-checked.aah-check-tag--info:hover{background-color:var(--aah-color-info-light-7)}.aah-checkbox-button{--aah-checkbox-button-checked-bg-color: var(--aah-color-primary);--aah-checkbox-button-checked-text-color: var(--aah-color-white);--aah-checkbox-button-checked-border-color: var(--aah-color-primary)}.aah-checkbox-button{position:relative;display:inline-block}.aah-checkbox-button__inner{display:inline-block;line-height:1;font-weight:var(--aah-checkbox-font-weight);white-space:nowrap;vertical-align:middle;cursor:pointer;background:var(--aah-button-bg-color, var(--aah-fill-color-blank));border:var(--aah-border);border-left-color:transparent;color:var(--aah-button-text-color, var(--aah-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:none;margin:0;position:relative;transition:var(--aah-transition-all);-webkit-user-select:none;user-select:none;padding:8px 15px;font-size:var(--aah-font-size-base);border-radius:0}.aah-checkbox-button__inner.is-round{padding:8px 15px}.aah-checkbox-button__inner:hover{color:var(--aah-color-primary)}.aah-checkbox-button__inner [class*=aah-icon-]{line-height:.9}.aah-checkbox-button__inner [class*=aah-icon-]+span{margin-left:5px}.aah-checkbox-button__original{opacity:0;outline:none;position:absolute;margin:0;z-index:-1}.aah-checkbox-button.is-checked .aah-checkbox-button__inner{color:var(--aah-checkbox-button-checked-text-color);background-color:var(--aah-checkbox-button-checked-bg-color);border-color:var(--aah-checkbox-button-checked-border-color);box-shadow:-1px 0 0 0 var(--aah-color-primary-light-7)}.aah-checkbox-button.is-checked:first-child .aah-checkbox-button__inner{border-left-color:var(--aah-checkbox-button-checked-border-color)}.aah-checkbox-button.is-disabled .aah-checkbox-button__inner{color:var(--aah-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--aah-button-disabled-bg-color, var(--aah-fill-color-blank));border-color:var(--aah-button-disabled-border-color, var(--aah-border-color-light));box-shadow:none}.aah-checkbox-button.is-disabled:first-child .aah-checkbox-button__inner{border-left-color:var(--aah-button-disabled-border-color, var(--aah-border-color-light))}.aah-checkbox-button:first-child .aah-checkbox-button__inner{border-left:var(--aah-border);border-top-left-radius:var(--aah-border-radius-base);border-bottom-left-radius:var(--aah-border-radius-base);box-shadow:none!important}.aah-checkbox-button.is-focus .aah-checkbox-button__inner{border-color:var(--aah-checkbox-button-checked-border-color)}.aah-checkbox-button:last-child .aah-checkbox-button__inner{border-top-right-radius:var(--aah-border-radius-base);border-bottom-right-radius:var(--aah-border-radius-base)}.aah-checkbox-button--large .aah-checkbox-button__inner{padding:12px 19px;font-size:var(--aah-font-size-base);border-radius:0}.aah-checkbox-button--large .aah-checkbox-button__inner.is-round{padding:12px 19px}.aah-checkbox-button--small .aah-checkbox-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.aah-checkbox-button--small .aah-checkbox-button__inner.is-round{padding:5px 11px}.aah-checkbox-group{font-size:0;line-height:0}.aah-checkbox{--aah-checkbox-font-size: 14px;--aah-checkbox-font-weight: var(--aah-font-weight-primary);--aah-checkbox-text-color: var(--aah-text-color-regular);--aah-checkbox-input-height: 14px;--aah-checkbox-input-width: 14px;--aah-checkbox-border-radius: var(--aah-border-radius-small);--aah-checkbox-bg-color: var(--aah-fill-color-blank);--aah-checkbox-input-border: var(--aah-border);--aah-checkbox-disabled-border-color: var(--aah-border-color);--aah-checkbox-disabled-input-fill: var(--aah-fill-color-light);--aah-checkbox-disabled-icon-color: var(--aah-text-color-placeholder);--aah-checkbox-disabled-checked-input-fill: var(--aah-border-color-extra-light);--aah-checkbox-disabled-checked-input-border-color: var(--aah-border-color);--aah-checkbox-disabled-checked-icon-color: var(--aah-text-color-placeholder);--aah-checkbox-checked-text-color: var(--aah-color-primary);--aah-checkbox-checked-input-border-color: var(--aah-color-primary);--aah-checkbox-checked-bg-color: var(--aah-color-primary);--aah-checkbox-checked-icon-color: var(--aah-color-white);--aah-checkbox-input-border-color-hover: var(--aah-color-primary)}.aah-checkbox{color:var(--aah-checkbox-text-color);font-weight:var(--aah-checkbox-font-weight);font-size:var(--aah-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;user-select:none;margin-right:30px;height:var(--aah-checkbox-height, 32px)}.aah-checkbox.is-disabled{cursor:not-allowed}.aah-checkbox.is-bordered{padding:0 15px 0 9px;border-radius:var(--aah-border-radius-base);border:var(--aah-border);box-sizing:border-box}.aah-checkbox.is-bordered.is-checked{border-color:var(--aah-color-primary)}.aah-checkbox.is-bordered.is-disabled{border-color:var(--aah-border-color-lighter)}.aah-checkbox.is-bordered.aah-checkbox--large{padding:0 19px 0 11px;border-radius:var(--aah-border-radius-base)}.aah-checkbox.is-bordered.aah-checkbox--large .aah-checkbox__label{font-size:var(--aah-font-size-base)}.aah-checkbox.is-bordered.aah-checkbox--large .aah-checkbox__inner{height:14px;width:14px}.aah-checkbox.is-bordered.aah-checkbox--small{padding:0 11px 0 7px;border-radius:calc(var(--aah-border-radius-base) - 1px)}.aah-checkbox.is-bordered.aah-checkbox--small .aah-checkbox__label{font-size:12px}.aah-checkbox.is-bordered.aah-checkbox--small .aah-checkbox__inner{height:12px;width:12px}.aah-checkbox.is-bordered.aah-checkbox--small .aah-checkbox__inner:after{height:6px;width:2px}.aah-checkbox input:focus-visible+.aah-checkbox__inner{outline:2px solid var(--aah-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--aah-checkbox-border-radius)}.aah-checkbox__input{white-space:nowrap;cursor:pointer;outline:none;display:inline-flex;position:relative}.aah-checkbox__input.is-disabled .aah-checkbox__inner{background-color:var(--aah-checkbox-disabled-input-fill);border-color:var(--aah-checkbox-disabled-border-color);cursor:not-allowed}.aah-checkbox__input.is-disabled .aah-checkbox__inner:after{cursor:not-allowed;border-color:var(--aah-checkbox-disabled-icon-color)}.aah-checkbox__input.is-disabled.is-checked .aah-checkbox__inner{background-color:var(--aah-checkbox-disabled-checked-input-fill);border-color:var(--aah-checkbox-disabled-checked-input-border-color)}.aah-checkbox__input.is-disabled.is-checked .aah-checkbox__inner:after{border-color:var(--aah-checkbox-disabled-checked-icon-color)}.aah-checkbox__input.is-disabled.is-indeterminate .aah-checkbox__inner{background-color:var(--aah-checkbox-disabled-checked-input-fill);border-color:var(--aah-checkbox-disabled-checked-input-border-color)}.aah-checkbox__input.is-disabled.is-indeterminate .aah-checkbox__inner:before{background-color:var(--aah-checkbox-disabled-checked-icon-color);border-color:var(--aah-checkbox-disabled-checked-icon-color)}.aah-checkbox__input.is-disabled+span.aah-checkbox__label{color:var(--aah-disabled-text-color);cursor:not-allowed}.aah-checkbox__input.is-checked .aah-checkbox__inner{background-color:var(--aah-checkbox-checked-bg-color);border-color:var(--aah-checkbox-checked-input-border-color)}.aah-checkbox__input.is-checked .aah-checkbox__inner:after{transform:rotate(45deg) scaleY(1);border-color:var(--aah-checkbox-checked-icon-color)}.aah-checkbox__input.is-checked+.aah-checkbox__label{color:var(--aah-checkbox-checked-text-color)}.aah-checkbox__input.is-focus:not(.is-checked) .aah-checkbox__original:not(:focus-visible){border-color:var(--aah-checkbox-input-border-color-hover)}.aah-checkbox__input.is-indeterminate .aah-checkbox__inner{background-color:var(--aah-checkbox-checked-bg-color);border-color:var(--aah-checkbox-checked-input-border-color)}.aah-checkbox__input.is-indeterminate .aah-checkbox__inner:before{content:"";position:absolute;display:block;background-color:var(--aah-checkbox-checked-icon-color);height:2px;transform:scale(.5);left:0;right:0;top:5px}.aah-checkbox__input.is-indeterminate .aah-checkbox__inner:after{display:none}.aah-checkbox__inner{display:inline-block;position:relative;border:var(--aah-checkbox-input-border);border-radius:var(--aah-checkbox-border-radius);box-sizing:border-box;width:var(--aah-checkbox-input-width);height:var(--aah-checkbox-input-height);background-color:var(--aah-checkbox-bg-color);z-index:var(--aah-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46)}.aah-checkbox__inner:hover{border-color:var(--aah-checkbox-input-border-color-hover)}.aah-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid transparent;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in .05s;transform-origin:center}.aah-checkbox__original{opacity:0;outline:none;position:absolute;margin:0;width:0;height:0;z-index:-1}.aah-checkbox__label{display:inline-block;padding-left:8px;line-height:1;font-size:var(--aah-checkbox-font-size)}.aah-checkbox.aah-checkbox--large{height:40px}.aah-checkbox.aah-checkbox--large .aah-checkbox__label{font-size:14px}.aah-checkbox.aah-checkbox--large .aah-checkbox__inner{width:14px;height:14px}.aah-checkbox.aah-checkbox--small{height:24px}.aah-checkbox.aah-checkbox--small .aah-checkbox__label{font-size:12px}.aah-checkbox.aah-checkbox--small .aah-checkbox__inner{width:12px;height:12px}.aah-checkbox.aah-checkbox--small .aah-checkbox__input.is-indeterminate .aah-checkbox__inner:before{top:4px}.aah-checkbox.aah-checkbox--small .aah-checkbox__inner:after{width:2px;height:6px}.aah-checkbox:last-of-type{margin-right:0}[class*=aah-col-]{box-sizing:border-box}[class*=aah-col-].is-guttered{display:block;min-height:1px}.aah-col-0,.aah-col-0.is-guttered{display:none}.aah-col-0{max-width:0%;flex:0 0 0%}.aah-col-offset-0{margin-left:0%}.aah-col-pull-0{position:relative;right:0%}.aah-col-push-0{position:relative;left:0%}.aah-col-1{max-width:4.1666666667%;flex:0 0 4.1666666667%}.aah-col-offset-1{margin-left:4.1666666667%}.aah-col-pull-1{position:relative;right:4.1666666667%}.aah-col-push-1{position:relative;left:4.1666666667%}.aah-col-2{max-width:8.3333333333%;flex:0 0 8.3333333333%}.aah-col-offset-2{margin-left:8.3333333333%}.aah-col-pull-2{position:relative;right:8.3333333333%}.aah-col-push-2{position:relative;left:8.3333333333%}.aah-col-3{max-width:12.5%;flex:0 0 12.5%}.aah-col-offset-3{margin-left:12.5%}.aah-col-pull-3{position:relative;right:12.5%}.aah-col-push-3{position:relative;left:12.5%}.aah-col-4{max-width:16.6666666667%;flex:0 0 16.6666666667%}.aah-col-offset-4{margin-left:16.6666666667%}.aah-col-pull-4{position:relative;right:16.6666666667%}.aah-col-push-4{position:relative;left:16.6666666667%}.aah-col-5{max-width:20.8333333333%;flex:0 0 20.8333333333%}.aah-col-offset-5{margin-left:20.8333333333%}.aah-col-pull-5{position:relative;right:20.8333333333%}.aah-col-push-5{position:relative;left:20.8333333333%}.aah-col-6{max-width:25%;flex:0 0 25%}.aah-col-offset-6{margin-left:25%}.aah-col-pull-6{position:relative;right:25%}.aah-col-push-6{position:relative;left:25%}.aah-col-7{max-width:29.1666666667%;flex:0 0 29.1666666667%}.aah-col-offset-7{margin-left:29.1666666667%}.aah-col-pull-7{position:relative;right:29.1666666667%}.aah-col-push-7{position:relative;left:29.1666666667%}.aah-col-8{max-width:33.3333333333%;flex:0 0 33.3333333333%}.aah-col-offset-8{margin-left:33.3333333333%}.aah-col-pull-8{position:relative;right:33.3333333333%}.aah-col-push-8{position:relative;left:33.3333333333%}.aah-col-9{max-width:37.5%;flex:0 0 37.5%}.aah-col-offset-9{margin-left:37.5%}.aah-col-pull-9{position:relative;right:37.5%}.aah-col-push-9{position:relative;left:37.5%}.aah-col-10{max-width:41.6666666667%;flex:0 0 41.6666666667%}.aah-col-offset-10{margin-left:41.6666666667%}.aah-col-pull-10{position:relative;right:41.6666666667%}.aah-col-push-10{position:relative;left:41.6666666667%}.aah-col-11{max-width:45.8333333333%;flex:0 0 45.8333333333%}.aah-col-offset-11{margin-left:45.8333333333%}.aah-col-pull-11{position:relative;right:45.8333333333%}.aah-col-push-11{position:relative;left:45.8333333333%}.aah-col-12{max-width:50%;flex:0 0 50%}.aah-col-offset-12{margin-left:50%}.aah-col-pull-12{position:relative;right:50%}.aah-col-push-12{position:relative;left:50%}.aah-col-13{max-width:54.1666666667%;flex:0 0 54.1666666667%}.aah-col-offset-13{margin-left:54.1666666667%}.aah-col-pull-13{position:relative;right:54.1666666667%}.aah-col-push-13{position:relative;left:54.1666666667%}.aah-col-14{max-width:58.3333333333%;flex:0 0 58.3333333333%}.aah-col-offset-14{margin-left:58.3333333333%}.aah-col-pull-14{position:relative;right:58.3333333333%}.aah-col-push-14{position:relative;left:58.3333333333%}.aah-col-15{max-width:62.5%;flex:0 0 62.5%}.aah-col-offset-15{margin-left:62.5%}.aah-col-pull-15{position:relative;right:62.5%}.aah-col-push-15{position:relative;left:62.5%}.aah-col-16{max-width:66.6666666667%;flex:0 0 66.6666666667%}.aah-col-offset-16{margin-left:66.6666666667%}.aah-col-pull-16{position:relative;right:66.6666666667%}.aah-col-push-16{position:relative;left:66.6666666667%}.aah-col-17{max-width:70.8333333333%;flex:0 0 70.8333333333%}.aah-col-offset-17{margin-left:70.8333333333%}.aah-col-pull-17{position:relative;right:70.8333333333%}.aah-col-push-17{position:relative;left:70.8333333333%}.aah-col-18{max-width:75%;flex:0 0 75%}.aah-col-offset-18{margin-left:75%}.aah-col-pull-18{position:relative;right:75%}.aah-col-push-18{position:relative;left:75%}.aah-col-19{max-width:79.1666666667%;flex:0 0 79.1666666667%}.aah-col-offset-19{margin-left:79.1666666667%}.aah-col-pull-19{position:relative;right:79.1666666667%}.aah-col-push-19{position:relative;left:79.1666666667%}.aah-col-20{max-width:83.3333333333%;flex:0 0 83.3333333333%}.aah-col-offset-20{margin-left:83.3333333333%}.aah-col-pull-20{position:relative;right:83.3333333333%}.aah-col-push-20{position:relative;left:83.3333333333%}.aah-col-21{max-width:87.5%;flex:0 0 87.5%}.aah-col-offset-21{margin-left:87.5%}.aah-col-pull-21{position:relative;right:87.5%}.aah-col-push-21{position:relative;left:87.5%}.aah-col-22{max-width:91.6666666667%;flex:0 0 91.6666666667%}.aah-col-offset-22{margin-left:91.6666666667%}.aah-col-pull-22{position:relative;right:91.6666666667%}.aah-col-push-22{position:relative;left:91.6666666667%}.aah-col-23{max-width:95.8333333333%;flex:0 0 95.8333333333%}.aah-col-offset-23{margin-left:95.8333333333%}.aah-col-pull-23{position:relative;right:95.8333333333%}.aah-col-push-23{position:relative;left:95.8333333333%}.aah-col-24{max-width:100%;flex:0 0 100%}.aah-col-offset-24{margin-left:100%}.aah-col-pull-24{position:relative;right:100%}.aah-col-push-24{position:relative;left:100%}@media only screen and (max-width: 767px){.aah-col-xs-0,.aah-col-xs-0.is-guttered{display:none}.aah-col-xs-0{max-width:0%;flex:0 0 0%}.aah-col-xs-offset-0{margin-left:0%}.aah-col-xs-pull-0{position:relative;right:0%}.aah-col-xs-push-0{position:relative;left:0%}.aah-col-xs-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.aah-col-xs-offset-1{margin-left:4.1666666667%}.aah-col-xs-pull-1{position:relative;right:4.1666666667%}.aah-col-xs-push-1{position:relative;left:4.1666666667%}.aah-col-xs-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.aah-col-xs-offset-2{margin-left:8.3333333333%}.aah-col-xs-pull-2{position:relative;right:8.3333333333%}.aah-col-xs-push-2{position:relative;left:8.3333333333%}.aah-col-xs-3{display:block;max-width:12.5%;flex:0 0 12.5%}.aah-col-xs-offset-3{margin-left:12.5%}.aah-col-xs-pull-3{position:relative;right:12.5%}.aah-col-xs-push-3{position:relative;left:12.5%}.aah-col-xs-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.aah-col-xs-offset-4{margin-left:16.6666666667%}.aah-col-xs-pull-4{position:relative;right:16.6666666667%}.aah-col-xs-push-4{position:relative;left:16.6666666667%}.aah-col-xs-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.aah-col-xs-offset-5{margin-left:20.8333333333%}.aah-col-xs-pull-5{position:relative;right:20.8333333333%}.aah-col-xs-push-5{position:relative;left:20.8333333333%}.aah-col-xs-6{display:block;max-width:25%;flex:0 0 25%}.aah-col-xs-offset-6{margin-left:25%}.aah-col-xs-pull-6{position:relative;right:25%}.aah-col-xs-push-6{position:relative;left:25%}.aah-col-xs-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.aah-col-xs-offset-7{margin-left:29.1666666667%}.aah-col-xs-pull-7{position:relative;right:29.1666666667%}.aah-col-xs-push-7{position:relative;left:29.1666666667%}.aah-col-xs-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.aah-col-xs-offset-8{margin-left:33.3333333333%}.aah-col-xs-pull-8{position:relative;right:33.3333333333%}.aah-col-xs-push-8{position:relative;left:33.3333333333%}.aah-col-xs-9{display:block;max-width:37.5%;flex:0 0 37.5%}.aah-col-xs-offset-9{margin-left:37.5%}.aah-col-xs-pull-9{position:relative;right:37.5%}.aah-col-xs-push-9{position:relative;left:37.5%}.aah-col-xs-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.aah-col-xs-offset-10{margin-left:41.6666666667%}.aah-col-xs-pull-10{position:relative;right:41.6666666667%}.aah-col-xs-push-10{position:relative;left:41.6666666667%}.aah-col-xs-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.aah-col-xs-offset-11{margin-left:45.8333333333%}.aah-col-xs-pull-11{position:relative;right:45.8333333333%}.aah-col-xs-push-11{position:relative;left:45.8333333333%}.aah-col-xs-12{display:block;max-width:50%;flex:0 0 50%}.aah-col-xs-offset-12{margin-left:50%}.aah-col-xs-pull-12{position:relative;right:50%}.aah-col-xs-push-12{position:relative;left:50%}.aah-col-xs-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.aah-col-xs-offset-13{margin-left:54.1666666667%}.aah-col-xs-pull-13{position:relative;right:54.1666666667%}.aah-col-xs-push-13{position:relative;left:54.1666666667%}.aah-col-xs-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.aah-col-xs-offset-14{margin-left:58.3333333333%}.aah-col-xs-pull-14{position:relative;right:58.3333333333%}.aah-col-xs-push-14{position:relative;left:58.3333333333%}.aah-col-xs-15{display:block;max-width:62.5%;flex:0 0 62.5%}.aah-col-xs-offset-15{margin-left:62.5%}.aah-col-xs-pull-15{position:relative;right:62.5%}.aah-col-xs-push-15{position:relative;left:62.5%}.aah-col-xs-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.aah-col-xs-offset-16{margin-left:66.6666666667%}.aah-col-xs-pull-16{position:relative;right:66.6666666667%}.aah-col-xs-push-16{position:relative;left:66.6666666667%}.aah-col-xs-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.aah-col-xs-offset-17{margin-left:70.8333333333%}.aah-col-xs-pull-17{position:relative;right:70.8333333333%}.aah-col-xs-push-17{position:relative;left:70.8333333333%}.aah-col-xs-18{display:block;max-width:75%;flex:0 0 75%}.aah-col-xs-offset-18{margin-left:75%}.aah-col-xs-pull-18{position:relative;right:75%}.aah-col-xs-push-18{position:relative;left:75%}.aah-col-xs-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.aah-col-xs-offset-19{margin-left:79.1666666667%}.aah-col-xs-pull-19{position:relative;right:79.1666666667%}.aah-col-xs-push-19{position:relative;left:79.1666666667%}.aah-col-xs-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.aah-col-xs-offset-20{margin-left:83.3333333333%}.aah-col-xs-pull-20{position:relative;right:83.3333333333%}.aah-col-xs-push-20{position:relative;left:83.3333333333%}.aah-col-xs-21{display:block;max-width:87.5%;flex:0 0 87.5%}.aah-col-xs-offset-21{margin-left:87.5%}.aah-col-xs-pull-21{position:relative;right:87.5%}.aah-col-xs-push-21{position:relative;left:87.5%}.aah-col-xs-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.aah-col-xs-offset-22{margin-left:91.6666666667%}.aah-col-xs-pull-22{position:relative;right:91.6666666667%}.aah-col-xs-push-22{position:relative;left:91.6666666667%}.aah-col-xs-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.aah-col-xs-offset-23{margin-left:95.8333333333%}.aah-col-xs-pull-23{position:relative;right:95.8333333333%}.aah-col-xs-push-23{position:relative;left:95.8333333333%}.aah-col-xs-24{display:block;max-width:100%;flex:0 0 100%}.aah-col-xs-offset-24{margin-left:100%}.aah-col-xs-pull-24{position:relative;right:100%}.aah-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width: 768px){.aah-col-sm-0,.aah-col-sm-0.is-guttered{display:none}.aah-col-sm-0{max-width:0%;flex:0 0 0%}.aah-col-sm-offset-0{margin-left:0%}.aah-col-sm-pull-0{position:relative;right:0%}.aah-col-sm-push-0{position:relative;left:0%}.aah-col-sm-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.aah-col-sm-offset-1{margin-left:4.1666666667%}.aah-col-sm-pull-1{position:relative;right:4.1666666667%}.aah-col-sm-push-1{position:relative;left:4.1666666667%}.aah-col-sm-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.aah-col-sm-offset-2{margin-left:8.3333333333%}.aah-col-sm-pull-2{position:relative;right:8.3333333333%}.aah-col-sm-push-2{position:relative;left:8.3333333333%}.aah-col-sm-3{display:block;max-width:12.5%;flex:0 0 12.5%}.aah-col-sm-offset-3{margin-left:12.5%}.aah-col-sm-pull-3{position:relative;right:12.5%}.aah-col-sm-push-3{position:relative;left:12.5%}.aah-col-sm-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.aah-col-sm-offset-4{margin-left:16.6666666667%}.aah-col-sm-pull-4{position:relative;right:16.6666666667%}.aah-col-sm-push-4{position:relative;left:16.6666666667%}.aah-col-sm-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.aah-col-sm-offset-5{margin-left:20.8333333333%}.aah-col-sm-pull-5{position:relative;right:20.8333333333%}.aah-col-sm-push-5{position:relative;left:20.8333333333%}.aah-col-sm-6{display:block;max-width:25%;flex:0 0 25%}.aah-col-sm-offset-6{margin-left:25%}.aah-col-sm-pull-6{position:relative;right:25%}.aah-col-sm-push-6{position:relative;left:25%}.aah-col-sm-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.aah-col-sm-offset-7{margin-left:29.1666666667%}.aah-col-sm-pull-7{position:relative;right:29.1666666667%}.aah-col-sm-push-7{position:relative;left:29.1666666667%}.aah-col-sm-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.aah-col-sm-offset-8{margin-left:33.3333333333%}.aah-col-sm-pull-8{position:relative;right:33.3333333333%}.aah-col-sm-push-8{position:relative;left:33.3333333333%}.aah-col-sm-9{display:block;max-width:37.5%;flex:0 0 37.5%}.aah-col-sm-offset-9{margin-left:37.5%}.aah-col-sm-pull-9{position:relative;right:37.5%}.aah-col-sm-push-9{position:relative;left:37.5%}.aah-col-sm-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.aah-col-sm-offset-10{margin-left:41.6666666667%}.aah-col-sm-pull-10{position:relative;right:41.6666666667%}.aah-col-sm-push-10{position:relative;left:41.6666666667%}.aah-col-sm-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.aah-col-sm-offset-11{margin-left:45.8333333333%}.aah-col-sm-pull-11{position:relative;right:45.8333333333%}.aah-col-sm-push-11{position:relative;left:45.8333333333%}.aah-col-sm-12{display:block;max-width:50%;flex:0 0 50%}.aah-col-sm-offset-12{margin-left:50%}.aah-col-sm-pull-12{position:relative;right:50%}.aah-col-sm-push-12{position:relative;left:50%}.aah-col-sm-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.aah-col-sm-offset-13{margin-left:54.1666666667%}.aah-col-sm-pull-13{position:relative;right:54.1666666667%}.aah-col-sm-push-13{position:relative;left:54.1666666667%}.aah-col-sm-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.aah-col-sm-offset-14{margin-left:58.3333333333%}.aah-col-sm-pull-14{position:relative;right:58.3333333333%}.aah-col-sm-push-14{position:relative;left:58.3333333333%}.aah-col-sm-15{display:block;max-width:62.5%;flex:0 0 62.5%}.aah-col-sm-offset-15{margin-left:62.5%}.aah-col-sm-pull-15{position:relative;right:62.5%}.aah-col-sm-push-15{position:relative;left:62.5%}.aah-col-sm-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.aah-col-sm-offset-16{margin-left:66.6666666667%}.aah-col-sm-pull-16{position:relative;right:66.6666666667%}.aah-col-sm-push-16{position:relative;left:66.6666666667%}.aah-col-sm-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.aah-col-sm-offset-17{margin-left:70.8333333333%}.aah-col-sm-pull-17{position:relative;right:70.8333333333%}.aah-col-sm-push-17{position:relative;left:70.8333333333%}.aah-col-sm-18{display:block;max-width:75%;flex:0 0 75%}.aah-col-sm-offset-18{margin-left:75%}.aah-col-sm-pull-18{position:relative;right:75%}.aah-col-sm-push-18{position:relative;left:75%}.aah-col-sm-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.aah-col-sm-offset-19{margin-left:79.1666666667%}.aah-col-sm-pull-19{position:relative;right:79.1666666667%}.aah-col-sm-push-19{position:relative;left:79.1666666667%}.aah-col-sm-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.aah-col-sm-offset-20{margin-left:83.3333333333%}.aah-col-sm-pull-20{position:relative;right:83.3333333333%}.aah-col-sm-push-20{position:relative;left:83.3333333333%}.aah-col-sm-21{display:block;max-width:87.5%;flex:0 0 87.5%}.aah-col-sm-offset-21{margin-left:87.5%}.aah-col-sm-pull-21{position:relative;right:87.5%}.aah-col-sm-push-21{position:relative;left:87.5%}.aah-col-sm-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.aah-col-sm-offset-22{margin-left:91.6666666667%}.aah-col-sm-pull-22{position:relative;right:91.6666666667%}.aah-col-sm-push-22{position:relative;left:91.6666666667%}.aah-col-sm-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.aah-col-sm-offset-23{margin-left:95.8333333333%}.aah-col-sm-pull-23{position:relative;right:95.8333333333%}.aah-col-sm-push-23{position:relative;left:95.8333333333%}.aah-col-sm-24{display:block;max-width:100%;flex:0 0 100%}.aah-col-sm-offset-24{margin-left:100%}.aah-col-sm-pull-24{position:relative;right:100%}.aah-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width: 992px){.aah-col-md-0,.aah-col-md-0.is-guttered{display:none}.aah-col-md-0{max-width:0%;flex:0 0 0%}.aah-col-md-offset-0{margin-left:0%}.aah-col-md-pull-0{position:relative;right:0%}.aah-col-md-push-0{position:relative;left:0%}.aah-col-md-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.aah-col-md-offset-1{margin-left:4.1666666667%}.aah-col-md-pull-1{position:relative;right:4.1666666667%}.aah-col-md-push-1{position:relative;left:4.1666666667%}.aah-col-md-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.aah-col-md-offset-2{margin-left:8.3333333333%}.aah-col-md-pull-2{position:relative;right:8.3333333333%}.aah-col-md-push-2{position:relative;left:8.3333333333%}.aah-col-md-3{display:block;max-width:12.5%;flex:0 0 12.5%}.aah-col-md-offset-3{margin-left:12.5%}.aah-col-md-pull-3{position:relative;right:12.5%}.aah-col-md-push-3{position:relative;left:12.5%}.aah-col-md-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.aah-col-md-offset-4{margin-left:16.6666666667%}.aah-col-md-pull-4{position:relative;right:16.6666666667%}.aah-col-md-push-4{position:relative;left:16.6666666667%}.aah-col-md-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.aah-col-md-offset-5{margin-left:20.8333333333%}.aah-col-md-pull-5{position:relative;right:20.8333333333%}.aah-col-md-push-5{position:relative;left:20.8333333333%}.aah-col-md-6{display:block;max-width:25%;flex:0 0 25%}.aah-col-md-offset-6{margin-left:25%}.aah-col-md-pull-6{position:relative;right:25%}.aah-col-md-push-6{position:relative;left:25%}.aah-col-md-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.aah-col-md-offset-7{margin-left:29.1666666667%}.aah-col-md-pull-7{position:relative;right:29.1666666667%}.aah-col-md-push-7{position:relative;left:29.1666666667%}.aah-col-md-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.aah-col-md-offset-8{margin-left:33.3333333333%}.aah-col-md-pull-8{position:relative;right:33.3333333333%}.aah-col-md-push-8{position:relative;left:33.3333333333%}.aah-col-md-9{display:block;max-width:37.5%;flex:0 0 37.5%}.aah-col-md-offset-9{margin-left:37.5%}.aah-col-md-pull-9{position:relative;right:37.5%}.aah-col-md-push-9{position:relative;left:37.5%}.aah-col-md-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.aah-col-md-offset-10{margin-left:41.6666666667%}.aah-col-md-pull-10{position:relative;right:41.6666666667%}.aah-col-md-push-10{position:relative;left:41.6666666667%}.aah-col-md-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.aah-col-md-offset-11{margin-left:45.8333333333%}.aah-col-md-pull-11{position:relative;right:45.8333333333%}.aah-col-md-push-11{position:relative;left:45.8333333333%}.aah-col-md-12{display:block;max-width:50%;flex:0 0 50%}.aah-col-md-offset-12{margin-left:50%}.aah-col-md-pull-12{position:relative;right:50%}.aah-col-md-push-12{position:relative;left:50%}.aah-col-md-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.aah-col-md-offset-13{margin-left:54.1666666667%}.aah-col-md-pull-13{position:relative;right:54.1666666667%}.aah-col-md-push-13{position:relative;left:54.1666666667%}.aah-col-md-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.aah-col-md-offset-14{margin-left:58.3333333333%}.aah-col-md-pull-14{position:relative;right:58.3333333333%}.aah-col-md-push-14{position:relative;left:58.3333333333%}.aah-col-md-15{display:block;max-width:62.5%;flex:0 0 62.5%}.aah-col-md-offset-15{margin-left:62.5%}.aah-col-md-pull-15{position:relative;right:62.5%}.aah-col-md-push-15{position:relative;left:62.5%}.aah-col-md-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.aah-col-md-offset-16{margin-left:66.6666666667%}.aah-col-md-pull-16{position:relative;right:66.6666666667%}.aah-col-md-push-16{position:relative;left:66.6666666667%}.aah-col-md-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.aah-col-md-offset-17{margin-left:70.8333333333%}.aah-col-md-pull-17{position:relative;right:70.8333333333%}.aah-col-md-push-17{position:relative;left:70.8333333333%}.aah-col-md-18{display:block;max-width:75%;flex:0 0 75%}.aah-col-md-offset-18{margin-left:75%}.aah-col-md-pull-18{position:relative;right:75%}.aah-col-md-push-18{position:relative;left:75%}.aah-col-md-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.aah-col-md-offset-19{margin-left:79.1666666667%}.aah-col-md-pull-19{position:relative;right:79.1666666667%}.aah-col-md-push-19{position:relative;left:79.1666666667%}.aah-col-md-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.aah-col-md-offset-20{margin-left:83.3333333333%}.aah-col-md-pull-20{position:relative;right:83.3333333333%}.aah-col-md-push-20{position:relative;left:83.3333333333%}.aah-col-md-21{display:block;max-width:87.5%;flex:0 0 87.5%}.aah-col-md-offset-21{margin-left:87.5%}.aah-col-md-pull-21{position:relative;right:87.5%}.aah-col-md-push-21{position:relative;left:87.5%}.aah-col-md-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.aah-col-md-offset-22{margin-left:91.6666666667%}.aah-col-md-pull-22{position:relative;right:91.6666666667%}.aah-col-md-push-22{position:relative;left:91.6666666667%}.aah-col-md-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.aah-col-md-offset-23{margin-left:95.8333333333%}.aah-col-md-pull-23{position:relative;right:95.8333333333%}.aah-col-md-push-23{position:relative;left:95.8333333333%}.aah-col-md-24{display:block;max-width:100%;flex:0 0 100%}.aah-col-md-offset-24{margin-left:100%}.aah-col-md-pull-24{position:relative;right:100%}.aah-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width: 1200px){.aah-col-lg-0,.aah-col-lg-0.is-guttered{display:none}.aah-col-lg-0{max-width:0%;flex:0 0 0%}.aah-col-lg-offset-0{margin-left:0%}.aah-col-lg-pull-0{position:relative;right:0%}.aah-col-lg-push-0{position:relative;left:0%}.aah-col-lg-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.aah-col-lg-offset-1{margin-left:4.1666666667%}.aah-col-lg-pull-1{position:relative;right:4.1666666667%}.aah-col-lg-push-1{position:relative;left:4.1666666667%}.aah-col-lg-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.aah-col-lg-offset-2{margin-left:8.3333333333%}.aah-col-lg-pull-2{position:relative;right:8.3333333333%}.aah-col-lg-push-2{position:relative;left:8.3333333333%}.aah-col-lg-3{display:block;max-width:12.5%;flex:0 0 12.5%}.aah-col-lg-offset-3{margin-left:12.5%}.aah-col-lg-pull-3{position:relative;right:12.5%}.aah-col-lg-push-3{position:relative;left:12.5%}.aah-col-lg-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.aah-col-lg-offset-4{margin-left:16.6666666667%}.aah-col-lg-pull-4{position:relative;right:16.6666666667%}.aah-col-lg-push-4{position:relative;left:16.6666666667%}.aah-col-lg-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.aah-col-lg-offset-5{margin-left:20.8333333333%}.aah-col-lg-pull-5{position:relative;right:20.8333333333%}.aah-col-lg-push-5{position:relative;left:20.8333333333%}.aah-col-lg-6{display:block;max-width:25%;flex:0 0 25%}.aah-col-lg-offset-6{margin-left:25%}.aah-col-lg-pull-6{position:relative;right:25%}.aah-col-lg-push-6{position:relative;left:25%}.aah-col-lg-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.aah-col-lg-offset-7{margin-left:29.1666666667%}.aah-col-lg-pull-7{position:relative;right:29.1666666667%}.aah-col-lg-push-7{position:relative;left:29.1666666667%}.aah-col-lg-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.aah-col-lg-offset-8{margin-left:33.3333333333%}.aah-col-lg-pull-8{position:relative;right:33.3333333333%}.aah-col-lg-push-8{position:relative;left:33.3333333333%}.aah-col-lg-9{display:block;max-width:37.5%;flex:0 0 37.5%}.aah-col-lg-offset-9{margin-left:37.5%}.aah-col-lg-pull-9{position:relative;right:37.5%}.aah-col-lg-push-9{position:relative;left:37.5%}.aah-col-lg-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.aah-col-lg-offset-10{margin-left:41.6666666667%}.aah-col-lg-pull-10{position:relative;right:41.6666666667%}.aah-col-lg-push-10{position:relative;left:41.6666666667%}.aah-col-lg-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.aah-col-lg-offset-11{margin-left:45.8333333333%}.aah-col-lg-pull-11{position:relative;right:45.8333333333%}.aah-col-lg-push-11{position:relative;left:45.8333333333%}.aah-col-lg-12{display:block;max-width:50%;flex:0 0 50%}.aah-col-lg-offset-12{margin-left:50%}.aah-col-lg-pull-12{position:relative;right:50%}.aah-col-lg-push-12{position:relative;left:50%}.aah-col-lg-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.aah-col-lg-offset-13{margin-left:54.1666666667%}.aah-col-lg-pull-13{position:relative;right:54.1666666667%}.aah-col-lg-push-13{position:relative;left:54.1666666667%}.aah-col-lg-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.aah-col-lg-offset-14{margin-left:58.3333333333%}.aah-col-lg-pull-14{position:relative;right:58.3333333333%}.aah-col-lg-push-14{position:relative;left:58.3333333333%}.aah-col-lg-15{display:block;max-width:62.5%;flex:0 0 62.5%}.aah-col-lg-offset-15{margin-left:62.5%}.aah-col-lg-pull-15{position:relative;right:62.5%}.aah-col-lg-push-15{position:relative;left:62.5%}.aah-col-lg-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.aah-col-lg-offset-16{margin-left:66.6666666667%}.aah-col-lg-pull-16{position:relative;right:66.6666666667%}.aah-col-lg-push-16{position:relative;left:66.6666666667%}.aah-col-lg-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.aah-col-lg-offset-17{margin-left:70.8333333333%}.aah-col-lg-pull-17{position:relative;right:70.8333333333%}.aah-col-lg-push-17{position:relative;left:70.8333333333%}.aah-col-lg-18{display:block;max-width:75%;flex:0 0 75%}.aah-col-lg-offset-18{margin-left:75%}.aah-col-lg-pull-18{position:relative;right:75%}.aah-col-lg-push-18{position:relative;left:75%}.aah-col-lg-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.aah-col-lg-offset-19{margin-left:79.1666666667%}.aah-col-lg-pull-19{position:relative;right:79.1666666667%}.aah-col-lg-push-19{position:relative;left:79.1666666667%}.aah-col-lg-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.aah-col-lg-offset-20{margin-left:83.3333333333%}.aah-col-lg-pull-20{position:relative;right:83.3333333333%}.aah-col-lg-push-20{position:relative;left:83.3333333333%}.aah-col-lg-21{display:block;max-width:87.5%;flex:0 0 87.5%}.aah-col-lg-offset-21{margin-left:87.5%}.aah-col-lg-pull-21{position:relative;right:87.5%}.aah-col-lg-push-21{position:relative;left:87.5%}.aah-col-lg-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.aah-col-lg-offset-22{margin-left:91.6666666667%}.aah-col-lg-pull-22{position:relative;right:91.6666666667%}.aah-col-lg-push-22{position:relative;left:91.6666666667%}.aah-col-lg-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.aah-col-lg-offset-23{margin-left:95.8333333333%}.aah-col-lg-pull-23{position:relative;right:95.8333333333%}.aah-col-lg-push-23{position:relative;left:95.8333333333%}.aah-col-lg-24{display:block;max-width:100%;flex:0 0 100%}.aah-col-lg-offset-24{margin-left:100%}.aah-col-lg-pull-24{position:relative;right:100%}.aah-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width: 1920px){.aah-col-xl-0,.aah-col-xl-0.is-guttered{display:none}.aah-col-xl-0{max-width:0%;flex:0 0 0%}.aah-col-xl-offset-0{margin-left:0%}.aah-col-xl-pull-0{position:relative;right:0%}.aah-col-xl-push-0{position:relative;left:0%}.aah-col-xl-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.aah-col-xl-offset-1{margin-left:4.1666666667%}.aah-col-xl-pull-1{position:relative;right:4.1666666667%}.aah-col-xl-push-1{position:relative;left:4.1666666667%}.aah-col-xl-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.aah-col-xl-offset-2{margin-left:8.3333333333%}.aah-col-xl-pull-2{position:relative;right:8.3333333333%}.aah-col-xl-push-2{position:relative;left:8.3333333333%}.aah-col-xl-3{display:block;max-width:12.5%;flex:0 0 12.5%}.aah-col-xl-offset-3{margin-left:12.5%}.aah-col-xl-pull-3{position:relative;right:12.5%}.aah-col-xl-push-3{position:relative;left:12.5%}.aah-col-xl-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.aah-col-xl-offset-4{margin-left:16.6666666667%}.aah-col-xl-pull-4{position:relative;right:16.6666666667%}.aah-col-xl-push-4{position:relative;left:16.6666666667%}.aah-col-xl-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.aah-col-xl-offset-5{margin-left:20.8333333333%}.aah-col-xl-pull-5{position:relative;right:20.8333333333%}.aah-col-xl-push-5{position:relative;left:20.8333333333%}.aah-col-xl-6{display:block;max-width:25%;flex:0 0 25%}.aah-col-xl-offset-6{margin-left:25%}.aah-col-xl-pull-6{position:relative;right:25%}.aah-col-xl-push-6{position:relative;left:25%}.aah-col-xl-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.aah-col-xl-offset-7{margin-left:29.1666666667%}.aah-col-xl-pull-7{position:relative;right:29.1666666667%}.aah-col-xl-push-7{position:relative;left:29.1666666667%}.aah-col-xl-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.aah-col-xl-offset-8{margin-left:33.3333333333%}.aah-col-xl-pull-8{position:relative;right:33.3333333333%}.aah-col-xl-push-8{position:relative;left:33.3333333333%}.aah-col-xl-9{display:block;max-width:37.5%;flex:0 0 37.5%}.aah-col-xl-offset-9{margin-left:37.5%}.aah-col-xl-pull-9{position:relative;right:37.5%}.aah-col-xl-push-9{position:relative;left:37.5%}.aah-col-xl-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.aah-col-xl-offset-10{margin-left:41.6666666667%}.aah-col-xl-pull-10{position:relative;right:41.6666666667%}.aah-col-xl-push-10{position:relative;left:41.6666666667%}.aah-col-xl-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.aah-col-xl-offset-11{margin-left:45.8333333333%}.aah-col-xl-pull-11{position:relative;right:45.8333333333%}.aah-col-xl-push-11{position:relative;left:45.8333333333%}.aah-col-xl-12{display:block;max-width:50%;flex:0 0 50%}.aah-col-xl-offset-12{margin-left:50%}.aah-col-xl-pull-12{position:relative;right:50%}.aah-col-xl-push-12{position:relative;left:50%}.aah-col-xl-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.aah-col-xl-offset-13{margin-left:54.1666666667%}.aah-col-xl-pull-13{position:relative;right:54.1666666667%}.aah-col-xl-push-13{position:relative;left:54.1666666667%}.aah-col-xl-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.aah-col-xl-offset-14{margin-left:58.3333333333%}.aah-col-xl-pull-14{position:relative;right:58.3333333333%}.aah-col-xl-push-14{position:relative;left:58.3333333333%}.aah-col-xl-15{display:block;max-width:62.5%;flex:0 0 62.5%}.aah-col-xl-offset-15{margin-left:62.5%}.aah-col-xl-pull-15{position:relative;right:62.5%}.aah-col-xl-push-15{position:relative;left:62.5%}.aah-col-xl-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.aah-col-xl-offset-16{margin-left:66.6666666667%}.aah-col-xl-pull-16{position:relative;right:66.6666666667%}.aah-col-xl-push-16{position:relative;left:66.6666666667%}.aah-col-xl-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.aah-col-xl-offset-17{margin-left:70.8333333333%}.aah-col-xl-pull-17{position:relative;right:70.8333333333%}.aah-col-xl-push-17{position:relative;left:70.8333333333%}.aah-col-xl-18{display:block;max-width:75%;flex:0 0 75%}.aah-col-xl-offset-18{margin-left:75%}.aah-col-xl-pull-18{position:relative;right:75%}.aah-col-xl-push-18{position:relative;left:75%}.aah-col-xl-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.aah-col-xl-offset-19{margin-left:79.1666666667%}.aah-col-xl-pull-19{position:relative;right:79.1666666667%}.aah-col-xl-push-19{position:relative;left:79.1666666667%}.aah-col-xl-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.aah-col-xl-offset-20{margin-left:83.3333333333%}.aah-col-xl-pull-20{position:relative;right:83.3333333333%}.aah-col-xl-push-20{position:relative;left:83.3333333333%}.aah-col-xl-21{display:block;max-width:87.5%;flex:0 0 87.5%}.aah-col-xl-offset-21{margin-left:87.5%}.aah-col-xl-pull-21{position:relative;right:87.5%}.aah-col-xl-push-21{position:relative;left:87.5%}.aah-col-xl-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.aah-col-xl-offset-22{margin-left:91.6666666667%}.aah-col-xl-pull-22{position:relative;right:91.6666666667%}.aah-col-xl-push-22{position:relative;left:91.6666666667%}.aah-col-xl-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.aah-col-xl-offset-23{margin-left:95.8333333333%}.aah-col-xl-pull-23{position:relative;right:95.8333333333%}.aah-col-xl-push-23{position:relative;left:95.8333333333%}.aah-col-xl-24{display:block;max-width:100%;flex:0 0 100%}.aah-col-xl-offset-24{margin-left:100%}.aah-col-xl-pull-24{position:relative;right:100%}.aah-col-xl-push-24{position:relative;left:100%}}.aah-collapse{--aah-collapse-border-color: var(--aah-border-color-lighter);--aah-collapse-header-height: 48px;--aah-collapse-header-bg-color: var(--aah-fill-color-blank);--aah-collapse-header-text-color: var(--aah-text-color-primary);--aah-collapse-header-font-size: 13px;--aah-collapse-content-bg-color: var(--aah-fill-color-blank);--aah-collapse-content-font-size: 13px;--aah-collapse-content-text-color: var(--aah-text-color-primary);border-top:1px solid var(--aah-collapse-border-color);border-bottom:1px solid var(--aah-collapse-border-color)}.aah-collapse-item.is-disabled .aah-collapse-item__header{color:var(--aah-text-color-disabled);cursor:not-allowed}.aah-collapse-item__header{width:100%;padding:0;border:none;display:flex;align-items:center;height:var(--aah-collapse-header-height);line-height:var(--aah-collapse-header-height);background-color:var(--aah-collapse-header-bg-color);color:var(--aah-collapse-header-text-color);cursor:pointer;border-bottom:1px solid var(--aah-collapse-border-color);font-size:var(--aah-collapse-header-font-size);font-weight:500;transition:border-bottom-color var(--aah-transition-duration);outline:none}.aah-collapse-item__arrow{margin:0 8px 0 auto;transition:transform var(--aah-transition-duration);font-weight:300}.aah-collapse-item__arrow.is-active{transform:rotate(90deg)}.aah-collapse-item__header.focusing:focus:not(:hover){color:var(--aah-color-primary)}.aah-collapse-item__header.is-active{border-bottom-color:transparent}.aah-collapse-item__wrap{will-change:height;background-color:var(--aah-collapse-content-bg-color);overflow:hidden;box-sizing:border-box;border-bottom:1px solid var(--aah-collapse-border-color)}.aah-collapse-item__content{padding-bottom:25px;font-size:var(--aah-collapse-content-font-size);color:var(--aah-collapse-content-text-color);line-height:1.7692307692}.aah-collapse-item:last-child{margin-bottom:-1px}.aah-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.aah-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.aah-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.aah-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.aah-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--aah-color-primary)}.aah-color-predefine__color-selector>div{display:flex;height:100%;border-radius:3px}.aah-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.aah-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px;float:right}.aah-color-hue-slider__bar{position:relative;background:linear-gradient(to right,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);height:100%}.aah-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--aah-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.aah-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.aah-color-hue-slider.is-vertical .aah-color-hue-slider__bar{background:linear-gradient(to bottom,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.aah-color-hue-slider.is-vertical .aah-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.aah-color-svpanel{position:relative;width:280px;height:180px}.aah-color-svpanel__white,.aah-color-svpanel__black{position:absolute;top:0;left:0;right:0;bottom:0}.aah-color-svpanel__white{background:linear-gradient(to right,#fff,#fff0)}.aah-color-svpanel__black{background:linear-gradient(to top,#000,#0000)}.aah-color-svpanel__cursor{position:absolute}.aah-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;border-radius:50%;transform:translate(-2px,-2px)}.aah-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-image:linear-gradient(45deg,var(--aah-color-picker-alpha-bg-a) 25%,var(--aah-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--aah-color-picker-alpha-bg-a) 25%,var(--aah-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--aah-color-picker-alpha-bg-b) 75%,var(--aah-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--aah-color-picker-alpha-bg-b) 75%,var(--aah-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.aah-color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,255,255,0) 0%,var(--aah-bg-color) 100%);height:100%}.aah-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--aah-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.aah-color-alpha-slider.is-vertical{width:20px;height:180px}.aah-color-alpha-slider.is-vertical .aah-color-alpha-slider__bar{background:linear-gradient(to bottom,#fff0,#fff)}.aah-color-alpha-slider.is-vertical .aah-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.aah-color-dropdown{width:300px}.aah-color-dropdown__main-wrapper{margin-bottom:6px}.aah-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.aah-color-dropdown__btns{margin-top:12px;text-align:right}.aah-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.aah-color-picker{display:inline-block;position:relative;line-height:normal;outline:none}.aah-color-picker:hover:not(.is-disabled,.is-focused) .aah-color-picker__trigger{border-color:var(--aah-border-color-hover)}.aah-color-picker:focus-visible:not(.is-disabled) .aah-color-picker__trigger{outline:2px solid var(--aah-color-primary);outline-offset:1px}.aah-color-picker.is-focused .aah-color-picker__trigger{border-color:var(--aah-color-primary)}.aah-color-picker.is-disabled .aah-color-picker__trigger{cursor:not-allowed}.aah-color-picker--large{height:40px}.aah-color-picker--large .aah-color-picker__trigger{height:40px;width:40px}.aah-color-picker--large .aah-color-picker__mask{height:38px;width:38px}.aah-color-picker--small{height:24px}.aah-color-picker--small .aah-color-picker__trigger{height:24px;width:24px}.aah-color-picker--small .aah-color-picker__mask{height:22px;width:22px}.aah-color-picker--small .aah-color-picker__icon,.aah-color-picker--small .aah-color-picker__empty{transform:scale(.8)}.aah-color-picker__mask{height:30px;width:30px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:#ffffffb3}.aah-color-picker__trigger{display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;height:32px;width:32px;padding:4px;border:1px solid var(--aah-border-color);border-radius:4px;font-size:0;position:relative;cursor:pointer}.aah-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid var(--aah-text-color-secondary);border-radius:var(--aah-border-radius-small);width:100%;height:100%;text-align:center}.aah-color-picker__color.is-alpha{background-image:linear-gradient(45deg,var(--aah-color-picker-alpha-bg-a) 25%,var(--aah-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--aah-color-picker-alpha-bg-a) 25%,var(--aah-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--aah-color-picker-alpha-bg-b) 75%,var(--aah-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--aah-color-picker-alpha-bg-b) 75%,var(--aah-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.aah-color-picker__color-inner{display:inline-flex;justify-content:center;align-items:center;width:100%;height:100%}.aah-color-picker .aah-color-picker__empty{font-size:12px;color:var(--aah-text-color-secondary)}.aah-color-picker .aah-color-picker__icon{display:inline-flex;justify-content:center;align-items:center;color:#fff;font-size:12px}.aah-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border-radius:var(--aah-border-radius-base);box-shadow:var(--aah-box-shadow-light)}.aah-color-picker__panel.aah-popper{border:1px solid var(--aah-border-color-lighter)}.aah-color-picker,.aah-color-picker__panel{--aah-color-picker-alpha-bg-a: #ccc;--aah-color-picker-alpha-bg-b: transparent}.dark .aah-color-picker,.dark .aah-color-picker__panel{--aah-color-picker-alpha-bg-a: #333333}.aah-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.aah-container.is-vertical{flex-direction:column}.aah-date-table{font-size:12px;-webkit-user-select:none;user-select:none}.aah-date-table.is-week-mode .aah-date-table__row:hover .aah-date-table-cell{background-color:var(--aah-datepicker-inrange-bg-color)}.aah-date-table.is-week-mode .aah-date-table__row:hover td.available:hover{color:var(--aah-datepicker-text-color)}.aah-date-table.is-week-mode .aah-date-table__row:hover td:first-child .aah-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.aah-date-table.is-week-mode .aah-date-table__row:hover td:last-child .aah-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.aah-date-table.is-week-mode .aah-date-table__row.current .aah-date-table-cell{background-color:var(--aah-datepicker-inrange-bg-color)}.aah-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.aah-date-table td .aah-date-table-cell{height:30px;padding:3px 0;box-sizing:border-box}.aah-date-table td .aah-date-table-cell .aah-date-table-cell__text{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translate(-50%);border-radius:50%}.aah-date-table td.next-month,.aah-date-table td.prev-month{color:var(--aah-datepicker-off-text-color)}.aah-date-table td.today{position:relative}.aah-date-table td.today .aah-date-table-cell__text{color:var(--aah-color-primary);font-weight:700}.aah-date-table td.today.start-date .aah-date-table-cell__text,.aah-date-table td.today.end-date .aah-date-table-cell__text{color:#fff}.aah-date-table td.available:hover{color:var(--aah-datepicker-hover-text-color)}.aah-date-table td.in-range .aah-date-table-cell{background-color:var(--aah-datepicker-inrange-bg-color)}.aah-date-table td.in-range .aah-date-table-cell:hover{background-color:var(--aah-datepicker-inrange-hover-bg-color)}.aah-date-table td.current:not(.disabled) .aah-date-table-cell__text{color:#fff;background-color:var(--aah-datepicker-active-color)}.aah-date-table td.current:not(.disabled):focus-visible .aah-date-table-cell__text{outline:2px solid var(--aah-datepicker-active-color);outline-offset:1px}.aah-date-table td.start-date .aah-date-table-cell,.aah-date-table td.end-date .aah-date-table-cell{color:#fff}.aah-date-table td.start-date .aah-date-table-cell__text,.aah-date-table td.end-date .aah-date-table-cell__text{background-color:var(--aah-datepicker-active-color)}.aah-date-table td.start-date .aah-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.aah-date-table td.end-date .aah-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.aah-date-table td.disabled .aah-date-table-cell{background-color:var(--aah-fill-color-light);opacity:1;cursor:not-allowed;color:var(--aah-text-color-placeholder)}.aah-date-table td.selected .aah-date-table-cell{margin-left:5px;margin-right:5px;border-radius:15px}.aah-date-table td.selected .aah-date-table-cell__text{background-color:var(--aah-datepicker-active-color);color:#fff;border-radius:15px}.aah-date-table td.week{font-size:80%;color:var(--aah-datepicker-header-text-color)}.aah-date-table td:focus{outline:none}.aah-date-table th{padding:5px;color:var(--aah-datepicker-header-text-color);font-weight:400;border-bottom:solid 1px var(--aah-border-color-lighter)}.aah-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.aah-month-table td{width:68px;text-align:center;padding:8px 0;cursor:pointer;position:relative}.aah-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.aah-month-table td.today .cell{color:var(--aah-color-primary);font-weight:700}.aah-month-table td.today.start-date .cell,.aah-month-table td.today.end-date .cell{color:#fff}.aah-month-table td.disabled .cell{background-color:var(--aah-fill-color-light);cursor:not-allowed;color:var(--aah-text-color-placeholder)}.aah-month-table td.disabled .cell:hover{color:var(--aah-text-color-placeholder)}.aah-month-table td .cell{width:54px;height:36px;display:block;line-height:36px;color:var(--aah-datepicker-text-color);margin:0 auto;border-radius:18px;position:absolute;left:50%;transform:translate(-50%)}.aah-month-table td .cell:hover{color:var(--aah-datepicker-hover-text-color)}.aah-month-table td.in-range div{background-color:var(--aah-datepicker-inrange-bg-color)}.aah-month-table td.in-range div:hover{background-color:var(--aah-datepicker-inrange-hover-bg-color)}.aah-month-table td.start-date div,.aah-month-table td.end-date div{color:#fff}.aah-month-table td.start-date .cell,.aah-month-table td.end-date .cell{color:#fff;background-color:var(--aah-datepicker-active-color)}.aah-month-table td.start-date div{margin-left:3px;border-top-left-radius:24px;border-bottom-left-radius:24px}.aah-month-table td.end-date div{margin-right:3px;border-top-right-radius:24px;border-bottom-right-radius:24px}.aah-month-table td.current:not(.disabled) div{border-radius:24px;margin-left:3px;margin-right:3px}.aah-month-table td.current:not(.disabled) .cell{color:#fff;background-color:var(--aah-datepicker-active-color)}.aah-month-table td:focus-visible{outline:none}.aah-month-table td:focus-visible .cell{outline:2px solid var(--aah-datepicker-active-color);outline-offset:1px}.aah-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.aah-year-table .aah-icon{color:var(--aah-datepicker-icon-color)}.aah-year-table td{width:68px;text-align:center;padding:8px 0;cursor:pointer;position:relative}.aah-year-table td div{height:48px;padding:6px 0;box-sizing:border-box}.aah-year-table td.today .cell{color:var(--aah-color-primary);font-weight:700}.aah-year-table td.disabled .cell{background-color:var(--aah-fill-color-light);cursor:not-allowed;color:var(--aah-text-color-placeholder)}.aah-year-table td.disabled .cell:hover{color:var(--aah-text-color-placeholder)}.aah-year-table td .cell{width:54px;height:36px;display:block;line-height:36px;color:var(--aah-datepicker-text-color);border-radius:18px;margin:0 auto;position:absolute;left:50%;transform:translate(-50%)}.aah-year-table td .cell:hover{color:var(--aah-datepicker-hover-text-color)}.aah-year-table td.current:not(.disabled) div{border-radius:24px;margin-left:3px;margin-right:3px}.aah-year-table td.current:not(.disabled) .cell{color:#fff;background-color:var(--aah-datepicker-active-color)}.aah-year-table td:focus-visible{outline:none}.aah-year-table td:focus-visible .cell{outline:2px solid var(--aah-datepicker-active-color);outline-offset:1px}.aah-time-spinner.has-seconds .aah-time-spinner__wrapper{width:33.3%}.aah-time-spinner__wrapper{max-height:192px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.aah-time-spinner__wrapper.aah-scrollbar__wrap:not(.aah-scrollbar__wrap--hidden-default){padding-bottom:15px}.aah-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.aah-time-spinner__wrapper.is-arrow .aah-time-spinner__list{transform:translateY(-32px)}.aah-time-spinner__wrapper.is-arrow .aah-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--aah-fill-color-light);cursor:default}.aah-time-spinner__arrow{font-size:12px;color:var(--aah-text-color-secondary);position:absolute;left:0;width:100%;z-index:var(--aah-index-normal);text-align:center;height:30px;line-height:30px;cursor:pointer}.aah-time-spinner__arrow:hover{color:var(--aah-color-primary)}.aah-time-spinner__arrow.arrow-up{top:10px}.aah-time-spinner__arrow.arrow-down{bottom:10px}.aah-time-spinner__input.aah-input{width:70%}.aah-time-spinner__input.aah-input .aah-input__inner{padding:0;text-align:center}.aah-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.aah-time-spinner__list:after,.aah-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.aah-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:var(--aah-text-color-regular)}.aah-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--aah-fill-color-light);cursor:pointer}.aah-time-spinner__item.is-active:not(.is-disabled){color:var(--aah-text-color-primary);font-weight:700}.aah-time-spinner__item.is-disabled{color:var(--aah-text-color-placeholder);cursor:not-allowed}.aah-picker__popper{--aah-datepicker-border-color: var(--aah-disabled-border-color)}.aah-picker__popper.aah-popper{background:var(--aah-bg-color-overlay);border:1px solid var(--aah-datepicker-border-color);box-shadow:var(--aah-box-shadow-light)}.aah-picker__popper.aah-popper .aah-popper__arrow:before{border:1px solid var(--aah-datepicker-border-color)}.aah-picker__popper.aah-popper[data-popper-placement^=top] .aah-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.aah-picker__popper.aah-popper[data-popper-placement^=bottom] .aah-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.aah-picker__popper.aah-popper[data-popper-placement^=left] .aah-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.aah-picker__popper.aah-popper[data-popper-placement^=right] .aah-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.aah-date-editor{--aah-date-editor-width: 220px;--aah-date-editor-monthrange-width: 300px;--aah-date-editor-daterange-width: 350px;--aah-date-editor-datetimerange-width: 400px;--aah-input-text-color: var(--aah-text-color-regular);--aah-input-border: var(--aah-border);--aah-input-hover-border: var(--aah-border-color-hover);--aah-input-focus-border: var(--aah-color-primary);--aah-input-transparent-border: 0 0 0 1px transparent inset;--aah-input-border-color: var(--aah-border-color);--aah-input-border-radius: var(--aah-border-radius-base);--aah-input-bg-color: var(--aah-fill-color-blank);--aah-input-icon-color: var(--aah-text-color-placeholder);--aah-input-placeholder-color: var(--aah-text-color-placeholder);--aah-input-hover-border-color: var(--aah-border-color-hover);--aah-input-clear-hover-color: var(--aah-text-color-secondary);--aah-input-focus-border-color: var(--aah-color-primary);--aah-input-width: 100%;position:relative;text-align:left;vertical-align:middle}.aah-date-editor.aah-input__wrapper{box-shadow:0 0 0 1px var(--aah-input-border-color, var(--aah-border-color)) inset}.aah-date-editor.aah-input__wrapper:hover{box-shadow:0 0 0 1px var(--aah-input-hover-border-color) inset}.aah-date-editor.aah-input,.aah-date-editor.aah-input__wrapper{width:var(--aah-date-editor-width);height:var(--aah-input-height, var(--aah-component-size))}.aah-date-editor--monthrange{--aah-date-editor-width: var(--aah-date-editor-monthrange-width)}.aah-date-editor--daterange,.aah-date-editor--timerange{--aah-date-editor-width: var(--aah-date-editor-daterange-width)}.aah-date-editor--datetimerange{--aah-date-editor-width: var(--aah-date-editor-datetimerange-width)}.aah-date-editor--dates .aah-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.aah-date-editor .close-icon,.aah-date-editor .clear-icon{cursor:pointer}.aah-date-editor .clear-icon:hover{color:var(--aah-text-color-secondary)}.aah-date-editor .aah-range__icon{height:inherit;font-size:14px;color:var(--aah-text-color-placeholder);float:left}.aah-date-editor .aah-range__icon svg{vertical-align:middle}.aah-date-editor .aah-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:none;display:inline-block;height:30px;line-height:30px;margin:0;padding:0;width:39%;text-align:center;font-size:var(--aah-font-size-base);color:var(--aah-text-color-regular);background-color:transparent}.aah-date-editor .aah-range-input::placeholder{color:var(--aah-text-color-placeholder)}.aah-date-editor .aah-range-separator{flex:1;display:inline-flex;justify-content:center;align-items:center;height:100%;padding:0 5px;margin:0;font-size:14px;overflow-wrap:break-word;color:var(--aah-text-color-primary)}.aah-date-editor .aah-range__close-icon{font-size:14px;color:var(--aah-text-color-placeholder);height:inherit;width:unset;cursor:pointer}.aah-date-editor .aah-range__close-icon:hover{color:var(--aah-text-color-secondary)}.aah-date-editor .aah-range__close-icon svg{vertical-align:middle}.aah-date-editor .aah-range__close-icon--hidden{opacity:0;visibility:hidden}.aah-range-editor.aah-input__wrapper{display:inline-flex;align-items:center;padding:0 10px}.aah-range-editor.is-active,.aah-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--aah-input-focus-border-color) inset}.aah-range-editor--large{line-height:var(--aah-component-size-large)}.aah-range-editor--large.aah-input__wrapper{height:var(--aah-component-size-large)}.aah-range-editor--large .aah-range-separator{line-height:40px;font-size:14px}.aah-range-editor--large .aah-range-input{height:38px;line-height:38px;font-size:14px}.aah-range-editor--small{line-height:var(--aah-component-size-small)}.aah-range-editor--small.aah-input__wrapper{height:var(--aah-component-size-small)}.aah-range-editor--small .aah-range-separator{line-height:24px;font-size:12px}.aah-range-editor--small .aah-range-input{height:22px;line-height:22px;font-size:12px}.aah-range-editor.is-disabled{background-color:var(--aah-disabled-bg-color);border-color:var(--aah-disabled-border-color);color:var(--aah-disabled-text-color);cursor:not-allowed}.aah-range-editor.is-disabled:hover,.aah-range-editor.is-disabled:focus{border-color:var(--aah-disabled-border-color)}.aah-range-editor.is-disabled input{background-color:var(--aah-disabled-bg-color);color:var(--aah-disabled-text-color);cursor:not-allowed}.aah-range-editor.is-disabled input::placeholder{color:var(--aah-text-color-placeholder)}.aah-range-editor.is-disabled .aah-range-separator{color:var(--aah-disabled-text-color)}.aah-picker-panel{color:var(--aah-text-color-regular);background:var(--aah-bg-color-overlay);border-radius:var(--aah-border-radius-base);line-height:30px}.aah-picker-panel .aah-time-panel{margin:5px 0;border:solid 1px var(--aah-datepicker-border-color);background-color:var(--aah-bg-color-overlay);box-shadow:var(--aah-box-shadow-light)}.aah-picker-panel__body:after,.aah-picker-panel__body-wrapper:after{content:"";display:table;clear:both}.aah-picker-panel__content{position:relative;margin:15px}.aah-picker-panel__footer{border-top:1px solid var(--aah-datepicker-inner-border-color);padding:4px 12px;text-align:right;background-color:var(--aah-bg-color-overlay);position:relative;font-size:0}.aah-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:var(--aah-datepicker-text-color);padding-left:12px;text-align:left;outline:none;cursor:pointer}.aah-picker-panel__shortcut:hover{color:var(--aah-datepicker-hover-text-color)}.aah-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--aah-datepicker-active-color)}.aah-picker-panel__btn{border:1px solid var(--aah-fill-color-darker);color:var(--aah-text-color-primary);line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:none;font-size:12px}.aah-picker-panel__btn[disabled]{color:var(--aah-text-color-disabled);cursor:not-allowed}.aah-picker-panel__icon-btn{font-size:12px;color:var(--aah-datepicker-icon-color);border:0;background:transparent;cursor:pointer;outline:none;margin-top:8px}.aah-picker-panel__icon-btn:hover{color:var(--aah-datepicker-hover-text-color)}.aah-picker-panel__icon-btn:focus-visible{color:var(--aah-datepicker-hover-text-color)}.aah-picker-panel__icon-btn.is-disabled{color:var(--aah-text-color-disabled)}.aah-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.aah-picker-panel__icon-btn .aah-icon{cursor:pointer;font-size:inherit}.aah-picker-panel__link-btn{vertical-align:middle}.aah-picker-panel *[slot=sidebar],.aah-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid var(--aah-datepicker-inner-border-color);box-sizing:border-box;padding-top:6px;background-color:var(--aah-bg-color-overlay);overflow:auto}.aah-picker-panel *[slot=sidebar]+.aah-picker-panel__body,.aah-picker-panel__sidebar+.aah-picker-panel__body{margin-left:110px}.aah-date-picker{--aah-datepicker-text-color: var(--aah-text-color-regular);--aah-datepicker-off-text-color: var(--aah-text-color-placeholder);--aah-datepicker-header-text-color: var(--aah-text-color-regular);--aah-datepicker-icon-color: var(--aah-text-color-primary);--aah-datepicker-border-color: var(--aah-disabled-border-color);--aah-datepicker-inner-border-color: var(--aah-border-color-light);--aah-datepicker-inrange-bg-color: var(--aah-border-color-extra-light);--aah-datepicker-inrange-hover-bg-color: var(--aah-border-color-extra-light);--aah-datepicker-active-color: var(--aah-color-primary);--aah-datepicker-hover-text-color: var(--aah-color-primary)}.aah-date-picker{width:322px}.aah-date-picker.has-sidebar.has-time{width:434px}.aah-date-picker.has-sidebar{width:438px}.aah-date-picker.has-time .aah-picker-panel__body-wrapper{position:relative}.aah-date-picker .aah-picker-panel__content{width:292px}.aah-date-picker table{table-layout:fixed;width:100%}.aah-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.aah-date-picker__time-header{position:relative;border-bottom:1px solid var(--aah-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.aah-date-picker__header{margin:12px;text-align:center}.aah-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px var(--aah-border-color-lighter)}.aah-date-picker__header--bordered+.aah-picker-panel__content{margin-top:0}.aah-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:var(--aah-text-color-regular)}.aah-date-picker__header-label:hover{color:var(--aah-datepicker-hover-text-color)}.aah-date-picker__header-label:focus-visible{outline:none;color:var(--aah-datepicker-hover-text-color)}.aah-date-picker__header-label.active{color:var(--aah-datepicker-active-color)}.aah-date-picker__prev-btn{float:left}.aah-date-picker__next-btn{float:right}.aah-date-picker__time-wrap{padding:10px;text-align:center}.aah-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.aah-date-picker .aah-time-panel{position:absolute}.aah-date-range-picker{--aah-datepicker-text-color: var(--aah-text-color-regular);--aah-datepicker-off-text-color: var(--aah-text-color-placeholder);--aah-datepicker-header-text-color: var(--aah-text-color-regular);--aah-datepicker-icon-color: var(--aah-text-color-primary);--aah-datepicker-border-color: var(--aah-disabled-border-color);--aah-datepicker-inner-border-color: var(--aah-border-color-light);--aah-datepicker-inrange-bg-color: var(--aah-border-color-extra-light);--aah-datepicker-inrange-hover-bg-color: var(--aah-border-color-extra-light);--aah-datepicker-active-color: var(--aah-color-primary);--aah-datepicker-hover-text-color: var(--aah-color-primary)}.aah-date-range-picker{width:646px}.aah-date-range-picker.has-sidebar{width:756px}.aah-date-range-picker.has-time .aah-picker-panel__body-wrapper{position:relative}.aah-date-range-picker table{table-layout:fixed;width:100%}.aah-date-range-picker .aah-picker-panel__body{min-width:513px}.aah-date-range-picker .aah-picker-panel__content{margin:0}.aah-date-range-picker__header{position:relative;text-align:center;height:28px}.aah-date-range-picker__header [class*=arrow-left]{float:left}.aah-date-range-picker__header [class*=arrow-right]{float:right}.aah-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.aah-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.aah-date-range-picker__content.is-left{border-right:1px solid var(--aah-datepicker-inner-border-color)}.aah-date-range-picker__content .aah-date-range-picker__header div{margin-left:50px;margin-right:50px}.aah-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.aah-date-range-picker__editors-wrap.is-right{text-align:right}.aah-date-range-picker__time-header{position:relative;border-bottom:1px solid var(--aah-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.aah-date-range-picker__time-header>.aah-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:var(--aah-datepicker-icon-color)}.aah-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.aah-date-range-picker__time-picker-wrap .aah-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.aah-date-range-picker__time-picker-wrap .aah-time-panel{position:absolute}.aah-time-range-picker{width:354px;overflow:visible}.aah-time-range-picker__content{position:relative;text-align:center;padding:10px;z-index:1}.aah-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.aah-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.aah-time-range-picker__body{border-radius:2px;border:1px solid var(--aah-datepicker-border-color)}.aah-time-panel{border-radius:2px;position:relative;width:180px;left:0;z-index:var(--aah-index-top);-webkit-user-select:none;user-select:none;box-sizing:content-box}.aah-time-panel__content{font-size:0;position:relative;overflow:hidden}.aah-time-panel__content:after,.aah-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-16px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left}.aah-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.aah-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%;border-top:1px solid var(--aah-border-color-light);border-bottom:1px solid var(--aah-border-color-light)}.aah-time-panel__content.has-seconds:after{left:66.6666666667%}.aah-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.aah-time-panel__footer{border-top:1px solid var(--aah-timepicker-inner-border-color, var(--aah-border-color-light));padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.aah-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:none;font-size:12px;color:var(--aah-text-color-primary)}.aah-time-panel__btn.confirm{font-weight:800;color:var(--aah-timepicker-active-color, var(--aah-color-primary))}.aah-descriptions{--aah-descriptions-table-border: 1px solid var(--aah-border-color-lighter);--aah-descriptions-item-bordered-label-background: var(--aah-fill-color-light);box-sizing:border-box;font-size:var(--aah-font-size-base);color:var(--aah-text-color-primary)}.aah-descriptions__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.aah-descriptions__title{color:var(--aah-text-color-primary);font-size:16px;font-weight:700}.aah-descriptions__body{background-color:var(--aah-fill-color-blank)}.aah-descriptions__body .aah-descriptions__table{border-collapse:collapse;width:100%}.aah-descriptions__body .aah-descriptions__table .aah-descriptions__cell{box-sizing:border-box;text-align:left;font-weight:400;line-height:23px;font-size:14px}.aah-descriptions__body .aah-descriptions__table .aah-descriptions__cell.is-left{text-align:left}.aah-descriptions__body .aah-descriptions__table .aah-descriptions__cell.is-center{text-align:center}.aah-descriptions__body .aah-descriptions__table .aah-descriptions__cell.is-right{text-align:right}.aah-descriptions__body .aah-descriptions__table.is-bordered .aah-descriptions__cell{border:var(--aah-descriptions-table-border);padding:8px 11px}.aah-descriptions__body .aah-descriptions__table:not(.is-bordered) .aah-descriptions__cell{padding-bottom:12px}.aah-descriptions--large{font-size:14px}.aah-descriptions--large .aah-descriptions__header{margin-bottom:20px}.aah-descriptions--large .aah-descriptions__header .aah-descriptions__title{font-size:16px}.aah-descriptions--large .aah-descriptions__body .aah-descriptions__table .aah-descriptions__cell{font-size:14px}.aah-descriptions--large .aah-descriptions__body .aah-descriptions__table.is-bordered .aah-descriptions__cell{padding:12px 15px}.aah-descriptions--large .aah-descriptions__body .aah-descriptions__table:not(.is-bordered) .aah-descriptions__cell{padding-bottom:16px}.aah-descriptions--small{font-size:12px}.aah-descriptions--small .aah-descriptions__header{margin-bottom:12px}.aah-descriptions--small .aah-descriptions__header .aah-descriptions__title{font-size:14px}.aah-descriptions--small .aah-descriptions__body .aah-descriptions__table .aah-descriptions__cell{font-size:12px}.aah-descriptions--small .aah-descriptions__body .aah-descriptions__table.is-bordered .aah-descriptions__cell{padding:4px 7px}.aah-descriptions--small .aah-descriptions__body .aah-descriptions__table:not(.is-bordered) .aah-descriptions__cell{padding-bottom:8px}.aah-descriptions__label.aah-descriptions__cell.is-bordered-label{font-weight:700;color:var(--aah-text-color-regular);background:var(--aah-descriptions-item-bordered-label-background)}.aah-descriptions__label:not(.is-bordered-label){color:var(--aah-text-color-primary);margin-right:16px}.aah-descriptions__label.aah-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.aah-descriptions__content.aah-descriptions__cell.is-bordered-content{color:var(--aah-text-color-primary)}.aah-descriptions__content:not(.is-bordered-label){color:var(--aah-text-color-regular)}.aah-descriptions--large .aah-descriptions__label:not(.is-bordered-label){margin-right:16px}.aah-descriptions--large .aah-descriptions__label.aah-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.aah-descriptions--small .aah-descriptions__label:not(.is-bordered-label){margin-right:12px}.aah-descriptions--small .aah-descriptions__label.aah-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}:root{--aah-popup-modal-bg-color: var(--aah-color-black);--aah-popup-modal-opacity: .5}.v-modal-enter{animation:v-modal-in var(--aah-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--aah-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--aah-popup-modal-opacity);background:var(--aah-popup-modal-bg-color)}.aah-popup-parent--hidden{overflow:hidden}.aah-dialog{--aah-dialog-width: 50%;--aah-dialog-margin-top: 15vh;--aah-dialog-bg-color: var(--aah-bg-color);--aah-dialog-box-shadow: var(--aah-box-shadow);--aah-dialog-title-font-size: var(--aah-font-size-large);--aah-dialog-content-font-size: 14px;--aah-dialog-font-line-height: var(--aah-font-line-height-primary);--aah-dialog-padding-primary: 16px;--aah-dialog-border-radius: var(--aah-border-radius-small);position:relative;margin:var(--aah-dialog-margin-top, 15vh) auto 50px;background:var(--aah-dialog-bg-color);border-radius:var(--aah-dialog-border-radius);box-shadow:var(--aah-dialog-box-shadow);box-sizing:border-box;padding:var(--aah-dialog-padding-primary);width:var(--aah-dialog-width, 50%);overflow-wrap:break-word}.aah-dialog:focus{outline:none!important}.aah-dialog.is-align-center{margin:auto}.aah-dialog.is-fullscreen{--aah-dialog-width: 100%;--aah-dialog-margin-top: 0;margin-bottom:0;height:100%;overflow:auto}.aah-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.aah-dialog.is-draggable .aah-dialog__header{cursor:move;-webkit-user-select:none;user-select:none}.aah-dialog__header{padding-bottom:var(--aah-dialog-padding-primary)}.aah-dialog__header.show-close{padding-right:calc(var(--aah-dialog-padding-primary) + var(--aah-message-close-size, 16px))}.aah-dialog__headerbtn{position:absolute;top:0;right:0;padding:0;width:48px;height:48px;background:transparent;border:none;outline:none;cursor:pointer;font-size:var(--aah-message-close-size, 16px)}.aah-dialog__headerbtn .aah-dialog__close{color:var(--aah-color-info);font-size:inherit}.aah-dialog__headerbtn:focus .aah-dialog__close,.aah-dialog__headerbtn:hover .aah-dialog__close{color:var(--aah-color-primary)}.aah-dialog__title{line-height:var(--aah-dialog-font-line-height);font-size:var(--aah-dialog-title-font-size);color:var(--aah-text-color-primary)}.aah-dialog__body{color:var(--aah-text-color-regular);font-size:var(--aah-dialog-content-font-size)}.aah-dialog__footer{padding-top:var(--aah-dialog-padding-primary);text-align:right;box-sizing:border-box}.aah-dialog--center{text-align:center}.aah-dialog--center .aah-dialog__body{text-align:initial}.aah-dialog--center .aah-dialog__footer{text-align:inherit}.aah-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{animation:modal-fade-in var(--aah-transition-duration)}.dialog-fade-enter-active .aah-overlay-dialog{animation:dialog-fade-in var(--aah-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--aah-transition-duration)}.dialog-fade-leave-active .aah-overlay-dialog{animation:dialog-fade-out var(--aah-transition-duration)}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.aah-divider{position:relative}.aah-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0;border-top:1px var(--aah-border-color) var(--aah-border-style)}.aah-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative;border-left:1px var(--aah-border-color) var(--aah-border-style)}.aah-divider__text{position:absolute;background-color:var(--aah-bg-color);padding:0 20px;font-weight:500;color:var(--aah-text-color-primary);font-size:14px}.aah-divider__text.is-left{left:20px;transform:translateY(-50%)}.aah-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.aah-divider__text.is-right{right:20px;transform:translateY(-50%)}.aah-drawer{--aah-drawer-bg-color: var(--aah-dialog-bg-color, var(--aah-bg-color));--aah-drawer-padding-primary: var(--aah-dialog-padding-primary, 20px)}.aah-drawer{position:absolute;box-sizing:border-box;background-color:var(--aah-drawer-bg-color);display:flex;flex-direction:column;box-shadow:var(--aah-box-shadow-dark);overflow:hidden;transition:all var(--aah-transition-duration)}.aah-drawer .rtl,.aah-drawer .ltr,.aah-drawer .ttb,.aah-drawer .btt{transform:translate(0)}.aah-drawer__sr-focus:focus{outline:none!important}.aah-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:var(--aah-drawer-padding-primary);padding-bottom:0}.aah-drawer__header>:first-child{flex:1}.aah-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.aah-drawer__footer{padding:var(--aah-drawer-padding-primary);padding-top:10px;text-align:right}.aah-drawer__close-btn{display:inline-flex;border:none;cursor:pointer;font-size:var(--aah-font-size-extra-large);color:inherit;background-color:transparent;outline:none}.aah-drawer__close-btn:focus i,.aah-drawer__close-btn:hover i{color:var(--aah-color-primary)}.aah-drawer__body{flex:1;padding:var(--aah-drawer-padding-primary);overflow:auto}.aah-drawer__body>*{box-sizing:border-box}.aah-drawer.ltr,.aah-drawer.rtl{height:100%;top:0;bottom:0}.aah-drawer.ttb,.aah-drawer.btt{width:100%;left:0;right:0}.aah-drawer.ltr{left:0}.aah-drawer.rtl{right:0}.aah-drawer.ttb{top:0}.aah-drawer.btt{bottom:0}.aah-drawer-fade-enter-active,.aah-drawer-fade-leave-active{transition:all var(--aah-transition-duration)}.aah-drawer-fade-enter-from,.aah-drawer-fade-enter-active,.aah-drawer-fade-enter-to,.aah-drawer-fade-leave-from,.aah-drawer-fade-leave-active,.aah-drawer-fade-leave-to{overflow:hidden!important}.aah-drawer-fade-enter-from,.aah-drawer-fade-leave-to{opacity:0}.aah-drawer-fade-enter-to,.aah-drawer-fade-leave-from{opacity:1}.aah-drawer-fade-enter-from .rtl,.aah-drawer-fade-leave-to .rtl{transform:translate(100%)}.aah-drawer-fade-enter-from .ltr,.aah-drawer-fade-leave-to .ltr{transform:translate(-100%)}.aah-drawer-fade-enter-from .ttb,.aah-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.aah-drawer-fade-enter-from .btt,.aah-drawer-fade-leave-to .btt{transform:translateY(100%)}.aah-dropdown{--aah-dropdown-menu-box-shadow: var(--aah-box-shadow-light);--aah-dropdown-menuItem-hover-fill: var(--aah-color-primary-light-9);--aah-dropdown-menuItem-hover-color: var(--aah-color-primary);--aah-dropdown-menu-index: 10;display:inline-flex;position:relative;color:var(--aah-text-color-regular);font-size:var(--aah-font-size-base);line-height:1;vertical-align:top}.aah-dropdown.is-disabled{color:var(--aah-text-color-placeholder);cursor:not-allowed}.aah-dropdown__popper{--aah-dropdown-menu-box-shadow: var(--aah-box-shadow-light);--aah-dropdown-menuItem-hover-fill: var(--aah-color-primary-light-9);--aah-dropdown-menuItem-hover-color: var(--aah-color-primary);--aah-dropdown-menu-index: 10}.aah-dropdown__popper.aah-popper{background:var(--aah-bg-color-overlay);border:1px solid var(--aah-border-color-light);box-shadow:var(--aah-dropdown-menu-box-shadow)}.aah-dropdown__popper.aah-popper .aah-popper__arrow:before{border:1px solid var(--aah-border-color-light)}.aah-dropdown__popper.aah-popper[data-popper-placement^=top] .aah-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.aah-dropdown__popper.aah-popper[data-popper-placement^=bottom] .aah-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.aah-dropdown__popper.aah-popper[data-popper-placement^=left] .aah-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.aah-dropdown__popper.aah-popper[data-popper-placement^=right] .aah-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.aah-dropdown__popper .aah-dropdown-menu{border:none}.aah-dropdown__popper .aah-dropdown__popper-selfdefine{outline:none}.aah-dropdown__popper .aah-scrollbar__bar{z-index:calc(var(--aah-dropdown-menu-index) + 1)}.aah-dropdown__popper .aah-dropdown__list{list-style:none;padding:0;margin:0;box-sizing:border-box}.aah-dropdown .aah-dropdown__caret-button{padding-left:0;padding-right:0;display:inline-flex;justify-content:center;align-items:center;width:32px;border-left:none}.aah-dropdown .aah-dropdown__caret-button>span{display:inline-flex}.aah-dropdown .aah-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:-1px;bottom:-1px;left:0;background:var(--aah-overlay-color-lighter)}.aah-dropdown .aah-dropdown__caret-button.aah-button:before{background:var(--aah-border-color);opacity:.5}.aah-dropdown .aah-dropdown__caret-button .aah-dropdown__icon{font-size:inherit;padding-left:0}.aah-dropdown .aah-dropdown-selfdefine{outline:none}.aah-dropdown--large .aah-dropdown__caret-button{width:40px}.aah-dropdown--small .aah-dropdown__caret-button{width:24px}.aah-dropdown-menu{position:relative;top:0;left:0;z-index:var(--aah-dropdown-menu-index);padding:5px 0;margin:0;background-color:var(--aah-bg-color-overlay);border:none;border-radius:var(--aah-border-radius-base);box-shadow:none;list-style:none}.aah-dropdown-menu__item{display:flex;align-items:center;white-space:nowrap;list-style:none;line-height:22px;padding:5px 16px;margin:0;font-size:var(--aah-font-size-base);color:var(--aah-text-color-regular);cursor:pointer;outline:none}.aah-dropdown-menu__item:not(.is-disabled):focus{background-color:var(--aah-dropdown-menuItem-hover-fill);color:var(--aah-dropdown-menuItem-hover-color)}.aah-dropdown-menu__item i{margin-right:5px}.aah-dropdown-menu__item--divided{margin:6px 0;border-top:1px solid var(--aah-border-color-lighter)}.aah-dropdown-menu__item.is-disabled{cursor:not-allowed;color:var(--aah-text-color-disabled)}.aah-dropdown-menu--large{padding:7px 0}.aah-dropdown-menu--large .aah-dropdown-menu__item{padding:7px 20px;line-height:22px;font-size:14px}.aah-dropdown-menu--large .aah-dropdown-menu__item--divided{margin:8px 0}.aah-dropdown-menu--small{padding:3px 0}.aah-dropdown-menu--small .aah-dropdown-menu__item{padding:2px 12px;line-height:20px;font-size:12px}.aah-dropdown-menu--small .aah-dropdown-menu__item--divided{margin:4px 0}.aah-empty{--aah-empty-padding: 40px 0;--aah-empty-image-width: 160px;--aah-empty-description-margin-top: 20px;--aah-empty-bottom-margin-top: 20px;--aah-empty-fill-color-0: var(--aah-color-white);--aah-empty-fill-color-1: #fcfcfd;--aah-empty-fill-color-2: #f8f9fb;--aah-empty-fill-color-3: #f7f8fc;--aah-empty-fill-color-4: #eeeff3;--aah-empty-fill-color-5: #edeef2;--aah-empty-fill-color-6: #e9ebef;--aah-empty-fill-color-7: #e5e7e9;--aah-empty-fill-color-8: #e0e3e9;--aah-empty-fill-color-9: #d5d7de;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--aah-empty-padding)}.aah-empty__image{width:var(--aah-empty-image-width)}.aah-empty__image img{-webkit-user-select:none;user-select:none;width:100%;height:100%;vertical-align:top;object-fit:contain}.aah-empty__image svg{color:var(--aah-svg-monochrome-grey);fill:currentColor;width:100%;height:100%;vertical-align:top}.aah-empty__description{margin-top:var(--aah-empty-description-margin-top)}.aah-empty__description p{margin:0;font-size:var(--aah-font-size-base);color:var(--aah-text-color-secondary)}.aah-empty__bottom{margin-top:var(--aah-empty-bottom-margin-top)}.aah-footer{--aah-footer-padding: 0 20px;--aah-footer-height: 60px;padding:var(--aah-footer-padding);box-sizing:border-box;flex-shrink:0;height:var(--aah-footer-height)}.aah-form{--aah-form-label-font-size: var(--aah-font-size-base);--aah-form-inline-content-width: 220px}.aah-form--label-left .aah-form-item__label{justify-content:flex-start}.aah-form--label-top .aah-form-item{display:block}.aah-form--label-top .aah-form-item .aah-form-item__label{display:block;height:auto;text-align:left;margin-bottom:8px;line-height:22px}.aah-form--inline .aah-form-item{display:inline-flex;vertical-align:middle;margin-right:32px}.aah-form--inline.aah-form--label-top{display:flex;flex-wrap:wrap}.aah-form--inline.aah-form--label-top .aah-form-item{display:block}.aah-form--large.aah-form--label-top .aah-form-item .aah-form-item__label{margin-bottom:12px;line-height:22px}.aah-form--default.aah-form--label-top .aah-form-item .aah-form-item__label{margin-bottom:8px;line-height:22px}.aah-form--small.aah-form--label-top .aah-form-item .aah-form-item__label{margin-bottom:4px;line-height:20px}.aah-form-item{display:flex;--font-size: 14px;margin-bottom:18px}.aah-form-item .aah-form-item{margin-bottom:0}.aah-form-item .aah-input__validateIcon{display:none}.aah-form-item--large{--font-size: 14px;--aah-form-label-font-size: var(--font-size);margin-bottom:22px}.aah-form-item--large .aah-form-item__label{height:40px;line-height:40px}.aah-form-item--large .aah-form-item__content{line-height:40px}.aah-form-item--large .aah-form-item__error{padding-top:4px}.aah-form-item--default{--font-size: 14px;--aah-form-label-font-size: var(--font-size);margin-bottom:18px}.aah-form-item--default .aah-form-item__label{height:32px;line-height:32px}.aah-form-item--default .aah-form-item__content{line-height:32px}.aah-form-item--default .aah-form-item__error{padding-top:2px}.aah-form-item--small{--font-size: 12px;--aah-form-label-font-size: var(--font-size);margin-bottom:18px}.aah-form-item--small .aah-form-item__label{height:24px;line-height:24px}.aah-form-item--small .aah-form-item__content{line-height:24px}.aah-form-item--small .aah-form-item__error{padding-top:2px}.aah-form-item__label-wrap{display:flex}.aah-form-item__label{display:inline-flex;justify-content:flex-end;align-items:flex-start;flex:0 0 auto;font-size:var(--aah-form-label-font-size);color:var(--aah-text-color-regular);height:32px;line-height:32px;padding:0 12px 0 0;box-sizing:border-box}.aah-form-item__content{display:flex;flex-wrap:wrap;align-items:center;flex:1;line-height:32px;position:relative;font-size:var(--font-size);min-width:0}.aah-form-item__content .aah-input-group{vertical-align:top}.aah-form-item__error{color:var(--aah-color-danger);font-size:12px;line-height:1;padding-top:2px;position:absolute;top:100%;left:0}.aah-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.aah-form-item.is-required:not(.is-no-asterisk).asterisk-left>.aah-form-item__label:before,.aah-form-item.is-required:not(.is-no-asterisk).asterisk-left>.aah-form-item__label-wrap>.aah-form-item__label:before{content:"*";color:var(--aah-color-danger);margin-right:4px}.aah-form-item.is-required:not(.is-no-asterisk).asterisk-right>.aah-form-item__label:after,.aah-form-item.is-required:not(.is-no-asterisk).asterisk-right>.aah-form-item__label-wrap>.aah-form-item__label:after{content:"*";color:var(--aah-color-danger);margin-left:4px}.aah-form-item.is-error .aah-input__wrapper,.aah-form-item.is-error .aah-input__wrapper:hover,.aah-form-item.is-error .aah-input__wrapper:focus,.aah-form-item.is-error .aah-input__wrapper.is-focus,.aah-form-item.is-error .aah-textarea__inner,.aah-form-item.is-error .aah-textarea__inner:hover,.aah-form-item.is-error .aah-textarea__inner:focus,.aah-form-item.is-error .aah-textarea__inner.is-focus,.aah-form-item.is-error .aah-select__wrapper,.aah-form-item.is-error .aah-select__wrapper:hover,.aah-form-item.is-error .aah-select__wrapper:focus,.aah-form-item.is-error .aah-select__wrapper.is-focus{box-shadow:0 0 0 1px var(--aah-color-danger) inset}.aah-form-item.is-error .aah-input-group__append .aah-input__wrapper,.aah-form-item.is-error .aah-input-group__prepend .aah-input__wrapper{box-shadow:0 0 0 1px transparent inset}.aah-form-item.is-error .aah-input__validateIcon{color:var(--aah-color-danger)}.aah-form-item--feedback .aah-input__validateIcon{display:inline-flex}.aah-header{--aah-header-padding: 0 20px;--aah-header-height: 60px;padding:var(--aah-header-padding);box-sizing:border-box;flex-shrink:0;height:var(--aah-header-height)}.aah-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.aah-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;user-select:none}.aah-image-viewer__btn .aah-icon{font-size:inherit;cursor:pointer}.aah-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:40px}.aah-image-viewer__canvas{position:static;width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;user-select:none}.aah-image-viewer__actions{left:50%;bottom:30px;transform:translate(-50%);width:282px;height:44px;padding:0 23px;background-color:var(--aah-text-color-regular);border-color:#fff;border-radius:22px}.aah-image-viewer__actions__inner{width:100%;height:100%;cursor:default;font-size:23px;color:#fff;display:flex;align-items:center;justify-content:space-around}.aah-image-viewer__prev{top:50%;transform:translateY(-50%);left:40px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--aah-text-color-regular);border-color:#fff}.aah-image-viewer__next{top:50%;transform:translateY(-50%);right:40px;text-indent:2px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--aah-text-color-regular);border-color:#fff}.aah-image-viewer__close{width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--aah-text-color-regular);border-color:#fff}.aah-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{animation:viewer-fade-in var(--aah-transition-duration)}.viewer-fade-leave-active{animation:viewer-fade-out var(--aah-transition-duration)}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.aah-image__error,.aah-image__placeholder,.aah-image__wrapper,.aah-image__inner{width:100%;height:100%}.aah-image{position:relative;display:inline-block;overflow:hidden}.aah-image__inner{vertical-align:top;opacity:1}.aah-image__inner.is-loading{opacity:0}.aah-image__wrapper{position:absolute;top:0;left:0}.aah-image__placeholder{background:var(--aah-fill-color-light)}.aah-image__error{display:flex;justify-content:center;align-items:center;font-size:14px;background:var(--aah-fill-color-light);color:var(--aah-text-color-placeholder);vertical-align:middle}.aah-image__preview{cursor:pointer}.aah-input-number{position:relative;display:inline-flex;width:150px;line-height:30px}.aah-input-number .aah-input__wrapper{padding-left:42px;padding-right:42px}.aah-input-number .aah-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.aah-input-number .aah-input__inner::-webkit-inner-spin-button,.aah-input-number .aah-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.aah-input-number__increase,.aah-input-number__decrease{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--aah-fill-color-light);color:var(--aah-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;user-select:none}.aah-input-number__increase:hover,.aah-input-number__decrease:hover{color:var(--aah-color-primary)}.aah-input-number__increase:hover~.aah-input:not(.is-disabled) .aah-input__wrapper,.aah-input-number__decrease:hover~.aah-input:not(.is-disabled) .aah-input__wrapper{box-shadow:0 0 0 1px var(--aah-input-focus-border-color, var(--aah-color-primary)) inset}.aah-input-number__increase.is-disabled,.aah-input-number__decrease.is-disabled{color:var(--aah-disabled-text-color);cursor:not-allowed}.aah-input-number__increase{right:1px;border-radius:0 var(--aah-border-radius-base) var(--aah-border-radius-base) 0;border-left:var(--aah-border)}.aah-input-number__decrease{left:1px;border-radius:var(--aah-border-radius-base) 0 0 var(--aah-border-radius-base);border-right:var(--aah-border)}.aah-input-number.is-disabled .aah-input-number__increase,.aah-input-number.is-disabled .aah-input-number__decrease{border-color:var(--aah-disabled-border-color);color:var(--aah-disabled-border-color)}.aah-input-number.is-disabled .aah-input-number__increase:hover,.aah-input-number.is-disabled .aah-input-number__decrease:hover{color:var(--aah-disabled-border-color);cursor:not-allowed}.aah-input-number--large{width:180px;line-height:38px}.aah-input-number--large .aah-input-number__increase,.aah-input-number--large .aah-input-number__decrease{width:40px;font-size:14px}.aah-input-number--large .aah-input__wrapper{padding-left:47px;padding-right:47px}.aah-input-number--small{width:120px;line-height:22px}.aah-input-number--small .aah-input-number__increase,.aah-input-number--small .aah-input-number__decrease{width:24px;font-size:12px}.aah-input-number--small .aah-input__wrapper{padding-left:31px;padding-right:31px}.aah-input-number--small .aah-input-number__increase [class*=aah-icon],.aah-input-number--small .aah-input-number__decrease [class*=aah-icon]{transform:scale(.9)}.aah-input-number.is-without-controls .aah-input__wrapper{padding-left:15px;padding-right:15px}.aah-input-number.is-controls-right .aah-input__wrapper{padding-left:15px;padding-right:42px}.aah-input-number.is-controls-right .aah-input-number__increase,.aah-input-number.is-controls-right .aah-input-number__decrease{--aah-input-number-controls-height: 15px;height:var(--aah-input-number-controls-height);line-height:var(--aah-input-number-controls-height)}.aah-input-number.is-controls-right .aah-input-number__increase [class*=aah-icon],.aah-input-number.is-controls-right .aah-input-number__decrease [class*=aah-icon]{transform:scale(.8)}.aah-input-number.is-controls-right .aah-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--aah-border-radius-base) 0 0;border-bottom:var(--aah-border)}.aah-input-number.is-controls-right .aah-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--aah-border);border-radius:0 0 var(--aah-border-radius-base) 0}.aah-input-number.is-controls-right[class*=large] [class*=increase],.aah-input-number.is-controls-right[class*=large] [class*=decrease]{--aah-input-number-controls-height: 19px}.aah-input-number.is-controls-right[class*=small] [class*=increase],.aah-input-number.is-controls-right[class*=small] [class*=decrease]{--aah-input-number-controls-height: 11px}.aah-textarea{--aah-input-text-color: var(--aah-text-color-regular);--aah-input-border: var(--aah-border);--aah-input-hover-border: var(--aah-border-color-hover);--aah-input-focus-border: var(--aah-color-primary);--aah-input-transparent-border: 0 0 0 1px transparent inset;--aah-input-border-color: var(--aah-border-color);--aah-input-border-radius: var(--aah-border-radius-base);--aah-input-bg-color: var(--aah-fill-color-blank);--aah-input-icon-color: var(--aah-text-color-placeholder);--aah-input-placeholder-color: var(--aah-text-color-placeholder);--aah-input-hover-border-color: var(--aah-border-color-hover);--aah-input-clear-hover-color: var(--aah-text-color-secondary);--aah-input-focus-border-color: var(--aah-color-primary);--aah-input-width: 100%}.aah-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--aah-font-size-base)}.aah-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--aah-input-text-color, var(--aah-text-color-regular));background-color:var(--aah-input-bg-color, var(--aah-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--aah-input-border-color, var(--aah-border-color)) inset;border-radius:var(--aah-input-border-radius, var(--aah-border-radius-base));transition:var(--aah-transition-box-shadow);border:none}.aah-textarea__inner::placeholder{color:var(--aah-input-placeholder-color, var(--aah-text-color-placeholder))}.aah-textarea__inner:hover{box-shadow:0 0 0 1px var(--aah-input-hover-border-color) inset}.aah-textarea__inner:focus{outline:none;box-shadow:0 0 0 1px var(--aah-input-focus-border-color) inset}.aah-textarea .aah-input__count{color:var(--aah-color-info);background:var(--aah-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.aah-textarea.is-disabled .aah-textarea__inner{box-shadow:0 0 0 1px var(--aah-disabled-border-color) inset;background-color:var(--aah-disabled-bg-color);color:var(--aah-disabled-text-color);cursor:not-allowed}.aah-textarea.is-disabled .aah-textarea__inner::placeholder{color:var(--aah-text-color-placeholder)}.aah-textarea.is-exceed .aah-textarea__inner{box-shadow:0 0 0 1px var(--aah-color-danger) inset}.aah-textarea.is-exceed .aah-input__count{color:var(--aah-color-danger)}.aah-input{--aah-input-text-color: var(--aah-text-color-regular);--aah-input-border: var(--aah-border);--aah-input-hover-border: var(--aah-border-color-hover);--aah-input-focus-border: var(--aah-color-primary);--aah-input-transparent-border: 0 0 0 1px transparent inset;--aah-input-border-color: var(--aah-border-color);--aah-input-border-radius: var(--aah-border-radius-base);--aah-input-bg-color: var(--aah-fill-color-blank);--aah-input-icon-color: var(--aah-text-color-placeholder);--aah-input-placeholder-color: var(--aah-text-color-placeholder);--aah-input-hover-border-color: var(--aah-border-color-hover);--aah-input-clear-hover-color: var(--aah-text-color-secondary);--aah-input-focus-border-color: var(--aah-color-primary);--aah-input-width: 100%}.aah-input{--aah-input-height: var(--aah-component-size);position:relative;font-size:var(--aah-font-size-base);display:inline-flex;width:var(--aah-input-width);line-height:var(--aah-input-height);box-sizing:border-box;vertical-align:middle}.aah-input::-webkit-scrollbar{z-index:11;width:6px}.aah-input::-webkit-scrollbar:horizontal{height:6px}.aah-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--aah-text-color-disabled)}.aah-input::-webkit-scrollbar-corner{background:var(--aah-fill-color-blank)}.aah-input::-webkit-scrollbar-track{background:var(--aah-fill-color-blank)}.aah-input::-webkit-scrollbar-track-piece{background:var(--aah-fill-color-blank);width:6px}.aah-input .aah-input__clear,.aah-input .aah-input__password{color:var(--aah-input-icon-color);font-size:14px;cursor:pointer}.aah-input .aah-input__clear:hover,.aah-input .aah-input__password:hover{color:var(--aah-input-clear-hover-color)}.aah-input .aah-input__count{height:100%;display:inline-flex;align-items:center;color:var(--aah-color-info);font-size:12px}.aah-input .aah-input__count .aah-input__count-inner{background:var(--aah-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.aah-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--aah-input-bg-color, var(--aah-fill-color-blank));background-image:none;border-radius:var(--aah-input-border-radius, var(--aah-border-radius-base));cursor:text;transition:var(--aah-transition-box-shadow);transform:translateZ(0);box-shadow:0 0 0 1px var(--aah-input-border-color, var(--aah-border-color)) inset}.aah-input__wrapper:hover{box-shadow:0 0 0 1px var(--aah-input-hover-border-color) inset}.aah-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--aah-input-focus-border-color) inset}.aah-input__inner{--aah-input-inner-height: calc(var(--aah-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--aah-input-text-color, var(--aah-text-color-regular));font-size:inherit;height:var(--aah-input-inner-height);line-height:var(--aah-input-inner-height);padding:0;outline:none;border:none;background:none;box-sizing:border-box}.aah-input__inner:focus{outline:none}.aah-input__inner::placeholder{color:var(--aah-input-placeholder-color, var(--aah-text-color-placeholder))}.aah-input__inner[type=password]::-ms-reveal{display:none}.aah-input__inner[type=number]{line-height:1}.aah-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--aah-input-icon-color, var(--aah-text-color-placeholder));transition:all var(--aah-transition-duration);pointer-events:none}.aah-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.aah-input__prefix-inner>:last-child{margin-right:8px}.aah-input__prefix-inner>:first-child,.aah-input__prefix-inner>:first-child.aah-input__icon{margin-left:0}.aah-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--aah-input-icon-color, var(--aah-text-color-placeholder));transition:all var(--aah-transition-duration);pointer-events:none}.aah-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.aah-input__suffix-inner>:first-child{margin-left:8px}.aah-input .aah-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--aah-transition-duration);margin-left:8px}.aah-input__validateIcon{pointer-events:none}.aah-input.is-active .aah-input__wrapper{box-shadow:0 0 0 1px var(--aah-input-focus-color, ) inset}.aah-input.is-disabled{cursor:not-allowed}.aah-input.is-disabled .aah-input__wrapper{background-color:var(--aah-disabled-bg-color);box-shadow:0 0 0 1px var(--aah-disabled-border-color) inset}.aah-input.is-disabled .aah-input__inner{color:var(--aah-disabled-text-color);-webkit-text-fill-color:var(--aah-disabled-text-color);cursor:not-allowed}.aah-input.is-disabled .aah-input__inner::placeholder{color:var(--aah-text-color-placeholder)}.aah-input.is-disabled .aah-input__icon{cursor:not-allowed}.aah-input.is-exceed .aah-input__wrapper{box-shadow:0 0 0 1px var(--aah-color-danger) inset}.aah-input.is-exceed .aah-input__suffix .aah-input__count{color:var(--aah-color-danger)}.aah-input--large{--aah-input-height: var(--aah-component-size-large);font-size:14px}.aah-input--large .aah-input__wrapper{padding:1px 15px}.aah-input--large .aah-input__inner{--aah-input-inner-height: calc(var(--aah-input-height, 40px) - 2px)}.aah-input--small{--aah-input-height: var(--aah-component-size-small);font-size:12px}.aah-input--small .aah-input__wrapper{padding:1px 7px}.aah-input--small .aah-input__inner{--aah-input-inner-height: calc(var(--aah-input-height, 24px) - 2px)}.aah-input-group{display:inline-flex;width:100%;align-items:stretch}.aah-input-group__append,.aah-input-group__prepend{background-color:var(--aah-fill-color-light);color:var(--aah-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--aah-input-border-radius);padding:0 20px;white-space:nowrap}.aah-input-group__append:focus,.aah-input-group__prepend:focus{outline:none}.aah-input-group__append .aah-select,.aah-input-group__append .aah-button,.aah-input-group__prepend .aah-select,.aah-input-group__prepend .aah-button{display:inline-block;margin:0 -20px}.aah-input-group__append button.aah-button,.aah-input-group__append button.aah-button:hover,.aah-input-group__append div.aah-select .aah-select__wrapper,.aah-input-group__append div.aah-select:hover .aah-select__wrapper,.aah-input-group__prepend button.aah-button,.aah-input-group__prepend button.aah-button:hover,.aah-input-group__prepend div.aah-select .aah-select__wrapper,.aah-input-group__prepend div.aah-select:hover .aah-select__wrapper{border-color:transparent;background-color:transparent;color:inherit}.aah-input-group__append .aah-button,.aah-input-group__append .aah-input,.aah-input-group__prepend .aah-button,.aah-input-group__prepend .aah-input{font-size:inherit}.aah-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--aah-input-border-color) inset,0 1px 0 0 var(--aah-input-border-color) inset,0 -1px 0 0 var(--aah-input-border-color) inset}.aah-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--aah-input-border-color) inset,0 -1px 0 0 var(--aah-input-border-color) inset,-1px 0 0 0 var(--aah-input-border-color) inset}.aah-input-group--prepend>.aah-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.aah-input-group--prepend .aah-input-group__prepend .aah-select .aah-select__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--aah-input-border-color) inset,0 1px 0 0 var(--aah-input-border-color) inset,0 -1px 0 0 var(--aah-input-border-color) inset}.aah-input-group--append>.aah-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.aah-input-group--append .aah-input-group__append .aah-select .aah-select__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--aah-input-border-color) inset,0 -1px 0 0 var(--aah-input-border-color) inset,-1px 0 0 0 var(--aah-input-border-color) inset}.aah-input-hidden{display:none!important}.aah-link{--aah-link-font-size: var(--aah-font-size-base);--aah-link-font-weight: var(--aah-font-weight-primary);--aah-link-text-color: var(--aah-text-color-regular);--aah-link-hover-text-color: var(--aah-color-primary);--aah-link-disabled-text-color: var(--aah-text-color-placeholder)}.aah-link{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:none;cursor:pointer;padding:0;font-size:var(--aah-link-font-size);font-weight:var(--aah-link-font-weight);color:var(--aah-link-text-color)}.aah-link:hover{color:var(--aah-link-hover-text-color)}.aah-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid var(--aah-link-hover-text-color)}.aah-link.is-disabled{color:var(--aah-link-disabled-text-color);cursor:not-allowed}.aah-link [class*=aah-icon-]+span{margin-left:5px}.aah-link.aah-link--default:after{border-color:var(--aah-link-hover-text-color)}.aah-link__inner{display:inline-flex;justify-content:center;align-items:center}.aah-link.aah-link--primary{--aah-link-text-color: var(--aah-color-primary);--aah-link-hover-text-color: var(--aah-color-primary-light-3);--aah-link-disabled-text-color: var(--aah-color-primary-light-5)}.aah-link.aah-link--primary:after{border-color:var(--aah-link-text-color)}.aah-link.aah-link--primary.is-underline:hover:after{border-color:var(--aah-link-text-color)}.aah-link.aah-link--success{--aah-link-text-color: var(--aah-color-success);--aah-link-hover-text-color: var(--aah-color-success-light-3);--aah-link-disabled-text-color: var(--aah-color-success-light-5)}.aah-link.aah-link--success:after{border-color:var(--aah-link-text-color)}.aah-link.aah-link--success.is-underline:hover:after{border-color:var(--aah-link-text-color)}.aah-link.aah-link--warning{--aah-link-text-color: var(--aah-color-warning);--aah-link-hover-text-color: var(--aah-color-warning-light-3);--aah-link-disabled-text-color: var(--aah-color-warning-light-5)}.aah-link.aah-link--warning:after{border-color:var(--aah-link-text-color)}.aah-link.aah-link--warning.is-underline:hover:after{border-color:var(--aah-link-text-color)}.aah-link.aah-link--danger{--aah-link-text-color: var(--aah-color-danger);--aah-link-hover-text-color: var(--aah-color-danger-light-3);--aah-link-disabled-text-color: var(--aah-color-danger-light-5)}.aah-link.aah-link--danger:after{border-color:var(--aah-link-text-color)}.aah-link.aah-link--danger.is-underline:hover:after{border-color:var(--aah-link-text-color)}.aah-link.aah-link--error{--aah-link-text-color: var(--aah-color-error);--aah-link-hover-text-color: var(--aah-color-error-light-3);--aah-link-disabled-text-color: var(--aah-color-error-light-5)}.aah-link.aah-link--error:after{border-color:var(--aah-link-text-color)}.aah-link.aah-link--error.is-underline:hover:after{border-color:var(--aah-link-text-color)}.aah-link.aah-link--info{--aah-link-text-color: var(--aah-color-info);--aah-link-hover-text-color: var(--aah-color-info-light-3);--aah-link-disabled-text-color: var(--aah-color-info-light-5)}.aah-link.aah-link--info:after{border-color:var(--aah-link-text-color)}.aah-link.aah-link--info.is-underline:hover:after{border-color:var(--aah-link-text-color)}:root{--aah-loading-spinner-size: 42px;--aah-loading-fullscreen-spinner-size: 50px}.aah-loading-parent--relative{position:relative!important}.aah-loading-parent--hidden{overflow:hidden!important}.aah-loading-mask{position:absolute;z-index:2000;background-color:var(--aah-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--aah-transition-duration)}.aah-loading-mask.is-fullscreen{position:fixed}.aah-loading-mask.is-fullscreen .aah-loading-spinner{margin-top:calc((0px - var(--aah-loading-fullscreen-spinner-size)) / 2)}.aah-loading-mask.is-fullscreen .aah-loading-spinner .circular{height:var(--aah-loading-fullscreen-spinner-size);width:var(--aah-loading-fullscreen-spinner-size)}.aah-loading-spinner{top:50%;margin-top:calc((0px - var(--aah-loading-spinner-size)) / 2);width:100%;text-align:center;position:absolute}.aah-loading-spinner .aah-loading-text{color:var(--aah-color-primary);margin:3px 0;font-size:14px}.aah-loading-spinner .circular{display:inline;height:var(--aah-loading-spinner-size);width:var(--aah-loading-spinner-size);animation:loading-rotate 2s linear infinite}.aah-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--aah-color-primary);stroke-linecap:round}.aah-loading-spinner i{color:var(--aah-color-primary)}.aah-loading-fade-enter-from,.aah-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.aah-main{--aah-main-padding: 20px;display:block;flex:1;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:var(--aah-main-padding)}:root{--aah-menu-active-color: var(--aah-color-primary);--aah-menu-text-color: var(--aah-text-color-primary);--aah-menu-hover-text-color: var(--aah-color-primary);--aah-menu-bg-color: var(--aah-fill-color-blank);--aah-menu-hover-bg-color: var(--aah-color-primary-light-9);--aah-menu-item-height: 56px;--aah-menu-sub-item-height: calc(var(--aah-menu-item-height) - 6px);--aah-menu-horizontal-height: 60px;--aah-menu-horizontal-sub-item-height: 36px;--aah-menu-item-font-size: var(--aah-font-size-base);--aah-menu-item-hover-fill: var(--aah-color-primary-light-9);--aah-menu-border-color: var(--aah-border-color);--aah-menu-base-level-padding: 20px;--aah-menu-level-padding: 20px;--aah-menu-icon-width: 24px}.aah-menu{border-right:solid 1px var(--aah-menu-border-color);list-style:none;position:relative;margin:0;padding-left:0;background-color:var(--aah-menu-bg-color);box-sizing:border-box}.aah-menu--vertical:not(.aah-menu--collapse):not(.aah-menu--popup-container) .aah-menu-item,.aah-menu--vertical:not(.aah-menu--collapse):not(.aah-menu--popup-container) .aah-sub-menu__title,.aah-menu--vertical:not(.aah-menu--collapse):not(.aah-menu--popup-container) .aah-menu-item-group__title{white-space:nowrap;padding-left:calc(var(--aah-menu-base-level-padding) + var(--aah-menu-level) * var(--aah-menu-level-padding))}.aah-menu:not(.aah-menu--collapse) .aah-sub-menu__title{padding-right:calc(var(--aah-menu-base-level-padding) + var(--aah-menu-icon-width))}.aah-menu--horizontal{display:flex;flex-wrap:nowrap;border-right:none;height:var(--aah-menu-horizontal-height)}.aah-menu--horizontal.aah-menu--popup-container{height:unset}.aah-menu--horizontal.aah-menu{border-bottom:solid 1px var(--aah-menu-border-color)}.aah-menu--horizontal>.aah-menu-item{display:inline-flex;justify-content:center;align-items:center;height:100%;margin:0;border-bottom:2px solid transparent;color:var(--aah-menu-text-color)}.aah-menu--horizontal>.aah-menu-item a,.aah-menu--horizontal>.aah-menu-item a:hover{color:inherit}.aah-menu--horizontal>.aah-sub-menu:focus,.aah-menu--horizontal>.aah-sub-menu:hover{outline:none}.aah-menu--horizontal>.aah-sub-menu:hover .aah-sub-menu__title{color:var(--aah-menu-hover-text-color)}.aah-menu--horizontal>.aah-sub-menu.is-active .aah-sub-menu__title{border-bottom:2px solid var(--aah-menu-active-color);color:var(--aah-menu-active-color)}.aah-menu--horizontal>.aah-sub-menu .aah-sub-menu__title{height:100%;border-bottom:2px solid transparent;color:var(--aah-menu-text-color)}.aah-menu--horizontal>.aah-sub-menu .aah-sub-menu__title:hover{background-color:var(--aah-menu-bg-color)}.aah-menu--horizontal .aah-menu .aah-menu-item,.aah-menu--horizontal .aah-menu .aah-sub-menu__title{background-color:var(--aah-menu-bg-color);display:flex;align-items:center;height:var(--aah-menu-horizontal-sub-item-height);line-height:var(--aah-menu-horizontal-sub-item-height);padding:0 10px;color:var(--aah-menu-text-color)}.aah-menu--horizontal .aah-menu .aah-sub-menu__title{padding-right:40px}.aah-menu--horizontal .aah-menu .aah-menu-item.is-active,.aah-menu--horizontal .aah-menu .aah-sub-menu.is-active>.aah-sub-menu__title{color:var(--aah-menu-active-color)}.aah-menu--horizontal .aah-menu-item:not(.is-disabled):hover,.aah-menu--horizontal .aah-menu-item:not(.is-disabled):focus{outline:none;color:var(--aah-menu-hover-text-color);background-color:var(--aah-menu-hover-bg-color)}.aah-menu--horizontal>.aah-menu-item.is-active{border-bottom:2px solid var(--aah-menu-active-color);color:var(--aah-menu-active-color)!important}.aah-menu--collapse{width:calc(var(--aah-menu-icon-width) + var(--aah-menu-base-level-padding) * 2)}.aah-menu--collapse>.aah-menu-item [class^=aah-icon],.aah-menu--collapse>.aah-sub-menu>.aah-sub-menu__title [class^=aah-icon],.aah-menu--collapse>.aah-menu-item-group>ul>.aah-sub-menu>.aah-sub-menu__title [class^=aah-icon]{margin:0;vertical-align:middle;width:var(--aah-menu-icon-width);text-align:center}.aah-menu--collapse>.aah-menu-item .aah-sub-menu__icon-arrow,.aah-menu--collapse>.aah-sub-menu>.aah-sub-menu__title .aah-sub-menu__icon-arrow,.aah-menu--collapse>.aah-menu-item-group>ul>.aah-sub-menu>.aah-sub-menu__title .aah-sub-menu__icon-arrow{display:none}.aah-menu--collapse>.aah-menu-item>span,.aah-menu--collapse>.aah-sub-menu>.aah-sub-menu__title>span,.aah-menu--collapse>.aah-menu-item-group>ul>.aah-sub-menu>.aah-sub-menu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.aah-menu--collapse>.aah-menu-item.is-active i{color:inherit}.aah-menu--collapse .aah-menu .aah-sub-menu{min-width:200px}.aah-menu--collapse .aah-sub-menu.is-active .aah-sub-menu__title{color:var(--aah-menu-active-color)}.aah-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:var(--aah-border-radius-small);box-shadow:var(--aah-box-shadow-light)}.aah-menu .aah-icon{flex-shrink:0}.aah-menu-item{display:flex;align-items:center;height:var(--aah-menu-item-height);line-height:var(--aah-menu-item-height);font-size:var(--aah-menu-item-font-size);color:var(--aah-menu-text-color);padding:0 var(--aah-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--aah-transition-duration),background-color var(--aah-transition-duration),color var(--aah-transition-duration);box-sizing:border-box;white-space:nowrap}.aah-menu-item *{vertical-align:bottom}.aah-menu-item i{color:inherit}.aah-menu-item:hover,.aah-menu-item:focus{outline:none}.aah-menu-item:hover{background-color:var(--aah-menu-hover-bg-color)}.aah-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:none!important}.aah-menu-item [class^=aah-icon]{margin-right:5px;width:var(--aah-menu-icon-width);text-align:center;font-size:18px;vertical-align:middle}.aah-menu-item.is-active{color:var(--aah-menu-active-color)}.aah-menu-item.is-active i{color:inherit}.aah-menu-item .aah-menu-tooltip__trigger{position:absolute;left:0;top:0;height:100%;width:100%;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 var(--aah-menu-base-level-padding)}.aah-sub-menu{list-style:none;margin:0;padding-left:0}.aah-sub-menu__title{display:flex;align-items:center;height:var(--aah-menu-item-height);line-height:var(--aah-menu-item-height);font-size:var(--aah-menu-item-font-size);color:var(--aah-menu-text-color);padding:0 var(--aah-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--aah-transition-duration),background-color var(--aah-transition-duration),color var(--aah-transition-duration);box-sizing:border-box;white-space:nowrap}.aah-sub-menu__title *{vertical-align:bottom}.aah-sub-menu__title i{color:inherit}.aah-sub-menu__title:hover,.aah-sub-menu__title:focus{outline:none}.aah-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:none!important}.aah-sub-menu__title:hover{background-color:var(--aah-menu-hover-bg-color)}.aah-sub-menu .aah-menu{border:none}.aah-sub-menu .aah-menu-item{height:var(--aah-menu-sub-item-height);line-height:var(--aah-menu-sub-item-height)}.aah-sub-menu__hide-arrow .aah-sub-menu__icon-arrow{display:none!important}.aah-sub-menu.is-active .aah-sub-menu__title{border-bottom-color:var(--aah-menu-active-color)}.aah-sub-menu.is-disabled .aah-sub-menu__title,.aah-sub-menu.is-disabled .aah-menu-item{opacity:.25;cursor:not-allowed;background:none!important}.aah-sub-menu .aah-icon{vertical-align:middle;margin-right:5px;width:var(--aah-menu-icon-width);text-align:center;font-size:18px}.aah-sub-menu .aah-icon.aah-sub-menu__icon-more{margin-right:0!important}.aah-sub-menu .aah-sub-menu__icon-arrow{position:absolute;top:50%;right:var(--aah-menu-base-level-padding);margin-top:-6px;transition:transform var(--aah-transition-duration);font-size:12px;margin-right:0;width:inherit}.aah-menu-item-group>ul{padding:0}.aah-menu-item-group__title{padding:7px 0 7px var(--aah-menu-base-level-padding);line-height:normal;font-size:12px;color:var(--aah-text-color-secondary)}.horizontal-collapse-transition .aah-sub-menu__title .aah-sub-menu__icon-arrow{transition:var(--aah-transition-duration-fast);opacity:0}.aah-message-box{--aah-messagebox-title-color: var(--aah-text-color-primary);--aah-messagebox-width: 420px;--aah-messagebox-border-radius: 4px;--aah-messagebox-box-shadow: var(--aah-box-shadow);--aah-messagebox-font-size: var(--aah-font-size-large);--aah-messagebox-content-font-size: var(--aah-font-size-base);--aah-messagebox-content-color: var(--aah-text-color-regular);--aah-messagebox-error-font-size: 12px;--aah-messagebox-padding-primary: 12px;--aah-messagebox-font-line-height: var(--aah-font-line-height-primary)}.aah-message-box{display:inline-block;position:relative;max-width:var(--aah-messagebox-width);width:100%;padding:var(--aah-messagebox-padding-primary);vertical-align:middle;background-color:var(--aah-bg-color);border-radius:var(--aah-messagebox-border-radius);font-size:var(--aah-messagebox-font-size);box-shadow:var(--aah-messagebox-box-shadow);text-align:left;overflow:hidden;backface-visibility:hidden;box-sizing:border-box;overflow-wrap:break-word}.aah-message-box:focus{outline:none!important}.aah-overlay.is-message-box .aah-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;padding:16px;overflow:auto}.aah-overlay.is-message-box .aah-overlay-message-box:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.aah-message-box.is-draggable .aah-message-box__header{cursor:move;-webkit-user-select:none;user-select:none}.aah-message-box__header{padding-bottom:var(--aah-messagebox-padding-primary)}.aah-message-box__header.show-close{padding-right:calc(var(--aah-messagebox-padding-primary) + var(--aah-message-close-size, 16px))}.aah-message-box__title{font-size:var(--aah-messagebox-font-size);line-height:var(--aah-messagebox-font-line-height);color:var(--aah-messagebox-title-color)}.aah-message-box__headerbtn{position:absolute;top:0;right:0;padding:0;width:40px;height:40px;border:none;outline:none;background:transparent;font-size:var(--aah-message-close-size, 16px);cursor:pointer}.aah-message-box__headerbtn .aah-message-box__close{color:var(--aah-color-info);font-size:inherit}.aah-message-box__headerbtn:focus .aah-message-box__close,.aah-message-box__headerbtn:hover .aah-message-box__close{color:var(--aah-color-primary)}.aah-message-box__content{color:var(--aah-messagebox-content-color);font-size:var(--aah-messagebox-content-font-size)}.aah-message-box__container{display:flex;align-items:center;gap:12px}.aah-message-box__input{padding-top:12px}.aah-message-box__input div.invalid>input{border-color:var(--aah-color-error)}.aah-message-box__input div.invalid>input:focus{border-color:var(--aah-color-error)}.aah-message-box__status{font-size:24px}.aah-message-box__status.aah-message-box-icon--success{--aah-messagebox-color: var(--aah-color-success);color:var(--aah-messagebox-color)}.aah-message-box__status.aah-message-box-icon--info{--aah-messagebox-color: var(--aah-color-info);color:var(--aah-messagebox-color)}.aah-message-box__status.aah-message-box-icon--warning{--aah-messagebox-color: var(--aah-color-warning);color:var(--aah-messagebox-color)}.aah-message-box__status.aah-message-box-icon--error{--aah-messagebox-color: var(--aah-color-error);color:var(--aah-messagebox-color)}.aah-message-box__message{margin:0}.aah-message-box__message p{margin:0;line-height:var(--aah-messagebox-font-line-height)}.aah-message-box__errormsg{color:var(--aah-color-error);font-size:var(--aah-messagebox-error-font-size);line-height:var(--aah-messagebox-font-line-height)}.aah-message-box__btns{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;padding-top:var(--aah-messagebox-padding-primary)}.aah-message-box--center .aah-message-box__title{display:flex;align-items:center;justify-content:center;gap:6px}.aah-message-box--center .aah-message-box__status{font-size:inherit}.aah-message-box--center .aah-message-box__btns,.aah-message-box--center .aah-message-box__container{justify-content:center}.fade-in-linear-enter-active .aah-overlay-message-box{animation:msgbox-fade-in var(--aah-transition-duration)}.fade-in-linear-leave-active .aah-overlay-message-box{animation:msgbox-fade-in var(--aah-transition-duration) reverse}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}.aah-message{--aah-message-bg-color: var(--aah-color-info-light-9);--aah-message-border-color: var(--aah-border-color-lighter);--aah-message-padding: 11px 15px;--aah-message-close-size: 16px;--aah-message-close-icon-color: var(--aah-text-color-placeholder);--aah-message-close-hover-color: var(--aah-text-color-secondary)}.aah-message{width:fit-content;max-width:calc(100% - 32px);box-sizing:border-box;border-radius:var(--aah-border-radius-base);border-width:var(--aah-border-width);border-style:var(--aah-border-style);border-color:var(--aah-message-border-color);position:fixed;left:50%;top:20px;transform:translate(-50%);background-color:var(--aah-message-bg-color);transition:opacity var(--aah-transition-duration),transform .4s,top .4s;padding:var(--aah-message-padding);display:flex;align-items:center;gap:8px}.aah-message.is-center{justify-content:center}.aah-message.is-plain{background-color:var(--aah-bg-color-overlay);border-color:var(--aah-bg-color-overlay);box-shadow:var(--aah-box-shadow-light)}.aah-message p{margin:0}.aah-message--success{--aah-message-bg-color: var(--aah-color-success-light-9);--aah-message-border-color: var(--aah-color-success-light-8);--aah-message-text-color: var(--aah-color-success)}.aah-message--success .aah-message__content{color:var(--aah-message-text-color);overflow-wrap:break-word}.aah-message .aah-message-icon--success{color:var(--aah-message-text-color)}.aah-message--info{--aah-message-bg-color: var(--aah-color-info-light-9);--aah-message-border-color: var(--aah-color-info-light-8);--aah-message-text-color: var(--aah-color-info)}.aah-message--info .aah-message__content{color:var(--aah-message-text-color);overflow-wrap:break-word}.aah-message .aah-message-icon--info{color:var(--aah-message-text-color)}.aah-message--warning{--aah-message-bg-color: var(--aah-color-warning-light-9);--aah-message-border-color: var(--aah-color-warning-light-8);--aah-message-text-color: var(--aah-color-warning)}.aah-message--warning .aah-message__content{color:var(--aah-message-text-color);overflow-wrap:break-word}.aah-message .aah-message-icon--warning{color:var(--aah-message-text-color)}.aah-message--error{--aah-message-bg-color: var(--aah-color-error-light-9);--aah-message-border-color: var(--aah-color-error-light-8);--aah-message-text-color: var(--aah-color-error)}.aah-message--error .aah-message__content{color:var(--aah-message-text-color);overflow-wrap:break-word}.aah-message .aah-message-icon--error{color:var(--aah-message-text-color)}.aah-message .aah-message__badge{position:absolute;top:-8px;right:-8px}.aah-message__content{padding:0;font-size:14px;line-height:1}.aah-message__content:focus{outline-width:0}.aah-message .aah-message__closeBtn{cursor:pointer;color:var(--aah-message-close-icon-color);font-size:var(--aah-message-close-size)}.aah-message .aah-message__closeBtn:focus{outline-width:0}.aah-message .aah-message__closeBtn:hover{color:var(--aah-message-close-hover-color)}.aah-message-fade-enter-from,.aah-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}.aah-notification{--aah-notification-width: 330px;--aah-notification-padding: 14px 26px 14px 13px;--aah-notification-radius: 8px;--aah-notification-shadow: var(--aah-box-shadow-light);--aah-notification-border-color: var(--aah-border-color-lighter);--aah-notification-icon-size: 24px;--aah-notification-close-font-size: var(--aah-message-close-size, 16px);--aah-notification-group-margin-left: 13px;--aah-notification-group-margin-right: 8px;--aah-notification-content-font-size: var(--aah-font-size-base);--aah-notification-content-color: var(--aah-text-color-regular);--aah-notification-title-font-size: 16px;--aah-notification-title-color: var(--aah-text-color-primary);--aah-notification-close-color: var(--aah-text-color-secondary);--aah-notification-close-hover-color: var(--aah-text-color-regular)}.aah-notification{display:flex;width:var(--aah-notification-width);padding:var(--aah-notification-padding);border-radius:var(--aah-notification-radius);box-sizing:border-box;border:1px solid var(--aah-notification-border-color);position:fixed;background-color:var(--aah-bg-color-overlay);box-shadow:var(--aah-notification-shadow);transition:opacity var(--aah-transition-duration),transform var(--aah-transition-duration),left var(--aah-transition-duration),right var(--aah-transition-duration),top .4s,bottom var(--aah-transition-duration);overflow-wrap:break-word;overflow:hidden;z-index:9999}.aah-notification.right{right:16px}.aah-notification.left{left:16px}.aah-notification__group{margin-left:var(--aah-notification-group-margin-left);margin-right:var(--aah-notification-group-margin-right)}.aah-notification__title{font-weight:700;font-size:var(--aah-notification-title-font-size);line-height:var(--aah-notification-icon-size);color:var(--aah-notification-title-color);margin:0}.aah-notification__content{font-size:var(--aah-notification-content-font-size);line-height:24px;margin:6px 0 0;color:var(--aah-notification-content-color)}.aah-notification__content p{margin:0}.aah-notification .aah-notification__icon{height:var(--aah-notification-icon-size);width:var(--aah-notification-icon-size);font-size:var(--aah-notification-icon-size)}.aah-notification .aah-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:var(--aah-notification-close-color);font-size:var(--aah-notification-close-font-size)}.aah-notification .aah-notification__closeBtn:hover{color:var(--aah-notification-close-hover-color)}.aah-notification .aah-notification--success{--aah-notification-icon-color: var(--aah-color-success);color:var(--aah-notification-icon-color)}.aah-notification .aah-notification--info{--aah-notification-icon-color: var(--aah-color-info);color:var(--aah-notification-icon-color)}.aah-notification .aah-notification--warning{--aah-notification-icon-color: var(--aah-color-warning);color:var(--aah-notification-icon-color)}.aah-notification .aah-notification--error{--aah-notification-icon-color: var(--aah-color-error);color:var(--aah-notification-icon-color)}.aah-notification-fade-enter-from.right{right:0;transform:translate(100%)}.aah-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.aah-notification-fade-leave-to{opacity:0}.aah-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--aah-overlay-color-lighter);overflow:auto}.aah-overlay .aah-overlay-root{height:0}.aah-page-header.is-contentful .aah-page-header__main{border-top:1px solid var(--aah-border-color-light);margin-top:16px}.aah-page-header__header{display:flex;align-items:center;justify-content:space-between;line-height:24px}.aah-page-header__left{display:flex;align-items:center;margin-right:40px;position:relative}.aah-page-header__back{display:flex;align-items:center;cursor:pointer}.aah-page-header__left .aah-divider--vertical{margin:0 16px}.aah-page-header__icon{font-size:16px;margin-right:10px;display:flex;align-items:center}.aah-page-header__icon .aah-icon{font-size:inherit}.aah-page-header__title{font-size:14px;font-weight:500}.aah-page-header__content{font-size:18px;color:var(--aah-text-color-primary)}.aah-page-header__breadcrumb{margin-bottom:16px}.aah-pagination{--aah-pagination-font-size: 14px;--aah-pagination-bg-color: var(--aah-fill-color-blank);--aah-pagination-text-color: var(--aah-text-color-primary);--aah-pagination-border-radius: 2px;--aah-pagination-button-color: var(--aah-text-color-primary);--aah-pagination-button-width: 32px;--aah-pagination-button-height: 32px;--aah-pagination-button-disabled-color: var(--aah-text-color-placeholder);--aah-pagination-button-disabled-bg-color: var(--aah-fill-color-blank);--aah-pagination-button-bg-color: var(--aah-fill-color);--aah-pagination-hover-color: var(--aah-color-primary);--aah-pagination-font-size-small: 12px;--aah-pagination-button-width-small: 24px;--aah-pagination-button-height-small: 24px;--aah-pagination-item-gap: 16px;white-space:nowrap;color:var(--aah-pagination-text-color);font-size:var(--aah-pagination-font-size);font-weight:400;display:flex;align-items:center}.aah-pagination .aah-input__inner{text-align:center;-moz-appearance:textfield}.aah-pagination .aah-select{width:128px}.aah-pagination button{display:flex;justify-content:center;align-items:center;font-size:var(--aah-pagination-font-size);min-width:var(--aah-pagination-button-width);height:var(--aah-pagination-button-height);line-height:var(--aah-pagination-button-height);color:var(--aah-pagination-button-color);background:var(--aah-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--aah-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.aah-pagination button *{pointer-events:none}.aah-pagination button:focus{outline:none}.aah-pagination button:hover{color:var(--aah-pagination-hover-color)}.aah-pagination button.is-active{color:var(--aah-pagination-hover-color);cursor:default;font-weight:700}.aah-pagination button.is-active.is-disabled{font-weight:700;color:var(--aah-text-color-secondary)}.aah-pagination button:disabled,.aah-pagination button.is-disabled{color:var(--aah-pagination-button-disabled-color);background-color:var(--aah-pagination-button-disabled-bg-color);cursor:not-allowed}.aah-pagination button:focus-visible{outline:1px solid var(--aah-pagination-hover-color);outline-offset:-1px}.aah-pagination .btn-prev .aah-icon,.aah-pagination .btn-next .aah-icon{display:block;font-size:12px;font-weight:700;width:inherit}.aah-pagination>*.is-first{margin-left:0!important}.aah-pagination>*.is-last{margin-right:0!important}.aah-pagination .btn-prev{margin-left:var(--aah-pagination-item-gap)}.aah-pagination__sizes,.aah-pagination__total{margin-left:var(--aah-pagination-item-gap);font-weight:400;color:var(--aah-text-color-regular)}.aah-pagination__total[disabled=true]{color:var(--aah-text-color-placeholder)}.aah-pagination__jump{display:flex;align-items:center;margin-left:var(--aah-pagination-item-gap);font-weight:400;color:var(--aah-text-color-regular)}.aah-pagination__jump[disabled=true]{color:var(--aah-text-color-placeholder)}.aah-pagination__goto{margin-right:8px}.aah-pagination__editor{text-align:center;box-sizing:border-box}.aah-pagination__editor.aah-input{width:56px}.aah-pagination__editor .aah-input__inner::-webkit-inner-spin-button,.aah-pagination__editor .aah-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.aah-pagination__classifier{margin-left:8px}.aah-pagination__rightwrapper{flex:1;display:flex;align-items:center;justify-content:flex-end}.aah-pagination.is-background .btn-prev,.aah-pagination.is-background .btn-next,.aah-pagination.is-background .aah-pager li{margin:0 4px;background-color:var(--aah-pagination-button-bg-color)}.aah-pagination.is-background .btn-prev.is-active,.aah-pagination.is-background .btn-next.is-active,.aah-pagination.is-background .aah-pager li.is-active{background-color:var(--aah-color-primary);color:var(--aah-color-white)}.aah-pagination.is-background .btn-prev:disabled,.aah-pagination.is-background .btn-prev.is-disabled,.aah-pagination.is-background .btn-next:disabled,.aah-pagination.is-background .btn-next.is-disabled,.aah-pagination.is-background .aah-pager li:disabled,.aah-pagination.is-background .aah-pager li.is-disabled{color:var(--aah-text-color-placeholder);background-color:var(--aah-disabled-bg-color)}.aah-pagination.is-background .btn-prev:disabled.is-active,.aah-pagination.is-background .btn-prev.is-disabled.is-active,.aah-pagination.is-background .btn-next:disabled.is-active,.aah-pagination.is-background .btn-next.is-disabled.is-active,.aah-pagination.is-background .aah-pager li:disabled.is-active,.aah-pagination.is-background .aah-pager li.is-disabled.is-active{color:var(--aah-text-color-secondary);background-color:var(--aah-fill-color-dark)}.aah-pagination.is-background .btn-prev{margin-left:var(--aah-pagination-item-gap)}.aah-pagination--small .btn-prev,.aah-pagination--small .btn-next,.aah-pagination--small .aah-pager li{height:var(--aah-pagination-button-height-small);line-height:var(--aah-pagination-button-height-small);font-size:var(--aah-pagination-font-size-small);min-width:var(--aah-pagination-button-width-small)}.aah-pagination--small span:not([class*=suffix]),.aah-pagination--small button{font-size:var(--aah-pagination-font-size-small)}.aah-pagination--small .aah-select{width:100px}.aah-pager{-webkit-user-select:none;user-select:none;list-style:none;font-size:0;padding:0;margin:0;display:flex;align-items:center}.aah-pager li{display:flex;justify-content:center;align-items:center;font-size:var(--aah-pagination-font-size);min-width:var(--aah-pagination-button-width);height:var(--aah-pagination-button-height);line-height:var(--aah-pagination-button-height);color:var(--aah-pagination-button-color);background:var(--aah-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--aah-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.aah-pager li *{pointer-events:none}.aah-pager li:focus{outline:none}.aah-pager li:hover{color:var(--aah-pagination-hover-color)}.aah-pager li.is-active{color:var(--aah-pagination-hover-color);cursor:default;font-weight:700}.aah-pager li.is-active.is-disabled{font-weight:700;color:var(--aah-text-color-secondary)}.aah-pager li:disabled,.aah-pager li.is-disabled{color:var(--aah-pagination-button-disabled-color);background-color:var(--aah-pagination-button-disabled-bg-color);cursor:not-allowed}.aah-pager li:focus-visible{outline:1px solid var(--aah-pagination-hover-color);outline-offset:-1px}.aah-popconfirm__main{display:flex;align-items:center}.aah-popconfirm__icon{margin-right:5px}.aah-popconfirm__action{text-align:right;margin-top:8px}.aah-popover{--aah-popover-bg-color: var(--aah-bg-color-overlay);--aah-popover-font-size: var(--aah-font-size-base);--aah-popover-border-color: var(--aah-border-color-lighter);--aah-popover-padding: 12px;--aah-popover-padding-large: 18px 20px;--aah-popover-title-font-size: 16px;--aah-popover-title-text-color: var(--aah-text-color-primary);--aah-popover-border-radius: 4px}.aah-popover.aah-popper{background:var(--aah-popover-bg-color);min-width:150px;border-radius:var(--aah-popover-border-radius);border:1px solid var(--aah-popover-border-color);padding:var(--aah-popover-padding);z-index:var(--aah-index-popper);color:var(--aah-text-color-regular);line-height:1.4;font-size:var(--aah-popover-font-size);box-shadow:var(--aah-box-shadow-light);overflow-wrap:break-word;box-sizing:border-box}.aah-popover.aah-popper--plain{padding:var(--aah-popover-padding-large)}.aah-popover__title{color:var(--aah-popover-title-text-color);font-size:var(--aah-popover-title-font-size);line-height:1;margin-bottom:12px}.aah-popover__reference:focus:not(.focusing),.aah-popover__reference:focus:hover{outline-width:0}.aah-popover.aah-popper.is-dark{--aah-popover-bg-color: var(--aah-text-color-primary);--aah-popover-border-color: var(--aah-text-color-primary);--aah-popover-title-text-color: var(--aah-bg-color);color:var(--aah-bg-color)}.aah-popover.aah-popper:focus:active,.aah-popover.aah-popper:focus{outline-width:0}.aah-progress{position:relative;line-height:1;display:flex;align-items:center}.aah-progress__text{font-size:14px;color:var(--aah-text-color-regular);margin-left:5px;min-width:50px;line-height:1}.aah-progress__text i{vertical-align:middle;display:block}.aah-progress--circle,.aah-progress--dashboard{display:inline-block}.aah-progress--circle .aah-progress__text,.aah-progress--dashboard .aah-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.aah-progress--circle .aah-progress__text i,.aah-progress--dashboard .aah-progress__text i{vertical-align:middle;display:inline-block}.aah-progress--without-text .aah-progress__text{display:none}.aah-progress--without-text .aah-progress-bar{padding-right:0;margin-right:0;display:block}.aah-progress--text-inside .aah-progress-bar{padding-right:0;margin-right:0}.aah-progress.is-success .aah-progress-bar__inner{background-color:var(--aah-color-success)}.aah-progress.is-success .aah-progress__text{color:var(--aah-color-success)}.aah-progress.is-warning .aah-progress-bar__inner{background-color:var(--aah-color-warning)}.aah-progress.is-warning .aah-progress__text{color:var(--aah-color-warning)}.aah-progress.is-exception .aah-progress-bar__inner{background-color:var(--aah-color-danger)}.aah-progress.is-exception .aah-progress__text{color:var(--aah-color-danger)}.aah-progress-bar{flex-grow:1;box-sizing:border-box}.aah-progress-bar__outer{height:6px;border-radius:100px;background-color:var(--aah-border-color-lighter);overflow:hidden;position:relative;vertical-align:middle}.aah-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:var(--aah-color-primary);text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.aah-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.aah-progress-bar__inner--indeterminate{transform:translateZ(0);animation:indeterminate 3s infinite}.aah-progress-bar__inner--striped{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);background-size:1.25em 1.25em}.aah-progress-bar__inner--striped.aah-progress-bar__inner--striped-flow{animation:striped-flow 3s linear infinite}.aah-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}.aah-radio-button{--aah-radio-button-checked-bg-color: var(--aah-color-primary);--aah-radio-button-checked-text-color: var(--aah-color-white);--aah-radio-button-checked-border-color: var(--aah-color-primary);--aah-radio-button-disabled-checked-fill: var(--aah-border-color-extra-light)}.aah-radio-button{position:relative;display:inline-block;outline:none}.aah-radio-button__inner{display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;background:var(--aah-button-bg-color, var(--aah-fill-color-blank));border:var(--aah-border);font-weight:var(--aah-button-font-weight, var(--aah-font-weight-primary));border-left:0;color:var(--aah-button-text-color, var(--aah-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:none;margin:0;position:relative;cursor:pointer;transition:var(--aah-transition-all);-webkit-user-select:none;user-select:none;padding:8px 15px;font-size:var(--aah-font-size-base);border-radius:0}.aah-radio-button__inner.is-round{padding:8px 15px}.aah-radio-button__inner:hover{color:var(--aah-color-primary)}.aah-radio-button__inner [class*=aah-icon-]{line-height:.9}.aah-radio-button__inner [class*=aah-icon-]+span{margin-left:5px}.aah-radio-button:first-child .aah-radio-button__inner{border-left:var(--aah-border);border-radius:var(--aah-border-radius-base) 0 0 var(--aah-border-radius-base);box-shadow:none!important}.aah-radio-button__original-radio{opacity:0;outline:none;position:absolute;z-index:-1}.aah-radio-button__original-radio:checked+.aah-radio-button__inner{color:var(--aah-radio-button-checked-text-color, var(--aah-color-white));background-color:var(--aah-radio-button-checked-bg-color, var(--aah-color-primary));border-color:var(--aah-radio-button-checked-border-color, var(--aah-color-primary));box-shadow:-1px 0 0 0 var(--aah-radio-button-checked-border-color, var(--aah-color-primary))}.aah-radio-button__original-radio:focus-visible+.aah-radio-button__inner{border-left:var(--aah-border);border-left-color:var(--aah-radio-button-checked-border-color, var(--aah-color-primary));outline:2px solid var(--aah-radio-button-checked-border-color);outline-offset:1px;z-index:2;border-radius:var(--aah-border-radius-base);box-shadow:none}.aah-radio-button__original-radio:disabled+.aah-radio-button__inner{color:var(--aah-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--aah-button-disabled-bg-color, var(--aah-fill-color-blank));border-color:var(--aah-button-disabled-border-color, var(--aah-border-color-light));box-shadow:none}.aah-radio-button__original-radio:disabled:checked+.aah-radio-button__inner{background-color:var(--aah-radio-button-disabled-checked-fill)}.aah-radio-button:last-child .aah-radio-button__inner{border-radius:0 var(--aah-border-radius-base) var(--aah-border-radius-base) 0}.aah-radio-button:first-child:last-child .aah-radio-button__inner{border-radius:var(--aah-border-radius-base)}.aah-radio-button--large .aah-radio-button__inner{padding:12px 19px;font-size:var(--aah-font-size-base);border-radius:0}.aah-radio-button--large .aah-radio-button__inner.is-round{padding:12px 19px}.aah-radio-button--small .aah-radio-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.aah-radio-button--small .aah-radio-button__inner.is-round{padding:5px 11px}.aah-radio-group{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:0}.aah-radio{--aah-radio-font-size: var(--aah-font-size-base);--aah-radio-text-color: var(--aah-text-color-regular);--aah-radio-font-weight: var(--aah-font-weight-primary);--aah-radio-input-height: 14px;--aah-radio-input-width: 14px;--aah-radio-input-border-radius: var(--aah-border-radius-circle);--aah-radio-input-bg-color: var(--aah-fill-color-blank);--aah-radio-input-border: var(--aah-border);--aah-radio-input-border-color: var(--aah-border-color);--aah-radio-input-border-color-hover: var(--aah-color-primary)}.aah-radio{color:var(--aah-radio-text-color);font-weight:var(--aah-radio-font-weight);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;outline:none;font-size:var(--aah-font-size-base);-webkit-user-select:none;user-select:none;margin-right:32px;height:32px}.aah-radio.aah-radio--large{height:40px}.aah-radio.aah-radio--small{height:24px}.aah-radio.is-bordered{padding:0 15px 0 9px;border-radius:var(--aah-border-radius-base);border:var(--aah-border);box-sizing:border-box}.aah-radio.is-bordered.is-checked{border-color:var(--aah-color-primary)}.aah-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:var(--aah-border-color-lighter)}.aah-radio.is-bordered.aah-radio--large{padding:0 19px 0 11px;border-radius:var(--aah-border-radius-base)}.aah-radio.is-bordered.aah-radio--large .aah-radio__label{font-size:var(--aah-font-size-base)}.aah-radio.is-bordered.aah-radio--large .aah-radio__inner{height:14px;width:14px}.aah-radio.is-bordered.aah-radio--small{padding:0 11px 0 7px;border-radius:var(--aah-border-radius-base)}.aah-radio.is-bordered.aah-radio--small .aah-radio__label{font-size:12px}.aah-radio.is-bordered.aah-radio--small .aah-radio__inner{height:12px;width:12px}.aah-radio:last-child{margin-right:0}.aah-radio__input{white-space:nowrap;cursor:pointer;outline:none;display:inline-flex;position:relative;vertical-align:middle}.aah-radio__input.is-disabled .aah-radio__inner{background-color:var(--aah-disabled-bg-color);border-color:var(--aah-disabled-border-color);cursor:not-allowed}.aah-radio__input.is-disabled .aah-radio__inner:after{cursor:not-allowed;background-color:var(--aah-disabled-bg-color)}.aah-radio__input.is-disabled .aah-radio__inner+.aah-radio__label{cursor:not-allowed}.aah-radio__input.is-disabled.is-checked .aah-radio__inner{background-color:var(--aah-disabled-bg-color);border-color:var(--aah-disabled-border-color)}.aah-radio__input.is-disabled.is-checked .aah-radio__inner:after{background-color:var(--aah-text-color-placeholder)}.aah-radio__input.is-disabled+span.aah-radio__label{color:var(--aah-text-color-placeholder);cursor:not-allowed}.aah-radio__input.is-checked .aah-radio__inner{border-color:var(--aah-color-primary);background:var(--aah-color-primary)}.aah-radio__input.is-checked .aah-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.aah-radio__input.is-checked+.aah-radio__label{color:var(--aah-color-primary)}.aah-radio__input.is-focus .aah-radio__inner{border-color:var(--aah-radio-input-border-color-hover)}.aah-radio__inner{border:var(--aah-radio-input-border);border-radius:var(--aah-radio-input-border-radius);width:var(--aah-radio-input-width);height:var(--aah-radio-input-height);background-color:var(--aah-radio-input-bg-color);position:relative;cursor:pointer;display:inline-block;box-sizing:border-box}.aah-radio__inner:hover{border-color:var(--aah-radio-input-border-color-hover)}.aah-radio__inner:after{width:4px;height:4px;border-radius:var(--aah-radio-input-border-radius);background-color:var(--aah-color-white);content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.aah-radio__original{opacity:0;outline:none;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.aah-radio__original:focus-visible+.aah-radio__inner{outline:2px solid var(--aah-radio-input-border-color-hover);outline-offset:1px;border-radius:var(--aah-radio-input-border-radius)}.aah-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .aah-radio__inner{box-shadow:0 0 2px 2px var(--aah-radio-input-border-color-hover)}.aah-radio__label{font-size:var(--aah-radio-font-size);padding-left:8px}.aah-radio.aah-radio--large .aah-radio__label{font-size:14px}.aah-radio.aah-radio--large .aah-radio__inner{width:14px;height:14px}.aah-radio.aah-radio--small .aah-radio__label{font-size:12px}.aah-radio.aah-radio--small .aah-radio__inner{width:12px;height:12px}.aah-rate{--aah-rate-height: 20px;--aah-rate-font-size: var(--aah-font-size-base);--aah-rate-icon-size: 18px;--aah-rate-icon-margin: 6px;--aah-rate-void-color: var(--aah-border-color-darker);--aah-rate-fill-color: #f7ba2a;--aah-rate-disabled-void-color: var(--aah-fill-color);--aah-rate-text-color: var(--aah-text-color-primary)}.aah-rate{display:inline-flex;align-items:center;height:32px}.aah-rate:focus,.aah-rate:active{outline:none}.aah-rate__item{cursor:pointer;display:inline-block;position:relative;font-size:0;vertical-align:middle;color:var(--aah-rate-void-color);line-height:normal}.aah-rate .aah-rate__icon{position:relative;display:inline-block;font-size:var(--aah-rate-icon-size);margin-right:var(--aah-rate-icon-margin);transition:var(--aah-transition-duration)}.aah-rate .aah-rate__icon.hover{transform:scale(1.15)}.aah-rate .aah-rate__icon .path2{position:absolute;left:0;top:0}.aah-rate .aah-rate__icon.is-active{color:var(--aah-rate-fill-color)}.aah-rate__decimal{position:absolute;top:0;left:0;display:inline-block;overflow:hidden;color:var(--aah-rate-fill-color)}.aah-rate__decimal--box{position:absolute;top:0;left:0}.aah-rate__text{font-size:var(--aah-rate-font-size);vertical-align:middle;color:var(--aah-rate-text-color)}.aah-rate--large{height:40px}.aah-rate--small{height:24px}.aah-rate--small .aah-rate__icon{font-size:14px}.aah-rate.is-disabled .aah-rate__item{cursor:auto;color:var(--aah-rate-disabled-void-color)}.aah-result{--aah-result-padding: 40px 30px;--aah-result-icon-font-size: 64px;--aah-result-title-font-size: 20px;--aah-result-title-margin-top: 20px;--aah-result-subtitle-margin-top: 10px;--aah-result-extra-margin-top: 30px}.aah-result{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--aah-result-padding)}.aah-result__icon svg{width:var(--aah-result-icon-font-size);height:var(--aah-result-icon-font-size)}.aah-result__title{margin-top:var(--aah-result-title-margin-top)}.aah-result__title p{margin:0;font-size:var(--aah-result-title-font-size);color:var(--aah-text-color-primary);line-height:1.3}.aah-result__subtitle{margin-top:var(--aah-result-subtitle-margin-top)}.aah-result__subtitle p{margin:0;font-size:var(--aah-font-size-base);color:var(--aah-text-color-regular);line-height:1.3}.aah-result__extra{margin-top:var(--aah-result-extra-margin-top)}.aah-result .icon-primary{--aah-result-color: var(--aah-color-primary);color:var(--aah-result-color)}.aah-result .icon-success{--aah-result-color: var(--aah-color-success);color:var(--aah-result-color)}.aah-result .icon-warning{--aah-result-color: var(--aah-color-warning);color:var(--aah-result-color)}.aah-result .icon-danger{--aah-result-color: var(--aah-color-danger);color:var(--aah-result-color)}.aah-result .icon-error{--aah-result-color: var(--aah-color-error);color:var(--aah-result-color)}.aah-result .icon-info{--aah-result-color: var(--aah-color-info);color:var(--aah-result-color)}.aah-row{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box}.aah-row.is-justify-center{justify-content:center}.aah-row.is-justify-end{justify-content:flex-end}.aah-row.is-justify-space-between{justify-content:space-between}.aah-row.is-justify-space-around{justify-content:space-around}.aah-row.is-justify-space-evenly{justify-content:space-evenly}.aah-row.is-align-top{align-items:flex-start}.aah-row.is-align-middle{align-items:center}.aah-row.is-align-bottom{align-items:flex-end}.aah-scrollbar{--aah-scrollbar-opacity: .3;--aah-scrollbar-bg-color: var(--aah-text-color-secondary);--aah-scrollbar-hover-opacity: .5;--aah-scrollbar-hover-bg-color: var(--aah-text-color-secondary)}.aah-scrollbar{overflow:hidden;position:relative;height:100%}.aah-scrollbar__wrap{overflow:auto;height:100%}.aah-scrollbar__wrap--hidden-default{scrollbar-width:none}.aah-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.aah-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--aah-scrollbar-bg-color, var(--aah-text-color-secondary));transition:var(--aah-transition-duration) background-color;opacity:var(--aah-scrollbar-opacity, .3)}.aah-scrollbar__thumb:hover{background-color:var(--aah-scrollbar-hover-bg-color, var(--aah-text-color-secondary));opacity:var(--aah-scrollbar-hover-opacity, .5)}.aah-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.aah-scrollbar__bar.is-vertical{width:6px;top:2px}.aah-scrollbar__bar.is-vertical>div{width:100%}.aah-scrollbar__bar.is-horizontal{height:6px;left:2px}.aah-scrollbar__bar.is-horizontal>div{height:100%}.aah-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.aah-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.aah-scrollbar-fade-enter-from,.aah-scrollbar-fade-leave-active{opacity:0}.aah-select-dropdown{z-index:calc(var(--aah-index-top) + 1);border-radius:var(--aah-border-radius-base);box-sizing:border-box}.aah-select-dropdown .aah-scrollbar.is-empty .aah-select-dropdown__list{padding:0}.aah-select-dropdown__loading,.aah-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--aah-text-color-secondary);font-size:var(--aah-select-font-size)}.aah-select-dropdown__wrap{max-height:274px}.aah-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.aah-select-dropdown__list.aah-vl__window{margin:6px 0;padding:0}.aah-select-dropdown__header{padding:10px;border-bottom:1px solid var(--aah-border-color-light)}.aah-select-dropdown__footer{padding:10px;border-top:1px solid var(--aah-border-color-light)}.aah-select-dropdown__item{font-size:var(--aah-font-size-base);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--aah-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.aah-select-dropdown__item.is-hovering{background-color:var(--aah-fill-color-light)}.aah-select-dropdown__item.is-selected{color:var(--aah-color-primary);font-weight:700}.aah-select-dropdown__item.is-disabled{color:var(--aah-text-color-placeholder);cursor:not-allowed;background-color:unset}.aah-select-dropdown.is-multiple .aah-select-dropdown__item.is-selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--aah-color-primary);mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.aah-select-dropdown.is-multiple .aah-select-dropdown__item.is-disabled:after{background-color:var(--aah-text-color-placeholder)}.aah-select-group{margin:0;padding:0}.aah-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.aah-select-group__wrap:not(:last-of-type){padding-bottom:24px}.aah-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:var(--aah-border-color-light)}.aah-select-group__split-dash{position:absolute;left:20px;right:20px;height:1px;background:var(--aah-border-color-light)}.aah-select-group__title{padding-left:20px;font-size:12px;color:var(--aah-color-info);line-height:30px}.aah-select-group .aah-select-dropdown__item{padding-left:20px}.aah-select{--aah-select-border-color-hover: var(--aah-border-color-hover);--aah-select-disabled-color: var(--aah-disabled-text-color);--aah-select-disabled-border: var(--aah-disabled-border-color);--aah-select-font-size: var(--aah-font-size-base);--aah-select-close-hover-color: var(--aah-text-color-secondary);--aah-select-input-color: var(--aah-text-color-placeholder);--aah-select-multiple-input-color: var(--aah-text-color-regular);--aah-select-input-focus-border-color: var(--aah-color-primary);--aah-select-input-font-size: 14px;--aah-select-width: 100%}.aah-select{display:inline-block;position:relative;vertical-align:middle;width:var(--aah-select-width)}.aah-select__wrapper{display:flex;align-items:center;position:relative;box-sizing:border-box;cursor:pointer;text-align:left;font-size:14px;padding:4px 12px;gap:6px;min-height:32px;line-height:24px;border-radius:var(--aah-border-radius-base);background-color:var(--aah-fill-color-blank);transition:var(--aah-transition-duration);box-shadow:0 0 0 1px var(--aah-border-color) inset}.aah-select__wrapper:hover{box-shadow:0 0 0 1px var(--aah-text-color) inset}.aah-select__wrapper.is-filterable{cursor:text}.aah-select__wrapper.is-focused{box-shadow:0 0 0 1px var(--aah-color-primary) inset}.aah-select__wrapper.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--aah-border-color-hover) inset}.aah-select__wrapper.is-disabled{cursor:not-allowed;background-color:var(--aah-fill-color-light);color:var(--aah-text-color-placeholder);box-shadow:0 0 0 1px var(--aah-select-disabled-border) inset}.aah-select__wrapper.is-disabled:hover{box-shadow:0 0 0 1px var(--aah-select-disabled-border) inset}.aah-select__wrapper.is-disabled.is-focus{box-shadow:0 0 0 1px var(--aah-input-focus-border-color) inset}.aah-select__wrapper.is-disabled .aah-select__selected-item{color:var(--aah-select-disabled-color)}.aah-select__wrapper.is-disabled .aah-select__caret,.aah-select__wrapper.is-disabled .aah-tag{cursor:not-allowed}.aah-select__prefix,.aah-select__suffix{display:flex;align-items:center;flex-shrink:0;gap:6px;color:var(--aah-input-icon-color, var(--aah-text-color-placeholder))}.aah-select__caret{color:var(--aah-select-input-color);font-size:var(--aah-select-input-font-size);transition:var(--aah-transition-duration);transform:rotate(0);cursor:pointer}.aah-select__caret.is-reverse{transform:rotate(180deg)}.aah-select__selection{position:relative;display:flex;flex-wrap:wrap;align-items:center;flex:1;min-width:0;gap:6px}.aah-select__selection.is-near{margin-left:-8px}.aah-select__selection .aah-tag{cursor:pointer;border-color:transparent}.aah-select__selection .aah-tag .aah-tag__content{min-width:0}.aah-select__selected-item{display:flex;flex-wrap:wrap;-webkit-user-select:none;user-select:none}.aah-select__tags-text{display:block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aah-select__placeholder{position:absolute;display:block;top:50%;transform:translateY(-50%);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--aah-input-text-color, var(--aah-text-color-regular))}.aah-select__placeholder.is-transparent{-webkit-user-select:none;user-select:none;color:var(--aah-text-color-placeholder)}.aah-select__popper.aah-popper{background:var(--aah-bg-color-overlay);border:1px solid var(--aah-border-color-light);box-shadow:var(--aah-box-shadow-light)}.aah-select__popper.aah-popper .aah-popper__arrow:before{border:1px solid var(--aah-border-color-light)}.aah-select__popper.aah-popper[data-popper-placement^=top] .aah-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.aah-select__popper.aah-popper[data-popper-placement^=bottom] .aah-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.aah-select__popper.aah-popper[data-popper-placement^=left] .aah-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.aah-select__popper.aah-popper[data-popper-placement^=right] .aah-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.aah-select__input-wrapper{max-width:100%}.aah-select__input-wrapper.is-hidden{position:absolute;opacity:0}.aah-select__input{border:none;outline:none;padding:0;color:var(--aah-select-multiple-input-color);font-size:inherit;font-family:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:24px;max-width:100%;background-color:transparent}.aah-select__input.is-disabled{cursor:not-allowed}.aah-select__input-calculator{position:absolute;left:0;top:0;max-width:100%;visibility:hidden;white-space:pre;overflow:hidden}.aah-select--large .aah-select__wrapper{gap:6px;padding:8px 16px;min-height:40px;line-height:24px;font-size:14px}.aah-select--large .aah-select__selection{gap:6px}.aah-select--large .aah-select__selection.is-near{margin-left:-8px}.aah-select--large .aah-select__prefix,.aah-select--large .aah-select__suffix{gap:6px}.aah-select--large .aah-select__input{height:24px}.aah-select--small .aah-select__wrapper{gap:4px;padding:2px 8px;min-height:24px;line-height:20px;font-size:12px}.aah-select--small .aah-select__selection{gap:4px}.aah-select--small .aah-select__selection.is-near{margin-left:-6px}.aah-select--small .aah-select__prefix,.aah-select--small .aah-select__suffix{gap:4px}.aah-select--small .aah-select__input{height:20px}.aah-skeleton{--aah-skeleton-circle-size: var(--aah-avatar-size)}.aah-skeleton__item{background:var(--aah-skeleton-color);display:inline-block;height:16px;border-radius:var(--aah-border-radius-base);width:100%}.aah-skeleton__circle{border-radius:50%;width:var(--aah-skeleton-circle-size);height:var(--aah-skeleton-circle-size);line-height:var(--aah-skeleton-circle-size)}.aah-skeleton__button{height:40px;width:64px;border-radius:4px}.aah-skeleton__p{width:100%}.aah-skeleton__p.is-last{width:61%}.aah-skeleton__p.is-first{width:33%}.aah-skeleton__text{width:100%;height:var(--aah-font-size-small)}.aah-skeleton__caption{height:var(--aah-font-size-extra-small)}.aah-skeleton__h1{height:var(--aah-font-size-extra-large)}.aah-skeleton__h3{height:var(--aah-font-size-large)}.aah-skeleton__h5{height:var(--aah-font-size-medium)}.aah-skeleton__image{width:unset;display:flex;align-items:center;justify-content:center;border-radius:0}.aah-skeleton__image svg{color:var(--aah-svg-monochrome-grey);fill:currentColor;width:22%;height:22%}.aah-skeleton{--aah-skeleton-color: var(--aah-fill-color);--aah-skeleton-to-color: var(--aah-fill-color-darker)}@keyframes aah-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.aah-skeleton{width:100%}.aah-skeleton__first-line,.aah-skeleton__paragraph{height:16px;margin-top:16px;background:var(--aah-skeleton-color)}.aah-skeleton.is-animated .aah-skeleton__item{background:linear-gradient(90deg,var(--aah-skeleton-color) 25%,var(--aah-skeleton-to-color) 37%,var(--aah-skeleton-color) 63%);background-size:400% 100%;animation:aah-skeleton-loading 1.4s ease infinite}.aah-slider{--aah-slider-main-bg-color: var(--aah-color-primary);--aah-slider-runway-bg-color: var(--aah-border-color-light);--aah-slider-stop-bg-color: var(--aah-color-white);--aah-slider-disabled-color: var(--aah-text-color-placeholder);--aah-slider-border-radius: 3px;--aah-slider-height: 6px;--aah-slider-button-size: 20px;--aah-slider-button-wrapper-size: 36px;--aah-slider-button-wrapper-offset: -15px}.aah-slider{width:100%;height:32px;display:flex;align-items:center}.aah-slider__runway{flex:1;height:var(--aah-slider-height);background-color:var(--aah-slider-runway-bg-color);border-radius:var(--aah-slider-border-radius);position:relative;cursor:pointer}.aah-slider__runway.show-input{margin-right:30px;width:auto}.aah-slider__runway.is-disabled{cursor:default}.aah-slider__runway.is-disabled .aah-slider__bar{background-color:var(--aah-slider-disabled-color)}.aah-slider__runway.is-disabled .aah-slider__button{border-color:var(--aah-slider-disabled-color)}.aah-slider__runway.is-disabled .aah-slider__button-wrapper:hover,.aah-slider__runway.is-disabled .aah-slider__button-wrapper.hover,.aah-slider__runway.is-disabled .aah-slider__button-wrapper.dragging{cursor:not-allowed}.aah-slider__runway.is-disabled .aah-slider__button:hover,.aah-slider__runway.is-disabled .aah-slider__button.hover,.aah-slider__runway.is-disabled .aah-slider__button.dragging{transform:scale(1)}.aah-slider__runway.is-disabled .aah-slider__button:hover,.aah-slider__runway.is-disabled .aah-slider__button.hover,.aah-slider__runway.is-disabled .aah-slider__button.dragging{cursor:not-allowed}.aah-slider__input{flex-shrink:0;width:130px}.aah-slider__bar{height:var(--aah-slider-height);background-color:var(--aah-slider-main-bg-color);border-top-left-radius:var(--aah-slider-border-radius);border-bottom-left-radius:var(--aah-slider-border-radius);position:absolute}.aah-slider__button-wrapper{height:var(--aah-slider-button-wrapper-size);width:var(--aah-slider-button-wrapper-size);position:absolute;z-index:1;top:var(--aah-slider-button-wrapper-offset);transform:translate(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;user-select:none;line-height:normal;outline:none}.aah-slider__button-wrapper:after{display:inline-block;content:"";height:100%;vertical-align:middle}.aah-slider__button-wrapper:hover,.aah-slider__button-wrapper.hover{cursor:grab}.aah-slider__button-wrapper.dragging{cursor:grabbing}.aah-slider__button{display:inline-block;width:var(--aah-slider-button-size);height:var(--aah-slider-button-size);vertical-align:middle;border:solid 2px var(--aah-slider-main-bg-color);background-color:var(--aah-color-white);border-radius:50%;box-sizing:border-box;transition:var(--aah-transition-duration-fast);-webkit-user-select:none;user-select:none}.aah-slider__button:hover,.aah-slider__button.hover,.aah-slider__button.dragging{transform:scale(1.2)}.aah-slider__button:hover,.aah-slider__button.hover{cursor:grab}.aah-slider__button.dragging{cursor:grabbing}.aah-slider__stop{position:absolute;height:var(--aah-slider-height);width:var(--aah-slider-height);border-radius:var(--aah-border-radius-circle);background-color:var(--aah-slider-stop-bg-color);transform:translate(-50%)}.aah-slider__marks{top:0;left:12px;width:18px;height:100%}.aah-slider__marks-text{position:absolute;transform:translate(-50%);font-size:14px;color:var(--aah-color-info);margin-top:15px;white-space:pre}.aah-slider.is-vertical{position:relative;display:inline-flex;width:auto;height:100%;flex:0}.aah-slider.is-vertical .aah-slider__runway{width:var(--aah-slider-height);height:100%;margin:0 16px}.aah-slider.is-vertical .aah-slider__bar{width:var(--aah-slider-height);height:auto;border-radius:0 0 3px 3px}.aah-slider.is-vertical .aah-slider__button-wrapper{top:auto;left:var(--aah-slider-button-wrapper-offset);transform:translateY(50%)}.aah-slider.is-vertical .aah-slider__stop{transform:translateY(50%)}.aah-slider.is-vertical .aah-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.aah-slider--large{height:40px}.aah-slider--small{height:24px}.aah-space{display:inline-flex;vertical-align:top}.aah-space__item{display:flex;flex-wrap:wrap}.aah-space__item>*{flex:1}.aah-space--vertical{flex-direction:column}.aah-time-spinner{width:100%;white-space:nowrap}.aah-spinner{display:inline-block;vertical-align:middle}.aah-spinner-inner{animation:rotate 2s linear infinite;width:50px;height:50px}.aah-spinner-inner .path{stroke:var(--aah-border-color-lighter);stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.aah-step{position:relative;flex-shrink:1}.aah-step:last-of-type .aah-step__line{display:none}.aah-step:last-of-type.is-flex{flex-basis:auto!important;flex-shrink:0;flex-grow:0}.aah-step:last-of-type .aah-step__main,.aah-step:last-of-type .aah-step__description{padding-right:0}.aah-step__head{position:relative;width:100%}.aah-step__head.is-process{color:var(--aah-text-color-primary);border-color:var(--aah-text-color-primary)}.aah-step__head.is-wait{color:var(--aah-text-color-placeholder);border-color:var(--aah-text-color-placeholder)}.aah-step__head.is-success{color:var(--aah-color-success);border-color:var(--aah-color-success)}.aah-step__head.is-error{color:var(--aah-color-danger);border-color:var(--aah-color-danger)}.aah-step__head.is-finish{color:var(--aah-color-primary);border-color:var(--aah-color-primary)}.aah-step__icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:var(--aah-bg-color);transition:.15s ease-out}.aah-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.aah-step__icon.is-icon{width:40px}.aah-step__icon-inner{display:inline-block;-webkit-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.aah-step__icon-inner[class*=aah-icon]:not(.is-status){font-size:25px;font-weight:400}.aah-step__icon-inner.is-status{transform:translateY(1px)}.aah-step__line{position:absolute;border-color:inherit;background-color:var(--aah-text-color-placeholder)}.aah-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.aah-step__main{white-space:normal;text-align:left}.aah-step__title{font-size:16px;line-height:38px}.aah-step__title.is-process{font-weight:700;color:var(--aah-text-color-primary)}.aah-step__title.is-wait{color:var(--aah-text-color-placeholder)}.aah-step__title.is-success{color:var(--aah-color-success)}.aah-step__title.is-error{color:var(--aah-color-danger)}.aah-step__title.is-finish{color:var(--aah-color-primary)}.aah-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.aah-step__description.is-process{color:var(--aah-text-color-primary)}.aah-step__description.is-wait{color:var(--aah-text-color-placeholder)}.aah-step__description.is-success{color:var(--aah-color-success)}.aah-step__description.is-error{color:var(--aah-color-danger)}.aah-step__description.is-finish{color:var(--aah-color-primary)}.aah-step.is-horizontal{display:inline-block}.aah-step.is-horizontal .aah-step__line{height:2px;top:11px;left:0;right:0}.aah-step.is-vertical{display:flex}.aah-step.is-vertical .aah-step__head{flex-grow:0;width:24px}.aah-step.is-vertical .aah-step__main{padding-left:10px;flex-grow:1}.aah-step.is-vertical .aah-step__title{line-height:24px;padding-bottom:8px}.aah-step.is-vertical .aah-step__line{width:2px;top:0;bottom:0;left:11px}.aah-step.is-vertical .aah-step__icon.is-icon{width:24px}.aah-step.is-center .aah-step__head,.aah-step.is-center .aah-step__main{text-align:center}.aah-step.is-center .aah-step__description{padding-left:20%;padding-right:20%}.aah-step.is-center .aah-step__line{left:50%;right:-50%}.aah-step.is-simple{display:flex;align-items:center}.aah-step.is-simple .aah-step__head{width:auto;font-size:0;padding-right:10px}.aah-step.is-simple .aah-step__icon{background:transparent;width:16px;height:16px;font-size:12px}.aah-step.is-simple .aah-step__icon-inner[class*=aah-icon]:not(.is-status){font-size:18px}.aah-step.is-simple .aah-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.aah-step.is-simple .aah-step__main{position:relative;display:flex;align-items:stretch;flex-grow:1}.aah-step.is-simple .aah-step__title{font-size:16px;line-height:20px}.aah-step.is-simple:not(:last-of-type) .aah-step__title{max-width:50%;overflow-wrap:break-word}.aah-step.is-simple .aah-step__arrow{flex-grow:1;display:flex;align-items:center;justify-content:center}.aah-step.is-simple .aah-step__arrow:before,.aah-step.is-simple .aah-step__arrow:after{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:var(--aah-text-color-placeholder)}.aah-step.is-simple .aah-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.aah-step.is-simple .aah-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.aah-step.is-simple:last-of-type .aah-step__arrow{display:none}.aah-steps{display:flex}.aah-steps--simple{padding:13px 8%;border-radius:4px;background:var(--aah-fill-color-light)}.aah-steps--horizontal{white-space:nowrap}.aah-steps--vertical{height:100%;flex-flow:column}.aah-switch{--aah-switch-on-color: var(--aah-color-primary);--aah-switch-off-color: var(--aah-border-color)}.aah-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:32px;vertical-align:middle}.aah-switch.is-disabled .aah-switch__core,.aah-switch.is-disabled .aah-switch__label{cursor:not-allowed}.aah-switch__label{transition:var(--aah-transition-duration-fast);height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:var(--aah-text-color-primary)}.aah-switch__label.is-active{color:var(--aah-color-primary)}.aah-switch__label--left{margin-right:10px}.aah-switch__label--right{margin-left:10px}.aah-switch__label *{line-height:1;font-size:14px;display:inline-block}.aah-switch__label .aah-icon{height:inherit}.aah-switch__label .aah-icon svg{vertical-align:middle}.aah-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.aah-switch__input:focus-visible~.aah-switch__core{outline:2px solid var(--aah-switch-on-color);outline-offset:1px}.aah-switch__core{display:inline-flex;position:relative;align-items:center;min-width:40px;height:20px;border:1px solid var(--aah-switch-border-color, var(--aah-switch-off-color));outline:none;border-radius:10px;box-sizing:border-box;background:var(--aah-switch-off-color);cursor:pointer;transition:border-color var(--aah-transition-duration),background-color var(--aah-transition-duration)}.aah-switch__core .aah-switch__inner{width:100%;transition:all var(--aah-transition-duration);height:16px;display:flex;justify-content:center;align-items:center;overflow:hidden;padding:0 4px 0 18px}.aah-switch__core .aah-switch__inner .is-icon,.aah-switch__core .aah-switch__inner .is-text{font-size:12px;color:var(--aah-color-white);-webkit-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aah-switch__core .aah-switch__action{position:absolute;left:1px;border-radius:var(--aah-border-radius-circle);transition:all var(--aah-transition-duration);width:16px;height:16px;background-color:var(--aah-color-white);display:flex;justify-content:center;align-items:center;color:var(--aah-switch-off-color)}.aah-switch.is-checked .aah-switch__core{border-color:var(--aah-switch-border-color, var(--aah-switch-on-color));background-color:var(--aah-switch-on-color)}.aah-switch.is-checked .aah-switch__core .aah-switch__action{left:calc(100% - 17px);color:var(--aah-switch-on-color)}.aah-switch.is-checked .aah-switch__core .aah-switch__inner{padding:0 18px 0 4px}.aah-switch.is-disabled{opacity:.6}.aah-switch--wide .aah-switch__label.aah-switch__label--left span{left:10px}.aah-switch--wide .aah-switch__label.aah-switch__label--right span{right:10px}.aah-switch .label-fade-enter-from,.aah-switch .label-fade-leave-active{opacity:0}.aah-switch--large{font-size:14px;line-height:24px;height:40px}.aah-switch--large .aah-switch__label{height:24px;font-size:14px}.aah-switch--large .aah-switch__label *{font-size:14px}.aah-switch--large .aah-switch__core{min-width:50px;height:24px;border-radius:12px}.aah-switch--large .aah-switch__core .aah-switch__inner{height:20px;padding:0 6px 0 22px}.aah-switch--large .aah-switch__core .aah-switch__action{width:20px;height:20px}.aah-switch--large.is-checked .aah-switch__core .aah-switch__action{left:calc(100% - 21px)}.aah-switch--large.is-checked .aah-switch__core .aah-switch__inner{padding:0 22px 0 6px}.aah-switch--small{font-size:12px;line-height:16px;height:24px}.aah-switch--small .aah-switch__label{height:16px;font-size:12px}.aah-switch--small .aah-switch__label *{font-size:12px}.aah-switch--small .aah-switch__core{min-width:30px;height:16px;border-radius:8px}.aah-switch--small .aah-switch__core .aah-switch__inner{height:12px;padding:0 2px 0 14px}.aah-switch--small .aah-switch__core .aah-switch__action{width:12px;height:12px}.aah-switch--small.is-checked .aah-switch__core .aah-switch__action{left:calc(100% - 13px)}.aah-switch--small.is-checked .aah-switch__core .aah-switch__inner{padding:0 14px 0 2px}.aah-table-column--selection .cell{padding-left:14px;padding-right:14px}.aah-table-filter{border:solid 1px var(--aah-border-color-lighter);border-radius:2px;background-color:#fff;box-shadow:var(--aah-box-shadow-light);box-sizing:border-box}.aah-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.aah-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:var(--aah-font-size-base)}.aah-table-filter__list-item:hover{background-color:var(--aah-color-primary-light-9);color:var(--aah-color-primary)}.aah-table-filter__list-item.is-active{background-color:var(--aah-color-primary);color:#fff}.aah-table-filter__content{min-width:100px}.aah-table-filter__bottom{border-top:1px solid var(--aah-border-color-lighter);padding:8px}.aah-table-filter__bottom button{background:transparent;border:none;color:var(--aah-text-color-regular);cursor:pointer;font-size:var(--aah-font-size-small);padding:0 3px}.aah-table-filter__bottom button:hover{color:var(--aah-color-primary)}.aah-table-filter__bottom button:focus{outline:none}.aah-table-filter__bottom button.is-disabled{color:var(--aah-disabled-text-color);cursor:not-allowed}.aah-table-filter__wrap{max-height:280px}.aah-table-filter__checkbox-group{padding:10px}.aah-table-filter__checkbox-group label.aah-checkbox{display:flex;align-items:center;margin-right:5px;margin-bottom:12px;margin-left:5px;height:unset}.aah-table-filter__checkbox-group .aah-checkbox:last-child{margin-bottom:0}.aah-table{--aah-table-border-color: var(--aah-border-color-lighter);--aah-table-border: 1px solid var(--aah-table-border-color);--aah-table-text-color: var(--aah-text-color-regular);--aah-table-header-text-color: var(--aah-text-color-secondary);--aah-table-row-hover-bg-color: var(--aah-fill-color-light);--aah-table-current-row-bg-color: var(--aah-color-primary-light-9);--aah-table-header-bg-color: var(--aah-bg-color);--aah-table-fixed-box-shadow: var(--aah-box-shadow-light);--aah-table-bg-color: var(--aah-fill-color-blank);--aah-table-tr-bg-color: var(--aah-bg-color);--aah-table-expanded-cell-bg-color: var(--aah-fill-color-blank);--aah-table-fixed-left-column: inset 10px 0 10px -10px rgba(0, 0, 0, .15);--aah-table-fixed-right-column: inset -10px 0 10px -10px rgba(0, 0, 0, .15);--aah-table-index: var(--aah-index-normal)}.aah-table{position:relative;overflow:hidden;box-sizing:border-box;height:fit-content;width:100%;max-width:100%;background-color:var(--aah-table-bg-color);font-size:14px;color:var(--aah-table-text-color)}.aah-table__inner-wrapper{position:relative;display:flex;flex-direction:column;height:100%}.aah-table__inner-wrapper:before{left:0;bottom:0;width:100%;height:1px}.aah-table tbody:focus-visible{outline:none}.aah-table.has-footer.aah-table--scrollable-y tr:last-child td.aah-table__cell,.aah-table.has-footer.aah-table--fluid-height tr:last-child td.aah-table__cell{border-bottom-color:transparent}.aah-table__empty-block{position:sticky;left:0;min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.aah-table__empty-text{line-height:60px;width:50%;color:var(--aah-text-color-secondary)}.aah-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;user-select:none}.aah-table__expand-icon{position:relative;cursor:pointer;color:var(--aah-text-color-regular);font-size:12px;transition:transform var(--aah-transition-duration-fast) ease-in-out;height:20px}.aah-table__expand-icon--expanded{transform:rotate(90deg)}.aah-table__expand-icon>.aah-icon{font-size:12px}.aah-table__expanded-cell{background-color:var(--aah-table-expanded-cell-bg-color)}.aah-table__expanded-cell[class*=cell]{padding:20px 50px}.aah-table__expanded-cell:hover{background-color:transparent!important}.aah-table__placeholder{display:inline-block;width:20px}.aah-table__append-wrapper{overflow:hidden}.aah-table--fit{border-right:0;border-bottom:0}.aah-table--fit .aah-table__cell.gutter{border-right-width:1px}.aah-table thead{color:var(--aah-table-header-text-color)}.aah-table thead th{font-weight:600}.aah-table thead.is-group th.aah-table__cell{background:var(--aah-fill-color-light)}.aah-table .aah-table__cell{padding:8px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left;z-index:var(--aah-table-index)}.aah-table .aah-table__cell.is-center{text-align:center}.aah-table .aah-table__cell.is-right{text-align:right}.aah-table .aah-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.aah-table .aah-table__cell.is-hidden>*{visibility:hidden}.aah-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;overflow-wrap:break-word;line-height:23px;padding:0 12px}.aah-table .cell.aah-tooltip{white-space:nowrap;min-width:50px}.aah-table--large{font-size:var(--aah-font-size-base)}.aah-table--large .aah-table__cell{padding:12px 0}.aah-table--large .cell{padding:0 16px}.aah-table--default{font-size:14px}.aah-table--default .aah-table__cell{padding:8px 0}.aah-table--default .cell{padding:0 12px}.aah-table--small{font-size:12px}.aah-table--small .aah-table__cell{padding:4px 0}.aah-table--small .cell{padding:0 8px}.aah-table tr{background-color:var(--aah-table-tr-bg-color)}.aah-table tr input[type=checkbox]{margin:0}.aah-table th.aah-table__cell.is-leaf,.aah-table td.aah-table__cell{border-bottom:var(--aah-table-border)}.aah-table th.aah-table__cell.is-sortable{cursor:pointer}.aah-table th.aah-table__cell{-webkit-user-select:none;user-select:none;background-color:var(--aah-table-header-bg-color)}.aah-table th.aah-table__cell>.cell.highlight{color:var(--aah-color-primary)}.aah-table th.aah-table__cell.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.aah-table td.aah-table__cell div{box-sizing:border-box}.aah-table td.aah-table__cell.gutter{width:0}.aah-table--border:after,.aah-table--border:before,.aah-table--border .aah-table__inner-wrapper:after,.aah-table__inner-wrapper:before{content:"";position:absolute;background-color:var(--aah-table-border-color);z-index:calc(var(--aah-table-index) + 2)}.aah-table--border .aah-table__inner-wrapper:after{left:0;top:0;width:100%;height:1px;z-index:calc(var(--aah-table-index) + 2)}.aah-table--border:before{top:-1px;left:0;width:1px;height:100%}.aah-table--border:after{top:-1px;right:0;width:1px;height:100%}.aah-table--border .aah-table__inner-wrapper{border-right:none;border-bottom:none}.aah-table--border .aah-table__footer-wrapper{position:relative;flex-shrink:0}.aah-table--border .aah-table__cell{border-right:var(--aah-table-border)}.aah-table--border th.aah-table__cell.gutter:last-of-type{border-bottom:var(--aah-table-border);border-bottom-width:1px}.aah-table--border th.aah-table__cell{border-bottom:var(--aah-table-border)}.aah-table--hidden{visibility:hidden}.aah-table__header-wrapper,.aah-table__body-wrapper,.aah-table__footer-wrapper{width:100%}.aah-table__header-wrapper tr td.aah-table-fixed-column--left,.aah-table__header-wrapper tr td.aah-table-fixed-column--right,.aah-table__header-wrapper tr th.aah-table-fixed-column--left,.aah-table__header-wrapper tr th.aah-table-fixed-column--right,.aah-table__body-wrapper tr td.aah-table-fixed-column--left,.aah-table__body-wrapper tr td.aah-table-fixed-column--right,.aah-table__body-wrapper tr th.aah-table-fixed-column--left,.aah-table__body-wrapper tr th.aah-table-fixed-column--right,.aah-table__footer-wrapper tr td.aah-table-fixed-column--left,.aah-table__footer-wrapper tr td.aah-table-fixed-column--right,.aah-table__footer-wrapper tr th.aah-table-fixed-column--left,.aah-table__footer-wrapper tr th.aah-table-fixed-column--right{position:sticky!important;background:inherit;z-index:calc(var(--aah-table-index) + 1)}.aah-table__header-wrapper tr td.aah-table-fixed-column--left.is-last-column:before,.aah-table__header-wrapper tr td.aah-table-fixed-column--left.is-first-column:before,.aah-table__header-wrapper tr td.aah-table-fixed-column--right.is-last-column:before,.aah-table__header-wrapper tr td.aah-table-fixed-column--right.is-first-column:before,.aah-table__header-wrapper tr th.aah-table-fixed-column--left.is-last-column:before,.aah-table__header-wrapper tr th.aah-table-fixed-column--left.is-first-column:before,.aah-table__header-wrapper tr th.aah-table-fixed-column--right.is-last-column:before,.aah-table__header-wrapper tr th.aah-table-fixed-column--right.is-first-column:before,.aah-table__body-wrapper tr td.aah-table-fixed-column--left.is-last-column:before,.aah-table__body-wrapper tr td.aah-table-fixed-column--left.is-first-column:before,.aah-table__body-wrapper tr td.aah-table-fixed-column--right.is-last-column:before,.aah-table__body-wrapper tr td.aah-table-fixed-column--right.is-first-column:before,.aah-table__body-wrapper tr th.aah-table-fixed-column--left.is-last-column:before,.aah-table__body-wrapper tr th.aah-table-fixed-column--left.is-first-column:before,.aah-table__body-wrapper tr th.aah-table-fixed-column--right.is-last-column:before,.aah-table__body-wrapper tr th.aah-table-fixed-column--right.is-first-column:before,.aah-table__footer-wrapper tr td.aah-table-fixed-column--left.is-last-column:before,.aah-table__footer-wrapper tr td.aah-table-fixed-column--left.is-first-column:before,.aah-table__footer-wrapper tr td.aah-table-fixed-column--right.is-last-column:before,.aah-table__footer-wrapper tr td.aah-table-fixed-column--right.is-first-column:before,.aah-table__footer-wrapper tr th.aah-table-fixed-column--left.is-last-column:before,.aah-table__footer-wrapper tr th.aah-table-fixed-column--left.is-first-column:before,.aah-table__footer-wrapper tr th.aah-table-fixed-column--right.is-last-column:before,.aah-table__footer-wrapper tr th.aah-table-fixed-column--right.is-first-column:before{content:"";position:absolute;top:0;width:10px;bottom:-1px;overflow-x:hidden;overflow-y:hidden;box-shadow:none;touch-action:none;pointer-events:none}.aah-table__header-wrapper tr td.aah-table-fixed-column--left.is-first-column:before,.aah-table__header-wrapper tr td.aah-table-fixed-column--right.is-first-column:before,.aah-table__header-wrapper tr th.aah-table-fixed-column--left.is-first-column:before,.aah-table__header-wrapper tr th.aah-table-fixed-column--right.is-first-column:before,.aah-table__body-wrapper tr td.aah-table-fixed-column--left.is-first-column:before,.aah-table__body-wrapper tr td.aah-table-fixed-column--right.is-first-column:before,.aah-table__body-wrapper tr th.aah-table-fixed-column--left.is-first-column:before,.aah-table__body-wrapper tr th.aah-table-fixed-column--right.is-first-column:before,.aah-table__footer-wrapper tr td.aah-table-fixed-column--left.is-first-column:before,.aah-table__footer-wrapper tr td.aah-table-fixed-column--right.is-first-column:before,.aah-table__footer-wrapper tr th.aah-table-fixed-column--left.is-first-column:before,.aah-table__footer-wrapper tr th.aah-table-fixed-column--right.is-first-column:before{left:-10px}.aah-table__header-wrapper tr td.aah-table-fixed-column--left.is-last-column:before,.aah-table__header-wrapper tr td.aah-table-fixed-column--right.is-last-column:before,.aah-table__header-wrapper tr th.aah-table-fixed-column--left.is-last-column:before,.aah-table__header-wrapper tr th.aah-table-fixed-column--right.is-last-column:before,.aah-table__body-wrapper tr td.aah-table-fixed-column--left.is-last-column:before,.aah-table__body-wrapper tr td.aah-table-fixed-column--right.is-last-column:before,.aah-table__body-wrapper tr th.aah-table-fixed-column--left.is-last-column:before,.aah-table__body-wrapper tr th.aah-table-fixed-column--right.is-last-column:before,.aah-table__footer-wrapper tr td.aah-table-fixed-column--left.is-last-column:before,.aah-table__footer-wrapper tr td.aah-table-fixed-column--right.is-last-column:before,.aah-table__footer-wrapper tr th.aah-table-fixed-column--left.is-last-column:before,.aah-table__footer-wrapper tr th.aah-table-fixed-column--right.is-last-column:before{right:-10px;box-shadow:none}.aah-table__header-wrapper tr td.aah-table__fixed-right-patch,.aah-table__header-wrapper tr th.aah-table__fixed-right-patch,.aah-table__body-wrapper tr td.aah-table__fixed-right-patch,.aah-table__body-wrapper tr th.aah-table__fixed-right-patch,.aah-table__footer-wrapper tr td.aah-table__fixed-right-patch,.aah-table__footer-wrapper tr th.aah-table__fixed-right-patch{position:sticky!important;z-index:calc(var(--aah-table-index) + 1);background:#fff;right:0}.aah-table__header-wrapper{flex-shrink:0}.aah-table__header-wrapper tr th.aah-table-fixed-column--left,.aah-table__header-wrapper tr th.aah-table-fixed-column--right{background-color:var(--aah-table-header-bg-color)}.aah-table__header,.aah-table__body,.aah-table__footer{table-layout:fixed;border-collapse:separate}.aah-table__header-wrapper{overflow:hidden}.aah-table__header-wrapper tbody td.aah-table__cell{background-color:var(--aah-table-row-hover-bg-color);color:var(--aah-table-text-color)}.aah-table__footer-wrapper{overflow:hidden;flex-shrink:0}.aah-table__footer-wrapper tfoot td.aah-table__cell{background-color:var(--aah-table-row-hover-bg-color);color:var(--aah-table-text-color)}.aah-table__header-wrapper .aah-table-column--selection>.cell,.aah-table__body-wrapper .aah-table-column--selection>.cell{display:inline-flex;align-items:center;height:23px}.aah-table__header-wrapper .aah-table-column--selection .aah-checkbox,.aah-table__body-wrapper .aah-table-column--selection .aah-checkbox{height:unset}.aah-table.is-scrolling-left .aah-table-fixed-column--right.is-first-column:before{box-shadow:var(--aah-table-fixed-right-column)}.aah-table.is-scrolling-left.aah-table--border .aah-table-fixed-column--left.is-last-column.aah-table__cell{border-right:var(--aah-table-border)}.aah-table.is-scrolling-left th.aah-table-fixed-column--left{background-color:var(--aah-table-header-bg-color)}.aah-table.is-scrolling-right .aah-table-fixed-column--left.is-last-column:before{box-shadow:var(--aah-table-fixed-left-column)}.aah-table.is-scrolling-right .aah-table-fixed-column--left.is-last-column.aah-table__cell{border-right:none}.aah-table.is-scrolling-right th.aah-table-fixed-column--right{background-color:var(--aah-table-header-bg-color)}.aah-table.is-scrolling-middle .aah-table-fixed-column--left.is-last-column.aah-table__cell{border-right:none}.aah-table.is-scrolling-middle .aah-table-fixed-column--right.is-first-column:before{box-shadow:var(--aah-table-fixed-right-column)}.aah-table.is-scrolling-middle .aah-table-fixed-column--left.is-last-column:before{box-shadow:var(--aah-table-fixed-left-column)}.aah-table.is-scrolling-none .aah-table-fixed-column--left.is-first-column:before,.aah-table.is-scrolling-none .aah-table-fixed-column--left.is-last-column:before,.aah-table.is-scrolling-none .aah-table-fixed-column--right.is-first-column:before,.aah-table.is-scrolling-none .aah-table-fixed-column--right.is-last-column:before{box-shadow:none}.aah-table.is-scrolling-none th.aah-table-fixed-column--left,.aah-table.is-scrolling-none th.aah-table-fixed-column--right{background-color:var(--aah-table-header-bg-color)}.aah-table__body-wrapper{overflow:hidden;position:relative;flex:1}.aah-table__body-wrapper .aah-scrollbar__bar{z-index:calc(var(--aah-table-index) + 2)}.aah-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.aah-table .sort-caret{width:0;height:0;border:solid 5px transparent;position:absolute;left:7px}.aah-table .sort-caret.ascending{border-bottom-color:var(--aah-text-color-placeholder);top:-5px}.aah-table .sort-caret.descending{border-top-color:var(--aah-text-color-placeholder);bottom:-3px}.aah-table .ascending .sort-caret.ascending{border-bottom-color:var(--aah-color-primary)}.aah-table .descending .sort-caret.descending{border-top-color:var(--aah-color-primary)}.aah-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.aah-table--striped .aah-table__body tr.aah-table__row--striped td.aah-table__cell{background:var(--aah-fill-color-lighter)}.aah-table--striped .aah-table__body tr.aah-table__row--striped.current-row td.aah-table__cell{background-color:var(--aah-table-current-row-bg-color)}.aah-table__body tr.hover-row>td.aah-table__cell,.aah-table__body tr.hover-row.current-row>td.aah-table__cell,.aah-table__body tr.hover-row.aah-table__row--striped>td.aah-table__cell,.aah-table__body tr.hover-row.aah-table__row--striped.current-row>td.aah-table__cell{background-color:var(--aah-table-row-hover-bg-color)}.aah-table__body tr>td.hover-cell{background-color:var(--aah-table-row-hover-bg-color)}.aah-table__body tr.current-row>td.aah-table__cell{background-color:var(--aah-table-current-row-bg-color)}.aah-table.aah-table--scrollable-y .aah-table__body-header{position:sticky;top:0;z-index:calc(var(--aah-table-index) + 2)}.aah-table.aah-table--scrollable-y .aah-table__body-footer{position:sticky;bottom:0;z-index:calc(var(--aah-table-index) + 2)}.aah-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:var(--aah-table-border);z-index:calc(var(--aah-table-index) + 9)}.aah-table__column-filter-trigger{display:inline-block;cursor:pointer}.aah-table__column-filter-trigger i{color:var(--aah-color-info);font-size:14px;vertical-align:middle}.aah-table__border-left-patch{top:0;left:0;width:1px;height:100%;z-index:calc(var(--aah-table-index) + 2);position:absolute;background-color:var(--aah-table-border-color)}.aah-table__border-bottom-patch{left:0;height:1px;z-index:calc(var(--aah-table-index) + 2);position:absolute;background-color:var(--aah-table-border-color)}.aah-table__border-right-patch{top:0;height:100%;width:1px;z-index:calc(var(--aah-table-index) + 2);position:absolute;background-color:var(--aah-table-border-color)}.aah-table--enable-row-transition .aah-table__body td.aah-table__cell{transition:background-color .25s ease}.aah-table--enable-row-hover .aah-table__body tr:hover>td.aah-table__cell{background-color:var(--aah-table-row-hover-bg-color)}.aah-table [class*=aah-table__row--level] .aah-table__expand-icon{display:inline-block;width:12px;line-height:12px;height:12px;text-align:center;margin-right:8px}.aah-table .aah-table.aah-table--border .aah-table__cell{border-right:var(--aah-table-border)}.aah-table:not(.aah-table--border) .aah-table__cell{border-right:none}.aah-table:not(.aah-table--border)>.aah-table__inner-wrapper:after{content:none}.aah-table-v2{--aah-table-border-color: var(--aah-border-color-lighter);--aah-table-border: 1px solid var(--aah-table-border-color);--aah-table-text-color: var(--aah-text-color-regular);--aah-table-header-text-color: var(--aah-text-color-secondary);--aah-table-row-hover-bg-color: var(--aah-fill-color-light);--aah-table-current-row-bg-color: var(--aah-color-primary-light-9);--aah-table-header-bg-color: var(--aah-bg-color);--aah-table-fixed-box-shadow: var(--aah-box-shadow-light);--aah-table-bg-color: var(--aah-fill-color-blank);--aah-table-tr-bg-color: var(--aah-bg-color);--aah-table-expanded-cell-bg-color: var(--aah-fill-color-blank);--aah-table-fixed-left-column: inset 10px 0 10px -10px rgba(0, 0, 0, .15);--aah-table-fixed-right-column: inset -10px 0 10px -10px rgba(0, 0, 0, .15);--aah-table-index: var(--aah-index-normal)}.aah-table-v2{font-size:14px}.aah-table-v2 *{box-sizing:border-box}.aah-table-v2__root{position:relative}.aah-table-v2__root:hover .aah-table-v2__main .aah-virtual-scrollbar{opacity:1}.aah-table-v2__main{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--aah-bg-color);left:0}.aah-table-v2__main .aah-vl__horizontal,.aah-table-v2__main .aah-vl__vertical{z-index:2}.aah-table-v2__left{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--aah-bg-color);left:0;box-shadow:2px 0 4px #0000000f}.aah-table-v2__left .aah-virtual-scrollbar{opacity:0}.aah-table-v2__left .aah-vl__vertical,.aah-table-v2__left .aah-vl__horizontal{z-index:-1}.aah-table-v2__right{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--aah-bg-color);right:0;box-shadow:-2px 0 4px #0000000f}.aah-table-v2__right .aah-virtual-scrollbar{opacity:0}.aah-table-v2__right .aah-vl__vertical,.aah-table-v2__right .aah-vl__horizontal{z-index:-1}.aah-table-v2__header-row,.aah-table-v2__row{padding-inline-end:var(--aah-table-scrollbar-size)}.aah-table-v2__header-wrapper{overflow:hidden}.aah-table-v2__header{position:relative;overflow:hidden}.aah-table-v2__footer{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.aah-table-v2__empty{position:absolute;left:0}.aah-table-v2__overlay{position:absolute;left:0;right:0;top:0;bottom:0;z-index:9999}.aah-table-v2__header-row{display:flex;border-bottom:var(--aah-table-border)}.aah-table-v2__header-cell{display:flex;align-items:center;padding:0 8px;height:100%;-webkit-user-select:none;user-select:none;overflow:hidden;background-color:var(--aah-table-header-bg-color);color:var(--aah-table-header-text-color);font-weight:700}.aah-table-v2__header-cell.is-align-center{justify-content:center;text-align:center}.aah-table-v2__header-cell.is-align-right{justify-content:flex-end;text-align:right}.aah-table-v2__header-cell.is-sortable{cursor:pointer}.aah-table-v2__header-cell:hover .aah-icon{display:block}.aah-table-v2__sort-icon{transition:opacity,display var(--aah-transition-duration);opacity:.6;display:none}.aah-table-v2__sort-icon.is-sorting{display:block;opacity:1}.aah-table-v2__row{border-bottom:var(--aah-table-border);display:flex;align-items:center;transition:background-color var(--aah-transition-duration)}.aah-table-v2__row.is-hovered,.aah-table-v2__row:hover{background-color:var(--aah-table-row-hover-bg-color)}.aah-table-v2__row-cell{height:100%;overflow:hidden;display:flex;align-items:center;padding:0 8px}.aah-table-v2__row-cell.is-align-center{justify-content:center;text-align:center}.aah-table-v2__row-cell.is-align-right{justify-content:flex-end;text-align:right}.aah-table-v2__expand-icon{margin:0 4px;cursor:pointer;-webkit-user-select:none;user-select:none}.aah-table-v2__expand-icon svg{transition:transform var(--aah-transition-duration)}.aah-table-v2__expand-icon.is-expanded svg{transform:rotate(90deg)}.aah-table-v2:not(.is-dynamic) .aah-table-v2__cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aah-table-v2.is-dynamic .aah-table-v2__row{overflow:hidden;align-items:stretch}.aah-table-v2.is-dynamic .aah-table-v2__row .aah-table-v2__row-cell{overflow-wrap:break-word}.aah-tabs{--aah-tabs-header-height: 40px}.aah-tabs__header{padding:0;position:relative;margin:0 0 15px}.aah-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:var(--aah-color-primary);z-index:1;transition:width var(--aah-transition-duration) var(--aah-transition-function-ease-in-out-bezier),transform var(--aah-transition-duration) var(--aah-transition-function-ease-in-out-bezier);list-style:none}.aah-tabs__new-tab{display:flex;align-items:center;justify-content:center;float:right;border:1px solid var(--aah-border-color);height:20px;width:20px;line-height:20px;margin:10px 0 10px 10px;border-radius:3px;text-align:center;font-size:12px;color:var(--aah-text-color-primary);cursor:pointer;transition:all .15s}.aah-tabs__new-tab .is-icon-plus{height:inherit;width:inherit;transform:scale(.8)}.aah-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.aah-tabs__new-tab:hover{color:var(--aah-color-primary)}.aah-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.aah-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:var(--aah-border-color-light);z-index:var(--aah-index-normal)}.aah-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.aah-tabs__nav-scroll{overflow:hidden}.aah-tabs__nav-next,.aah-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:var(--aah-text-color-secondary);width:20px;text-align:center}.aah-tabs__nav-next{right:0}.aah-tabs__nav-prev{left:0}.aah-tabs__nav{display:flex;white-space:nowrap;position:relative;transition:transform var(--aah-transition-duration);float:left;z-index:calc(var(--aah-index-normal) + 1)}.aah-tabs__nav.is-stretch{min-width:100%;display:flex}.aah-tabs__nav.is-stretch>*{flex:1;text-align:center}.aah-tabs__item{padding:0 20px;height:var(--aah-tabs-header-height);box-sizing:border-box;display:flex;align-items:center;justify-content:center;list-style:none;font-size:var(--aah-font-size-base);font-weight:500;color:var(--aah-text-color-primary);position:relative}.aah-tabs__item:focus,.aah-tabs__item:focus:active{outline:none}.aah-tabs__item:focus-visible{box-shadow:0 0 2px 2px var(--aah-color-primary) inset;border-radius:3px}.aah-tabs__item .is-icon-close{border-radius:50%;text-align:center;transition:all var(--aah-transition-duration) var(--aah-transition-function-ease-in-out-bezier);margin-left:5px}.aah-tabs__item .is-icon-close:before{transform:scale(.9);display:inline-block}.aah-tabs__item .is-icon-close:hover{background-color:var(--aah-text-color-placeholder);color:#fff}.aah-tabs__item.is-active{color:var(--aah-color-primary)}.aah-tabs__item:hover{color:var(--aah-color-primary);cursor:pointer}.aah-tabs__item.is-disabled{color:var(--aah-disabled-text-color);cursor:not-allowed}.aah-tabs__content{overflow:hidden;position:relative}.aah-tabs--card>.aah-tabs__header{border-bottom:1px solid var(--aah-border-color-light);height:var(--aah-tabs-header-height)}.aah-tabs--card>.aah-tabs__header .aah-tabs__nav-wrap:after{content:none}.aah-tabs--card>.aah-tabs__header .aah-tabs__nav{border:1px solid var(--aah-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.aah-tabs--card>.aah-tabs__header .aah-tabs__active-bar{display:none}.aah-tabs--card>.aah-tabs__header .aah-tabs__item .is-icon-close{position:relative;font-size:12px;width:0;height:14px;overflow:hidden;right:-2px;transform-origin:100% 50%}.aah-tabs--card>.aah-tabs__header .aah-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--aah-border-color-light);transition:color var(--aah-transition-duration) var(--aah-transition-function-ease-in-out-bezier),padding var(--aah-transition-duration) var(--aah-transition-function-ease-in-out-bezier)}.aah-tabs--card>.aah-tabs__header .aah-tabs__item:first-child{border-left:none}.aah-tabs--card>.aah-tabs__header .aah-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.aah-tabs--card>.aah-tabs__header .aah-tabs__item.is-closable:hover .is-icon-close{width:14px}.aah-tabs--card>.aah-tabs__header .aah-tabs__item.is-active{border-bottom-color:var(--aah-bg-color)}.aah-tabs--card>.aah-tabs__header .aah-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.aah-tabs--card>.aah-tabs__header .aah-tabs__item.is-active.is-closable .is-icon-close{width:14px}.aah-tabs--border-card{background:var(--aah-bg-color-overlay);border:1px solid var(--aah-border-color)}.aah-tabs--border-card>.aah-tabs__content{padding:15px}.aah-tabs--border-card>.aah-tabs__header{background-color:var(--aah-fill-color-light);border-bottom:1px solid var(--aah-border-color-light);margin:0}.aah-tabs--border-card>.aah-tabs__header .aah-tabs__nav-wrap:after{content:none}.aah-tabs--border-card>.aah-tabs__header .aah-tabs__item{transition:all var(--aah-transition-duration) var(--aah-transition-function-ease-in-out-bezier);border:1px solid transparent;margin-top:-1px;color:var(--aah-text-color-secondary)}.aah-tabs--border-card>.aah-tabs__header .aah-tabs__item:first-child{margin-left:-1px}.aah-tabs--border-card>.aah-tabs__header .aah-tabs__item+.aah-tabs__item{margin-left:-1px}.aah-tabs--border-card>.aah-tabs__header .aah-tabs__item.is-active{color:var(--aah-color-primary);background-color:var(--aah-bg-color-overlay);border-right-color:var(--aah-border-color);border-left-color:var(--aah-border-color)}.aah-tabs--border-card>.aah-tabs__header .aah-tabs__item:not(.is-disabled):hover{color:var(--aah-color-primary)}.aah-tabs--border-card>.aah-tabs__header .aah-tabs__item.is-disabled{color:var(--aah-disabled-text-color)}.aah-tabs--border-card>.aah-tabs__header .is-scrollable .aah-tabs__item:first-child{margin-left:0}.aah-tabs--top .aah-tabs__item.is-top:nth-child(2),.aah-tabs--top .aah-tabs__item.is-bottom:nth-child(2),.aah-tabs--bottom .aah-tabs__item.is-top:nth-child(2),.aah-tabs--bottom .aah-tabs__item.is-bottom:nth-child(2){padding-left:0}.aah-tabs--top .aah-tabs__item.is-top:last-child,.aah-tabs--top .aah-tabs__item.is-bottom:last-child,.aah-tabs--bottom .aah-tabs__item.is-top:last-child,.aah-tabs--bottom .aah-tabs__item.is-bottom:last-child{padding-right:0}.aah-tabs--top.aah-tabs--border-card>.aah-tabs__header .aah-tabs__item:nth-child(2),.aah-tabs--top.aah-tabs--card>.aah-tabs__header .aah-tabs__item:nth-child(2),.aah-tabs--top .aah-tabs--left>.aah-tabs__header .aah-tabs__item:nth-child(2),.aah-tabs--top .aah-tabs--right>.aah-tabs__header .aah-tabs__item:nth-child(2),.aah-tabs--bottom.aah-tabs--border-card>.aah-tabs__header .aah-tabs__item:nth-child(2),.aah-tabs--bottom.aah-tabs--card>.aah-tabs__header .aah-tabs__item:nth-child(2),.aah-tabs--bottom .aah-tabs--left>.aah-tabs__header .aah-tabs__item:nth-child(2),.aah-tabs--bottom .aah-tabs--right>.aah-tabs__header .aah-tabs__item:nth-child(2){padding-left:20px}.aah-tabs--top.aah-tabs--border-card>.aah-tabs__header .aah-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.aah-tabs--top.aah-tabs--card>.aah-tabs__header .aah-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.aah-tabs--top .aah-tabs--left>.aah-tabs__header .aah-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.aah-tabs--top .aah-tabs--right>.aah-tabs__header .aah-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.aah-tabs--bottom.aah-tabs--border-card>.aah-tabs__header .aah-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.aah-tabs--bottom.aah-tabs--card>.aah-tabs__header .aah-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.aah-tabs--bottom .aah-tabs--left>.aah-tabs__header .aah-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.aah-tabs--bottom .aah-tabs--right>.aah-tabs__header .aah-tabs__item:nth-child(2):not(.is-active).is-closable:hover{padding-left:13px}.aah-tabs--top.aah-tabs--border-card>.aah-tabs__header .aah-tabs__item:last-child,.aah-tabs--top.aah-tabs--card>.aah-tabs__header .aah-tabs__item:last-child,.aah-tabs--top .aah-tabs--left>.aah-tabs__header .aah-tabs__item:last-child,.aah-tabs--top .aah-tabs--right>.aah-tabs__header .aah-tabs__item:last-child,.aah-tabs--bottom.aah-tabs--border-card>.aah-tabs__header .aah-tabs__item:last-child,.aah-tabs--bottom.aah-tabs--card>.aah-tabs__header .aah-tabs__item:last-child,.aah-tabs--bottom .aah-tabs--left>.aah-tabs__header .aah-tabs__item:last-child,.aah-tabs--bottom .aah-tabs--right>.aah-tabs__header .aah-tabs__item:last-child{padding-right:20px}.aah-tabs--top.aah-tabs--border-card>.aah-tabs__header .aah-tabs__item:last-child:not(.is-active).is-closable:hover,.aah-tabs--top.aah-tabs--card>.aah-tabs__header .aah-tabs__item:last-child:not(.is-active).is-closable:hover,.aah-tabs--top .aah-tabs--left>.aah-tabs__header .aah-tabs__item:last-child:not(.is-active).is-closable:hover,.aah-tabs--top .aah-tabs--right>.aah-tabs__header .aah-tabs__item:last-child:not(.is-active).is-closable:hover,.aah-tabs--bottom.aah-tabs--border-card>.aah-tabs__header .aah-tabs__item:last-child:not(.is-active).is-closable:hover,.aah-tabs--bottom.aah-tabs--card>.aah-tabs__header .aah-tabs__item:last-child:not(.is-active).is-closable:hover,.aah-tabs--bottom .aah-tabs--left>.aah-tabs__header .aah-tabs__item:last-child:not(.is-active).is-closable:hover,.aah-tabs--bottom .aah-tabs--right>.aah-tabs__header .aah-tabs__item:last-child:not(.is-active).is-closable:hover{padding-right:13px}.aah-tabs--bottom .aah-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.aah-tabs--bottom.aah-tabs--border-card .aah-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--aah-border-color)}.aah-tabs--bottom.aah-tabs--border-card .aah-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.aah-tabs--bottom.aah-tabs--border-card .aah-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.aah-tabs--bottom.aah-tabs--border-card .aah-tabs__item.is-bottom{margin:0 -1px -1px}.aah-tabs--left,.aah-tabs--right{overflow:hidden}.aah-tabs--left .aah-tabs__header.is-left,.aah-tabs--left .aah-tabs__header.is-right,.aah-tabs--left .aah-tabs__nav-wrap.is-left,.aah-tabs--left .aah-tabs__nav-wrap.is-right,.aah-tabs--left .aah-tabs__nav-scroll,.aah-tabs--right .aah-tabs__header.is-left,.aah-tabs--right .aah-tabs__header.is-right,.aah-tabs--right .aah-tabs__nav-wrap.is-left,.aah-tabs--right .aah-tabs__nav-wrap.is-right,.aah-tabs--right .aah-tabs__nav-scroll{height:100%}.aah-tabs--left .aah-tabs__active-bar.is-left,.aah-tabs--left .aah-tabs__active-bar.is-right,.aah-tabs--right .aah-tabs__active-bar.is-left,.aah-tabs--right .aah-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.aah-tabs--left .aah-tabs__nav-wrap.is-left,.aah-tabs--left .aah-tabs__nav-wrap.is-right,.aah-tabs--right .aah-tabs__nav-wrap.is-left,.aah-tabs--right .aah-tabs__nav-wrap.is-right{margin-bottom:0}.aah-tabs--left .aah-tabs__nav-wrap.is-left>.aah-tabs__nav-prev,.aah-tabs--left .aah-tabs__nav-wrap.is-left>.aah-tabs__nav-next,.aah-tabs--left .aah-tabs__nav-wrap.is-right>.aah-tabs__nav-prev,.aah-tabs--left .aah-tabs__nav-wrap.is-right>.aah-tabs__nav-next,.aah-tabs--right .aah-tabs__nav-wrap.is-left>.aah-tabs__nav-prev,.aah-tabs--right .aah-tabs__nav-wrap.is-left>.aah-tabs__nav-next,.aah-tabs--right .aah-tabs__nav-wrap.is-right>.aah-tabs__nav-prev,.aah-tabs--right .aah-tabs__nav-wrap.is-right>.aah-tabs__nav-next{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.aah-tabs--left .aah-tabs__nav-wrap.is-left>.aah-tabs__nav-prev i,.aah-tabs--left .aah-tabs__nav-wrap.is-left>.aah-tabs__nav-next i,.aah-tabs--left .aah-tabs__nav-wrap.is-right>.aah-tabs__nav-prev i,.aah-tabs--left .aah-tabs__nav-wrap.is-right>.aah-tabs__nav-next i,.aah-tabs--right .aah-tabs__nav-wrap.is-left>.aah-tabs__nav-prev i,.aah-tabs--right .aah-tabs__nav-wrap.is-left>.aah-tabs__nav-next i,.aah-tabs--right .aah-tabs__nav-wrap.is-right>.aah-tabs__nav-prev i,.aah-tabs--right .aah-tabs__nav-wrap.is-right>.aah-tabs__nav-next i{transform:rotate(90deg)}.aah-tabs--left .aah-tabs__nav-wrap.is-left>.aah-tabs__nav-prev,.aah-tabs--left .aah-tabs__nav-wrap.is-right>.aah-tabs__nav-prev,.aah-tabs--right .aah-tabs__nav-wrap.is-left>.aah-tabs__nav-prev,.aah-tabs--right .aah-tabs__nav-wrap.is-right>.aah-tabs__nav-prev{left:auto;top:0}.aah-tabs--left .aah-tabs__nav-wrap.is-left>.aah-tabs__nav-next,.aah-tabs--left .aah-tabs__nav-wrap.is-right>.aah-tabs__nav-next,.aah-tabs--right .aah-tabs__nav-wrap.is-left>.aah-tabs__nav-next,.aah-tabs--right .aah-tabs__nav-wrap.is-right>.aah-tabs__nav-next{right:auto;bottom:0}.aah-tabs--left .aah-tabs__nav-wrap.is-left.is-scrollable,.aah-tabs--left .aah-tabs__nav-wrap.is-right.is-scrollable,.aah-tabs--right .aah-tabs__nav-wrap.is-left.is-scrollable,.aah-tabs--right .aah-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.aah-tabs--left .aah-tabs__nav-wrap.is-left:after,.aah-tabs--left .aah-tabs__nav-wrap.is-right:after,.aah-tabs--right .aah-tabs__nav-wrap.is-left:after,.aah-tabs--right .aah-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.aah-tabs--left .aah-tabs__nav.is-left,.aah-tabs--left .aah-tabs__nav.is-right,.aah-tabs--right .aah-tabs__nav.is-left,.aah-tabs--right .aah-tabs__nav.is-right{flex-direction:column}.aah-tabs--left .aah-tabs__item.is-left,.aah-tabs--right .aah-tabs__item.is-left{justify-content:flex-end}.aah-tabs--left .aah-tabs__item.is-right,.aah-tabs--right .aah-tabs__item.is-right{justify-content:flex-start}.aah-tabs--left .aah-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.aah-tabs--left .aah-tabs__nav-wrap.is-left{margin-right:-1px}.aah-tabs--left .aah-tabs__nav-wrap.is-left:after{left:auto;right:0}.aah-tabs--left .aah-tabs__active-bar.is-left{right:0;left:auto}.aah-tabs--left .aah-tabs__item.is-left{text-align:right}.aah-tabs--left.aah-tabs--card .aah-tabs__active-bar.is-left{display:none}.aah-tabs--left.aah-tabs--card .aah-tabs__item.is-left{border-left:none;border-right:1px solid var(--aah-border-color-light);border-bottom:none;border-top:1px solid var(--aah-border-color-light);text-align:left}.aah-tabs--left.aah-tabs--card .aah-tabs__item.is-left:first-child{border-right:1px solid var(--aah-border-color-light);border-top:none}.aah-tabs--left.aah-tabs--card .aah-tabs__item.is-left.is-active{border:1px solid var(--aah-border-color-light);border-right-color:#fff;border-left:none;border-bottom:none}.aah-tabs--left.aah-tabs--card .aah-tabs__item.is-left.is-active:first-child{border-top:none}.aah-tabs--left.aah-tabs--card .aah-tabs__item.is-left.is-active:last-child{border-bottom:none}.aah-tabs--left.aah-tabs--card .aah-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid var(--aah-border-color-light);border-right:none}.aah-tabs--left.aah-tabs--card .aah-tabs__new-tab{float:none}.aah-tabs--left.aah-tabs--border-card .aah-tabs__header.is-left{border-right:1px solid var(--aah-border-color)}.aah-tabs--left.aah-tabs--border-card .aah-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.aah-tabs--left.aah-tabs--border-card .aah-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.aah-tabs--right .aah-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.aah-tabs--right .aah-tabs__nav-wrap.is-right{margin-left:-1px}.aah-tabs--right .aah-tabs__nav-wrap.is-right:after{left:0;right:auto}.aah-tabs--right .aah-tabs__active-bar.is-right{left:0}.aah-tabs--right.aah-tabs--card .aah-tabs__active-bar.is-right{display:none}.aah-tabs--right.aah-tabs--card .aah-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--aah-border-color-light)}.aah-tabs--right.aah-tabs--card .aah-tabs__item.is-right:first-child{border-left:1px solid var(--aah-border-color-light);border-top:none}.aah-tabs--right.aah-tabs--card .aah-tabs__item.is-right.is-active{border:1px solid var(--aah-border-color-light);border-left-color:#fff;border-right:none;border-bottom:none}.aah-tabs--right.aah-tabs--card .aah-tabs__item.is-right.is-active:first-child{border-top:none}.aah-tabs--right.aah-tabs--card .aah-tabs__item.is-right.is-active:last-child{border-bottom:none}.aah-tabs--right.aah-tabs--card .aah-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid var(--aah-border-color-light);border-left:none}.aah-tabs--right.aah-tabs--border-card .aah-tabs__header.is-right{border-left:1px solid var(--aah-border-color)}.aah-tabs--right.aah-tabs--border-card .aah-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.aah-tabs--right.aah-tabs--border-card .aah-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInRight-transition,.slideInLeft-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter var(--aah-transition-duration)}.slideInRight-leave{position:absolute;left:0;right:0;animation:slideInRight-leave var(--aah-transition-duration)}.slideInLeft-enter{animation:slideInLeft-enter var(--aah-transition-duration)}.slideInLeft-leave{position:absolute;left:0;right:0;animation:slideInLeft-leave var(--aah-transition-duration)}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}.aah-tag{--aah-tag-font-size: 12px;--aah-tag-border-radius: 4px;--aah-tag-border-radius-rounded: 9999px}.aah-tag{--aah-tag-bg-color: var(--aah-color-primary-light-9);--aah-tag-border-color: var(--aah-color-primary-light-8);--aah-tag-hover-color: var(--aah-color-primary);background-color:var(--aah-tag-bg-color);border-color:var(--aah-tag-border-color);color:var(--aah-tag-text-color);display:inline-flex;justify-content:center;align-items:center;vertical-align:middle;height:24px;padding:0 9px;font-size:var(--aah-tag-font-size);line-height:1;border-width:1px;border-style:solid;border-radius:var(--aah-tag-border-radius);box-sizing:border-box;white-space:nowrap;--aah-icon-size: 14px}.aah-tag.aah-tag--primary{--aah-tag-bg-color: var(--aah-color-primary-light-9);--aah-tag-border-color: var(--aah-color-primary-light-8);--aah-tag-hover-color: var(--aah-color-primary)}.aah-tag.aah-tag--success{--aah-tag-bg-color: var(--aah-color-success-light-9);--aah-tag-border-color: var(--aah-color-success-light-8);--aah-tag-hover-color: var(--aah-color-success)}.aah-tag.aah-tag--warning{--aah-tag-bg-color: var(--aah-color-warning-light-9);--aah-tag-border-color: var(--aah-color-warning-light-8);--aah-tag-hover-color: var(--aah-color-warning)}.aah-tag.aah-tag--danger{--aah-tag-bg-color: var(--aah-color-danger-light-9);--aah-tag-border-color: var(--aah-color-danger-light-8);--aah-tag-hover-color: var(--aah-color-danger)}.aah-tag.aah-tag--error{--aah-tag-bg-color: var(--aah-color-error-light-9);--aah-tag-border-color: var(--aah-color-error-light-8);--aah-tag-hover-color: var(--aah-color-error)}.aah-tag.aah-tag--info{--aah-tag-bg-color: var(--aah-color-info-light-9);--aah-tag-border-color: var(--aah-color-info-light-8);--aah-tag-hover-color: var(--aah-color-info)}.aah-tag.aah-tag--primary{--aah-tag-text-color: var(--aah-color-primary)}.aah-tag.aah-tag--success{--aah-tag-text-color: var(--aah-color-success)}.aah-tag.aah-tag--warning{--aah-tag-text-color: var(--aah-color-warning)}.aah-tag.aah-tag--danger{--aah-tag-text-color: var(--aah-color-danger)}.aah-tag.aah-tag--error{--aah-tag-text-color: var(--aah-color-error)}.aah-tag.aah-tag--info{--aah-tag-text-color: var(--aah-color-info)}.aah-tag.is-hit{border-color:var(--aah-color-primary)}.aah-tag.is-round{border-radius:var(--aah-tag-border-radius-rounded)}.aah-tag .aah-tag__close{flex-shrink:0;color:var(--aah-tag-text-color)}.aah-tag .aah-tag__close:hover{color:var(--aah-color-white);background-color:var(--aah-tag-hover-color)}.aah-tag .aah-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--aah-icon-size) - 2px);height:var(--aah-icon-size);width:var(--aah-icon-size)}.aah-tag .aah-tag__close{margin-left:6px}.aah-tag--dark{--aah-tag-bg-color: var(--aah-color-primary);--aah-tag-border-color: var(--aah-color-primary);--aah-tag-hover-color: var(--aah-color-primary-light-3);--aah-tag-text-color: var(--aah-color-white)}.aah-tag--dark.aah-tag--primary{--aah-tag-bg-color: var(--aah-color-primary);--aah-tag-border-color: var(--aah-color-primary);--aah-tag-hover-color: var(--aah-color-primary-light-3)}.aah-tag--dark.aah-tag--success{--aah-tag-bg-color: var(--aah-color-success);--aah-tag-border-color: var(--aah-color-success);--aah-tag-hover-color: var(--aah-color-success-light-3)}.aah-tag--dark.aah-tag--warning{--aah-tag-bg-color: var(--aah-color-warning);--aah-tag-border-color: var(--aah-color-warning);--aah-tag-hover-color: var(--aah-color-warning-light-3)}.aah-tag--dark.aah-tag--danger{--aah-tag-bg-color: var(--aah-color-danger);--aah-tag-border-color: var(--aah-color-danger);--aah-tag-hover-color: var(--aah-color-danger-light-3)}.aah-tag--dark.aah-tag--error{--aah-tag-bg-color: var(--aah-color-error);--aah-tag-border-color: var(--aah-color-error);--aah-tag-hover-color: var(--aah-color-error-light-3)}.aah-tag--dark.aah-tag--info{--aah-tag-bg-color: var(--aah-color-info);--aah-tag-border-color: var(--aah-color-info);--aah-tag-hover-color: var(--aah-color-info-light-3)}.aah-tag--dark.aah-tag--primary,.aah-tag--dark.aah-tag--success,.aah-tag--dark.aah-tag--warning,.aah-tag--dark.aah-tag--danger,.aah-tag--dark.aah-tag--error,.aah-tag--dark.aah-tag--info{--aah-tag-text-color: var(--aah-color-white)}.aah-tag--plain{--aah-tag-border-color: var(--aah-color-primary-light-5);--aah-tag-hover-color: var(--aah-color-primary);--aah-tag-bg-color: var(--aah-fill-color-blank)}.aah-tag--plain.aah-tag--primary{--aah-tag-bg-color: var(--aah-fill-color-blank);--aah-tag-border-color: var(--aah-color-primary-light-5);--aah-tag-hover-color: var(--aah-color-primary)}.aah-tag--plain.aah-tag--success{--aah-tag-bg-color: var(--aah-fill-color-blank);--aah-tag-border-color: var(--aah-color-success-light-5);--aah-tag-hover-color: var(--aah-color-success)}.aah-tag--plain.aah-tag--warning{--aah-tag-bg-color: var(--aah-fill-color-blank);--aah-tag-border-color: var(--aah-color-warning-light-5);--aah-tag-hover-color: var(--aah-color-warning)}.aah-tag--plain.aah-tag--danger{--aah-tag-bg-color: var(--aah-fill-color-blank);--aah-tag-border-color: var(--aah-color-danger-light-5);--aah-tag-hover-color: var(--aah-color-danger)}.aah-tag--plain.aah-tag--error{--aah-tag-bg-color: var(--aah-fill-color-blank);--aah-tag-border-color: var(--aah-color-error-light-5);--aah-tag-hover-color: var(--aah-color-error)}.aah-tag--plain.aah-tag--info{--aah-tag-bg-color: var(--aah-fill-color-blank);--aah-tag-border-color: var(--aah-color-info-light-5);--aah-tag-hover-color: var(--aah-color-info)}.aah-tag.is-closable{padding-right:5px}.aah-tag--large{padding:0 11px;height:32px;--aah-icon-size: 16px}.aah-tag--large .aah-tag__close{margin-left:8px}.aah-tag--large.is-closable{padding-right:7px}.aah-tag--small{padding:0 7px;height:20px;--aah-icon-size: 12px}.aah-tag--small .aah-tag__close{margin-left:4px}.aah-tag--small.is-closable{padding-right:3px}.aah-tag--small .aah-icon-close{transform:scale(.8)}.aah-tag.aah-tag--primary.is-hit{border-color:var(--aah-color-primary)}.aah-tag.aah-tag--success.is-hit{border-color:var(--aah-color-success)}.aah-tag.aah-tag--warning.is-hit{border-color:var(--aah-color-warning)}.aah-tag.aah-tag--danger.is-hit{border-color:var(--aah-color-danger)}.aah-tag.aah-tag--error.is-hit{border-color:var(--aah-color-error)}.aah-tag.aah-tag--info.is-hit{border-color:var(--aah-color-info)}.aah-text{--aah-text-font-size: var(--aah-font-size-base);--aah-text-color: var(--aah-text-color-regular)}.aah-text{align-self:center;margin:0;padding:0;font-size:var(--aah-text-font-size);color:var(--aah-text-color);overflow-wrap:break-word}.aah-text.is-truncated{display:inline-block;max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.aah-text.is-line-clamp{display:-webkit-inline-box;-webkit-box-orient:vertical;overflow:hidden}.aah-text--large{--aah-text-font-size: var(--aah-font-size-medium)}.aah-text--default{--aah-text-font-size: var(--aah-font-size-base)}.aah-text--small{--aah-text-font-size: var(--aah-font-size-extra-small)}.aah-text.aah-text--primary{--aah-text-color: var(--aah-color-primary)}.aah-text.aah-text--success{--aah-text-color: var(--aah-color-success)}.aah-text.aah-text--warning{--aah-text-color: var(--aah-color-warning)}.aah-text.aah-text--danger{--aah-text-color: var(--aah-color-danger)}.aah-text.aah-text--error{--aah-text-color: var(--aah-color-error)}.aah-text.aah-text--info{--aah-text-color: var(--aah-color-info)}.aah-text>.aah-icon{vertical-align:-2px}.time-select{margin:5px 0;min-width:0}.time-select .aah-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.disabled{color:var(--aah-datepicker-border-color);cursor:not-allowed}.time-select-item:hover{background-color:var(--aah-fill-color-light);font-weight:700;cursor:pointer}.time-select .time-select-item.selected:not(.disabled){color:var(--aah-color-primary);font-weight:700}.aah-timeline-item{position:relative;padding-bottom:20px}.aah-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.aah-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid var(--aah-timeline-node-color)}.aah-timeline-item .aah-timeline-item__icon{color:var(--aah-color-white);font-size:var(--aah-font-size-small)}.aah-timeline-item__node{position:absolute;background-color:var(--aah-timeline-node-color);border-color:var(--aah-timeline-node-color);border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.aah-timeline-item__node--normal{left:-1px;width:var(--aah-timeline-node-size-normal);height:var(--aah-timeline-node-size-normal)}.aah-timeline-item__node--large{left:-2px;width:var(--aah-timeline-node-size-large);height:var(--aah-timeline-node-size-large)}.aah-timeline-item__node.is-hollow{background:var(--aah-color-white);border-style:solid;border-width:2px}.aah-timeline-item__node--primary{background-color:var(--aah-color-primary);border-color:var(--aah-color-primary)}.aah-timeline-item__node--success{background-color:var(--aah-color-success);border-color:var(--aah-color-success)}.aah-timeline-item__node--warning{background-color:var(--aah-color-warning);border-color:var(--aah-color-warning)}.aah-timeline-item__node--danger{background-color:var(--aah-color-danger);border-color:var(--aah-color-danger)}.aah-timeline-item__node--info{background-color:var(--aah-color-info);border-color:var(--aah-color-info)}.aah-timeline-item__dot{position:absolute;display:flex;justify-content:center;align-items:center}.aah-timeline-item__content{color:var(--aah-text-color-primary)}.aah-timeline-item__timestamp{color:var(--aah-text-color-secondary);line-height:1;font-size:var(--aah-font-size-small)}.aah-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.aah-timeline-item__timestamp.is-bottom{margin-top:8px}.aah-timeline{--aah-timeline-node-size-normal: 12px;--aah-timeline-node-size-large: 14px;--aah-timeline-node-color: var(--aah-border-color-light)}.aah-timeline{margin:0;font-size:var(--aah-font-size-base);list-style:none}.aah-timeline .aah-timeline-item:last-child .aah-timeline-item__tail{display:none}.aah-timeline .aah-timeline-item__center{display:flex;align-items:center}.aah-timeline .aah-timeline-item__center .aah-timeline-item__wrapper{width:100%}.aah-timeline .aah-timeline-item__center .aah-timeline-item__tail{top:0}.aah-timeline .aah-timeline-item__center:first-child .aah-timeline-item__tail{height:calc(50% + 10px);top:calc(50% - 10px)}.aah-timeline .aah-timeline-item__center:last-child .aah-timeline-item__tail{display:block;height:calc(50% - 10px)}.aah-tooltip-v2__content{--aah-tooltip-v2-padding: 5px 10px;--aah-tooltip-v2-border-radius: 4px;--aah-tooltip-v2-border-color: var(--aah-border-color);border-radius:var(--aah-tooltip-v2-border-radius);color:var(--aah-color-black);background-color:var(--aah-color-white);padding:var(--aah-tooltip-v2-padding);border:1px solid var(--aah-border-color)}.aah-tooltip-v2__arrow{position:absolute;color:var(--aah-color-white);width:var(--aah-tooltip-v2-arrow-width);height:var(--aah-tooltip-v2-arrow-height);pointer-events:none;left:var(--aah-tooltip-v2-arrow-x);top:var(--aah-tooltip-v2-arrow-y)}.aah-tooltip-v2__arrow:before{content:"";width:0;height:0;border:var(--aah-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.aah-tooltip-v2__arrow:after{content:"";width:0;height:0;border:var(--aah-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.aah-tooltip-v2__content[data-side^=top] .aah-tooltip-v2__arrow{bottom:0}.aah-tooltip-v2__content[data-side^=top] .aah-tooltip-v2__arrow:before{border-top-color:var(--aah-color-white);border-top-width:var(--aah-tooltip-v2-arrow-border-width);border-bottom:0;top:calc(100% - 1px)}.aah-tooltip-v2__content[data-side^=top] .aah-tooltip-v2__arrow:after{border-top-color:var(--aah-border-color);border-top-width:var(--aah-tooltip-v2-arrow-border-width);border-bottom:0;top:100%;z-index:-1}.aah-tooltip-v2__content[data-side^=bottom] .aah-tooltip-v2__arrow{top:0}.aah-tooltip-v2__content[data-side^=bottom] .aah-tooltip-v2__arrow:before{border-bottom-color:var(--aah-color-white);border-bottom-width:var(--aah-tooltip-v2-arrow-border-width);border-top:0;bottom:calc(100% - 1px)}.aah-tooltip-v2__content[data-side^=bottom] .aah-tooltip-v2__arrow:after{border-bottom-color:var(--aah-border-color);border-bottom-width:var(--aah-tooltip-v2-arrow-border-width);border-top:0;bottom:100%;z-index:-1}.aah-tooltip-v2__content[data-side^=left] .aah-tooltip-v2__arrow{right:0}.aah-tooltip-v2__content[data-side^=left] .aah-tooltip-v2__arrow:before{border-left-color:var(--aah-color-white);border-left-width:var(--aah-tooltip-v2-arrow-border-width);border-right:0;left:calc(100% - 1px)}.aah-tooltip-v2__content[data-side^=left] .aah-tooltip-v2__arrow:after{border-left-color:var(--aah-border-color);border-left-width:var(--aah-tooltip-v2-arrow-border-width);border-right:0;left:100%;z-index:-1}.aah-tooltip-v2__content[data-side^=right] .aah-tooltip-v2__arrow{left:0}.aah-tooltip-v2__content[data-side^=right] .aah-tooltip-v2__arrow:before{border-right-color:var(--aah-color-white);border-right-width:var(--aah-tooltip-v2-arrow-border-width);border-left:0;right:calc(100% - 1px)}.aah-tooltip-v2__content[data-side^=right] .aah-tooltip-v2__arrow:after{border-right-color:var(--aah-border-color);border-right-width:var(--aah-tooltip-v2-arrow-border-width);border-left:0;right:100%;z-index:-1}.aah-tooltip-v2__content.is-dark{--aah-tooltip-v2-border-color: transparent;background-color:var(--aah-color-black);color:var(--aah-color-white);border-color:transparent}.aah-tooltip-v2__content.is-dark .aah-tooltip-v2__arrow{background-color:var(--aah-color-black);border-color:transparent}.aah-transfer{--aah-transfer-border-color: var(--aah-border-color-lighter);--aah-transfer-border-radius: var(--aah-border-radius-base);--aah-transfer-panel-width: 200px;--aah-transfer-panel-header-height: 40px;--aah-transfer-panel-header-bg-color: var(--aah-fill-color-light);--aah-transfer-panel-footer-height: 40px;--aah-transfer-panel-body-height: 278px;--aah-transfer-item-height: 30px;--aah-transfer-filter-height: 32px}.aah-transfer{font-size:var(--aah-font-size-base)}.aah-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.aah-transfer__button{vertical-align:top}.aah-transfer__button:nth-child(2){margin:0 0 0 10px}.aah-transfer__button i,.aah-transfer__button span{font-size:14px}.aah-transfer__button .aah-icon+span{margin-left:0}.aah-transfer-panel{overflow:hidden;background:var(--aah-bg-color-overlay);display:inline-block;text-align:left;vertical-align:middle;width:var(--aah-transfer-panel-width);max-height:100%;box-sizing:border-box;position:relative}.aah-transfer-panel__body{height:var(--aah-transfer-panel-body-height);border-left:1px solid var(--aah-transfer-border-color);border-right:1px solid var(--aah-transfer-border-color);border-bottom:1px solid var(--aah-transfer-border-color);border-bottom-left-radius:var(--aah-transfer-border-radius);border-bottom-right-radius:var(--aah-transfer-border-radius);overflow:hidden}.aah-transfer-panel__body.is-with-footer{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.aah-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:var(--aah-transfer-panel-body-height);overflow:auto;box-sizing:border-box}.aah-transfer-panel__list.is-filterable{height:calc(100% - var(--aah-transfer-filter-height) - 30px);padding-top:0}.aah-transfer-panel__item{height:var(--aah-transfer-item-height);line-height:var(--aah-transfer-item-height);padding-left:15px;display:block!important}.aah-transfer-panel__item+.aah-transfer-panel__item{margin-left:0}.aah-transfer-panel__item.aah-checkbox{color:var(--aah-text-color-regular)}.aah-transfer-panel__item:hover{color:var(--aah-color-primary)}.aah-transfer-panel__item.aah-checkbox .aah-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:22px;line-height:var(--aah-transfer-item-height)}.aah-transfer-panel__item .aah-checkbox__input{position:absolute;top:8px}.aah-transfer-panel__filter{text-align:center;padding:15px;box-sizing:border-box}.aah-transfer-panel__filter .aah-input__inner{height:var(--aah-transfer-filter-height);width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:calc(var(--aah-transfer-filter-height) / 2)}.aah-transfer-panel__filter .aah-icon-circle-close{cursor:pointer}.aah-transfer-panel .aah-transfer-panel__header{display:flex;align-items:center;height:var(--aah-transfer-panel-header-height);background:var(--aah-transfer-panel-header-bg-color);margin:0;padding-left:15px;border:1px solid var(--aah-transfer-border-color);border-top-left-radius:var(--aah-transfer-border-radius);border-top-right-radius:var(--aah-transfer-border-radius);box-sizing:border-box;color:var(--aah-color-black)}.aah-transfer-panel .aah-transfer-panel__header .aah-checkbox{position:relative;display:flex;width:100%;align-items:center}.aah-transfer-panel .aah-transfer-panel__header .aah-checkbox .aah-checkbox__label{font-size:16px;color:var(--aah-text-color-primary);font-weight:400}.aah-transfer-panel .aah-transfer-panel__header .aah-checkbox .aah-checkbox__label span{position:absolute;right:15px;top:50%;transform:translate3d(0,-50%,0);color:var(--aah-text-color-secondary);font-size:12px;font-weight:400}.aah-transfer-panel .aah-transfer-panel__footer{height:var(--aah-transfer-panel-footer-height);background:var(--aah-bg-color-overlay);margin:0;padding:0;border:1px solid var(--aah-transfer-border-color);border-bottom-left-radius:var(--aah-transfer-border-radius);border-bottom-right-radius:var(--aah-transfer-border-radius)}.aah-transfer-panel .aah-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.aah-transfer-panel .aah-transfer-panel__footer .aah-checkbox{padding-left:20px;color:var(--aah-text-color-regular)}.aah-transfer-panel .aah-transfer-panel__empty{margin:0;height:var(--aah-transfer-item-height);line-height:var(--aah-transfer-item-height);padding:6px 15px 0;color:var(--aah-text-color-secondary);text-align:center}.aah-transfer-panel .aah-checkbox__label{padding-left:8px}.aah-transfer-panel .aah-checkbox__inner{height:14px;width:14px;border-radius:3px}.aah-transfer-panel .aah-checkbox__inner:after{height:6px;width:3px;left:4px}.aah-tree{--aah-tree-node-content-height: 26px;--aah-tree-node-hover-bg-color: var(--aah-fill-color-light);--aah-tree-text-color: var(--aah-text-color-regular);--aah-tree-expand-icon-color: var(--aah-text-color-placeholder)}.aah-tree{position:relative;cursor:default;background:var(--aah-fill-color-blank);color:var(--aah-tree-text-color);font-size:var(--aah-font-size-base)}.aah-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.aah-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--aah-text-color-secondary);font-size:var(--aah-font-size-base)}.aah-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:var(--aah-color-primary)}.aah-tree-node{white-space:nowrap;outline:none}.aah-tree-node:focus>.aah-tree-node__content{background-color:var(--aah-tree-node-hover-bg-color)}.aah-tree-node.is-drop-inner>.aah-tree-node__content .aah-tree-node__label{background-color:var(--aah-color-primary);color:#fff}.aah-tree-node__content{--aah-checkbox-height: var(--aah-tree-node-content-height);display:flex;align-items:center;height:var(--aah-tree-node-content-height);cursor:pointer}.aah-tree-node__content>.aah-tree-node__expand-icon{padding:6px;box-sizing:content-box}.aah-tree-node__content>label.aah-checkbox{margin-right:8px}.aah-tree-node__content:hover{background-color:var(--aah-tree-node-hover-bg-color)}.aah-tree.is-dragging .aah-tree-node__content{cursor:move}.aah-tree.is-dragging .aah-tree-node__content *{pointer-events:none}.aah-tree.is-dragging.is-drop-not-allow .aah-tree-node__content{cursor:not-allowed}.aah-tree-node__expand-icon{cursor:pointer;color:var(--aah-tree-expand-icon-color);font-size:12px;transform:rotate(0);transition:transform var(--aah-transition-duration) ease-in-out}.aah-tree-node__expand-icon.expanded{transform:rotate(90deg)}.aah-tree-node__expand-icon.is-leaf{color:transparent;cursor:default;visibility:hidden}.aah-tree-node__expand-icon.is-hidden{visibility:hidden}.aah-tree-node__loading-icon{margin-right:8px;font-size:var(--aah-font-size-base);color:var(--aah-tree-expand-icon-color)}.aah-tree-node>.aah-tree-node__children{overflow:hidden;background-color:transparent}.aah-tree-node.is-expanded>.aah-tree-node__children{display:block}.aah-tree--highlight-current .aah-tree-node.is-current>.aah-tree-node__content{background-color:var(--aah-color-primary-light-9)}.aah-tree-select{--aah-tree-node-content-height: 26px;--aah-tree-node-hover-bg-color: var(--aah-fill-color-light);--aah-tree-text-color: var(--aah-text-color-regular);--aah-tree-expand-icon-color: var(--aah-text-color-placeholder)}.aah-tree-select__popper .aah-tree-node__expand-icon{margin-left:8px}.aah-tree-select__popper .aah-tree-node.is-checked>.aah-tree-node__content .aah-select-dropdown__item.selected:after{content:none}.aah-tree-select__popper .aah-select-dropdown__item{flex:1;background:transparent!important;padding-left:0;height:20px;line-height:20px}.aah-upload{--aah-upload-dragger-padding-horizontal: 40px;--aah-upload-dragger-padding-vertical: 10px}.aah-upload{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;outline:none}.aah-upload__input{display:none}.aah-upload__tip{font-size:12px;color:var(--aah-text-color-regular);margin-top:7px}.aah-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0;filter:alpha(opacity=0)}.aah-upload--picture-card{--aah-upload-picture-card-size: 148px;background-color:var(--aah-fill-color-lighter);border:1px dashed var(--aah-border-color-darker);border-radius:6px;box-sizing:border-box;width:var(--aah-upload-picture-card-size);height:var(--aah-upload-picture-card-size);cursor:pointer;vertical-align:top;display:inline-flex;justify-content:center;align-items:center}.aah-upload--picture-card>i{font-size:28px;color:var(--aah-text-color-secondary)}.aah-upload--picture-card:hover{border-color:var(--aah-color-primary);color:var(--aah-color-primary)}.aah-upload.is-drag{display:block}.aah-upload:focus{border-color:var(--aah-color-primary);color:var(--aah-color-primary)}.aah-upload:focus .aah-upload-dragger{border-color:var(--aah-color-primary)}.aah-upload-dragger{padding:var(--aah-upload-dragger-padding-horizontal) var(--aah-upload-dragger-padding-vertical);background-color:var(--aah-fill-color-blank);border:1px dashed var(--aah-border-color);border-radius:6px;box-sizing:border-box;text-align:center;cursor:pointer;position:relative;overflow:hidden}.aah-upload-dragger .aah-icon--upload{font-size:67px;color:var(--aah-text-color-placeholder);margin-bottom:16px;line-height:50px}.aah-upload-dragger+.aah-upload__tip{text-align:center}.aah-upload-dragger~.aah-upload__files{border-top:var(--aah-border);margin-top:7px;padding-top:5px}.aah-upload-dragger .aah-upload__text{color:var(--aah-text-color-regular);font-size:14px;text-align:center}.aah-upload-dragger .aah-upload__text em{color:var(--aah-color-primary);font-style:normal}.aah-upload-dragger:hover{border-color:var(--aah-color-primary)}.aah-upload-dragger.is-dragover{padding:calc(var(--aah-upload-dragger-padding-horizontal) - 1px) calc(var(--aah-upload-dragger-padding-vertical) - 1px);background-color:var(--aah-color-primary-light-9);border:2px dashed var(--aah-color-primary)}.aah-upload-list{margin:10px 0 0;padding:0;list-style:none;position:relative}.aah-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:var(--aah-text-color-regular);margin-bottom:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.aah-upload-list__item .aah-progress{position:absolute;top:20px;width:100%}.aah-upload-list__item .aah-progress__text{position:absolute;right:0;top:-13px}.aah-upload-list__item .aah-progress-bar{margin-right:0;padding-right:0}.aah-upload-list__item .aah-icon--upload-success{color:var(--aah-color-success)}.aah-upload-list__item .aah-icon--close{display:none;position:absolute;right:5px;top:50%;cursor:pointer;opacity:.75;color:var(--aah-text-color-regular);transition:opacity var(--aah-transition-duration);transform:translateY(-50%)}.aah-upload-list__item .aah-icon--close:hover{opacity:1;color:var(--aah-color-primary)}.aah-upload-list__item .aah-icon--close-tip{display:none;position:absolute;top:1px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:var(--aah-color-primary);font-style:normal}.aah-upload-list__item:hover{background-color:var(--aah-fill-color-light)}.aah-upload-list__item:hover .aah-icon--close{display:inline-flex}.aah-upload-list__item:hover .aah-progress__text{display:none}.aah-upload-list__item .aah-upload-list__item-info{display:inline-flex;justify-content:center;flex-direction:column;width:calc(100% - 30px);margin-left:4px}.aah-upload-list__item.is-success .aah-upload-list__item-status-label{display:inline-flex}.aah-upload-list__item.is-success .aah-upload-list__item-name:hover,.aah-upload-list__item.is-success .aah-upload-list__item-name:focus{color:var(--aah-color-primary);cursor:pointer}.aah-upload-list__item.is-success:focus:not(:hover) .aah-icon--close-tip{display:inline-block}.aah-upload-list__item.is-success:not(.focusing):focus,.aah-upload-list__item.is-success:active{outline-width:0}.aah-upload-list__item.is-success:not(.focusing):focus .aah-icon--close-tip,.aah-upload-list__item.is-success:active .aah-icon--close-tip{display:none}.aah-upload-list__item.is-success:hover .aah-upload-list__item-status-label,.aah-upload-list__item.is-success:focus .aah-upload-list__item-status-label{display:none;opacity:0}.aah-upload-list__item-name{color:var(--aah-text-color-regular);display:inline-flex;text-align:center;align-items:center;padding:0 4px;transition:color var(--aah-transition-duration);font-size:var(--aah-font-size-base)}.aah-upload-list__item-name .aah-icon{margin-right:6px;color:var(--aah-text-color-secondary)}.aah-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aah-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none;height:100%;justify-content:center;align-items:center;transition:opacity var(--aah-transition-duration)}.aah-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:var(--aah-text-color-regular);display:none}.aah-upload-list__item-delete:hover{color:var(--aah-color-primary)}.aah-upload-list--picture-card{--aah-upload-list-picture-card-size: 148px;display:inline-flex;flex-wrap:wrap;margin:0}.aah-upload-list--picture-card .aah-upload-list__item{overflow:hidden;background-color:var(--aah-fill-color-blank);border:1px solid var(--aah-border-color);border-radius:6px;box-sizing:border-box;width:var(--aah-upload-list-picture-card-size);height:var(--aah-upload-list-picture-card-size);margin:0 8px 8px 0;padding:0;display:inline-flex}.aah-upload-list--picture-card .aah-upload-list__item .aah-icon--check,.aah-upload-list--picture-card .aah-upload-list__item .aah-icon--circle-check{color:#fff}.aah-upload-list--picture-card .aah-upload-list__item .aah-icon--close{display:none}.aah-upload-list--picture-card .aah-upload-list__item:hover .aah-upload-list__item-status-label{opacity:0;display:block}.aah-upload-list--picture-card .aah-upload-list__item:hover .aah-progress__text{display:block}.aah-upload-list--picture-card .aah-upload-list__item .aah-upload-list__item-name{display:none}.aah-upload-list--picture-card .aah-upload-list__item-thumbnail{width:100%;height:100%;object-fit:contain}.aah-upload-list--picture-card .aah-upload-list__item-status-label{right:-15px;top:-6px;width:40px;height:24px;background:var(--aah-color-success);text-align:center;transform:rotate(45deg)}.aah-upload-list--picture-card .aah-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.aah-upload-list--picture-card .aah-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:#fff;opacity:0;font-size:20px;background-color:var(--aah-overlay-color-lighter);transition:opacity var(--aah-transition-duration)}.aah-upload-list--picture-card .aah-upload-list__item-actions span{display:none;cursor:pointer}.aah-upload-list--picture-card .aah-upload-list__item-actions span+span{margin-left:1rem}.aah-upload-list--picture-card .aah-upload-list__item-actions .aah-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.aah-upload-list--picture-card .aah-upload-list__item-actions:hover{opacity:1}.aah-upload-list--picture-card .aah-upload-list__item-actions:hover span{display:inline-flex}.aah-upload-list--picture-card .aah-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.aah-upload-list--picture-card .aah-progress .aah-progress__text{top:50%}.aah-upload-list--picture .aah-upload-list__item{overflow:hidden;z-index:0;background-color:var(--aah-fill-color-blank);border:1px solid var(--aah-border-color);border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px;display:flex;align-items:center}.aah-upload-list--picture .aah-upload-list__item .aah-icon--check,.aah-upload-list--picture .aah-upload-list__item .aah-icon--circle-check{color:#fff}.aah-upload-list--picture .aah-upload-list__item:hover .aah-upload-list__item-status-label{opacity:0;display:inline-flex}.aah-upload-list--picture .aah-upload-list__item:hover .aah-progress__text{display:block}.aah-upload-list--picture .aah-upload-list__item.is-success .aah-upload-list__item-name i{display:none}.aah-upload-list--picture .aah-upload-list__item .aah-icon--close{top:5px;transform:translateY(0)}.aah-upload-list--picture .aah-upload-list__item-thumbnail{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;object-fit:contain;position:relative;z-index:1;background-color:var(--aah-color-white)}.aah-upload-list--picture .aah-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:var(--aah-color-success);text-align:center;transform:rotate(45deg)}.aah-upload-list--picture .aah-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.aah-upload-list--picture .aah-progress{position:relative;top:-7px}.aah-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.aah-upload-cover:after{display:inline-block;content:"";height:100%;vertical-align:middle}.aah-upload-cover img{display:block;width:100%;height:100%}.aah-upload-cover__label{right:-15px;top:-6px;width:40px;height:24px;background:var(--aah-color-success);text-align:center;transform:rotate(45deg)}.aah-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.aah-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.aah-upload-cover__progress+.aah-upload__inner{opacity:0}.aah-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.aah-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:var(--aah-overlay-color-light);text-align:center}.aah-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:var(--aah-transition-md-fade);margin-top:60px}.aah-upload-cover__interact .btn i{margin-top:0}.aah-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.aah-upload-cover__interact .btn:not(:first-child){margin-left:35px}.aah-upload-cover__interact .btn:hover{transform:translateY(-13px)}.aah-upload-cover__interact .btn:hover span{opacity:1}.aah-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.aah-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:var(--aah-text-color-primary)}.aah-upload-cover+.aah-upload__inner{opacity:0;position:relative;z-index:1}.aah-vl__wrapper{position:relative}.aah-vl__wrapper:hover .aah-virtual-scrollbar,.aah-vl__wrapper.always-on .aah-virtual-scrollbar{opacity:1}.aah-vl__window{scrollbar-width:none}.aah-vl__window::-webkit-scrollbar{display:none}.aah-virtual-scrollbar{opacity:0;transition:opacity .34s ease-out}.aah-virtual-scrollbar.always-on{opacity:1}.aah-vg__wrapper{position:relative}.aah-popper{--aah-popper-border-radius: var(--aah-popover-border-radius, 4px)}.aah-popper{position:absolute;border-radius:var(--aah-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;visibility:visible}.aah-popper.is-dark{color:var(--aah-bg-color);background:var(--aah-text-color-primary);border:1px solid var(--aah-text-color-primary)}.aah-popper.is-dark .aah-popper__arrow:before{border:1px solid var(--aah-text-color-primary);background:var(--aah-text-color-primary);right:0}.aah-popper.is-light{background:var(--aah-bg-color-overlay);border:1px solid var(--aah-border-color-light)}.aah-popper.is-light .aah-popper__arrow:before{border:1px solid var(--aah-border-color-light);background:var(--aah-bg-color-overlay);right:0}.aah-popper.is-pure{padding:0}.aah-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.aah-popper__arrow:before{position:absolute;width:10px;height:10px;z-index:-1;content:" ";transform:rotate(45deg);background:var(--aah-text-color-primary);box-sizing:border-box}.aah-popper[data-popper-placement^=top]>.aah-popper__arrow{bottom:-5px}.aah-popper[data-popper-placement^=top]>.aah-popper__arrow:before{border-bottom-right-radius:2px}.aah-popper[data-popper-placement^=bottom]>.aah-popper__arrow{top:-5px}.aah-popper[data-popper-placement^=bottom]>.aah-popper__arrow:before{border-top-left-radius:2px}.aah-popper[data-popper-placement^=left]>.aah-popper__arrow{right:-5px}.aah-popper[data-popper-placement^=left]>.aah-popper__arrow:before{border-top-right-radius:2px}.aah-popper[data-popper-placement^=right]>.aah-popper__arrow{left:-5px}.aah-popper[data-popper-placement^=right]>.aah-popper__arrow:before{border-bottom-left-radius:2px}.aah-popper[data-popper-placement^=top] .aah-popper__arrow:before{border-top-color:transparent!important;border-left-color:transparent!important}.aah-popper[data-popper-placement^=bottom] .aah-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.aah-popper[data-popper-placement^=left] .aah-popper__arrow:before{border-left-color:transparent!important;border-bottom-color:transparent!important}.aah-popper[data-popper-placement^=right] .aah-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.aah-statistic{--aah-statistic-title-font-weight: 400;--aah-statistic-title-font-size: var(--aah-font-size-extra-small);--aah-statistic-title-color: var(--aah-text-color-regular);--aah-statistic-content-font-weight: 400;--aah-statistic-content-font-size: var(--aah-font-size-extra-large);--aah-statistic-content-color: var(--aah-text-color-primary)}.aah-statistic__head{font-weight:var(--aah-statistic-title-font-weight);font-size:var(--aah-statistic-title-font-size);color:var(--aah-statistic-title-color);line-height:20px;margin-bottom:4px}.aah-statistic__content{font-weight:var(--aah-statistic-content-font-weight);font-size:var(--aah-statistic-content-font-size);color:var(--aah-statistic-content-color)}.aah-statistic__value{display:inline-block}.aah-statistic__prefix{margin-right:4px;display:inline-block}.aah-statistic__suffix{margin-left:4px;display:inline-block}.aah-tour{--aah-tour-width: 520px;--aah-tour-padding-primary: 12px;--aah-tour-font-line-height: var(--aah-font-line-height-primary);--aah-tour-title-font-size: 16px;--aah-tour-title-text-color: var(--aah-text-color-primary);--aah-tour-title-font-weight: 400;--aah-tour-close-color: var(--aah-color-info);--aah-tour-font-size: 14px;--aah-tour-color: var(--aah-text-color-primary);--aah-tour-bg-color: var(--aah-bg-color);--aah-tour-border-radius: 4px}.aah-tour__hollow{transition:all var(--aah-transition-duration) ease}.aah-tour__content{border-radius:var(--aah-tour-border-radius);width:var(--aah-tour-width);padding:var(--aah-tour-padding-primary);background:var(--aah-tour-bg-color);box-shadow:var(--aah-box-shadow-light);box-sizing:border-box;overflow-wrap:break-word}.aah-tour__arrow{position:absolute;background:var(--aah-tour-bg-color);width:10px;height:10px;pointer-events:none;transform:rotate(45deg);box-sizing:border-box}.aah-tour__content[data-side^=top] .aah-tour__arrow{border-top-color:transparent;border-left-color:transparent}.aah-tour__content[data-side^=bottom] .aah-tour__arrow{border-bottom-color:transparent;border-right-color:transparent}.aah-tour__content[data-side^=left] .aah-tour__arrow{border-left-color:transparent;border-bottom-color:transparent}.aah-tour__content[data-side^=right] .aah-tour__arrow{border-right-color:transparent;border-top-color:transparent}.aah-tour__content[data-side^=top] .aah-tour__arrow{bottom:-5px}.aah-tour__content[data-side^=bottom] .aah-tour__arrow{top:-5px}.aah-tour__content[data-side^=left] .aah-tour__arrow{right:-5px}.aah-tour__content[data-side^=right] .aah-tour__arrow{left:-5px}.aah-tour__closebtn{position:absolute;top:0;right:0;padding:0;width:40px;height:40px;background:transparent;border:none;outline:none;cursor:pointer;font-size:var(--aah-message-close-size, 16px)}.aah-tour__closebtn .aah-tour__close{color:var(--aah-tour-close-color);font-size:inherit}.aah-tour__closebtn:focus .aah-tour__close,.aah-tour__closebtn:hover .aah-tour__close{color:var(--aah-color-primary)}.aah-tour__header{padding-bottom:var(--aah-tour-padding-primary)}.aah-tour__header.show-close{padding-right:calc(var(--aah-tour-padding-primary) + var(--aah-message-close-size, 16px))}.aah-tour__title{line-height:var(--aah-tour-font-line-height);font-size:var(--aah-tour-title-font-size);color:var(--aah-tour-title-text-color);font-weight:var(--aah-tour-title-font-weight)}.aah-tour__body{color:var(--aah-tour-text-color);font-size:var(--aah-tour-font-size)}.aah-tour__body img,.aah-tour__body video{max-width:100%}.aah-tour__footer{padding-top:var(--aah-tour-padding-primary);box-sizing:border-box;display:flex;justify-content:space-between}.aah-tour__content .aah-tour-indicators{display:inline-block;flex:1}.aah-tour__content .aah-tour-indicator{width:6px;height:6px;display:inline-block;border-radius:50%;background:var(--aah-color-info-light-9);margin-right:6px}.aah-tour__content .aah-tour-indicator.is-active{background:var(--aah-color-primary)}.aah-tour.aah-tour--primary{--aah-tour-title-text-color: #fff;--aah-tour-text-color: #fff;--aah-tour-bg-color: var(--aah-color-primary);--aah-tour-close-color: #fff}.aah-tour.aah-tour--primary .aah-tour__closebtn:focus .aah-tour__close,.aah-tour.aah-tour--primary .aah-tour__closebtn:hover .aah-tour__close{color:var(--aah-tour-title-text-color)}.aah-tour.aah-tour--primary .aah-button--default{color:var(--aah-color-primary);border-color:var(--aah-color-primary);background:#fff}.aah-tour.aah-tour--primary .aah-button--primary{border-color:#fff}.aah-tour.aah-tour--primary .aah-tour-indicator{background:#ffffff26}.aah-tour.aah-tour--primary .aah-tour-indicator.is-active{background:#fff}.aah-tour-parent--hidden{overflow:hidden}.aah-anchor{--aah-anchor-bg-color: var(--aah-bg-color);--aah-anchor-padding-indent: 14px;--aah-anchor-line-height: 22px;--aah-anchor-font-size: 12px;--aah-anchor-color: var(--aah-text-color-secondary);--aah-anchor-active-color: var(--aah-color-primary);--aah-anchor-marker-bg-color: var(--aah-color-primary);position:relative;background-color:var(--aah-anchor-bg-color)}.aah-anchor__marker{position:absolute;background-color:var(--aah-anchor-marker-bg-color);border-radius:4px;opacity:0;z-index:0}.aah-anchor.aah-anchor--vertical .aah-anchor__marker{width:4px;height:14px;top:8px;left:0;transition:top .25s ease-in-out,opacity .25s}.aah-anchor.aah-anchor--vertical .aah-anchor__list{padding-left:var(--aah-anchor-padding-indent)}.aah-anchor.aah-anchor--vertical.aah-anchor--underline:before{position:absolute;left:0;width:2px;height:100%;background-color:#0505050f;content:""}.aah-anchor.aah-anchor--vertical.aah-anchor--underline .aah-anchor__marker{width:2px;border-radius:unset}.aah-anchor.aah-anchor--horizontal .aah-anchor__marker{height:2px;width:20px;bottom:0;transition:left .25s ease-in-out,opacity .25s,width .25s}.aah-anchor.aah-anchor--horizontal .aah-anchor__list{display:flex;padding-bottom:4px}.aah-anchor.aah-anchor--horizontal .aah-anchor__list .aah-anchor__item{padding-left:16px}.aah-anchor.aah-anchor--horizontal .aah-anchor__list .aah-anchor__item:first-child{padding-left:0}.aah-anchor.aah-anchor--horizontal.aah-anchor--underline:before{position:absolute;bottom:0;width:100%;height:2px;background-color:#0505050f;content:""}.aah-anchor.aah-anchor--horizontal.aah-anchor--underline .aah-anchor__marker{height:2px;border-radius:unset}.aah-anchor__item{overflow:hidden;display:flex;flex-direction:column}.aah-anchor__link{font-size:var(--aah-anchor-font-size);line-height:var(--aah-anchor-line-height);padding:4px 0;color:var(--aah-anchor-color);transition:color var(--aah-transition-duration);white-space:nowrap;text-decoration:none;text-overflow:ellipsis;overflow:hidden;max-width:100%;outline:none;cursor:pointer}.aah-anchor__link:hover,.aah-anchor__link:focus{color:var(--aah-anchor-color)}.aah-anchor__link.is-active{color:var(--aah-anchor-active-color)}.aah-anchor .aah-anchor__list .aah-anchor__item a{display:inline-block}html.dark{color-scheme:dark;--aah-color-primary: #409eff;--aah-color-primary-light-3: #3375b9;--aah-color-primary-light-5: #2a598a;--aah-color-primary-light-7: #213d5b;--aah-color-primary-light-8: #1d3043;--aah-color-primary-light-9: #18222c;--aah-color-primary-dark-2: #66b1ff;--aah-color-success: #67c23a;--aah-color-success-light-3: #4e8e2f;--aah-color-success-light-5: #3e6b27;--aah-color-success-light-7: #2d481f;--aah-color-success-light-8: #25371c;--aah-color-success-light-9: #1c2518;--aah-color-success-dark-2: #85ce61;--aah-color-warning: #e6a23c;--aah-color-warning-light-3: #a77730;--aah-color-warning-light-5: #7d5b28;--aah-color-warning-light-7: #533f20;--aah-color-warning-light-8: #3e301c;--aah-color-warning-light-9: #292218;--aah-color-warning-dark-2: #ebb563;--aah-color-danger: #f56c6c;--aah-color-danger-light-3: #b25252;--aah-color-danger-light-5: #854040;--aah-color-danger-light-7: #582e2e;--aah-color-danger-light-8: #412626;--aah-color-danger-light-9: #2b1d1d;--aah-color-danger-dark-2: #f78989;--aah-color-error: #f56c6c;--aah-color-error-light-3: #b25252;--aah-color-error-light-5: #854040;--aah-color-error-light-7: #582e2e;--aah-color-error-light-8: #412626;--aah-color-error-light-9: #2b1d1d;--aah-color-error-dark-2: #f78989;--aah-color-info: #909399;--aah-color-info-light-3: #6b6d71;--aah-color-info-light-5: #525457;--aah-color-info-light-7: #393a3c;--aah-color-info-light-8: #2d2d2f;--aah-color-info-light-9: #202121;--aah-color-info-dark-2: #a6a9ad;--aah-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, .36), 0px 8px 20px rgba(0, 0, 0, .72);--aah-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, .72);--aah-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, .72);--aah-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, .72), 0px 12px 32px #000000, 0px 8px 16px -8px #000000;--aah-bg-color-page: #0a0a0a;--aah-bg-color: #141414;--aah-bg-color-overlay: #1d1e1f;--aah-text-color-primary: #E5EAF3;--aah-text-color-regular: #CFD3DC;--aah-text-color-secondary: #A3A6AD;--aah-text-color-placeholder: #8D9095;--aah-text-color-disabled: #6C6E72;--aah-border-color-darker: #636466;--aah-border-color-dark: #58585B;--aah-border-color: #4C4D4F;--aah-border-color-light: #414243;--aah-border-color-lighter: #363637;--aah-border-color-extra-light: #2B2B2C;--aah-fill-color-darker: #424243;--aah-fill-color-dark: #39393A;--aah-fill-color: #303030;--aah-fill-color-light: #262727;--aah-fill-color-lighter: #1D1D1D;--aah-fill-color-extra-light: #191919;--aah-fill-color-blank: transparent;--aah-mask-color: rgba(0, 0, 0, .8);--aah-mask-color-extra-light: rgba(0, 0, 0, .3)}html.dark .aah-button{--aah-button-disabled-text-color: rgba(255, 255, 255, .5)}html.dark .aah-card{--aah-card-bg-color: var(--aah-bg-color-overlay)}html.dark .aah-empty{--aah-empty-fill-color-0: var(--aah-color-black);--aah-empty-fill-color-1: #4b4b52;--aah-empty-fill-color-2: #36383d;--aah-empty-fill-color-3: #1e1e20;--aah-empty-fill-color-4: #262629;--aah-empty-fill-color-5: #202124;--aah-empty-fill-color-6: #212224;--aah-empty-fill-color-7: #1b1c1f;--aah-empty-fill-color-8: #1c1d1f;--aah-empty-fill-color-9: #18181a}*,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.visible{visibility:visible}.fixed{position:fixed}.mx-1{margin-left:.25rem;margin-right:.25rem}.ms{margin-inline-start:1rem}.mt-4{margin-top:1rem}.inline-block{display:inline-block}.hidden{display:none}.flex-grow{flex-grow:1}.table{display:table}.border{border-width:1px}[align~=middle]{vertical-align:middle}.outline{outline-style:solid} `); (function (vue, ElementPlus, DOMPurify, $, markdownit, hljs) { 'use strict'; var _GM_deleteValue = /* @__PURE__ */ (() => typeof GM_deleteValue != "undefined" ? GM_deleteValue : void 0)(); var _GM_getResourceText = /* @__PURE__ */ (() => typeof GM_getResourceText != "undefined" ? GM_getResourceText : void 0)(); var _GM_getValue = /* @__PURE__ */ (() => typeof GM_getValue != "undefined" ? GM_getValue : void 0)(); var _GM_info = /* @__PURE__ */ (() => typeof GM_info != "undefined" ? GM_info : void 0)(); var _GM_listValues = /* @__PURE__ */ (() => typeof GM_listValues != "undefined" ? GM_listValues : void 0)(); var _GM_setValue = /* @__PURE__ */ (() => typeof GM_setValue != "undefined" ? GM_setValue : void 0)(); var _GM_xmlhttpRequest = /* @__PURE__ */ (() => typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : void 0)(); var _unsafeWindow = /* @__PURE__ */ (() => typeof unsafeWindow != "undefined" ? unsafeWindow : void 0)(); var isVue2 = false; /*! * pinia v2.1.7 * (c) 2023 Eduardo San Martin Morote * @license MIT */ let activePinia; const setActivePinia = (pinia) => activePinia = pinia; const piniaSymbol = ( /* istanbul ignore next */ Symbol() ); function isPlainObject(o) { return o && typeof o === "object" && Object.prototype.toString.call(o) === "[object Object]" && typeof o.toJSON !== "function"; } var MutationType; (function(MutationType2) { MutationType2["direct"] = "direct"; MutationType2["patchObject"] = "patch object"; MutationType2["patchFunction"] = "patch function"; })(MutationType || (MutationType = {})); function createPinia() { const scope = vue.effectScope(true); const state = scope.run(() => vue.ref({})); let _p = []; let toBeInstalled = []; const pinia = vue.markRaw({ install(app) { setActivePinia(pinia); { pinia._a = app; app.provide(piniaSymbol, pinia); app.config.globalProperties.$pinia = pinia; toBeInstalled.forEach((plugin) => _p.push(plugin)); toBeInstalled = []; } }, use(plugin) { if (!this._a && !isVue2) { toBeInstalled.push(plugin); } else { _p.push(plugin); } return this; }, _p, // it's actually undefined here // @ts-expect-error _a: null, _e: scope, _s: /* @__PURE__ */ new Map(), state }); return pinia; } const noop = () => { }; function addSubscription(subscriptions, callback, detached, onCleanup = noop) { subscriptions.push(callback); const removeSubscription = () => { const idx = subscriptions.indexOf(callback); if (idx > -1) { subscriptions.splice(idx, 1); onCleanup(); } }; if (!detached && vue.getCurrentScope()) { vue.onScopeDispose(removeSubscription); } return removeSubscription; } function triggerSubscriptions(subscriptions, ...args) { subscriptions.slice().forEach((callback) => { callback(...args); }); } const fallbackRunWithContext = (fn) => fn(); function mergeReactiveObjects(target, patchToApply) { if (target instanceof Map && patchToApply instanceof Map) { patchToApply.forEach((value, key2) => target.set(key2, value)); } if (target instanceof Set && patchToApply instanceof Set) { patchToApply.forEach(target.add, target); } for (const key2 in patchToApply) { if (!patchToApply.hasOwnProperty(key2)) continue; const subPatch = patchToApply[key2]; const targetValue = target[key2]; if (isPlainObject(targetValue) && isPlainObject(subPatch) && target.hasOwnProperty(key2) && !vue.isRef(subPatch) && !vue.isReactive(subPatch)) { target[key2] = mergeReactiveObjects(targetValue, subPatch); } else { target[key2] = subPatch; } } return target; } const skipHydrateSymbol = ( /* istanbul ignore next */ Symbol() ); function shouldHydrate(obj) { return !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol); } const { assign } = Object; function isComputed(o) { return !!(vue.isRef(o) && o.effect); } function createOptionsStore(id, options, pinia, hot) { const { state, actions, getters } = options; const initialState = pinia.state.value[id]; let store; function setup() { if (!initialState && true) { { pinia.state.value[id] = state ? state() : {}; } } const localState = vue.toRefs(pinia.state.value[id]); return assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => { computedGetters[name] = vue.markRaw(vue.computed(() => { setActivePinia(pinia); const store2 = pinia._s.get(id); return getters[name].call(store2, store2); })); return computedGetters; }, {})); } store = createSetupStore(id, setup, options, pinia, hot, true); return store; } function createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) { let scope; const optionsForPlugin = assign({ actions: {} }, options); const $subscribeOptions = { deep: true // flush: 'post', }; let isListening; let isSyncListening; let subscriptions = []; let actionSubscriptions = []; let debuggerEvents; const initialState = pinia.state.value[$id]; if (!isOptionsStore && !initialState && true) { { pinia.state.value[$id] = {}; } } vue.ref({}); let activeListener; function $patch(partialStateOrMutator) { let subscriptionMutation; isListening = isSyncListening = false; if (typeof partialStateOrMutator === "function") { partialStateOrMutator(pinia.state.value[$id]); subscriptionMutation = { type: MutationType.patchFunction, storeId: $id, events: debuggerEvents }; } else { mergeReactiveObjects(pinia.state.value[$id], partialStateOrMutator); subscriptionMutation = { type: MutationType.patchObject, payload: partialStateOrMutator, storeId: $id, events: debuggerEvents }; } const myListenerId = activeListener = Symbol(); vue.nextTick().then(() => { if (activeListener === myListenerId) { isListening = true; } }); isSyncListening = true; triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]); } const $reset = isOptionsStore ? function $reset2() { const { state } = options; const newState = state ? state() : {}; this.$patch(($state) => { assign($state, newState); }); } : ( /* istanbul ignore next */ noop ); function $dispose() { scope.stop(); subscriptions = []; actionSubscriptions = []; pinia._s.delete($id); } function wrapAction(name, action) { return function() { setActivePinia(pinia); const args = Array.from(arguments); const afterCallbackList = []; const onErrorCallbackList = []; function after(callback) { afterCallbackList.push(callback); } function onError(callback) { onErrorCallbackList.push(callback); } triggerSubscriptions(actionSubscriptions, { args, name, store, after, onError }); let ret; try { ret = action.apply(this && this.$id === $id ? this : store, args); } catch (error) { triggerSubscriptions(onErrorCallbackList, error); throw error; } if (ret instanceof Promise) { return ret.then((value) => { triggerSubscriptions(afterCallbackList, value); return value; }).catch((error) => { triggerSubscriptions(onErrorCallbackList, error); return Promise.reject(error); }); } triggerSubscriptions(afterCallbackList, ret); return ret; }; } const partialStore = { _p: pinia, // _s: scope, $id, $onAction: addSubscription.bind(null, actionSubscriptions), $patch, $reset, $subscribe(callback, options2 = {}) { const removeSubscription = addSubscription(subscriptions, callback, options2.detached, () => stopWatcher()); const stopWatcher = scope.run(() => vue.watch(() => pinia.state.value[$id], (state) => { if (options2.flush === "sync" ? isSyncListening : isListening) { callback({ storeId: $id, type: MutationType.direct, events: debuggerEvents }, state); } }, assign({}, $subscribeOptions, options2))); return removeSubscription; }, $dispose }; const store = vue.reactive(partialStore); pinia._s.set($id, store); const runWithContext = pinia._a && pinia._a.runWithContext || fallbackRunWithContext; const setupStore = runWithContext(() => pinia._e.run(() => (scope = vue.effectScope()).run(setup))); for (const key2 in setupStore) { const prop = setupStore[key2]; if (vue.isRef(prop) && !isComputed(prop) || vue.isReactive(prop)) { if (!isOptionsStore) { if (initialState && shouldHydrate(prop)) { if (vue.isRef(prop)) { prop.value = initialState[key2]; } else { mergeReactiveObjects(prop, initialState[key2]); } } { pinia.state.value[$id][key2] = prop; } } } else if (typeof prop === "function") { const actionValue = wrapAction(key2, prop); { setupStore[key2] = actionValue; } optionsForPlugin.actions[key2] = prop; } else ; } { assign(store, setupStore); assign(vue.toRaw(store), setupStore); } Object.defineProperty(store, "$state", { get: () => pinia.state.value[$id], set: (state) => { $patch(($state) => { assign($state, state); }); } }); pinia._p.forEach((extender) => { { assign(store, scope.run(() => extender({ store, app: pinia._a, pinia, options: optionsForPlugin }))); } }); if (initialState && isOptionsStore && options.hydrate) { options.hydrate(store.$state, initialState); } isListening = true; isSyncListening = true; return store; } function defineStore(idOrOptions, setup, setupOptions) { let id; let options; const isSetupStore = typeof setup === "function"; if (typeof idOrOptions === "string") { id = idOrOptions; options = isSetupStore ? setupOptions : setup; } else { options = idOrOptions; id = idOrOptions.id; } function useStore(pinia, hot) { const hasContext = vue.hasInjectionContext(); pinia = // in test mode, ignore the argument provided as we can always retrieve a // pinia instance with getActivePinia() pinia || (hasContext ? vue.inject(piniaSymbol, null) : null); if (pinia) setActivePinia(pinia); pinia = activePinia; if (!pinia._s.has(id)) { if (isSetupStore) { createSetupStore(id, setup, options, pinia); } else { createOptionsStore(id, options, pinia); } } const store = pinia._s.get(id); return store; } useStore.$id = id; return useStore; } const prefix = "AiAsk_"; class Cache { /** * 封装缓存 * @param key 缓存key * @param value 缓存值 * @param expire 过期时间 * * @returns 缓存值 */ static set(key2, value, expire = 0) { key2 = prefix + key2; if (expire > 0) { _GM_setValue(key2, { value, expire: (/* @__PURE__ */ new Date()).getTime() + expire * 1e3 }); } else { _GM_setValue(key2, { value, expire: 0 }); } return _GM_getValue(key2); } /** * 获取缓存 * @param key 缓存key * * @returns 缓存值 */ static get(key2, defaultVal = null) { key2 = prefix + key2; let cache = _GM_getValue(key2); if (cache && cache.expire > 0 && cache.expire < (/* @__PURE__ */ new Date()).getTime()) { _GM_setValue(key2, null); return defaultVal; } return cache ? cache.value : defaultVal; } /** * 前缀匹配 */ static match(key2) { key2 = prefix + key2; let allKeys = _GM_listValues(); return allKeys.filter((k) => { return k.startsWith(key2); }); } /** * 前缀匹配,获取值 */ static matchGet(key2) { key2 = prefix + key2; let allKeys = _GM_listValues(); let res = []; allKeys.forEach((k) => { if (k.startsWith(key2)) { res.push(_GM_getValue(k, { value: null, expire: 0 }).value); } }); return res; } /** * 删除缓存 * @param key 缓存key */ static remove(key2) { key2 = prefix + key2; _GM_deleteValue(key2); } /** * 清空缓存 */ static clear() { let allKeys = _GM_listValues(); allKeys.forEach((key2) => { if (key2.startsWith(prefix)) { _GM_deleteValue(key2); } }); } /** * 前缀匹配删除 */ static matchRemove(key2) { key2 = prefix + key2; let allKeys = _GM_listValues(); allKeys.forEach((k) => { if (k.startsWith(key2)) { _GM_deleteValue(k); } }); } } var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; function getDefaultExportFromCjs(x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; } function getAugmentedNamespace(n) { if (n.__esModule) return n; var f = n.default; if (typeof f == "function") { var a = function a2() { if (this instanceof a2) { return Reflect.construct(f, arguments, this.constructor); } return f.apply(this, arguments); }; a.prototype = f.prototype; } else a = {}; Object.defineProperty(a, "__esModule", { value: true }); Object.keys(n).forEach(function(k) { var d = Object.getOwnPropertyDescriptor(n, k); Object.defineProperty(a, k, d.get ? d : { enumerable: true, get: function() { return n[k]; } }); }); return a; } var md5 = { exports: {} }; const __viteBrowserExternal = {}; const __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, default: __viteBrowserExternal }, Symbol.toStringTag, { value: "Module" })); const require$$1 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1); /** * [js-md5]{@link https://github.com/emn178/js-md5} * * @namespace md5 * @version 0.8.3 * @author Chen, Yi-Cyuan [emn178@gmail.com] * @copyright Chen, Yi-Cyuan 2014-2023 * @license MIT */ (function(module) { (function() { var INPUT_ERROR = "input is invalid type"; var FINALIZE_ERROR = "finalize already called"; var WINDOW = typeof window === "object"; var root = WINDOW ? window : {}; if (root.JS_MD5_NO_WINDOW) { WINDOW = false; } var WEB_WORKER = !WINDOW && typeof self === "object"; var NODE_JS = !root.JS_MD5_NO_NODE_JS && typeof process === "object" && process.versions && process.versions.node; if (NODE_JS) { root = commonjsGlobal; } else if (WEB_WORKER) { root = self; } var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && true && module.exports; var ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && typeof ArrayBuffer !== "undefined"; var HEX_CHARS = "0123456789abcdef".split(""); var EXTRA = [128, 32768, 8388608, -2147483648]; var SHIFT = [0, 8, 16, 24]; var OUTPUT_TYPES = ["hex", "array", "digest", "buffer", "arrayBuffer", "base64"]; var BASE64_ENCODE_CHAR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""); var blocks = [], buffer8; if (ARRAY_BUFFER) { var buffer = new ArrayBuffer(68); buffer8 = new Uint8Array(buffer); blocks = new Uint32Array(buffer); } var isArray = Array.isArray; if (root.JS_MD5_NO_NODE_JS || !isArray) { isArray = function(obj) { return Object.prototype.toString.call(obj) === "[object Array]"; }; } var isView = ArrayBuffer.isView; if (ARRAY_BUFFER && (root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW || !isView)) { isView = function(obj) { return typeof obj === "object" && obj.buffer && obj.buffer.constructor === ArrayBuffer; }; } var formatMessage = function(message) { var type = typeof message; if (type === "string") { return [message, true]; } if (type !== "object" || message === null) { throw new Error(INPUT_ERROR); } if (ARRAY_BUFFER && message.constructor === ArrayBuffer) { return [new Uint8Array(message), false]; } if (!isArray(message) && !isView(message)) { throw new Error(INPUT_ERROR); } return [message, false]; }; var createOutputMethod = function(outputType) { return function(message) { return new Md5(true).update(message)[outputType](); }; }; var createMethod = function() { var method = createOutputMethod("hex"); if (NODE_JS) { method = nodeWrap(method); } method.create = function() { return new Md5(); }; method.update = function(message) { return method.create().update(message); }; for (var i = 0; i < OUTPUT_TYPES.length; ++i) { var type = OUTPUT_TYPES[i]; method[type] = createOutputMethod(type); } return method; }; var nodeWrap = function(method) { var crypto = require$$1; var Buffer2 = require$$1.Buffer; var bufferFrom; if (Buffer2.from && !root.JS_MD5_NO_BUFFER_FROM) { bufferFrom = Buffer2.from; } else { bufferFrom = function(message) { return new Buffer2(message); }; } var nodeMethod = function(message) { if (typeof message === "string") { return crypto.createHash("md5").update(message, "utf8").digest("hex"); } else { if (message === null || message === void 0) { throw new Error(INPUT_ERROR); } else if (message.constructor === ArrayBuffer) { message = new Uint8Array(message); } } if (isArray(message) || isView(message) || message.constructor === Buffer2) { return crypto.createHash("md5").update(bufferFrom(message)).digest("hex"); } else { return method(message); } }; return nodeMethod; }; var createHmacOutputMethod = function(outputType) { return function(key2, message) { return new HmacMd5(key2, true).update(message)[outputType](); }; }; var createHmacMethod = function() { var method = createHmacOutputMethod("hex"); method.create = function(key2) { return new HmacMd5(key2); }; method.update = function(key2, message) { return method.create(key2).update(message); }; for (var i = 0; i < OUTPUT_TYPES.length; ++i) { var type = OUTPUT_TYPES[i]; method[type] = createHmacOutputMethod(type); } return method; }; function Md5(sharedMemory) { if (sharedMemory) { blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0; this.blocks = blocks; this.buffer8 = buffer8; } else { if (ARRAY_BUFFER) { var buffer2 = new ArrayBuffer(68); this.buffer8 = new Uint8Array(buffer2); this.blocks = new Uint32Array(buffer2); } else { this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; } } this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0; this.finalized = this.hashed = false; this.first = true; } Md5.prototype.update = function(message) { if (this.finalized) { throw new Error(FINALIZE_ERROR); } var result = formatMessage(message); message = result[0]; var isString = result[1]; var code, index = 0, i, length = message.length, blocks2 = this.blocks; var buffer82 = this.buffer8; while (index < length) { if (this.hashed) { this.hashed = false; blocks2[0] = blocks2[16]; blocks2[16] = blocks2[1] = blocks2[2] = blocks2[3] = blocks2[4] = blocks2[5] = blocks2[6] = blocks2[7] = blocks2[8] = blocks2[9] = blocks2[10] = blocks2[11] = blocks2[12] = blocks2[13] = blocks2[14] = blocks2[15] = 0; } if (isString) { if (ARRAY_BUFFER) { for (i = this.start; index < length && i < 64; ++index) { code = message.charCodeAt(index); if (code < 128) { buffer82[i++] = code; } else if (code < 2048) { buffer82[i++] = 192 | code >>> 6; buffer82[i++] = 128 | code & 63; } else if (code < 55296 || code >= 57344) { buffer82[i++] = 224 | code >>> 12; buffer82[i++] = 128 | code >>> 6 & 63; buffer82[i++] = 128 | code & 63; } else { code = 65536 + ((code & 1023) << 10 | message.charCodeAt(++index) & 1023); buffer82[i++] = 240 | code >>> 18; buffer82[i++] = 128 | code >>> 12 & 63; buffer82[i++] = 128 | code >>> 6 & 63; buffer82[i++] = 128 | code & 63; } } } else { for (i = this.start; index < length && i < 64; ++index) { code = message.charCodeAt(index); if (code < 128) { blocks2[i >>> 2] |= code << SHIFT[i++ & 3]; } else if (code < 2048) { blocks2[i >>> 2] |= (192 | code >>> 6) << SHIFT[i++ & 3]; blocks2[i >>> 2] |= (128 | code & 63) << SHIFT[i++ & 3]; } else if (code < 55296 || code >= 57344) { blocks2[i >>> 2] |= (224 | code >>> 12) << SHIFT[i++ & 3]; blocks2[i >>> 2] |= (128 | code >>> 6 & 63) << SHIFT[i++ & 3]; blocks2[i >>> 2] |= (128 | code & 63) << SHIFT[i++ & 3]; } else { code = 65536 + ((code & 1023) << 10 | message.charCodeAt(++index) & 1023); blocks2[i >>> 2] |= (240 | code >>> 18) << SHIFT[i++ & 3]; blocks2[i >>> 2] |= (128 | code >>> 12 & 63) << SHIFT[i++ & 3]; blocks2[i >>> 2] |= (128 | code >>> 6 & 63) << SHIFT[i++ & 3]; blocks2[i >>> 2] |= (128 | code & 63) << SHIFT[i++ & 3]; } } } } else { if (ARRAY_BUFFER) { for (i = this.start; index < length && i < 64; ++index) { buffer82[i++] = message[index]; } } else { for (i = this.start; index < length && i < 64; ++index) { blocks2[i >>> 2] |= message[index] << SHIFT[i++ & 3]; } } } this.lastByteIndex = i; this.bytes += i - this.start; if (i >= 64) { this.start = i - 64; this.hash(); this.hashed = true; } else { this.start = i; } } if (this.bytes > 4294967295) { this.hBytes += this.bytes / 4294967296 << 0; this.bytes = this.bytes % 4294967296; } return this; }; Md5.prototype.finalize = function() { if (this.finalized) { return; } this.finalized = true; var blocks2 = this.blocks, i = this.lastByteIndex; blocks2[i >>> 2] |= EXTRA[i & 3]; if (i >= 56) { if (!this.hashed) { this.hash(); } blocks2[0] = blocks2[16]; blocks2[16] = blocks2[1] = blocks2[2] = blocks2[3] = blocks2[4] = blocks2[5] = blocks2[6] = blocks2[7] = blocks2[8] = blocks2[9] = blocks2[10] = blocks2[11] = blocks2[12] = blocks2[13] = blocks2[14] = blocks2[15] = 0; } blocks2[14] = this.bytes << 3; blocks2[15] = this.hBytes << 3 | this.bytes >>> 29; this.hash(); }; Md5.prototype.hash = function() { var a, b, c, d, bc, da, blocks2 = this.blocks; if (this.first) { a = blocks2[0] - 680876937; a = (a << 7 | a >>> 25) - 271733879 << 0; d = (-1732584194 ^ a & 2004318071) + blocks2[1] - 117830708; d = (d << 12 | d >>> 20) + a << 0; c = (-271733879 ^ d & (a ^ -271733879)) + blocks2[2] - 1126478375; c = (c << 17 | c >>> 15) + d << 0; b = (a ^ c & (d ^ a)) + blocks2[3] - 1316259209; b = (b << 22 | b >>> 10) + c << 0; } else { a = this.h0; b = this.h1; c = this.h2; d = this.h3; a += (d ^ b & (c ^ d)) + blocks2[0] - 680876936; a = (a << 7 | a >>> 25) + b << 0; d += (c ^ a & (b ^ c)) + blocks2[1] - 389564586; d = (d << 12 | d >>> 20) + a << 0; c += (b ^ d & (a ^ b)) + blocks2[2] + 606105819; c = (c << 17 | c >>> 15) + d << 0; b += (a ^ c & (d ^ a)) + blocks2[3] - 1044525330; b = (b << 22 | b >>> 10) + c << 0; } a += (d ^ b & (c ^ d)) + blocks2[4] - 176418897; a = (a << 7 | a >>> 25) + b << 0; d += (c ^ a & (b ^ c)) + blocks2[5] + 1200080426; d = (d << 12 | d >>> 20) + a << 0; c += (b ^ d & (a ^ b)) + blocks2[6] - 1473231341; c = (c << 17 | c >>> 15) + d << 0; b += (a ^ c & (d ^ a)) + blocks2[7] - 45705983; b = (b << 22 | b >>> 10) + c << 0; a += (d ^ b & (c ^ d)) + blocks2[8] + 1770035416; a = (a << 7 | a >>> 25) + b << 0; d += (c ^ a & (b ^ c)) + blocks2[9] - 1958414417; d = (d << 12 | d >>> 20) + a << 0; c += (b ^ d & (a ^ b)) + blocks2[10] - 42063; c = (c << 17 | c >>> 15) + d << 0; b += (a ^ c & (d ^ a)) + blocks2[11] - 1990404162; b = (b << 22 | b >>> 10) + c << 0; a += (d ^ b & (c ^ d)) + blocks2[12] + 1804603682; a = (a << 7 | a >>> 25) + b << 0; d += (c ^ a & (b ^ c)) + blocks2[13] - 40341101; d = (d << 12 | d >>> 20) + a << 0; c += (b ^ d & (a ^ b)) + blocks2[14] - 1502002290; c = (c << 17 | c >>> 15) + d << 0; b += (a ^ c & (d ^ a)) + blocks2[15] + 1236535329; b = (b << 22 | b >>> 10) + c << 0; a += (c ^ d & (b ^ c)) + blocks2[1] - 165796510; a = (a << 5 | a >>> 27) + b << 0; d += (b ^ c & (a ^ b)) + blocks2[6] - 1069501632; d = (d << 9 | d >>> 23) + a << 0; c += (a ^ b & (d ^ a)) + blocks2[11] + 643717713; c = (c << 14 | c >>> 18) + d << 0; b += (d ^ a & (c ^ d)) + blocks2[0] - 373897302; b = (b << 20 | b >>> 12) + c << 0; a += (c ^ d & (b ^ c)) + blocks2[5] - 701558691; a = (a << 5 | a >>> 27) + b << 0; d += (b ^ c & (a ^ b)) + blocks2[10] + 38016083; d = (d << 9 | d >>> 23) + a << 0; c += (a ^ b & (d ^ a)) + blocks2[15] - 660478335; c = (c << 14 | c >>> 18) + d << 0; b += (d ^ a & (c ^ d)) + blocks2[4] - 405537848; b = (b << 20 | b >>> 12) + c << 0; a += (c ^ d & (b ^ c)) + blocks2[9] + 568446438; a = (a << 5 | a >>> 27) + b << 0; d += (b ^ c & (a ^ b)) + blocks2[14] - 1019803690; d = (d << 9 | d >>> 23) + a << 0; c += (a ^ b & (d ^ a)) + blocks2[3] - 187363961; c = (c << 14 | c >>> 18) + d << 0; b += (d ^ a & (c ^ d)) + blocks2[8] + 1163531501; b = (b << 20 | b >>> 12) + c << 0; a += (c ^ d & (b ^ c)) + blocks2[13] - 1444681467; a = (a << 5 | a >>> 27) + b << 0; d += (b ^ c & (a ^ b)) + blocks2[2] - 51403784; d = (d << 9 | d >>> 23) + a << 0; c += (a ^ b & (d ^ a)) + blocks2[7] + 1735328473; c = (c << 14 | c >>> 18) + d << 0; b += (d ^ a & (c ^ d)) + blocks2[12] - 1926607734; b = (b << 20 | b >>> 12) + c << 0; bc = b ^ c; a += (bc ^ d) + blocks2[5] - 378558; a = (a << 4 | a >>> 28) + b << 0; d += (bc ^ a) + blocks2[8] - 2022574463; d = (d << 11 | d >>> 21) + a << 0; da = d ^ a; c += (da ^ b) + blocks2[11] + 1839030562; c = (c << 16 | c >>> 16) + d << 0; b += (da ^ c) + blocks2[14] - 35309556; b = (b << 23 | b >>> 9) + c << 0; bc = b ^ c; a += (bc ^ d) + blocks2[1] - 1530992060; a = (a << 4 | a >>> 28) + b << 0; d += (bc ^ a) + blocks2[4] + 1272893353; d = (d << 11 | d >>> 21) + a << 0; da = d ^ a; c += (da ^ b) + blocks2[7] - 155497632; c = (c << 16 | c >>> 16) + d << 0; b += (da ^ c) + blocks2[10] - 1094730640; b = (b << 23 | b >>> 9) + c << 0; bc = b ^ c; a += (bc ^ d) + blocks2[13] + 681279174; a = (a << 4 | a >>> 28) + b << 0; d += (bc ^ a) + blocks2[0] - 358537222; d = (d << 11 | d >>> 21) + a << 0; da = d ^ a; c += (da ^ b) + blocks2[3] - 722521979; c = (c << 16 | c >>> 16) + d << 0; b += (da ^ c) + blocks2[6] + 76029189; b = (b << 23 | b >>> 9) + c << 0; bc = b ^ c; a += (bc ^ d) + blocks2[9] - 640364487; a = (a << 4 | a >>> 28) + b << 0; d += (bc ^ a) + blocks2[12] - 421815835; d = (d << 11 | d >>> 21) + a << 0; da = d ^ a; c += (da ^ b) + blocks2[15] + 530742520; c = (c << 16 | c >>> 16) + d << 0; b += (da ^ c) + blocks2[2] - 995338651; b = (b << 23 | b >>> 9) + c << 0; a += (c ^ (b | ~d)) + blocks2[0] - 198630844; a = (a << 6 | a >>> 26) + b << 0; d += (b ^ (a | ~c)) + blocks2[7] + 1126891415; d = (d << 10 | d >>> 22) + a << 0; c += (a ^ (d | ~b)) + blocks2[14] - 1416354905; c = (c << 15 | c >>> 17) + d << 0; b += (d ^ (c | ~a)) + blocks2[5] - 57434055; b = (b << 21 | b >>> 11) + c << 0; a += (c ^ (b | ~d)) + blocks2[12] + 1700485571; a = (a << 6 | a >>> 26) + b << 0; d += (b ^ (a | ~c)) + blocks2[3] - 1894986606; d = (d << 10 | d >>> 22) + a << 0; c += (a ^ (d | ~b)) + blocks2[10] - 1051523; c = (c << 15 | c >>> 17) + d << 0; b += (d ^ (c | ~a)) + blocks2[1] - 2054922799; b = (b << 21 | b >>> 11) + c << 0; a += (c ^ (b | ~d)) + blocks2[8] + 1873313359; a = (a << 6 | a >>> 26) + b << 0; d += (b ^ (a | ~c)) + blocks2[15] - 30611744; d = (d << 10 | d >>> 22) + a << 0; c += (a ^ (d | ~b)) + blocks2[6] - 1560198380; c = (c << 15 | c >>> 17) + d << 0; b += (d ^ (c | ~a)) + blocks2[13] + 1309151649; b = (b << 21 | b >>> 11) + c << 0; a += (c ^ (b | ~d)) + blocks2[4] - 145523070; a = (a << 6 | a >>> 26) + b << 0; d += (b ^ (a | ~c)) + blocks2[11] - 1120210379; d = (d << 10 | d >>> 22) + a << 0; c += (a ^ (d | ~b)) + blocks2[2] + 718787259; c = (c << 15 | c >>> 17) + d << 0; b += (d ^ (c | ~a)) + blocks2[9] - 343485551; b = (b << 21 | b >>> 11) + c << 0; if (this.first) { this.h0 = a + 1732584193 << 0; this.h1 = b - 271733879 << 0; this.h2 = c - 1732584194 << 0; this.h3 = d + 271733878 << 0; this.first = false; } else { this.h0 = this.h0 + a << 0; this.h1 = this.h1 + b << 0; this.h2 = this.h2 + c << 0; this.h3 = this.h3 + d << 0; } }; Md5.prototype.hex = function() { this.finalize(); var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3; return HEX_CHARS[h0 >>> 4 & 15] + HEX_CHARS[h0 & 15] + HEX_CHARS[h0 >>> 12 & 15] + HEX_CHARS[h0 >>> 8 & 15] + HEX_CHARS[h0 >>> 20 & 15] + HEX_CHARS[h0 >>> 16 & 15] + HEX_CHARS[h0 >>> 28 & 15] + HEX_CHARS[h0 >>> 24 & 15] + HEX_CHARS[h1 >>> 4 & 15] + HEX_CHARS[h1 & 15] + HEX_CHARS[h1 >>> 12 & 15] + HEX_CHARS[h1 >>> 8 & 15] + HEX_CHARS[h1 >>> 20 & 15] + HEX_CHARS[h1 >>> 16 & 15] + HEX_CHARS[h1 >>> 28 & 15] + HEX_CHARS[h1 >>> 24 & 15] + HEX_CHARS[h2 >>> 4 & 15] + HEX_CHARS[h2 & 15] + HEX_CHARS[h2 >>> 12 & 15] + HEX_CHARS[h2 >>> 8 & 15] + HEX_CHARS[h2 >>> 20 & 15] + HEX_CHARS[h2 >>> 16 & 15] + HEX_CHARS[h2 >>> 28 & 15] + HEX_CHARS[h2 >>> 24 & 15] + HEX_CHARS[h3 >>> 4 & 15] + HEX_CHARS[h3 & 15] + HEX_CHARS[h3 >>> 12 & 15] + HEX_CHARS[h3 >>> 8 & 15] + HEX_CHARS[h3 >>> 20 & 15] + HEX_CHARS[h3 >>> 16 & 15] + HEX_CHARS[h3 >>> 28 & 15] + HEX_CHARS[h3 >>> 24 & 15]; }; Md5.prototype.toString = Md5.prototype.hex; Md5.prototype.digest = function() { this.finalize(); var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3; return [ h0 & 255, h0 >>> 8 & 255, h0 >>> 16 & 255, h0 >>> 24 & 255, h1 & 255, h1 >>> 8 & 255, h1 >>> 16 & 255, h1 >>> 24 & 255, h2 & 255, h2 >>> 8 & 255, h2 >>> 16 & 255, h2 >>> 24 & 255, h3 & 255, h3 >>> 8 & 255, h3 >>> 16 & 255, h3 >>> 24 & 255 ]; }; Md5.prototype.array = Md5.prototype.digest; Md5.prototype.arrayBuffer = function() { this.finalize(); var buffer2 = new ArrayBuffer(16); var blocks2 = new Uint32Array(buffer2); blocks2[0] = this.h0; blocks2[1] = this.h1; blocks2[2] = this.h2; blocks2[3] = this.h3; return buffer2; }; Md5.prototype.buffer = Md5.prototype.arrayBuffer; Md5.prototype.base64 = function() { var v1, v2, v3, base64Str = "", bytes = this.array(); for (var i = 0; i < 15; ) { v1 = bytes[i++]; v2 = bytes[i++]; v3 = bytes[i++]; base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] + BASE64_ENCODE_CHAR[(v2 << 2 | v3 >>> 6) & 63] + BASE64_ENCODE_CHAR[v3 & 63]; } v1 = bytes[i]; base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[v1 << 4 & 63] + "=="; return base64Str; }; function HmacMd5(key2, sharedMemory) { var i, result = formatMessage(key2); key2 = result[0]; if (result[1]) { var bytes = [], length = key2.length, index = 0, code; for (i = 0; i < length; ++i) { code = key2.charCodeAt(i); if (code < 128) { bytes[index++] = code; } else if (code < 2048) { bytes[index++] = 192 | code >>> 6; bytes[index++] = 128 | code & 63; } else if (code < 55296 || code >= 57344) { bytes[index++] = 224 | code >>> 12; bytes[index++] = 128 | code >>> 6 & 63; bytes[index++] = 128 | code & 63; } else { code = 65536 + ((code & 1023) << 10 | key2.charCodeAt(++i) & 1023); bytes[index++] = 240 | code >>> 18; bytes[index++] = 128 | code >>> 12 & 63; bytes[index++] = 128 | code >>> 6 & 63; bytes[index++] = 128 | code & 63; } } key2 = bytes; } if (key2.length > 64) { key2 = new Md5(true).update(key2).array(); } var oKeyPad = [], iKeyPad = []; for (i = 0; i < 64; ++i) { var b = key2[i] || 0; oKeyPad[i] = 92 ^ b; iKeyPad[i] = 54 ^ b; } Md5.call(this, sharedMemory); this.update(iKeyPad); this.oKeyPad = oKeyPad; this.inner = true; this.sharedMemory = sharedMemory; } HmacMd5.prototype = new Md5(); HmacMd5.prototype.finalize = function() { Md5.prototype.finalize.call(this); if (this.inner) { this.inner = false; var innerHash = this.array(); Md5.call(this, this.sharedMemory); this.update(this.oKeyPad); this.update(innerHash); Md5.prototype.finalize.call(this); } }; var exports = createMethod(); exports.md5 = exports; exports.md5.hmac = createHmacMethod(); if (COMMON_JS) { module.exports = exports; } else { root.md5 = exports; } })(); })(md5); var md5Exports = md5.exports; const scriptInfo$1 = _GM_info; const key = randomString(9) + "_"; function request(url, method, data = void 0, headers = void 0, timeout = 5e3) { if (method === "GET" && data) { url += `?${new URLSearchParams(data).toString()}`; } if (method === "POST") { const t = get_t(data); headers = { ...headers, "aka": t }; } const finalHeaders = { "User-Agent": _unsafeWindow.navigator.userAgent, "Content-Type": "application/json", "referer": location.href, "v": scriptInfo$1.script.version, ...headers }; return new Promise((resolve, reject) => { const startTime = Date.now(); _GM_xmlhttpRequest({ method, url, headers: finalHeaders, data: method !== "GET" ? JSON.stringify(data) : void 0, timeout, onload: function(response) { const endTime = Date.now(); const duration = endTime - startTime; resolve([response, duration]); }, ontimeout: () => reject(new Error("接口请求超时")), onerror: (error) => { reject(error); } }); }); } function requestFetch(url, method, data, headers, timeout = 5e3) { const finalHeaders = { "User-Agent": _unsafeWindow.navigator.userAgent, "Content-Type": method === "POST" ? "application/json" : "text/plain;charset=UTF-8", ...headers }; return new Promise((resolve, reject) => { fetch(url, { method, headers: finalHeaders, body: method === "POST" ? JSON.stringify(data) : void 0 }).then((response) => resolve(response.text())).catch(function(error) { reject(error); }); }); } function headi() { let z = Array.from({ length: 4 }, () => Math.floor(Math.random() * 255)).join("."); return { "X-Forwarded-For": z, "X-Real-IP": z }; } function sleep(time) { return new Promise((resolve) => setTimeout(resolve, time)); } function removeHtml(htmlStr) { const textArea = document.createElement("textarea"); textArea.innerHTML = htmlStr; htmlStr = textArea.value; htmlStr = htmlStr.replace(/[\t\r\xa0]/g, " "); htmlStr = htmlStr.replace(/[\u2000-\u200a]/g, " "); htmlStr = htmlStr.replace(//g, "\n"); htmlStr = htmlStr.replace(/<(\/)?(p|div).*?>/g, "\n"); htmlStr = htmlStr.replace(/ {2,}/g, " "); htmlStr = htmlStr.replace(/\n{2,}/g, "\n"); htmlStr = DOMPurify.sanitize(htmlStr, { ALLOWED_TAGS: ["img", "br", "sub", "sup", "table", "caption", "thead", "tfoot", "tbody", "tr", "th", "td", "strong"], ALLOWED_ATTR: ["src", "href"], ALLOW_DATA_ATTR: false }); return htmlStr.trim(); } function removeHtml1(htmlStr, replacen = true) { const textArea = document.createElement("textarea"); textArea.innerHTML = htmlStr; htmlStr = textArea.value; htmlStr = htmlStr.replace(/[\t\r\xa0]/g, " "); htmlStr = htmlStr.replace(/[\u2000-\u200a]/g, " "); htmlStr = htmlStr.replace(//g, "\n"); if (replacen) { htmlStr = htmlStr.replace(/<(\/)?(p|div).*?>/g, "\n"); } htmlStr = htmlStr.replace(/ {2,}/g, " "); htmlStr = htmlStr.replace(/\n{2,}/g, "\n"); htmlStr = htmlStr.replace(//g, "
");
    htmlStr = htmlStr.replace(/<\/xmp>/g, "
"); htmlStr = DOMPurify.sanitize(htmlStr, { ALLOWED_TAGS: ["img", "br", "sub", "sup"], ALLOWED_ATTR: ["src", "href"], ALLOW_DATA_ATTR: false, KEEP_CONTENT: true }); let imgReg = //g; let imgArr = htmlStr.match(imgReg); if (imgArr) { imgArr.forEach((item) => { let src = item.match(/src="(.*?)"/); if (src) { if (src[1].indexOf("http") == -1 && !src[1].includes("data:image")) { if (src[1].startsWith("/")) { htmlStr = htmlStr.replace(src[1], location.origin + src[1]); } else { htmlStr = htmlStr.replace(src[1], location.origin + "/" + src[1]); } } } }); } return htmlStr.trim(); } function titleClean(title) { return title.replace(/^【.*?】\s*/, "").replace(/\s*(\d+\.\d+分)$/, "").replace(/^\d+\./, "").trim(); } function typeChange(typeNumber) { let types = { "单选题": "0", "多选题": "1", "填空题": "2", "判断题": "3", "简答题": "4", "问答题": "4", "名词解释": "5", "论述题": "6", "计算题": "7", "分录题": "9", "资料题": "10", "连线题": "11", "匹配题": "11", "排序题": "13", "完型填空": "14", "完形填空题": "14", "阅读理解": "15", "程序题": "17", "口语题": "18", "听力题": "19", "共用选项题": "20", "测评题": "21", "钟表题": "23", "选词填空": "24", "选做题": "25", "其它": "8" }; return types[typeNumber] ?? "8"; } function typeChange2(typeNumber) { let types = { "0": "单选题", "1": "多选题", "2": "填空题", "3": "判断题", "4": "简答题", "5": "名词解释", "6": "论述题", "7": "计算题", "9": "分录题", "10": "资料题", "11": "连线题", "13": "排序题", "14": "完型填空", "15": "阅读理解", "17": "程序题", "18": "口语题", "19": "听力题", "20": "共用选项题", "21": "测评题", "23": "钟表题", "24": "选词填空", "25": "选做题", "8": "其它" }; return types[typeNumber] ?? "其他"; } function answerFormat(answer) { if (answer instanceof Array) { answer = answer.filter(function(item) { return item !== null; }); for (let i = 0; i < answer.length; i++) { answer[i] = removeHtml(answer[i]); } } else if (typeof answer === "string") { answer = titleClean(answer); } return answer; } function removeSpace(str) { if (/^[+-]?\d+(\.\d+)?$/.test(str)) { return str; } return str.replace(/[\s\p{P}]/gu, ""); } function matchAnswer(answer, options) { if (answer == "" || answer == null || answer == void 0) { return []; } answer = answer.map((item) => removeHtml1(item)); options = options.map((item) => removeHtml1(item)); answer = answerFormat(answer); let isMatch = options.every((item) => { return /[\u4e00-\u9fa5a-zA-Z0-9]/.test(item); }); if (isMatch) { answer = answer.map((item) => removeSpace(item)); options = options.map((item) => removeSpace(item)); } var matchArr = []; for (var i = 0; i < answer.length; i++) { for (var j = 0; j < options.length; j++) { if (answer[i] == options[j]) { matchArr.push(j); } } } return matchArr; } function recoverConsole() { var iframe = document.createElement("iframe"); iframe.style.display = "none"; document.body.appendChild(iframe); window.console = iframe.contentWindow.console; } function qc(item) { $(item).find(".answerBg, .textDIV, .eidtDiv").each(function() { ($(this).find(".check_answer").length || $(this).find(".check_answer_dx").length) && $(this).click(); }); $(item).find(".answerBg, .textDIV, .eidtDiv").find("textarea").each(function() { _unsafeWindow.UE.getEditor($(this).attr("name")).ready(function() { this.setContent(""); }); }); $(item).find(":radio, :checkbox").prop("checked", false); $(item).find("textarea").each(function() { _unsafeWindow.UE.getEditor($(this).attr("name")).ready(function() { this.setContent(""); }); }); } function qc1(item) { $(item).find(".before-after,.before-after-checkbox, .textDIV, .eidtDiv").each(function() { ($(this).find(".check_answer").length || $(this).find(".check_answer_dx").length) && $(this).click(); }); $(item).find(".before-after, .textDIV, .eidtDiv").find("textarea").each(function() { _unsafeWindow.UE.getEditor($(this).attr("name")).ready(function() { this.setContent(""); }); }); $(item).find(":radio, :checkbox").prop("checked", false); $(item).find("textarea").each(function() { _unsafeWindow.UE.getEditor($(this).attr("name")).ready(function() { this.setContent(""); }); }); } const allowCopy = () => { document.body.oncopy = null; document.body.oncut = null; document.body.onpaste = null; document.body.onselectstart = null; document.body.ondragstart = null; const style = document.createElement("style"); style.innerHTML = ` * { -webkit-user-select: auto !important; -moz-user-select: auto !important; -o-user-select: auto !important; user-select: auto !important; } `; document.head.appendChild(style); }; function isTrue(text) { return Boolean(String(text).match(/(正确|是|对|√|T|ri|true)/)); } function isFalse(text) { return Boolean(String(text).match(/(错误|否|错|×|F|wr|false)/)); } function msg(content, type = "info") { try { ElementPlus.ElNotification({ // @ts-ignore title: `${scriptInfo$1.script.name} v${scriptInfo$1.script.version}`, // 设置通知标题,使用模板字符串拼接脚本信息 message: content, // 设置通知内容 type, // 设置通知类型,默认为 "info" dangerouslyUseHTMLString: true, // 允许使用 HTML 字符串 // el改aah appendTo: document.getElementById("AiAskApp") }); } catch (e) { } } const formatDate = (dateString) => { let date = new Date(dateString); return date.toISOString().replace("T", " ").substring(0, 19); }; const updateCheck = () => { const app = wapp().app; if (!app.app.checkUpdate) { return Promise.resolve(null); } let updateCache = Cache.get("lastCheckTime"); if (updateCache && (/* @__PURE__ */ new Date()).getTime() - updateCache < 1e3 * 60) { return Promise.resolve(null); } try { let scriptId = app.script.updateURL.match(/scripts\/(\d+)/)[1]; if (!scriptId) { return Promise.resolve(null); } let url = `https://greasyfork.org/zh-CN/scripts/${scriptId}.json`; return new Promise((resolve, reject) => { requestFetch(url, "GET", {}, {}).then((res) => { res = JSON.parse(res); log("更新检测", res, "info"); if (res.version > scriptInfo$1.script.version) { msg(`检测到新版本${res.version},请及时更新
更新时间:${formatDate(res.code_updated_at)}
>>点我快捷跳转更新<<`, "warning"); } Cache.set("lastCheckTime", (/* @__PURE__ */ new Date()).getTime()); }).catch( (error) => { console.error("更新检测失败", error); resolve(null); } ); }); } catch { console.error("更新检测失败"); return Promise.resolve(null); } }; const updateCheck1 = () => { const app = wapp().app; let scriptId = app.script.updateURL.match(/scripts\/(\d+)/)[1]; if (!scriptId) { return Promise.resolve(null); } let url = `https://greasyfork.org/zh-CN/scripts/${scriptId}.json`; return new Promise((resolve, reject) => { requestFetch(url, "GET", {}, {}).then((res) => { res = JSON.parse(res); if (res.version > scriptInfo$1.script.version) { msg(`检测到新版本${res.version},请及时更新
更新时间:${formatDate(res.code_updated_at)}
>>点我快捷跳转更新<<`, "warning"); } else { msg(`当前版本为最新版本`, "success"); } Cache.set("lastCheckTime", (/* @__PURE__ */ new Date()).getTime()); }).catch( (error) => { console.error("更新检测失败", error); resolve(null); } ); }); }; function randomString(len) { let str = ""; for (; str.length < len; str += Math.random().toString(36).substr(2)) ; return str.substr(0, len); } function wapp() { const app = _unsafeWindow[key]; return app; } const waitUntil = (condition, interval = 100) => { return new Promise((resolve) => { const timer = setInterval(() => { if (condition()) { clearInterval(timer); resolve(); } }, interval); }); }; const questionHash = (type, question, options, optionsSort = true) => { let option = Array.from(options); if (optionsSort) { option.sort(); } const optionsStr = option.join(""); const hash = md5Exports.md5(`${type}${question}${optionsStr}`); return hash; }; const env = (dev, prod) => { return prod; }; function get_t(data) { const { sign, t, ...rest } = data; const keys = Object.keys(rest).sort(); const str = keys.map((key2) => { let value = rest[key2]; if (typeof value === "object") { value = JSON.stringify(value); } return `${key2}=${value}`; }).join("&"); return md5Exports.md5(str); } function removeStartChar(options) { return options.map((item, inx) => { let chr = String.fromCharCode(65 + inx) + "."; return item.replace(new RegExp(`^${chr}`), "").trim(); }); } function optionsToString(options) { return options.map((item, inx) => { let chr = String.fromCharCode(65 + inx) + "."; return chr + item; }).join("
"); } function log(...args) { } function getUrl() { return location.href; } function isExist(selector) { return $(selector).length > 0; } function judgeAnswer(text) { return isTrue(text) ? ["正确"] : isFalse(text) ? ["错误"] : []; } class Answer { constructor() { } /** * @description: 接口打分,是否有答案,是否匹配 */ static score(api, score) { let cache = Cache.get("api_" + api, { score: 0 }); cache.score += score; Cache.set("api_" + api, cache, 600); } /** * @description: 批量获取所有答案 */ static async getAllAnswers(questionList) { const promises = [ this.getAnswer3(questionList), this.getAnswer1(questionList) ]; return Promise.all(promises); } /** * @description: 批量获取答案 */ static async getAnswers(questionList) { const promises = [ this.getAnswer3(questionList) ]; return Promise.all(promises); } /** * @description: 批量获取答案(免费接口) */ static async getAnswersFree(questionList) { const promises = [ this.getMainAnswer(questionList), this.getAnswer1(questionList) ]; return Promise.all(promises); } /** * @description: 内置接口1 一之题库 */ static async getAnswer1(questionData) { let headers = headi(); return new Promise((resolve) => { request("http://cx.icodef.com/wyn-nb?v=4", "POST", { question: questionData.question }, headers).then((res) => { let duration = res[1]; try { res = JSON.parse(res[0].responseText); } catch (error) { resolve({ form: "免费题库", answer: null, error, duration }); } let answer = ""; if (res.code === 1) { let data = res.data.replace(/javascript:void\(0\);/g, "").trim().replace(/\n/g, ""); const keywords = ["叛逆", "公众号", "李恒雅", "一之"]; if (keywords.every((keyword) => !data.includes(keyword))) { answer = data.split("#"); } } resolve({ form: "免费题库", answer, duration }); }).catch((error) => { if (error === "timeout") { this.score("icodef", -1); } resolve({ form: "免费题库", answer: "", msg: error, duration: 5e3 }); }); }); } static async getAnswer2(questionData) { return new Promise((resolve) => { if (![0, 1, 2].includes(parseInt(questionData.type))) { resolve({ form: "muketool", answer: "", duration: "不支持的题型" }); return; } request("https://api.muketool.com/cx/v2/query", "POST", { question: questionData.question, type: parseInt(questionData.type) }, {}).then((res) => { let duration = res[1]; res = JSON.parse(res[0].responseText); resolve({ form: "muketool", answer: res.code === 1 ? res.data.split("#") : "", duration }); }).catch((error) => { if (error === "timeout") { this.score("muketool", -1); } resolve({ form: "muketool", answer: "" }); }); }); } static async getAnswer3(questionData) { const headers = { "Content-Type": "application/json", "referer": location.href, "v": scriptInfo.version, "s": scriptInfo.author }; const data = { question: questionData.question, // 选项数组 options: questionData.options.map((item) => item), type: questionData.type, questionData: questionData.html.innerHTML, workType: questionData.workType, key: appCache.key ?? "" }; return new Promise((resolve) => { request("https://api.tikuhai.com/search", "POST", data, headers).then((res) => { let duration = res[1]; res = JSON.parse(res[0].responseText); if (res.code === 200) { resolve({ form: "付费题库", answer: res.data.answer, duration, msg: res.msg }); } else { resolve({ form: "付费题库", answer: "", duration, msg: res.msg }); } }).catch((error) => { if (error === "timeout") { this.score("tikuhai", -1); } resolve({ form: "付费题库", answer: "", error, duration: 10, msg: "请求失败" }); }); }); } /** * @description: 将答案缓存在本地 */ static cacheAnswer(questionData) { const data = { type: questionData.type, question: questionData.question, options: questionData.options, answer: questionData.answer }; const hash = questionHash(data.type, data.question, data.options); Cache.set("ques_" + hash, data); } /** * @description: 从本地缓存获取答案 */ static async getCacheAnswer(questionData) { const hash = questionHash(questionData.type, questionData.question, questionData.options); let data = Cache.get("ques_" + hash); if (data) { return { form: "本地缓存", answer: data.answer, duration: 10 }; } return { form: "本地缓存", answer: "", duration: 10, msg: "未找到缓存" }; } /** * @description: 从自建题库获取答案 */ static getMainAnswer(questionData) { const data = { type: questionData.type, question: questionData.question, options: questionData.options.map((item) => item), html: questionData.html.innerHTML, workType: questionData.workType, pageType: questionData.pageType }; const url = env("http://127.0.0.1:9966/api/search", "https://aiask.wk66.top/api/search"); return new Promise((resolve) => { request(url, "POST", data, {}).then((res) => { let duration = res[1]; res = JSON.parse(res[0].responseText); if (res.code === 200) { resolve({ form: "爱问答题库", answer: res.data.answer, duration, msg: res.msg }); } else { resolve({ form: "爱问答题库", answer: "", duration, msg: res.msg }); } }).catch((error) => { resolve({ form: "爱问答题库", answer: "", error, duration: 10, msg: "请求失败" }); }); }); } /** * @description: 同步题库 */ static async syncQuestionList(data) { return new Promise((resolve) => { const url = env("http://127.0.0.1:9966/api/sync", "https://aiask.wk66.top/api/sync"); request(url, "POST", data, {}).then((res) => { log(res[0].responseText); resolve(res[0].responseText); }).catch((error) => { resolve(error); }); }); } } const parsePack = (str) => { const pattern = /data:\s*({.*?})\s*\n/g; const result = []; let match; while ((match = pattern.exec(str)) !== null) { const jsonStr = match[1]; try { const json = JSON.parse(jsonStr); result.push(json); } catch (e) { } } return result; }; const aiAsk = async (message, callback, isfinish) => { let config = getApp(); let url = config.gpt[0].api; let data = JSON.stringify({ "model": "gpt-3.5-turbo", "messages": [ { "role": "system", "content": "请只需要回答我的问题不要有多余的话,如果你不知道请返回【我不会】" }, { "role": "user", "content": message } ], "stream": true }); let headers = { "Accept": "application/json", "Authorization": `Bearer ${config.gpt[0].key}`, "Content-Type": "application/json" }; return new Promise((resolve, reject) => { if (!config.gpt[0].key) { callback(`AI响应异常,可能是没有获取KEY,请按下方步骤操作 1. 打开[智普清言](https://chatglm.cn/main/alltoolsdetail) 2. 登录后随便发一条消息即可 3. 返回答题页刷新页面 `); return resolve("暂无KEY"); } _GM_xmlhttpRequest({ method: "POST", url, data, headers, responseType: "stream", onloadstart: async (r) => { let strText = ""; let finish = false; let count = 0; const reader = r.response.getReader(); const decoder = new TextDecoder(); try { while (!finish) { const { done, value } = await reader.read(); await sleep(50); if (done) { finish = true; log("AI响应完成", "success"); isfinish(); return resolve(strText); } count++; const jsonArray = parsePack(decoder.decode(value)); if (count === 1) { } jsonArray.forEach((json) => { if (!json.choices || json.choices.length === 0) { return; } const text = json.choices[0].delta.content; if (text === void 0 || text === "") { return; } strText += text; callback(text); }); } } catch (error) { console.error("Error reading stream:", error); return reject(error); } } }); }); }; const yunmuxueyuan = [ { type: "hook", name: "云幕学苑hook", match: location.host.includes("w-ling.cn"), main: (data) => { _unsafeWindow.mainClass = $("#app")[0].__vue__.$route.path; let observer = new MutationObserver(async (mutations) => { if (_unsafeWindow.mainClass !== $("#app")[0].__vue__.$route.path) { _unsafeWindow.mainClass = $("#app")[0].__vue__.$route.path; if (_unsafeWindow.mainClass === "homework-detail-container") { await waitUntil(function() { return $(".selectDan").length !== 0; }); } vuePageChange(); observer.disconnect(); } }); if ($("#app").length >= 1) { observer.observe($("#app")[0], { subtree: true, attributes: true, childList: true }); } } }, { type: "save", name: "云幕学苑收录", match: () => location.host.includes("w-ling.cn") && location.href.includes("practiceRecord"), question: { html: ".selectDan >div >div", question: ".title", options: ".selectItem label .tagbq", type: ".question-box .tag", workType: "yunmuxueyuan", pageType: "yunmuxueyuan" }, init: async () => { await waitUntil(function() { return isExist(".selectDan >div >div"); }); }, answerHook: (item) => { const type = $(item.html).parent().find("h3").text().split("、")[1]; item.question = item.question.replace(/^\d+、/, ""); item.question = item.question.replace(/\(\d+分\)$/, ""); let answer = $(item.html).find(".anaylize > span:eq(0)").text().replace("作答正确:", ""); if (answer === "") { answer = $(item.html).find(".falsanaly > span:eq(1)").text().replace("正确答案:", ""); } switch (type) { case "单选题": case "多选题": answer = answer.split(""); item.answer = answer.map((xx) => { return item.options[xx.charCodeAt(0) - 65]; }); if (item.answer.length === 0) { return; } item.answer.length > 1 ? item.type = "1" : item.type = "0"; break; case "判断题": item.type = "3"; if (answer == "T") { item.answer = ["正确"]; } if (answer == "F") { item.answer = ["错误"]; } break; case "填空题": item.answer = $(item.html).find(".riganswer > span").first().nextAll("span").map((inx, element) => { return removeHtml1($(element).text()); }).get(); item.type = "2"; break; } return item; } }, { type: "ask", name: "云幕学苑", tips: "云幕学苑仅支持选择判断,其他题型待适配", match: () => location.host.includes("w-ling.cn") && (location.href.includes("practicePaper") || location.href.includes("examIndex")), question: { html: ".selectDan >div >div", question: ".title", options: ".selectItem label .tagbq", type: ".question-box .tag", workType: "yunmuxueyuan", pageType: "yunmuxueyuan" }, init: async () => { await waitUntil(function() { return $(".selectDan >div >div").length !== 0; }); }, next: () => { }, ischecked: (item) => { return item.parent().parent().hasClass("is-checked"); }, questionHook: (item) => { item.question = item.question.replace(/^\d+、/, ""); item.question = item.question.replace(/\(\d+分\)$/, ""); const type = $(item.html).parent().find("h4").text().split("、")[1]; switch (type) { case "单选题": item.type = "0"; break; case "多选题": item.type = "1"; break; case "判断题": item.type = "3"; item.$options = $(item.html).find(".selectItem label"); item.options = item.$options.map((inx, element) => { return removeHtml1($(element).text()); }).get(); log(item.$options); break; case "填空题": item.type = "2"; break; } return item; }, setAnswer: (item) => { switch (item.type) { case "3": break; case "2": $(item.html).find(".tiankong input").each((inx, element) => { let vueL = $(element).parent()[0].__vue__; $(element).val(item.answer[inx]); const event2 = new Event("input"); element.dispatchEvent(event2); vueL.$emit("change", item.answer[inx]); }); return false; } return true; }, finish: (item) => { } } ]; var Typr = {}; Typr.parse = function(buff) { var bin = Typr._bin; var data = new Uint8Array(buff); var offset = 0; bin.readFixed(data, offset); offset += 4; var numTables = bin.readUshort(data, offset); offset += 2; bin.readUshort(data, offset); offset += 2; bin.readUshort(data, offset); offset += 2; bin.readUshort(data, offset); offset += 2; var tags = ["cmap", "head", "hhea", "maxp", "hmtx", "name", "OS/2", "post", "loca", "glyf", "kern", "CFF ", "GPOS", "GSUB", "SVG "]; var obj = { _data: data }; var tabs = {}; for (var i = 0; i < numTables; i++) { var tag = bin.readASCII(data, offset, 4); offset += 4; bin.readUint(data, offset); offset += 4; var toffset = bin.readUint(data, offset); offset += 4; var length = bin.readUint(data, offset); offset += 4; tabs[tag] = { offset: toffset, length }; } for (var i = 0; i < tags.length; i++) { var t = tags[i]; if (tabs[t]) obj[t.trim()] = Typr[t.trim()].parse(data, tabs[t].offset, tabs[t].length, obj); } return obj; }; Typr._tabOffset = function(data, tab) { var bin = Typr._bin; var numTables = bin.readUshort(data, 4); var offset = 12; for (var i = 0; i < numTables; i++) { var tag = bin.readASCII(data, offset, 4); offset += 4; bin.readUint(data, offset); offset += 4; var toffset = bin.readUint(data, offset); offset += 4; bin.readUint(data, offset); offset += 4; if (tag == tab) return toffset; } return 0; }; Typr._bin = { readFixed: function(data, o) { return (data[o] << 8 | data[o + 1]) + (data[o + 2] << 8 | data[o + 3]) / (256 * 256 + 4); }, readF2dot14: function(data, o) { var num = Typr._bin.readShort(data, o); return num / 16384; }, readInt: function(buff, p) { var a = Typr._bin.t.uint8; a[0] = buff[p + 3]; a[1] = buff[p + 2]; a[2] = buff[p + 1]; a[3] = buff[p]; return Typr._bin.t.int32[0]; }, readInt8: function(buff, p) { var a = Typr._bin.t.uint8; a[0] = buff[p]; return Typr._bin.t.int8[0]; }, readShort: function(buff, p) { var a = Typr._bin.t.uint8; a[1] = buff[p]; a[0] = buff[p + 1]; return Typr._bin.t.int16[0]; }, readUshort: function(buff, p) { return buff[p] << 8 | buff[p + 1]; }, readUshorts: function(buff, p, len) { var arr = []; for (var i = 0; i < len; i++) arr.push(Typr._bin.readUshort(buff, p + i * 2)); return arr; }, readUint: function(buff, p) { var a = Typr._bin.t.uint8; a[3] = buff[p]; a[2] = buff[p + 1]; a[1] = buff[p + 2]; a[0] = buff[p + 3]; return Typr._bin.t.uint32[0]; }, readUint64: function(buff, p) { return Typr._bin.readUint(buff, p) * (4294967295 + 1) + Typr._bin.readUint(buff, p + 4); }, readASCII: function(buff, p, l) { var s = ""; for (var i = 0; i < l; i++) s += String.fromCharCode(buff[p + i]); return s; }, readUnicode: function(buff, p, l) { var s = ""; for (var i = 0; i < l; i++) { var c = buff[p++] << 8 | buff[p++]; s += String.fromCharCode(c); } return s; }, _tdec: window["TextDecoder"] ? new window["TextDecoder"]() : null, readUTF8: function(buff, p, l) { var tdec = Typr._bin._tdec; if (tdec && p == 0 && l == buff.length) return tdec["decode"](buff); return Typr._bin.readASCII(buff, p, l); }, readBytes: function(buff, p, l) { var arr = []; for (var i = 0; i < l; i++) arr.push(buff[p + i]); return arr; }, readASCIIArray: function(buff, p, l) { var s = []; for (var i = 0; i < l; i++) s.push(String.fromCharCode(buff[p + i])); return s; } }; Typr._bin.t = { buff: new ArrayBuffer(8) }; Typr._bin.t.int8 = new Int8Array(Typr._bin.t.buff); Typr._bin.t.uint8 = new Uint8Array(Typr._bin.t.buff); Typr._bin.t.int16 = new Int16Array(Typr._bin.t.buff); Typr._bin.t.uint16 = new Uint16Array(Typr._bin.t.buff); Typr._bin.t.int32 = new Int32Array(Typr._bin.t.buff); Typr._bin.t.uint32 = new Uint32Array(Typr._bin.t.buff); Typr._lctf = {}; Typr._lctf.parse = function(data, offset, length, font, subt) { var bin = Typr._bin; var obj = {}; var offset0 = offset; bin.readFixed(data, offset); offset += 4; var offScriptList = bin.readUshort(data, offset); offset += 2; var offFeatureList = bin.readUshort(data, offset); offset += 2; var offLookupList = bin.readUshort(data, offset); offset += 2; obj.scriptList = Typr._lctf.readScriptList(data, offset0 + offScriptList); obj.featureList = Typr._lctf.readFeatureList(data, offset0 + offFeatureList); obj.lookupList = Typr._lctf.readLookupList(data, offset0 + offLookupList, subt); return obj; }; Typr._lctf.readLookupList = function(data, offset, subt) { var bin = Typr._bin; var offset0 = offset; var obj = []; var count = bin.readUshort(data, offset); offset += 2; for (var i = 0; i < count; i++) { var noff = bin.readUshort(data, offset); offset += 2; var lut = Typr._lctf.readLookupTable(data, offset0 + noff, subt); obj.push(lut); } return obj; }; Typr._lctf.readLookupTable = function(data, offset, subt) { var bin = Typr._bin; var offset0 = offset; var obj = { tabs: [] }; obj.ltype = bin.readUshort(data, offset); offset += 2; obj.flag = bin.readUshort(data, offset); offset += 2; var cnt = bin.readUshort(data, offset); offset += 2; for (var i = 0; i < cnt; i++) { var noff = bin.readUshort(data, offset); offset += 2; var tab = subt(data, obj.ltype, offset0 + noff); obj.tabs.push(tab); } return obj; }; Typr._lctf.numOfOnes = function(n) { var num = 0; for (var i = 0; i < 32; i++) if ((n >>> i & 1) != 0) num++; return num; }; Typr._lctf.readClassDef = function(data, offset) { var bin = Typr._bin; var obj = []; var format = bin.readUshort(data, offset); offset += 2; if (format == 1) { var startGlyph = bin.readUshort(data, offset); offset += 2; var glyphCount = bin.readUshort(data, offset); offset += 2; for (var i = 0; i < glyphCount; i++) { obj.push(startGlyph + i); obj.push(startGlyph + i); obj.push(bin.readUshort(data, offset)); offset += 2; } } if (format == 2) { var count = bin.readUshort(data, offset); offset += 2; for (var i = 0; i < count; i++) { obj.push(bin.readUshort(data, offset)); offset += 2; obj.push(bin.readUshort(data, offset)); offset += 2; obj.push(bin.readUshort(data, offset)); offset += 2; } } return obj; }; Typr._lctf.getInterval = function(tab, val) { for (var i = 0; i < tab.length; i += 3) { var start = tab[i], end = tab[i + 1]; tab[i + 2]; if (start <= val && val <= end) return i; } return -1; }; Typr._lctf.readValueRecord = function(data, offset, valFmt) { var bin = Typr._bin; var arr = []; arr.push(valFmt & 1 ? bin.readShort(data, offset) : 0); offset += valFmt & 1 ? 2 : 0; arr.push(valFmt & 2 ? bin.readShort(data, offset) : 0); offset += valFmt & 2 ? 2 : 0; arr.push(valFmt & 4 ? bin.readShort(data, offset) : 0); offset += valFmt & 4 ? 2 : 0; arr.push(valFmt & 8 ? bin.readShort(data, offset) : 0); offset += valFmt & 8 ? 2 : 0; return arr; }; Typr._lctf.readCoverage = function(data, offset) { var bin = Typr._bin; var cvg = {}; cvg.fmt = bin.readUshort(data, offset); offset += 2; var count = bin.readUshort(data, offset); offset += 2; if (cvg.fmt == 1) cvg.tab = bin.readUshorts(data, offset, count); if (cvg.fmt == 2) cvg.tab = bin.readUshorts(data, offset, count * 3); return cvg; }; Typr._lctf.coverageIndex = function(cvg, val) { var tab = cvg.tab; if (cvg.fmt == 1) return tab.indexOf(val); if (cvg.fmt == 2) { var ind = Typr._lctf.getInterval(tab, val); if (ind != -1) return tab[ind + 2] + (val - tab[ind]); } return -1; }; Typr._lctf.readFeatureList = function(data, offset) { var bin = Typr._bin; var offset0 = offset; var obj = []; var count = bin.readUshort(data, offset); offset += 2; for (var i = 0; i < count; i++) { var tag = bin.readASCII(data, offset, 4); offset += 4; var noff = bin.readUshort(data, offset); offset += 2; obj.push({ tag: tag.trim(), tab: Typr._lctf.readFeatureTable(data, offset0 + noff) }); } return obj; }; Typr._lctf.readFeatureTable = function(data, offset) { var bin = Typr._bin; bin.readUshort(data, offset); offset += 2; var lookupCount = bin.readUshort(data, offset); offset += 2; var indices = []; for (var i = 0; i < lookupCount; i++) indices.push(bin.readUshort(data, offset + 2 * i)); return indices; }; Typr._lctf.readScriptList = function(data, offset) { var bin = Typr._bin; var offset0 = offset; var obj = {}; var count = bin.readUshort(data, offset); offset += 2; for (var i = 0; i < count; i++) { var tag = bin.readASCII(data, offset, 4); offset += 4; var noff = bin.readUshort(data, offset); offset += 2; obj[tag.trim()] = Typr._lctf.readScriptTable(data, offset0 + noff); } return obj; }; Typr._lctf.readScriptTable = function(data, offset) { var bin = Typr._bin; var offset0 = offset; var obj = {}; var defLangSysOff = bin.readUshort(data, offset); offset += 2; obj.default = Typr._lctf.readLangSysTable(data, offset0 + defLangSysOff); var langSysCount = bin.readUshort(data, offset); offset += 2; for (var i = 0; i < langSysCount; i++) { var tag = bin.readASCII(data, offset, 4); offset += 4; var langSysOff = bin.readUshort(data, offset); offset += 2; obj[tag.trim()] = Typr._lctf.readLangSysTable(data, offset0 + langSysOff); } return obj; }; Typr._lctf.readLangSysTable = function(data, offset) { var bin = Typr._bin; var obj = {}; bin.readUshort(data, offset); offset += 2; obj.reqFeature = bin.readUshort(data, offset); offset += 2; var featureCount = bin.readUshort(data, offset); offset += 2; obj.features = bin.readUshorts(data, offset, featureCount); return obj; }; Typr.CFF = {}; Typr.CFF.parse = function(data, offset, length) { var bin = Typr._bin; data = new Uint8Array(data.buffer, offset, length); offset = 0; data[offset]; offset++; data[offset]; offset++; data[offset]; offset++; data[offset]; offset++; var ninds = []; offset = Typr.CFF.readIndex(data, offset, ninds); var names = []; for (var i = 0; i < ninds.length - 1; i++) names.push(bin.readASCII(data, offset + ninds[i], ninds[i + 1] - ninds[i])); offset += ninds[ninds.length - 1]; var tdinds = []; offset = Typr.CFF.readIndex(data, offset, tdinds); var topDicts = []; for (var i = 0; i < tdinds.length - 1; i++) topDicts.push(Typr.CFF.readDict(data, offset + tdinds[i], offset + tdinds[i + 1])); offset += tdinds[tdinds.length - 1]; var topdict = topDicts[0]; var sinds = []; offset = Typr.CFF.readIndex(data, offset, sinds); var strings = []; for (var i = 0; i < sinds.length - 1; i++) strings.push(bin.readASCII(data, offset + sinds[i], sinds[i + 1] - sinds[i])); offset += sinds[sinds.length - 1]; Typr.CFF.readSubrs(data, offset, topdict); if (topdict.CharStrings) { offset = topdict.CharStrings; var sinds = []; offset = Typr.CFF.readIndex(data, offset, sinds); var cstr = []; for (var i = 0; i < sinds.length - 1; i++) cstr.push(bin.readBytes(data, offset + sinds[i], sinds[i + 1] - sinds[i])); topdict.CharStrings = cstr; } if (topdict.Encoding) topdict.Encoding = Typr.CFF.readEncoding(data, topdict.Encoding, topdict.CharStrings.length); if (topdict.charset) topdict.charset = Typr.CFF.readCharset(data, topdict.charset, topdict.CharStrings.length); if (topdict.Private) { offset = topdict.Private[1]; topdict.Private = Typr.CFF.readDict(data, offset, offset + topdict.Private[0]); if (topdict.Private.Subrs) Typr.CFF.readSubrs(data, offset + topdict.Private.Subrs, topdict.Private); } var obj = {}; for (var p in topdict) { if (["FamilyName", "FullName", "Notice", "version", "Copyright"].indexOf(p) != -1) obj[p] = strings[topdict[p] - 426 + 35]; else obj[p] = topdict[p]; } return obj; }; Typr.CFF.readSubrs = function(data, offset, obj) { var bin = Typr._bin; var gsubinds = []; offset = Typr.CFF.readIndex(data, offset, gsubinds); var bias, nSubrs = gsubinds.length; if (nSubrs < 1240) bias = 107; else if (nSubrs < 33900) bias = 1131; else bias = 32768; obj.Bias = bias; obj.Subrs = []; for (var i = 0; i < gsubinds.length - 1; i++) obj.Subrs.push(bin.readBytes(data, offset + gsubinds[i], gsubinds[i + 1] - gsubinds[i])); }; Typr.CFF.tableSE = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 0, 111, 112, 113, 114, 0, 115, 116, 117, 118, 119, 120, 121, 122, 0, 123, 0, 124, 125, 126, 127, 128, 129, 130, 131, 0, 132, 133, 0, 134, 135, 136, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, 139, 0, 0, 0, 0, 140, 141, 142, 143, 0, 0, 0, 0, 0, 144, 0, 0, 0, 145, 0, 0, 146, 147, 148, 149, 0, 0, 0, 0]; Typr.CFF.glyphByUnicode = function(cff, code) { for (var i = 0; i < cff.charset.length; i++) if (cff.charset[i] == code) return i; return -1; }; Typr.CFF.glyphBySE = function(cff, charcode) { if (charcode < 0 || charcode > 255) return -1; return Typr.CFF.glyphByUnicode(cff, Typr.CFF.tableSE[charcode]); }; Typr.CFF.readEncoding = function(data, offset, num) { Typr._bin; var array = [".notdef"]; var format = data[offset]; offset++; if (format == 0) { var nCodes = data[offset]; offset++; for (var i = 0; i < nCodes; i++) array.push(data[offset + i]); } else throw "error: unknown encoding format: " + format; return array; }; Typr.CFF.readCharset = function(data, offset, num) { var bin = Typr._bin; var charset = [".notdef"]; var format = data[offset]; offset++; if (format == 0) { for (var i = 0; i < num; i++) { var first = bin.readUshort(data, offset); offset += 2; charset.push(first); } } else if (format == 1 || format == 2) { while (charset.length < num) { var first = bin.readUshort(data, offset); offset += 2; var nLeft = 0; if (format == 1) { nLeft = data[offset]; offset++; } else { nLeft = bin.readUshort(data, offset); offset += 2; } for (var i = 0; i <= nLeft; i++) { charset.push(first); first++; } } } else throw "error: format: " + format; return charset; }; Typr.CFF.readIndex = function(data, offset, inds) { var bin = Typr._bin; var count = bin.readUshort(data, offset); offset += 2; var offsize = data[offset]; offset++; if (offsize == 1) for (var i = 0; i < count + 1; i++) inds.push(data[offset + i]); else if (offsize == 2) for (var i = 0; i < count + 1; i++) inds.push(bin.readUshort(data, offset + i * 2)); else if (offsize == 3) for (var i = 0; i < count + 1; i++) inds.push(bin.readUint(data, offset + i * 3 - 1) & 16777215); else if (count != 0) throw "unsupported offset size: " + offsize + ", count: " + count; offset += (count + 1) * offsize; return offset - 1; }; Typr.CFF.getCharString = function(data, offset, o) { var bin = Typr._bin; var b0 = data[offset], b1 = data[offset + 1]; data[offset + 2]; data[offset + 3]; data[offset + 4]; var vs = 1; var op = null, val = null; if (b0 <= 20) { op = b0; vs = 1; } if (b0 == 12) { op = b0 * 100 + b1; vs = 2; } if (21 <= b0 && b0 <= 27) { op = b0; vs = 1; } if (b0 == 28) { val = bin.readShort(data, offset + 1); vs = 3; } if (29 <= b0 && b0 <= 31) { op = b0; vs = 1; } if (32 <= b0 && b0 <= 246) { val = b0 - 139; vs = 1; } if (247 <= b0 && b0 <= 250) { val = (b0 - 247) * 256 + b1 + 108; vs = 2; } if (251 <= b0 && b0 <= 254) { val = -(b0 - 251) * 256 - b1 - 108; vs = 2; } if (b0 == 255) { val = bin.readInt(data, offset + 1) / 65535; vs = 5; } o.val = val != null ? val : "o" + op; o.size = vs; }; Typr.CFF.readCharString = function(data, offset, length) { var end = offset + length; var bin = Typr._bin; var arr = []; while (offset < end) { var b0 = data[offset], b1 = data[offset + 1]; data[offset + 2]; data[offset + 3]; data[offset + 4]; var vs = 1; var op = null, val = null; if (b0 <= 20) { op = b0; vs = 1; } if (b0 == 12) { op = b0 * 100 + b1; vs = 2; } if (b0 == 19 || b0 == 20) { op = b0; vs = 2; } if (21 <= b0 && b0 <= 27) { op = b0; vs = 1; } if (b0 == 28) { val = bin.readShort(data, offset + 1); vs = 3; } if (29 <= b0 && b0 <= 31) { op = b0; vs = 1; } if (32 <= b0 && b0 <= 246) { val = b0 - 139; vs = 1; } if (247 <= b0 && b0 <= 250) { val = (b0 - 247) * 256 + b1 + 108; vs = 2; } if (251 <= b0 && b0 <= 254) { val = -(b0 - 251) * 256 - b1 - 108; vs = 2; } if (b0 == 255) { val = bin.readInt(data, offset + 1) / 65535; vs = 5; } arr.push(val != null ? val : "o" + op); offset += vs; } return arr; }; Typr.CFF.readDict = function(data, offset, end) { var bin = Typr._bin; var dict = {}; var carr = []; while (offset < end) { var b0 = data[offset], b1 = data[offset + 1]; data[offset + 2]; data[offset + 3]; data[offset + 4]; var vs = 1; var key2 = null, val = null; if (b0 == 28) { val = bin.readShort(data, offset + 1); vs = 3; } if (b0 == 29) { val = bin.readInt(data, offset + 1); vs = 5; } if (32 <= b0 && b0 <= 246) { val = b0 - 139; vs = 1; } if (247 <= b0 && b0 <= 250) { val = (b0 - 247) * 256 + b1 + 108; vs = 2; } if (251 <= b0 && b0 <= 254) { val = -(b0 - 251) * 256 - b1 - 108; vs = 2; } if (b0 == 255) { val = bin.readInt(data, offset + 1) / 65535; vs = 5; throw "unknown number"; } if (b0 == 30) { var nibs = []; vs = 1; while (true) { var b = data[offset + vs]; vs++; var nib0 = b >> 4, nib1 = b & 15; if (nib0 != 15) nibs.push(nib0); if (nib1 != 15) nibs.push(nib1); if (nib1 == 15) break; } var s = ""; var chars = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ".", "e", "e-", "reserved", "-", "endOfNumber"]; for (var i = 0; i < nibs.length; i++) s += chars[nibs[i]]; val = parseFloat(s); } if (b0 <= 21) { var keys = ["version", "Notice", "FullName", "FamilyName", "Weight", "FontBBox", "BlueValues", "OtherBlues", "FamilyBlues", "FamilyOtherBlues", "StdHW", "StdVW", "escape", "UniqueID", "XUID", "charset", "Encoding", "CharStrings", "Private", "Subrs", "defaultWidthX", "nominalWidthX"]; key2 = keys[b0]; vs = 1; if (b0 == 12) { var keys = ["Copyright", "isFixedPitch", "ItalicAngle", "UnderlinePosition", "UnderlineThickness", "PaintType", "CharstringType", "FontMatrix", "StrokeWidth", "BlueScale", "BlueShift", "BlueFuzz", "StemSnapH", "StemSnapV", "ForceBold", 0, 0, "LanguageGroup", "ExpansionFactor", "initialRandomSeed", "SyntheticBase", "PostScript", "BaseFontName", "BaseFontBlend", 0, 0, 0, 0, 0, 0, "ROS", "CIDFontVersion", "CIDFontRevision", "CIDFontType", "CIDCount", "UIDBase", "FDArray", "FDSelect", "FontName"]; key2 = keys[b1]; vs = 2; } } if (key2 != null) { dict[key2] = carr.length == 1 ? carr[0] : carr; carr = []; } else carr.push(val); offset += vs; } return dict; }; Typr.cmap = {}; Typr.cmap.parse = function(data, offset, length) { data = new Uint8Array(data.buffer, offset, length); offset = 0; var bin = Typr._bin; var obj = {}; bin.readUshort(data, offset); offset += 2; var numTables = bin.readUshort(data, offset); offset += 2; var offs = []; obj.tables = []; for (var i = 0; i < numTables; i++) { var platformID = bin.readUshort(data, offset); offset += 2; var encodingID = bin.readUshort(data, offset); offset += 2; var noffset = bin.readUint(data, offset); offset += 4; var id = "p" + platformID + "e" + encodingID; var tind = offs.indexOf(noffset); if (tind == -1) { tind = obj.tables.length; var subt; offs.push(noffset); var format = bin.readUshort(data, noffset); if (format == 0) subt = Typr.cmap.parse0(data, noffset); else if (format == 4) subt = Typr.cmap.parse4(data, noffset); else if (format == 6) subt = Typr.cmap.parse6(data, noffset); else if (format == 12) subt = Typr.cmap.parse12(data, noffset); else console.log("unknown format: " + format, platformID, encodingID, noffset); obj.tables.push(subt); } if (obj[id] != null) throw "multiple tables for one platform+encoding"; obj[id] = tind; } return obj; }; Typr.cmap.parse0 = function(data, offset) { var bin = Typr._bin; var obj = {}; obj.format = bin.readUshort(data, offset); offset += 2; var len = bin.readUshort(data, offset); offset += 2; bin.readUshort(data, offset); offset += 2; obj.map = []; for (var i = 0; i < len - 6; i++) obj.map.push(data[offset + i]); return obj; }; Typr.cmap.parse4 = function(data, offset) { var bin = Typr._bin; var offset0 = offset; var obj = {}; obj.format = bin.readUshort(data, offset); offset += 2; var length = bin.readUshort(data, offset); offset += 2; bin.readUshort(data, offset); offset += 2; var segCountX2 = bin.readUshort(data, offset); offset += 2; var segCount = segCountX2 / 2; obj.searchRange = bin.readUshort(data, offset); offset += 2; obj.entrySelector = bin.readUshort(data, offset); offset += 2; obj.rangeShift = bin.readUshort(data, offset); offset += 2; obj.endCount = bin.readUshorts(data, offset, segCount); offset += segCount * 2; offset += 2; obj.startCount = bin.readUshorts(data, offset, segCount); offset += segCount * 2; obj.idDelta = []; for (var i = 0; i < segCount; i++) { obj.idDelta.push(bin.readShort(data, offset)); offset += 2; } obj.idRangeOffset = bin.readUshorts(data, offset, segCount); offset += segCount * 2; obj.glyphIdArray = []; while (offset < offset0 + length) { obj.glyphIdArray.push(bin.readUshort(data, offset)); offset += 2; } return obj; }; Typr.cmap.parse6 = function(data, offset) { var bin = Typr._bin; var obj = {}; obj.format = bin.readUshort(data, offset); offset += 2; bin.readUshort(data, offset); offset += 2; bin.readUshort(data, offset); offset += 2; obj.firstCode = bin.readUshort(data, offset); offset += 2; var entryCount = bin.readUshort(data, offset); offset += 2; obj.glyphIdArray = []; for (var i = 0; i < entryCount; i++) { obj.glyphIdArray.push(bin.readUshort(data, offset)); offset += 2; } return obj; }; Typr.cmap.parse12 = function(data, offset) { var bin = Typr._bin; var obj = {}; obj.format = bin.readUshort(data, offset); offset += 2; offset += 2; bin.readUint(data, offset); offset += 4; bin.readUint(data, offset); offset += 4; var nGroups = bin.readUint(data, offset); offset += 4; obj.groups = []; for (var i = 0; i < nGroups; i++) { var off = offset + i * 12; var startCharCode = bin.readUint(data, off + 0); var endCharCode = bin.readUint(data, off + 4); var startGlyphID = bin.readUint(data, off + 8); obj.groups.push([startCharCode, endCharCode, startGlyphID]); } return obj; }; Typr.glyf = {}; Typr.glyf.parse = function(data, offset, length, font) { var obj = []; for (var g = 0; g < font.maxp.numGlyphs; g++) obj.push(null); return obj; }; Typr.glyf._parseGlyf = function(font, g) { var bin = Typr._bin; var data = font._data; var offset = Typr._tabOffset(data, "glyf") + font.loca[g]; if (font.loca[g] == font.loca[g + 1]) return null; var gl = {}; gl.noc = bin.readShort(data, offset); offset += 2; gl.xMin = bin.readShort(data, offset); offset += 2; gl.yMin = bin.readShort(data, offset); offset += 2; gl.xMax = bin.readShort(data, offset); offset += 2; gl.yMax = bin.readShort(data, offset); offset += 2; if (gl.xMin >= gl.xMax || gl.yMin >= gl.yMax) return null; if (gl.noc > 0) { gl.endPts = []; for (var i = 0; i < gl.noc; i++) { gl.endPts.push(bin.readUshort(data, offset)); offset += 2; } var instructionLength = bin.readUshort(data, offset); offset += 2; if (data.length - offset < instructionLength) return null; gl.instructions = bin.readBytes(data, offset, instructionLength); offset += instructionLength; var crdnum = gl.endPts[gl.noc - 1] + 1; gl.flags = []; for (var i = 0; i < crdnum; i++) { var flag = data[offset]; offset++; gl.flags.push(flag); if ((flag & 8) != 0) { var rep = data[offset]; offset++; for (var j = 0; j < rep; j++) { gl.flags.push(flag); i++; } } } gl.xs = []; for (var i = 0; i < crdnum; i++) { var i8 = (gl.flags[i] & 2) != 0, same = (gl.flags[i] & 16) != 0; if (i8) { gl.xs.push(same ? data[offset] : -data[offset]); offset++; } else { if (same) gl.xs.push(0); else { gl.xs.push(bin.readShort(data, offset)); offset += 2; } } } gl.ys = []; for (var i = 0; i < crdnum; i++) { var i8 = (gl.flags[i] & 4) != 0, same = (gl.flags[i] & 32) != 0; if (i8) { gl.ys.push(same ? data[offset] : -data[offset]); offset++; } else { if (same) gl.ys.push(0); else { gl.ys.push(bin.readShort(data, offset)); offset += 2; } } } var x = 0, y = 0; for (var i = 0; i < crdnum; i++) { x += gl.xs[i]; y += gl.ys[i]; gl.xs[i] = x; gl.ys[i] = y; } } else { var ARG_1_AND_2_ARE_WORDS = 1 << 0; var ARGS_ARE_XY_VALUES = 1 << 1; var WE_HAVE_A_SCALE = 1 << 3; var MORE_COMPONENTS = 1 << 5; var WE_HAVE_AN_X_AND_Y_SCALE = 1 << 6; var WE_HAVE_A_TWO_BY_TWO = 1 << 7; var WE_HAVE_INSTRUCTIONS = 1 << 8; gl.parts = []; var flags; do { flags = bin.readUshort(data, offset); offset += 2; var part = { m: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 }, p1: -1, p2: -1 }; gl.parts.push(part); part.glyphIndex = bin.readUshort(data, offset); offset += 2; if (flags & ARG_1_AND_2_ARE_WORDS) { var arg1 = bin.readShort(data, offset); offset += 2; var arg2 = bin.readShort(data, offset); offset += 2; } else { var arg1 = bin.readInt8(data, offset); offset++; var arg2 = bin.readInt8(data, offset); offset++; } if (flags & ARGS_ARE_XY_VALUES) { part.m.tx = arg1; part.m.ty = arg2; } else { part.p1 = arg1; part.p2 = arg2; } if (flags & WE_HAVE_A_SCALE) { part.m.a = part.m.d = bin.readF2dot14(data, offset); offset += 2; } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) { part.m.a = bin.readF2dot14(data, offset); offset += 2; part.m.d = bin.readF2dot14(data, offset); offset += 2; } else if (flags & WE_HAVE_A_TWO_BY_TWO) { part.m.a = bin.readF2dot14(data, offset); offset += 2; part.m.b = bin.readF2dot14(data, offset); offset += 2; part.m.c = bin.readF2dot14(data, offset); offset += 2; part.m.d = bin.readF2dot14(data, offset); offset += 2; } } while (flags & MORE_COMPONENTS); if (flags & WE_HAVE_INSTRUCTIONS) { var numInstr = bin.readUshort(data, offset); offset += 2; gl.instr = []; for (var i = 0; i < numInstr; i++) { gl.instr.push(data[offset]); offset++; } } } return gl; }; Typr.GPOS = {}; Typr.GPOS.parse = function(data, offset, length, font) { return Typr._lctf.parse(data, offset, length, font, Typr.GPOS.subt); }; Typr.GPOS.subt = function(data, ltype, offset) { if (ltype != 2) return null; var bin = Typr._bin, offset0 = offset, tab = {}; tab.format = bin.readUshort(data, offset); offset += 2; var covOff = bin.readUshort(data, offset); offset += 2; tab.coverage = Typr._lctf.readCoverage(data, covOff + offset0); tab.valFmt1 = bin.readUshort(data, offset); offset += 2; tab.valFmt2 = bin.readUshort(data, offset); offset += 2; var ones1 = Typr._lctf.numOfOnes(tab.valFmt1); var ones2 = Typr._lctf.numOfOnes(tab.valFmt2); if (tab.format == 1) { tab.pairsets = []; var count = bin.readUshort(data, offset); offset += 2; for (var i = 0; i < count; i++) { var psoff = bin.readUshort(data, offset); offset += 2; psoff += offset0; var pvcount = bin.readUshort(data, psoff); psoff += 2; var arr = []; for (var j = 0; j < pvcount; j++) { var gid2 = bin.readUshort(data, psoff); psoff += 2; var value1, value2; if (tab.valFmt1 != 0) { value1 = Typr._lctf.readValueRecord(data, psoff, tab.valFmt1); psoff += ones1 * 2; } if (tab.valFmt2 != 0) { value2 = Typr._lctf.readValueRecord(data, psoff, tab.valFmt2); psoff += ones2 * 2; } arr.push({ gid2, val1: value1, val2: value2 }); } tab.pairsets.push(arr); } } if (tab.format == 2) { var classDef1 = bin.readUshort(data, offset); offset += 2; var classDef2 = bin.readUshort(data, offset); offset += 2; var class1Count = bin.readUshort(data, offset); offset += 2; var class2Count = bin.readUshort(data, offset); offset += 2; tab.classDef1 = Typr._lctf.readClassDef(data, offset0 + classDef1); tab.classDef2 = Typr._lctf.readClassDef(data, offset0 + classDef2); tab.matrix = []; for (var i = 0; i < class1Count; i++) { var row = []; for (var j = 0; j < class2Count; j++) { var value1 = null, value2 = null; if (tab.valFmt1 != 0) { value1 = Typr._lctf.readValueRecord(data, offset, tab.valFmt1); offset += ones1 * 2; } if (tab.valFmt2 != 0) { value2 = Typr._lctf.readValueRecord(data, offset, tab.valFmt2); offset += ones2 * 2; } row.push({ val1: value1, val2: value2 }); } tab.matrix.push(row); } } return tab; }; Typr.GSUB = {}; Typr.GSUB.parse = function(data, offset, length, font) { return Typr._lctf.parse(data, offset, length, font, Typr.GSUB.subt); }; Typr.GSUB.subt = function(data, ltype, offset) { var bin = Typr._bin, offset0 = offset, tab = {}; if (ltype != 1 && ltype != 4 && ltype != 5) return null; tab.fmt = bin.readUshort(data, offset); offset += 2; var covOff = bin.readUshort(data, offset); offset += 2; tab.coverage = Typr._lctf.readCoverage(data, covOff + offset0); if (ltype == 1) { if (tab.fmt == 1) { tab.delta = bin.readShort(data, offset); offset += 2; } else if (tab.fmt == 2) { var cnt = bin.readUshort(data, offset); offset += 2; tab.newg = bin.readUshorts(data, offset, cnt); offset += tab.newg.length * 2; } } else if (ltype == 4) { tab.vals = []; var cnt = bin.readUshort(data, offset); offset += 2; for (var i = 0; i < cnt; i++) { var loff = bin.readUshort(data, offset); offset += 2; tab.vals.push(Typr.GSUB.readLigatureSet(data, offset0 + loff)); } } else if (ltype == 5) { if (tab.fmt == 2) { var cDefOffset = bin.readUshort(data, offset); offset += 2; tab.cDef = Typr._lctf.readClassDef(data, offset0 + cDefOffset); tab.scset = []; var subClassSetCount = bin.readUshort(data, offset); offset += 2; for (var i = 0; i < subClassSetCount; i++) { var scsOff = bin.readUshort(data, offset); offset += 2; tab.scset.push(scsOff == 0 ? null : Typr.GSUB.readSubClassSet(data, offset0 + scsOff)); } } else console.log("unknown table format", tab.fmt); } return tab; }; Typr.GSUB.readSubClassSet = function(data, offset) { var rUs = Typr._bin.readUshort, offset0 = offset, lset = []; var cnt = rUs(data, offset); offset += 2; for (var i = 0; i < cnt; i++) { var loff = rUs(data, offset); offset += 2; lset.push(Typr.GSUB.readSubClassRule(data, offset0 + loff)); } return lset; }; Typr.GSUB.readSubClassRule = function(data, offset) { var rUs = Typr._bin.readUshort, rule2 = {}; var gcount = rUs(data, offset); offset += 2; var scount = rUs(data, offset); offset += 2; rule2.input = []; for (var i = 0; i < gcount - 1; i++) { rule2.input.push(rUs(data, offset)); offset += 2; } rule2.substLookupRecords = Typr.GSUB.readSubstLookupRecords(data, offset, scount); return rule2; }; Typr.GSUB.readSubstLookupRecords = function(data, offset, cnt) { var rUs = Typr._bin.readUshort; var out = []; for (var i = 0; i < cnt; i++) { out.push(rUs(data, offset), rUs(data, offset + 2)); offset += 4; } return out; }; Typr.GSUB.readChainSubClassSet = function(data, offset) { var bin = Typr._bin, offset0 = offset, lset = []; var cnt = bin.readUshort(data, offset); offset += 2; for (var i = 0; i < cnt; i++) { var loff = bin.readUshort(data, offset); offset += 2; lset.push(Typr.GSUB.readChainSubClassRule(data, offset0 + loff)); } return lset; }; Typr.GSUB.readChainSubClassRule = function(data, offset) { var bin = Typr._bin, rule2 = {}; var pps = ["backtrack", "input", "lookahead"]; for (var pi = 0; pi < pps.length; pi++) { var cnt = bin.readUshort(data, offset); offset += 2; if (pi == 1) cnt--; rule2[pps[pi]] = bin.readUshorts(data, offset, cnt); offset += rule2[pps[pi]].length * 2; } var cnt = bin.readUshort(data, offset); offset += 2; rule2.subst = bin.readUshorts(data, offset, cnt * 2); offset += rule2.subst.length * 2; return rule2; }; Typr.GSUB.readLigatureSet = function(data, offset) { var bin = Typr._bin, offset0 = offset, lset = []; var lcnt = bin.readUshort(data, offset); offset += 2; for (var j = 0; j < lcnt; j++) { var loff = bin.readUshort(data, offset); offset += 2; lset.push(Typr.GSUB.readLigature(data, offset0 + loff)); } return lset; }; Typr.GSUB.readLigature = function(data, offset) { var bin = Typr._bin, lig = { chain: [] }; lig.nglyph = bin.readUshort(data, offset); offset += 2; var ccnt = bin.readUshort(data, offset); offset += 2; for (var k = 0; k < ccnt - 1; k++) { lig.chain.push(bin.readUshort(data, offset)); offset += 2; } return lig; }; Typr.head = {}; Typr.head.parse = function(data, offset, length) { var bin = Typr._bin; var obj = {}; bin.readFixed(data, offset); offset += 4; obj.fontRevision = bin.readFixed(data, offset); offset += 4; bin.readUint(data, offset); offset += 4; bin.readUint(data, offset); offset += 4; obj.flags = bin.readUshort(data, offset); offset += 2; obj.unitsPerEm = bin.readUshort(data, offset); offset += 2; obj.created = bin.readUint64(data, offset); offset += 8; obj.modified = bin.readUint64(data, offset); offset += 8; obj.xMin = bin.readShort(data, offset); offset += 2; obj.yMin = bin.readShort(data, offset); offset += 2; obj.xMax = bin.readShort(data, offset); offset += 2; obj.yMax = bin.readShort(data, offset); offset += 2; obj.macStyle = bin.readUshort(data, offset); offset += 2; obj.lowestRecPPEM = bin.readUshort(data, offset); offset += 2; obj.fontDirectionHint = bin.readShort(data, offset); offset += 2; obj.indexToLocFormat = bin.readShort(data, offset); offset += 2; obj.glyphDataFormat = bin.readShort(data, offset); offset += 2; return obj; }; Typr.hhea = {}; Typr.hhea.parse = function(data, offset, length) { var bin = Typr._bin; var obj = {}; bin.readFixed(data, offset); offset += 4; obj.ascender = bin.readShort(data, offset); offset += 2; obj.descender = bin.readShort(data, offset); offset += 2; obj.lineGap = bin.readShort(data, offset); offset += 2; obj.advanceWidthMax = bin.readUshort(data, offset); offset += 2; obj.minLeftSideBearing = bin.readShort(data, offset); offset += 2; obj.minRightSideBearing = bin.readShort(data, offset); offset += 2; obj.xMaxExtent = bin.readShort(data, offset); offset += 2; obj.caretSlopeRise = bin.readShort(data, offset); offset += 2; obj.caretSlopeRun = bin.readShort(data, offset); offset += 2; obj.caretOffset = bin.readShort(data, offset); offset += 2; offset += 4 * 2; obj.metricDataFormat = bin.readShort(data, offset); offset += 2; obj.numberOfHMetrics = bin.readUshort(data, offset); offset += 2; return obj; }; Typr.hmtx = {}; Typr.hmtx.parse = function(data, offset, length, font) { var bin = Typr._bin; var obj = {}; obj.aWidth = []; obj.lsBearing = []; var aw = 0, lsb = 0; for (var i = 0; i < font.maxp.numGlyphs; i++) { if (i < font.hhea.numberOfHMetrics) { aw = bin.readUshort(data, offset); offset += 2; lsb = bin.readShort(data, offset); offset += 2; } obj.aWidth.push(aw); obj.lsBearing.push(lsb); } return obj; }; Typr.kern = {}; Typr.kern.parse = function(data, offset, length, font) { var bin = Typr._bin; var version = bin.readUshort(data, offset); offset += 2; if (version == 1) return Typr.kern.parseV1(data, offset - 2, length, font); var nTables = bin.readUshort(data, offset); offset += 2; var map = { glyph1: [], rval: [] }; for (var i = 0; i < nTables; i++) { offset += 2; var length = bin.readUshort(data, offset); offset += 2; var coverage = bin.readUshort(data, offset); offset += 2; var format = coverage >>> 8; format &= 15; if (format == 0) offset = Typr.kern.readFormat0(data, offset, map); else throw "unknown kern table format: " + format; } return map; }; Typr.kern.parseV1 = function(data, offset, length, font) { var bin = Typr._bin; bin.readFixed(data, offset); offset += 4; var nTables = bin.readUint(data, offset); offset += 4; var map = { glyph1: [], rval: [] }; for (var i = 0; i < nTables; i++) { bin.readUint(data, offset); offset += 4; var coverage = bin.readUshort(data, offset); offset += 2; bin.readUshort(data, offset); offset += 2; var format = coverage >>> 8; format &= 15; if (format == 0) offset = Typr.kern.readFormat0(data, offset, map); else throw "unknown kern table format: " + format; } return map; }; Typr.kern.readFormat0 = function(data, offset, map) { var bin = Typr._bin; var pleft = -1; var nPairs = bin.readUshort(data, offset); offset += 2; bin.readUshort(data, offset); offset += 2; bin.readUshort(data, offset); offset += 2; bin.readUshort(data, offset); offset += 2; for (var j = 0; j < nPairs; j++) { var left = bin.readUshort(data, offset); offset += 2; var right = bin.readUshort(data, offset); offset += 2; var value = bin.readShort(data, offset); offset += 2; if (left != pleft) { map.glyph1.push(left); map.rval.push({ glyph2: [], vals: [] }); } var rval = map.rval[map.rval.length - 1]; rval.glyph2.push(right); rval.vals.push(value); pleft = left; } return offset; }; Typr.loca = {}; Typr.loca.parse = function(data, offset, length, font) { var bin = Typr._bin; var obj = []; var ver = font.head.indexToLocFormat; var len = font.maxp.numGlyphs + 1; if (ver == 0) for (var i = 0; i < len; i++) obj.push(bin.readUshort(data, offset + (i << 1)) << 1); if (ver == 1) for (var i = 0; i < len; i++) obj.push(bin.readUint(data, offset + (i << 2))); return obj; }; Typr.maxp = {}; Typr.maxp.parse = function(data, offset, length) { var bin = Typr._bin; var obj = {}; var ver = bin.readUint(data, offset); offset += 4; obj.numGlyphs = bin.readUshort(data, offset); offset += 2; if (ver == 65536) { obj.maxPoints = bin.readUshort(data, offset); offset += 2; obj.maxContours = bin.readUshort(data, offset); offset += 2; obj.maxCompositePoints = bin.readUshort(data, offset); offset += 2; obj.maxCompositeContours = bin.readUshort(data, offset); offset += 2; obj.maxZones = bin.readUshort(data, offset); offset += 2; obj.maxTwilightPoints = bin.readUshort(data, offset); offset += 2; obj.maxStorage = bin.readUshort(data, offset); offset += 2; obj.maxFunctionDefs = bin.readUshort(data, offset); offset += 2; obj.maxInstructionDefs = bin.readUshort(data, offset); offset += 2; obj.maxStackElements = bin.readUshort(data, offset); offset += 2; obj.maxSizeOfInstructions = bin.readUshort(data, offset); offset += 2; obj.maxComponentElements = bin.readUshort(data, offset); offset += 2; obj.maxComponentDepth = bin.readUshort(data, offset); offset += 2; } return obj; }; Typr.name = {}; Typr.name.parse = function(data, offset, length) { var bin = Typr._bin; var obj = {}; bin.readUshort(data, offset); offset += 2; var count = bin.readUshort(data, offset); offset += 2; bin.readUshort(data, offset); offset += 2; var offset0 = offset; for (var i = 0; i < count; i++) { var platformID = bin.readUshort(data, offset); offset += 2; var encodingID = bin.readUshort(data, offset); offset += 2; var languageID = bin.readUshort(data, offset); offset += 2; var nameID = bin.readUshort(data, offset); offset += 2; var length = bin.readUshort(data, offset); offset += 2; var noffset = bin.readUshort(data, offset); offset += 2; var plat = "p" + platformID; if (obj[plat] == null) obj[plat] = {}; var names = ["copyright", "fontFamily", "fontSubfamily", "ID", "fullName", "version", "postScriptName", "trademark", "manufacturer", "designer", "description", "urlVendor", "urlDesigner", "licence", "licenceURL", "---", "typoFamilyName", "typoSubfamilyName", "compatibleFull", "sampleText", "postScriptCID", "wwsFamilyName", "wwsSubfamilyName", "lightPalette", "darkPalette"]; var cname = names[nameID]; var soff = offset0 + count * 12 + noffset; var str; if (platformID == 0) str = bin.readUnicode(data, soff, length / 2); else if (platformID == 3 && encodingID == 0) str = bin.readUnicode(data, soff, length / 2); else if (encodingID == 0) str = bin.readASCII(data, soff, length); else if (encodingID == 1) str = bin.readUnicode(data, soff, length / 2); else if (encodingID == 3) str = bin.readUnicode(data, soff, length / 2); else if (platformID == 1) { str = bin.readASCII(data, soff, length); console.log("reading unknown MAC encoding " + encodingID + " as ASCII"); } else throw "unknown encoding " + encodingID + ", platformID: " + platformID; obj[plat][cname] = str; obj[plat]._lang = languageID; } for (var p in obj) if (obj[p].postScriptName != null && obj[p]._lang == 1033) return obj[p]; for (var p in obj) if (obj[p].postScriptName != null && obj[p]._lang == 3084) return obj[p]; for (var p in obj) if (obj[p].postScriptName != null) return obj[p]; var tname; for (var p in obj) { tname = p; break; } console.log("returning name table with languageID " + obj[tname]._lang); return obj[tname]; }; Typr["OS/2"] = {}; Typr["OS/2"].parse = function(data, offset, length) { var bin = Typr._bin; var ver = bin.readUshort(data, offset); offset += 2; var obj = {}; if (ver == 0) Typr["OS/2"].version0(data, offset, obj); else if (ver == 1) Typr["OS/2"].version1(data, offset, obj); else if (ver == 2 || ver == 3 || ver == 4) Typr["OS/2"].version2(data, offset, obj); else if (ver == 5) Typr["OS/2"].version5(data, offset, obj); else throw "unknown OS/2 table version: " + ver; return obj; }; Typr["OS/2"].version0 = function(data, offset, obj) { var bin = Typr._bin; obj.xAvgCharWidth = bin.readShort(data, offset); offset += 2; obj.usWeightClass = bin.readUshort(data, offset); offset += 2; obj.usWidthClass = bin.readUshort(data, offset); offset += 2; obj.fsType = bin.readUshort(data, offset); offset += 2; obj.ySubscriptXSize = bin.readShort(data, offset); offset += 2; obj.ySubscriptYSize = bin.readShort(data, offset); offset += 2; obj.ySubscriptXOffset = bin.readShort(data, offset); offset += 2; obj.ySubscriptYOffset = bin.readShort(data, offset); offset += 2; obj.ySuperscriptXSize = bin.readShort(data, offset); offset += 2; obj.ySuperscriptYSize = bin.readShort(data, offset); offset += 2; obj.ySuperscriptXOffset = bin.readShort(data, offset); offset += 2; obj.ySuperscriptYOffset = bin.readShort(data, offset); offset += 2; obj.yStrikeoutSize = bin.readShort(data, offset); offset += 2; obj.yStrikeoutPosition = bin.readShort(data, offset); offset += 2; obj.sFamilyClass = bin.readShort(data, offset); offset += 2; obj.panose = bin.readBytes(data, offset, 10); offset += 10; obj.ulUnicodeRange1 = bin.readUint(data, offset); offset += 4; obj.ulUnicodeRange2 = bin.readUint(data, offset); offset += 4; obj.ulUnicodeRange3 = bin.readUint(data, offset); offset += 4; obj.ulUnicodeRange4 = bin.readUint(data, offset); offset += 4; obj.achVendID = [bin.readInt8(data, offset), bin.readInt8(data, offset + 1), bin.readInt8(data, offset + 2), bin.readInt8(data, offset + 3)]; offset += 4; obj.fsSelection = bin.readUshort(data, offset); offset += 2; obj.usFirstCharIndex = bin.readUshort(data, offset); offset += 2; obj.usLastCharIndex = bin.readUshort(data, offset); offset += 2; obj.sTypoAscender = bin.readShort(data, offset); offset += 2; obj.sTypoDescender = bin.readShort(data, offset); offset += 2; obj.sTypoLineGap = bin.readShort(data, offset); offset += 2; obj.usWinAscent = bin.readUshort(data, offset); offset += 2; obj.usWinDescent = bin.readUshort(data, offset); offset += 2; return offset; }; Typr["OS/2"].version1 = function(data, offset, obj) { var bin = Typr._bin; offset = Typr["OS/2"].version0(data, offset, obj); obj.ulCodePageRange1 = bin.readUint(data, offset); offset += 4; obj.ulCodePageRange2 = bin.readUint(data, offset); offset += 4; return offset; }; Typr["OS/2"].version2 = function(data, offset, obj) { var bin = Typr._bin; offset = Typr["OS/2"].version1(data, offset, obj); obj.sxHeight = bin.readShort(data, offset); offset += 2; obj.sCapHeight = bin.readShort(data, offset); offset += 2; obj.usDefault = bin.readUshort(data, offset); offset += 2; obj.usBreak = bin.readUshort(data, offset); offset += 2; obj.usMaxContext = bin.readUshort(data, offset); offset += 2; return offset; }; Typr["OS/2"].version5 = function(data, offset, obj) { var bin = Typr._bin; offset = Typr["OS/2"].version2(data, offset, obj); obj.usLowerOpticalPointSize = bin.readUshort(data, offset); offset += 2; obj.usUpperOpticalPointSize = bin.readUshort(data, offset); offset += 2; return offset; }; Typr.post = {}; Typr.post.parse = function(data, offset, length) { var bin = Typr._bin; var obj = {}; obj.version = bin.readFixed(data, offset); offset += 4; obj.italicAngle = bin.readFixed(data, offset); offset += 4; obj.underlinePosition = bin.readShort(data, offset); offset += 2; obj.underlineThickness = bin.readShort(data, offset); offset += 2; return obj; }; Typr.SVG = {}; Typr.SVG.parse = function(data, offset, length) { var bin = Typr._bin; var obj = { entries: [] }; var offset0 = offset; bin.readUshort(data, offset); offset += 2; var svgDocIndexOffset = bin.readUint(data, offset); offset += 4; bin.readUint(data, offset); offset += 4; offset = svgDocIndexOffset + offset0; var numEntries = bin.readUshort(data, offset); offset += 2; for (var i = 0; i < numEntries; i++) { var startGlyphID = bin.readUshort(data, offset); offset += 2; var endGlyphID = bin.readUshort(data, offset); offset += 2; var svgDocOffset = bin.readUint(data, offset); offset += 4; var svgDocLength = bin.readUint(data, offset); offset += 4; var sbuf = new Uint8Array(data.buffer, offset0 + svgDocOffset + svgDocIndexOffset, svgDocLength); var svg = bin.readUTF8(sbuf, 0, sbuf.length); for (var f = startGlyphID; f <= endGlyphID; f++) { obj.entries[f] = svg; } } return obj; }; Typr.SVG.toPath = function(str) { var pth = { cmds: [], crds: [] }; if (str == null) return pth; var prsr = new DOMParser(); var doc = prsr["parseFromString"](str, "image/svg+xml"); var svg = doc.firstChild; while (svg.tagName != "svg") svg = svg.nextSibling; var vb = svg.getAttribute("viewBox"); if (vb) vb = vb.trim().split(" ").map(parseFloat); else vb = [0, 0, 1e3, 1e3]; Typr.SVG._toPath(svg.children, pth); for (var i = 0; i < pth.crds.length; i += 2) { var x = pth.crds[i], y = pth.crds[i + 1]; x -= vb[0]; y -= vb[1]; y = -y; pth.crds[i] = x; pth.crds[i + 1] = y; } return pth; }; Typr.SVG._toPath = function(nds, pth, fill) { for (var ni = 0; ni < nds.length; ni++) { var nd = nds[ni], tn = nd.tagName; var cfl = nd.getAttribute("fill"); if (cfl == null) cfl = fill; if (tn == "g") Typr.SVG._toPath(nd.children, pth, cfl); else if (tn == "path") { pth.cmds.push(cfl ? cfl : "#000000"); var d = nd.getAttribute("d"); var toks = Typr.SVG._tokens(d); Typr.SVG._toksToPath(toks, pth); pth.cmds.push("X"); } else if (tn == "defs") ; else console.log(tn, nd); } }; Typr.SVG._tokens = function(d) { var ts = [], off = 0, rn = false, cn = ""; while (off < d.length) { var cc = d.charCodeAt(off), ch = d.charAt(off); off++; var isNum = 48 <= cc && cc <= 57 || ch == "." || ch == "-"; if (rn) { if (ch == "-") { ts.push(parseFloat(cn)); cn = ch; } else if (isNum) cn += ch; else { ts.push(parseFloat(cn)); if (ch != "," && ch != " ") ts.push(ch); rn = false; } } else { if (isNum) { cn = ch; rn = true; } else if (ch != "," && ch != " ") ts.push(ch); } } if (rn) ts.push(parseFloat(cn)); return ts; }; Typr.SVG._toksToPath = function(ts, pth) { var i = 0, x = 0, y = 0, ox = 0, oy = 0; var pc = { M: 2, L: 2, H: 1, V: 1, S: 4, C: 6 }; var cmds = pth.cmds, crds = pth.crds; while (i < ts.length) { var cmd = ts[i]; i++; if (cmd == "z") { cmds.push("Z"); x = ox; y = oy; } else { var cmu = cmd.toUpperCase(); var ps = pc[cmu], reps = Typr.SVG._reps(ts, i, ps); for (var j = 0; j < reps; j++) { var xi = 0, yi = 0; if (cmd != cmu) { xi = x; yi = y; } if (cmu == "M") { x = xi + ts[i++]; y = yi + ts[i++]; cmds.push("M"); crds.push(x, y); ox = x; oy = y; } else if (cmu == "L") { x = xi + ts[i++]; y = yi + ts[i++]; cmds.push("L"); crds.push(x, y); } else if (cmu == "H") { x = xi + ts[i++]; cmds.push("L"); crds.push(x, y); } else if (cmu == "V") { y = yi + ts[i++]; cmds.push("L"); crds.push(x, y); } else if (cmu == "C") { var x1 = xi + ts[i++], y1 = yi + ts[i++], x2 = xi + ts[i++], y2 = yi + ts[i++], x3 = xi + ts[i++], y3 = yi + ts[i++]; cmds.push("C"); crds.push(x1, y1, x2, y2, x3, y3); x = x3; y = y3; } else if (cmu == "S") { var co = Math.max(crds.length - 4, 0); var x1 = x + x - crds[co], y1 = y + y - crds[co + 1]; var x2 = xi + ts[i++], y2 = yi + ts[i++], x3 = xi + ts[i++], y3 = yi + ts[i++]; cmds.push("C"); crds.push(x1, y1, x2, y2, x3, y3); x = x3; y = y3; } else console.log("Unknown SVG command " + cmd); } } } }; Typr.SVG._reps = function(ts, off, ps) { var i = off; while (i < ts.length) { if (typeof ts[i] == "string") break; i += ps; } return (i - off) / ps; }; if (Typr == null) Typr = {}; if (Typr.U == null) Typr.U = {}; Typr.U.codeToGlyph = function(font, code) { var cmap = font.cmap; var tind = -1; if (cmap.p0e4 != null) tind = cmap.p0e4; else if (cmap.p3e1 != null) tind = cmap.p3e1; else if (cmap.p1e0 != null) tind = cmap.p1e0; if (tind == -1) throw "no familiar platform and encoding!"; var tab = cmap.tables[tind]; if (tab.format == 0) { if (code >= tab.map.length) return 0; return tab.map[code]; } else if (tab.format == 4) { var sind = -1; for (var i = 0; i < tab.endCount.length; i++) if (code <= tab.endCount[i]) { sind = i; break; } if (sind == -1) return 0; if (tab.startCount[sind] > code) return 0; var gli = 0; if (tab.idRangeOffset[sind] != 0) gli = tab.glyphIdArray[code - tab.startCount[sind] + (tab.idRangeOffset[sind] >> 1) - (tab.idRangeOffset.length - sind)]; else gli = code + tab.idDelta[sind]; return gli & 65535; } else if (tab.format == 12) { if (code > tab.groups[tab.groups.length - 1][1]) return 0; for (var i = 0; i < tab.groups.length; i++) { var grp = tab.groups[i]; if (grp[0] <= code && code <= grp[1]) return grp[2] + (code - grp[0]); } return 0; } else throw "unknown cmap table format " + tab.format; }; Typr.U.glyphToPath = function(font, gid) { var path = { cmds: [], crds: [] }; if (font.SVG && font.SVG.entries[gid]) { var p = font.SVG.entries[gid]; if (p == null) return path; if (typeof p == "string") { p = Typr.SVG.toPath(p); font.SVG.entries[gid] = p; } return p; } else if (font.CFF) { var state = { x: 0, y: 0, stack: [], nStems: 0, haveWidth: false, width: font.CFF.Private ? font.CFF.Private.defaultWidthX : 0, open: false }; Typr.U._drawCFF(font.CFF.CharStrings[gid], state, font.CFF, path); } else if (font.glyf) { Typr.U._drawGlyf(gid, font, path); } return path; }; Typr.U._drawGlyf = function(gid, font, path) { var gl = font.glyf[gid]; if (gl == null) gl = font.glyf[gid] = Typr.glyf._parseGlyf(font, gid); if (gl != null) { if (gl.noc > -1) Typr.U._simpleGlyph(gl, path); else Typr.U._compoGlyph(gl, font, path); } }; Typr.U._simpleGlyph = function(gl, p) { for (var c = 0; c < gl.noc; c++) { var i0 = c == 0 ? 0 : gl.endPts[c - 1] + 1; var il = gl.endPts[c]; for (var i = i0; i <= il; i++) { var pr = i == i0 ? il : i - 1; var nx = i == il ? i0 : i + 1; var onCurve = gl.flags[i] & 1; var prOnCurve = gl.flags[pr] & 1; var nxOnCurve = gl.flags[nx] & 1; var x = gl.xs[i], y = gl.ys[i]; if (i == i0) { if (onCurve) { if (prOnCurve) Typr.U.P.moveTo(p, gl.xs[pr], gl.ys[pr]); else { Typr.U.P.moveTo(p, x, y); continue; } } else { if (prOnCurve) Typr.U.P.moveTo(p, gl.xs[pr], gl.ys[pr]); else Typr.U.P.moveTo(p, (gl.xs[pr] + x) / 2, (gl.ys[pr] + y) / 2); } } if (onCurve) { if (prOnCurve) Typr.U.P.lineTo(p, x, y); } else { if (nxOnCurve) Typr.U.P.qcurveTo(p, x, y, gl.xs[nx], gl.ys[nx]); else Typr.U.P.qcurveTo(p, x, y, (x + gl.xs[nx]) / 2, (y + gl.ys[nx]) / 2); } } Typr.U.P.closePath(p); } }; Typr.U._compoGlyph = function(gl, font, p) { for (var j = 0; j < gl.parts.length; j++) { var path = { cmds: [], crds: [] }; var prt = gl.parts[j]; Typr.U._drawGlyf(prt.glyphIndex, font, path); var m = prt.m; for (var i = 0; i < path.crds.length; i += 2) { var x = path.crds[i], y = path.crds[i + 1]; p.crds.push(x * m.a + y * m.b + m.tx); p.crds.push(x * m.c + y * m.d + m.ty); } for (var i = 0; i < path.cmds.length; i++) p.cmds.push(path.cmds[i]); } }; Typr.U._getGlyphClass = function(g, cd) { var intr = Typr._lctf.getInterval(cd, g); return intr == -1 ? 0 : cd[intr + 2]; }; Typr.U.getPairAdjustment = function(font, g1, g2) { if (font.GPOS) { var ltab = null; for (var i = 0; i < font.GPOS.featureList.length; i++) { var fl = font.GPOS.featureList[i]; if (fl.tag == "kern") { for (var j = 0; j < fl.tab.length; j++) if (font.GPOS.lookupList[fl.tab[j]].ltype == 2) ltab = font.GPOS.lookupList[fl.tab[j]]; } } if (ltab) { for (var i = 0; i < ltab.tabs.length; i++) { var tab = ltab.tabs[i]; var ind = Typr._lctf.coverageIndex(tab.coverage, g1); if (ind == -1) continue; var adj; if (tab.format == 1) { var right = tab.pairsets[ind]; for (var j = 0; j < right.length; j++) if (right[j].gid2 == g2) adj = right[j]; if (adj == null) continue; } else if (tab.format == 2) { var c1 = Typr.U._getGlyphClass(g1, tab.classDef1); var c2 = Typr.U._getGlyphClass(g2, tab.classDef2); var adj = tab.matrix[c1][c2]; } return adj.val1[2]; } } } if (font.kern) { var ind1 = font.kern.glyph1.indexOf(g1); if (ind1 != -1) { var ind2 = font.kern.rval[ind1].glyph2.indexOf(g2); if (ind2 != -1) return font.kern.rval[ind1].vals[ind2]; } } return 0; }; Typr.U.stringToGlyphs = function(font, str) { var gls = []; for (var i = 0; i < str.length; i++) { var cc = str.codePointAt(i); if (cc > 65535) i++; gls.push(Typr.U.codeToGlyph(font, cc)); } var gsub = font["GSUB"]; if (gsub == null) return gls; var llist = gsub.lookupList, flist = gsub.featureList; var wsep = '\n " ,.:;!?() ،'; var R = "آأؤإاةدذرزوٱٲٳٵٶٷڈډڊڋڌڍڎڏڐڑڒړڔڕږڗژڙۀۃۄۅۆۇۈۉۊۋۍۏےۓەۮۯܐܕܖܗܘܙܞܨܪܬܯݍݙݚݛݫݬݱݳݴݸݹࡀࡆࡇࡉࡔࡧࡩࡪࢪࢫࢬࢮࢱࢲࢹૅેૉ૊૎૏ૐ૑૒૝ૡ૤૯஁ஃ஄அஉ஌எஏ஑னப஫஬"; var L = "ꡲ્૗"; for (var ci = 0; ci < gls.length; ci++) { var gl = gls[ci]; var slft = ci == 0 || wsep.indexOf(str[ci - 1]) != -1; var srgt = ci == gls.length - 1 || wsep.indexOf(str[ci + 1]) != -1; if (!slft && R.indexOf(str[ci - 1]) != -1) slft = true; if (!srgt && R.indexOf(str[ci]) != -1) srgt = true; if (!srgt && L.indexOf(str[ci + 1]) != -1) srgt = true; if (!slft && L.indexOf(str[ci]) != -1) slft = true; var feat = null; if (slft) feat = srgt ? "isol" : "init"; else feat = srgt ? "fina" : "medi"; for (var fi = 0; fi < flist.length; fi++) { if (flist[fi].tag != feat) continue; for (var ti = 0; ti < flist[fi].tab.length; ti++) { var tab = llist[flist[fi].tab[ti]]; if (tab.ltype != 1) continue; Typr.U._applyType1(gls, ci, tab); } } } var cligs = ["rlig", "liga", "mset"]; for (var ci = 0; ci < gls.length; ci++) { var gl = gls[ci]; var rlim = Math.min(3, gls.length - ci - 1); for (var fi = 0; fi < flist.length; fi++) { var fl = flist[fi]; if (cligs.indexOf(fl.tag) == -1) continue; for (var ti = 0; ti < fl.tab.length; ti++) { var tab = llist[fl.tab[ti]]; for (var j = 0; j < tab.tabs.length; j++) { if (tab.tabs[j] == null) continue; var ind = Typr._lctf.coverageIndex(tab.tabs[j].coverage, gl); if (ind == -1) continue; if (tab.ltype == 4) { var vals = tab.tabs[j].vals[ind]; for (var k = 0; k < vals.length; k++) { var lig = vals[k], rl = lig.chain.length; if (rl > rlim) continue; var good = true; for (var l = 0; l < rl; l++) if (lig.chain[l] != gls[ci + (1 + l)]) good = false; if (!good) continue; gls[ci] = lig.nglyph; for (var l = 0; l < rl; l++) gls[ci + l + 1] = -1; } } else if (tab.ltype == 5) { var ltab = tab.tabs[j]; if (ltab.fmt != 2) continue; var cind = Typr._lctf.getInterval(ltab.cDef, gl); var cls = ltab.cDef[cind + 2], scs = ltab.scset[cls]; for (var i = 0; i < scs.length; i++) { var sc = scs[i], inp = sc.input; if (inp.length > rlim) continue; var good = true; for (var l = 0; l < inp.length; l++) { var cind2 = Typr._lctf.getInterval(ltab.cDef, gls[ci + 1 + l]); if (cind == -1 && ltab.cDef[cind2 + 2] != inp[l]) { good = false; break; } } if (!good) continue; var lrs = sc.substLookupRecords; for (var k = 0; k < lrs.length; k += 2) { lrs[k]; lrs[k + 1]; } } } } } } } return gls; }; Typr.U._applyType1 = function(gls, ci, tab) { var gl = gls[ci]; for (var j = 0; j < tab.tabs.length; j++) { var ttab = tab.tabs[j]; var ind = Typr._lctf.coverageIndex(ttab.coverage, gl); if (ind == -1) continue; if (ttab.fmt == 1) gls[ci] = gls[ci] + ttab.delta; else gls[ci] = ttab.newg[ind]; } }; Typr.U.glyphsToPath = function(font, gls, clr) { var tpath = { cmds: [], crds: [] }; var x = 0; for (var i = 0; i < gls.length; i++) { var gid = gls[i]; if (gid == -1) continue; var gid2 = i < gls.length - 1 && gls[i + 1] != -1 ? gls[i + 1] : 0; var path = Typr.U.glyphToPath(font, gid); for (var j = 0; j < path.crds.length; j += 2) { tpath.crds.push(path.crds[j] + x); tpath.crds.push(path.crds[j + 1]); } if (clr) tpath.cmds.push(clr); for (var j = 0; j < path.cmds.length; j++) tpath.cmds.push(path.cmds[j]); if (clr) tpath.cmds.push("X"); x += font.hmtx.aWidth[gid]; if (i < gls.length - 1) x += Typr.U.getPairAdjustment(font, gid, gid2); } return tpath; }; Typr.U.pathToSVG = function(path, prec) { if (prec == null) prec = 5; var out = [], co = 0, lmap = { M: 2, L: 2, Q: 4, C: 6 }; for (var i = 0; i < path.cmds.length; i++) { var cmd = path.cmds[i], cn = co + (lmap[cmd] ? lmap[cmd] : 0); out.push(cmd); while (co < cn) { var c = path.crds[co++]; out.push(parseFloat(c.toFixed(prec)) + (co == cn ? "" : " ")); } } return out.join(""); }; Typr.U.pathToContext = function(path, ctx) { var c = 0, crds = path.crds; for (var j = 0; j < path.cmds.length; j++) { var cmd = path.cmds[j]; if (cmd == "M") { ctx.moveTo(crds[c], crds[c + 1]); c += 2; } else if (cmd == "L") { ctx.lineTo(crds[c], crds[c + 1]); c += 2; } else if (cmd == "C") { ctx.bezierCurveTo(crds[c], crds[c + 1], crds[c + 2], crds[c + 3], crds[c + 4], crds[c + 5]); c += 6; } else if (cmd == "Q") { ctx.quadraticCurveTo(crds[c], crds[c + 1], crds[c + 2], crds[c + 3]); c += 4; } else if (cmd.charAt(0) == "#") { ctx.beginPath(); ctx.fillStyle = cmd; } else if (cmd == "Z") { ctx.closePath(); } else if (cmd == "X") { ctx.fill(); } } }; Typr.U.P = {}; Typr.U.P.moveTo = function(p, x, y) { p.cmds.push("M"); p.crds.push(x, y); }; Typr.U.P.lineTo = function(p, x, y) { p.cmds.push("L"); p.crds.push(x, y); }; Typr.U.P.curveTo = function(p, a, b, c, d, e, f) { p.cmds.push("C"); p.crds.push(a, b, c, d, e, f); }; Typr.U.P.qcurveTo = function(p, a, b, c, d) { p.cmds.push("Q"); p.crds.push(a, b, c, d); }; Typr.U.P.closePath = function(p) { p.cmds.push("Z"); }; Typr.U._drawCFF = function(cmds, state, font, p) { var stack = state.stack; var nStems = state.nStems, haveWidth = state.haveWidth, width = state.width, open = state.open; var i = 0; var x = state.x, y = state.y, c1x = 0, c1y = 0, c2x = 0, c2y = 0, c3x = 0, c3y = 0, c4x = 0, c4y = 0, jpx = 0, jpy = 0; var o = { val: 0, size: 0 }; while (i < cmds.length) { Typr.CFF.getCharString(cmds, i, o); var v = o.val; i += o.size; if (v == "o1" || v == "o18") { var hasWidthArg; hasWidthArg = stack.length % 2 !== 0; if (hasWidthArg && !haveWidth) { width = stack.shift() + font.Private.nominalWidthX; } nStems += stack.length >> 1; stack.length = 0; haveWidth = true; } else if (v == "o3" || v == "o23") { var hasWidthArg; hasWidthArg = stack.length % 2 !== 0; if (hasWidthArg && !haveWidth) { width = stack.shift() + font.Private.nominalWidthX; } nStems += stack.length >> 1; stack.length = 0; haveWidth = true; } else if (v == "o4") { if (stack.length > 1 && !haveWidth) { width = stack.shift() + font.Private.nominalWidthX; haveWidth = true; } if (open) Typr.U.P.closePath(p); y += stack.pop(); Typr.U.P.moveTo(p, x, y); open = true; } else if (v == "o5") { while (stack.length > 0) { x += stack.shift(); y += stack.shift(); Typr.U.P.lineTo(p, x, y); } } else if (v == "o6" || v == "o7") { var count = stack.length; var isX = v == "o6"; for (var j = 0; j < count; j++) { var sval = stack.shift(); if (isX) x += sval; else y += sval; isX = !isX; Typr.U.P.lineTo(p, x, y); } } else if (v == "o8" || v == "o24") { var count = stack.length; var index = 0; while (index + 6 <= count) { c1x = x + stack.shift(); c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); x = c2x + stack.shift(); y = c2y + stack.shift(); Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y); index += 6; } if (v == "o24") { x += stack.shift(); y += stack.shift(); Typr.U.P.lineTo(p, x, y); } } else if (v == "o11") break; else if (v == "o1234" || v == "o1235" || v == "o1236" || v == "o1237") { if (v == "o1234") { c1x = x + stack.shift(); c1y = y; c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); jpx = c2x + stack.shift(); jpy = c2y; c3x = jpx + stack.shift(); c3y = c2y; c4x = c3x + stack.shift(); c4y = y; x = c4x + stack.shift(); Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, jpx, jpy); Typr.U.P.curveTo(p, c3x, c3y, c4x, c4y, x, y); } if (v == "o1235") { c1x = x + stack.shift(); c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); jpx = c2x + stack.shift(); jpy = c2y + stack.shift(); c3x = jpx + stack.shift(); c3y = jpy + stack.shift(); c4x = c3x + stack.shift(); c4y = c3y + stack.shift(); x = c4x + stack.shift(); y = c4y + stack.shift(); stack.shift(); Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, jpx, jpy); Typr.U.P.curveTo(p, c3x, c3y, c4x, c4y, x, y); } if (v == "o1236") { c1x = x + stack.shift(); c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); jpx = c2x + stack.shift(); jpy = c2y; c3x = jpx + stack.shift(); c3y = c2y; c4x = c3x + stack.shift(); c4y = c3y + stack.shift(); x = c4x + stack.shift(); Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, jpx, jpy); Typr.U.P.curveTo(p, c3x, c3y, c4x, c4y, x, y); } if (v == "o1237") { c1x = x + stack.shift(); c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); jpx = c2x + stack.shift(); jpy = c2y + stack.shift(); c3x = jpx + stack.shift(); c3y = jpy + stack.shift(); c4x = c3x + stack.shift(); c4y = c3y + stack.shift(); if (Math.abs(c4x - x) > Math.abs(c4y - y)) { x = c4x + stack.shift(); } else { y = c4y + stack.shift(); } Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, jpx, jpy); Typr.U.P.curveTo(p, c3x, c3y, c4x, c4y, x, y); } } else if (v == "o14") { if (stack.length > 0 && !haveWidth) { width = stack.shift() + font.nominalWidthX; haveWidth = true; } if (stack.length == 4) { var adx = stack.shift(); var ady = stack.shift(); var bchar = stack.shift(); var achar = stack.shift(); var bind = Typr.CFF.glyphBySE(font, bchar); var aind = Typr.CFF.glyphBySE(font, achar); Typr.U._drawCFF(font.CharStrings[bind], state, font, p); state.x = adx; state.y = ady; Typr.U._drawCFF(font.CharStrings[aind], state, font, p); } if (open) { Typr.U.P.closePath(p); open = false; } } else if (v == "o19" || v == "o20") { var hasWidthArg; hasWidthArg = stack.length % 2 !== 0; if (hasWidthArg && !haveWidth) { width = stack.shift() + font.Private.nominalWidthX; } nStems += stack.length >> 1; stack.length = 0; haveWidth = true; i += nStems + 7 >> 3; } else if (v == "o21") { if (stack.length > 2 && !haveWidth) { width = stack.shift() + font.Private.nominalWidthX; haveWidth = true; } y += stack.pop(); x += stack.pop(); if (open) Typr.U.P.closePath(p); Typr.U.P.moveTo(p, x, y); open = true; } else if (v == "o22") { if (stack.length > 1 && !haveWidth) { width = stack.shift() + font.Private.nominalWidthX; haveWidth = true; } x += stack.pop(); if (open) Typr.U.P.closePath(p); Typr.U.P.moveTo(p, x, y); open = true; } else if (v == "o25") { while (stack.length > 6) { x += stack.shift(); y += stack.shift(); Typr.U.P.lineTo(p, x, y); } c1x = x + stack.shift(); c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); x = c2x + stack.shift(); y = c2y + stack.shift(); Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y); } else if (v == "o26") { if (stack.length % 2) { x += stack.shift(); } while (stack.length > 0) { c1x = x; c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); x = c2x; y = c2y + stack.shift(); Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y); } } else if (v == "o27") { if (stack.length % 2) { y += stack.shift(); } while (stack.length > 0) { c1x = x + stack.shift(); c1y = y; c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); x = c2x + stack.shift(); y = c2y; Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y); } } else if (v == "o10" || v == "o29") { var obj = v == "o10" ? font.Private : font; if (stack.length == 0) { console.log("error: empty stack"); } else { var ind = stack.pop(); var subr = obj.Subrs[ind + obj.Bias]; state.x = x; state.y = y; state.nStems = nStems; state.haveWidth = haveWidth; state.width = width; state.open = open; Typr.U._drawCFF(subr, state, font, p); x = state.x; y = state.y; nStems = state.nStems; haveWidth = state.haveWidth; width = state.width; open = state.open; } } else if (v == "o30" || v == "o31") { var count, count1 = stack.length; var index = 0; var alternate = v == "o31"; count = count1 & ~2; index += count1 - count; while (index < count) { if (alternate) { c1x = x + stack.shift(); c1y = y; c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); y = c2y + stack.shift(); if (count - index == 5) { x = c2x + stack.shift(); index++; } else x = c2x; alternate = false; } else { c1x = x; c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); x = c2x + stack.shift(); if (count - index == 5) { y = c2y + stack.shift(); index++; } else y = c2y; alternate = true; } Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y); index += 4; } } else if ((v + "").charAt(0) == "o") { console.log("Unknown operation: " + v, cmds); throw v; } else stack.push(v); } state.x = x; state.y = y; state.nStems = nStems; state.haveWidth = haveWidth; state.width = width; state.open = open; }; var typr_js = Typr; const Typr$1 = /* @__PURE__ */ getDefaultExportFromCjs(typr_js); const decode = () => { var _a; const styleElements = _unsafeWindow.document.querySelectorAll("style"); let tipElement = null; styleElements.forEach((styleElement) => { var _a2; if (((_a2 = styleElement.textContent) == null ? void 0 : _a2.indexOf("font-cxsecret")) !== -1) { tipElement = styleElement; } }); if (!tipElement) return; const fontMatch = (_a = tipElement.textContent) == null ? void 0 : _a.match(/base64,([\w\W]+?)'/); if (!fontMatch) return; const fontData = base64ToUint8Array(fontMatch[1]); const font = Typr$1.parse(fontData); const table = JSON.parse(_GM_getResourceText("ttf")); let text = {}; for (let i = 19968; i < 40870; i++) { let t = Typr$1.U.codeToGlyph(font, i); if (!t) continue; t = Typr$1.U.glyphToPath(font, t); t = md5Exports.md5(JSON.stringify(t)).slice(24); text[i] = table[t]; } const fontElements = _unsafeWindow.document.querySelectorAll(".font-cxsecret"); fontElements.forEach((fontElement) => { let html = fontElement.innerHTML; Object.keys(text).forEach((key2) => { const regex = new RegExp(String.fromCharCode(key2), "g"); html = html.replace(regex, String.fromCharCode(text[key2])); }); fontElement.innerHTML = html; fontElement.classList.remove("font-cxsecret"); }); }; const base64ToUint8Array = (base64) => { const decodedData = atob(base64); const array = new Uint8Array(decodedData.length); for (let i = 0; i < decodedData.length; i++) { array[i] = decodedData.charCodeAt(i); } return array; }; const chaoxing = [ { type: "save", name: "学习通考试新版收录", match: () => location.href.includes("work/view") || location.href.includes("test/reVersionPaperMarkContentNew"), question: { html: ".questionLi", question: "h3.mark_name", options: "ul.mark_letter.colorDeep > li", type: ".colorShallow", workType: "zj", pageType: "cx" }, answerHook: (item) => { let quesType = removeHtml1($(item.html).find('span[class="colorShallow"]').html()); if (quesType === "") { return null; } let matchResult = quesType.match(/^\((.+?)\)/); if (matchResult !== null) { item.type = matchResult[1].split(",")[0]; } else { return null; } item.question = titleClean(item.question.split(quesType)[1].trim()).trim(); item.options = removeStartChar(item.options); let isT = $(item.html).find(".marking_dui").length > 0; let answer; switch (item.type) { case "单选题": case "多选题": item.type = item.type === "单选题" ? "0" : "1"; item.answer = $(item.html).find(".mark_answer>div>span.colorGreen:eq(0)").text().replace("正确答案:", "").trim().split("").map((xx) => { return item.options[xx.charCodeAt(0) - 65]; }); item.answer = item.answer.filter((item2) => item2 !== ""); if (item.answer.length === 0 && isT) { item.answer = $(item.html).find(".mark_answer>div>span.colorDeep:eq(0)").text().replace("我的答案:", "").trim().split("").map((xx) => { return item.options[xx.charCodeAt(0) - 65]; }); item.answer = item.answer.filter((item2) => item2 !== ""); } break; case "判断题": item.type = "3"; item.options = []; item.answer = $(item.html).find(".mark_answer>div>span.colorGreen:eq(0)").text().trim().split("").map((answer2) => { if (answer2.includes("正确") || answer2.includes("对") || answer2.includes("√")) { return "正确"; } else if (answer2.includes("错误") || answer2.includes("错") || answer2.includes("×")) { return "错误"; } else { return null; } }).filter((item2) => item2 !== null); item.answer = item.answer.filter((item2) => item2 !== ""); if (item.answer.length === 0) { answer = removeHtml1($(item.html).find(".mark_answer>div>span.colorDeep:eq(0)").html()); let [marking_dui, marking_cuo] = [".marking_dui", ".marking_cuo"].map((selector) => $(item.html).find(selector).length); if (marking_dui + marking_cuo === 0) { return null; } if (answer.includes("正确") || answer.includes("对") || answer.includes("√")) { item.answer = ["正确"]; } else if (answer.includes("错误") || answer.includes("错") || answer.includes("×")) { item.answer = ["错误"]; } else { return null; } if (marking_dui === 0 && marking_cuo !== 0) { item.answer = item.answer[0] === "正确" ? "错误" : "正确"; } } break; case "简答题": item.type = "4"; item.answer = removeHtml1($(item.html).find(".mark_answer>div>.colorGreen:eq(0)").html()).replace("正确答案:", "").trim(); if (item.answer.length < 10) { return null; } else { item.answer = [item.answer]; } break; case "名词解释": item.type = "5"; item.answer = removeHtml1($(item.html).find(".mark_answer>div>.colorGreen:eq(0)").html()).replace("正确答案:", "").trim(); if (item.answer.length < 10) { return null; } else { item.answer = [item.answer]; } break; case "计算题": item.type = "7"; item.answer = removeHtml1($(item.html).find(".mark_answer>div>.colorGreen:eq(0)").html()).replace("正确答案:", "").trim(); if (item.answer.length < 10) { return null; } else { item.answer = [item.answer]; } break; case "论述题": item.type = "6"; item.answer = removeHtml1($(item.html).find(".mark_answer>div>.colorGreen:eq(0)").html()).replace("正确答案:", "").trim(); if (item.answer.length < 10) { return null; } else { item.answer = [item.answer]; } break; case "填空题": item.type = "2"; item.answer = $(item.html).find(".mark_answer>div>.colorGreen:eq(0)>dd").map((index, element) => { return removeHtml1($(element).html()).replace(`(${index + 1})`, "").trim(); }).get(); break; default: return null; } return item; } }, { type: "hook", name: "hook", match: location.href.includes("work/selectWorkQuestionYiPiYue") && !location.href.includes("mooc2=1"), main: (data) => { if (location.href.includes("mooc2=0")) { _unsafeWindow.location.href = location.href.replace("mooc2=0", "mooc2=1"); } else { _unsafeWindow.location.href = location.href + "&mooc2=1"; } } }, { type: "save", name: "学习通作业收录新", match: () => location.href.includes("work/selectWorkQuestionYiPiYue") && location.href.includes("mooc2=1"), question: { html: ".TiMu", question: ".Zy_TItle .clearfix", options: "ul.Zy_ulTop li", type: ".newZy_TItle", workType: "zj", pageType: "cx" }, answerHook: (item) => { item.type = $(item.html).find(".newZy_TItle").text().replace(/【|】/g, "").trim(); let isT = $(item.html).find(".marking_dui").length > 0; removeHtml1($(item.html).find(".Py_addpy:eq(0)").html()); let answer; item.question = titleClean(item.question).trim(); switch (item.type) { case "单选题": case "多选题": item.type = item.type === "单选题" ? "0" : "1"; item.options = $(item.html).find("ul.Zy_ulTop li").map((index, element) => { let inx = $(element).find("i.fl").text().trim(); let optionText = removeHtml1($(element).html()); if (inx === "") { return optionText.trim(); } return optionText.split(inx)[1].trim(); }).get(); item.answer = $(item.html).find(".correctAnswer >.fl.answerCon").text().trim().split("").map((xx) => { return item.options[xx.charCodeAt(0) - 65]; }); if (item.answer.length === 0 && isT) { item.answer = $(item.html).find(".myAnswer > .fl.answerCon").text().trim().split("").map((xx) => { return item.options[xx.charCodeAt(0) - 65]; }); } break; case "判断题": item.type = "3"; item.answer = $(item.html).find(".correctAnswer > .fl.answerCon").text().trim().split("").map((answer2) => { if (answer2.includes("正确") || answer2.includes("对") || answer2.includes("√")) { return "正确"; } else if (answer2.includes("错误") || answer2.includes("错") || answer2.includes("×")) { return "错误"; } else { return null; } }).filter((item2) => item2 !== null); if (item.answer.length === 0) { answer = removeHtml1($(item.html).find(".fl.answerCon").html()); let [marking_dui, marking_cuo] = [".marking_dui", ".marking_cuo"].map((selector) => $(item.html).find(selector).length); if (marking_dui + marking_cuo === 0) { return null; } if (answer.includes("正确") || answer.includes("对") || answer.includes("√")) { item.answer = ["正确"]; } else if (answer.includes("错误") || answer.includes("错") || answer.includes("×")) { item.answer = ["错误"]; } else { return null; } if (marking_dui === 0 && marking_cuo !== 0) { item.answer = item.answer[0] === "正确" ? "错误" : "正确"; } } break; case "填空题": item.type = "2"; item.answer = $(item.html).find(".correctAnswerBx>.correctAnswer>p:not(.clear)").map((index, element) => { return removeHtml1($(element).html()).replace(`(${index + 1})`, "").trim(); }).get().filter((item2) => item2 !== ""); break; case "分录题": item.type = "9"; item.answer = $(item.html).find(".correctAnswerBx>.correctAnswer>p:not(.clear)").map((index, element) => { return removeHtml1($(element).html()); }).get().filter((item2) => item2 !== ""); if (item.answer.length != $(item.html).find(".CorrectOrNot").length) { if ($(item.html).find(".marking_cuo").length > 0) { return null; } item.answer = $(item.html).find(".myAnswerBx>.myAnswer>p:not(.clear)").map((index, element) => { return removeHtml1($(element).html()); }).get().filter((item2) => item2 !== ""); if (item.answer.length != $(item.html).find(".CorrectOrNot").length) { return null; } } log(item.answer, "warn"); break; case "连线题": item.type = "11"; let left = $(item.html).find("ul.firstUlList>li:not(.groupTitile)").map((index, element) => { let $clone = $(element).clone(); $clone.find(".fl").remove(); return removeHtml1($clone.html()); }).get(); let right = $(item.html).find("ul.secondUlList>li:not(.groupTitile)").map((index, element) => { let $clone = $(element).clone(); $clone.find(".fl").remove(); return removeHtml1($clone.html()); }).get(); answer = $(item.html).find(".correctAnswer >.fl.answerCon >.collectAnswer").map((index, element) => { return removeHtml1($(element).text()); }).get(); item.options = [left, right]; let ans = {}; answer.forEach((item2) => { let [l, r] = item2.split("-"); if (l.charCodeAt(0) >= 65) { l = (l.charCodeAt(0) - 65).toString(); } else if (/^\d+$/.test(l)) { l = (parseInt(l) - 1).toString(); } if (r.charCodeAt(0) >= 65) { r = (r.charCodeAt(0) - 65).toString(); } else if (/^\d+$/.test(r)) { r = (parseInt(r) - 1).toString(); } ans[left[l]] = right[r]; }); item.answer = ans; log(left, right, item.answer, "warn"); break; default: log("暂未适配当前题型", item.type, "error"); return null; } return item; } }, { type: "ask", name: "学习通新版作业", match: /\/mooc2\/work\/dowork/i.test(location.pathname), question: { html: ".questionLi", question: "h3", options: "ul:eq(0) li .after, .answer_p", type: "input[name^=answertype]:eq(0)", workType: "zy", pageType: "cx" }, questionHook: (item) => { const type = removeHtml1($(item.html).find(".colorShallow").html()); item.question = titleClean(item.question.split(type)[1].trim()).trim(); item.$options = $(item.html).find(".answerBg"); return item; }, setAnswerHook: (item) => { qc(item.html); qc1(item.html); } }, { type: "ask", name: "学习通新版考试", match: /exam\/preview/i.test(location.pathname) || /exam\/test\/reVersionTestStartNew/i.test(location.pathname), question: { html: ".questionLi", question: "h3", options: "ul:eq(0) li .after, .answer_p", type: "input[name^=type]:not([name=type])", workType: "ks", pageType: "cx" }, questionHook: (item) => { const type = removeHtml1($(item.html).find(".colorShallow").html()); item.question = titleClean(item.question.split(type)[1].trim()).trim(); item.$options = $(item.html).find(".answerBg"); return item; }, setAnswerHook: (item) => { qc(item.html); qc1(item.html); }, next: () => { $('.nextDiv .jb_btn:contains("下一题")').click(); } }, { type: "ask", name: "学习通旧版作业", match: /work\/doHomeWorkNew/i.test(location.pathname) && location.href.includes("mooc2=1") == false, init: () => { decode(); }, question: { html: ".TiMu", question: ".clearfix.fontLabel", options: "ul:eq(0) li .after", type: "input[name^=answertype]:eq(0), .answer_p", workType: "zy", pageType: "cx" }, questionHook: (item) => { item.question = titleClean(item.question).trim(); item.$options = $(item.html).find(".fl.before"); switch (item.type) { case "3": item.options = $(item.html).find("ul:eq(0) li").map((index, element) => { if ($(element).find(".ri").length > 0) { return "正确"; } if ($(element).find(".wr").length > 0) { return "错误"; } if (isTrue($(element).attr("aria-label"))) { return "正确"; } if (isFalse($(element).attr("aria-label"))) { return "错误"; } }).get(); item.options = []; item.$options = $(item.html).find("ul>li"); break; case "11": let left = $(item.html).find("ul.firstUlList>li:not(.groupTitile)").map((index, element) => { let $clone = $(element).clone(); $clone.find(".fl").remove(); return removeHtml1($clone.html()); }).get(); let right = $(item.html).find("ul.secondUlList>li:not(.groupTitile)").map((index, element) => { let $clone = $(element).clone(); $clone.find(".fl").remove(); return removeHtml1($clone.html()); }).get(); item.options = [left, right]; item.$options = $(item.html).find("ul.thirdUlList>li:not(.groupTitile)"); break; } return item; }, setAnswerHook: (item) => { qc(item.html); qc1(item.html); }, setAnswer: (item) => { switch (item.type) { case "11": item.ques.$options.each((index, element) => { let left = item.ques.options[0]; let right = item.ques.options[1]; let chose = item.answer[left[index]]; let index1 = right.indexOf(chose); chose = String.fromCharCode(index1 + 65); $(element).find("select>option").each((inx, ele) => { log($(ele).val() == chose, "warn"); $(ele).val() == chose && $(ele).prop("selected", true); }); }); log(item.answer, "success"); return false; case "3": let bold = item.answer; item.ques.$options.each((index, element) => { if (isTrue(bold) && isTrue(removeHtml1($(element).html()))) { $(element).find("input").click(); } if (isFalse(bold) && isFalse(removeHtml1($(element).html()))) { $(element).find("input").click(); } }); return false; default: return true; } } }, { type: "ask", name: "学习通新版章节", match: /work\/doHomeWorkNew/i.test(location.pathname) && location.href.includes("mooc2=1"), init: () => { decode(); }, question: { html: ".TiMu", question: ".clearfix.fontLabel", options: "ul:eq(0) li .after, .answer_p", type: "input[name^=answertype]:eq(0)", workType: "zj", pageType: "cx" }, questionHook: (item) => { item.question = titleClean(item.question).trim(); switch (item.type) { case "3": item.options = $(item.html).find("ul:eq(0) li").map((index, element) => { if ($(element).find(".num_option").attr("data") === "true") { return "正确"; } if ($(element).find(".num_option").attr("data") === "false") { return "错误"; } }).get(); item.options = []; break; case "11": let left = $(item.html).find("ul.firstUlList>li:not(.groupTitile)").map((index, element) => { let $clone = $(element).clone(); $clone.find(".fl").remove(); return removeHtml1($clone.html()); }).get(); let right = $(item.html).find("ul.secondUlList>li:not(.groupTitile)").map((index, element) => { let $clone = $(element).clone(); $clone.find(".fl").remove(); return removeHtml1($clone.html()); }).get(); item.options = [left, right]; item.$options = $(item.html).find("ul.thirdUlList>li:not(.groupTitile)"); break; default: log("暂未适配当前题型", item.type, "error"); } return item; }, setAnswerHook: (item) => { qc(item.html); qc1(item.html); }, setAnswer: (item) => { log(item.ques.options, "warn"); switch (item.type) { case "11": item.ques.$options.each((index, element) => { let left = item.ques.options[0]; let right = item.ques.options[1]; let chose = item.answer[left[index]]; let index1 = right.indexOf(chose); chose = String.fromCharCode(index1 + 65); let $chosen = _unsafeWindow.$(element).find(".dept_select"); $chosen.chosen().val(chose).trigger("chosen:updated"); }); log(item.answer, "success"); return false; default: return true; } } } ]; const zhihuishu = [ { type: "ask", name: "智慧树章节", tips: "智慧树必须开自动跳转,否则答案可能无法保存导致低分!", match: location.href.includes("zhihuishu.com") && (!location.href.includes("checkHomework") && location.host.includes("zhihuishu") && (location.pathname === "/stuExamWeb.html" || location.href.includes("/webExamList/dohomework/") || location.href.includes("/webExamList/doexamination/"))), question: { html: ".examPaper_box > div:eq(1) >div:not(.examPaper_partTit)", question: ".subject_describe.dynamic-fonts:eq(0) div:eq(0)", options: ".subject_node .nodeLab .label.clearfix .node_detail", type: ".subject_type span:first-child", workType: "zhs", pageType: "zhs" }, init: async () => { await waitUntil(function() { return !$(".yidun_popup").hasClass("yidun_popup--light") && _unsafeWindow.zhsques; }); }, next: () => { $(".switch-btn-box button:eq(1)").click(); }, questionHook: (item, inx) => { const ques = _unsafeWindow.zhsques.examBase.workExamParts.map((item2) => item2.questionDtos).flat(); const quesData = ques[inx]; item.type = typeChange(quesData.questionType.name); item.question = removeHtml1(quesData.name); item.options = quesData.questionOptions ? quesData.questionOptions.map((item2) => removeHtml1(item2.content)) : []; return item; } }, { type: "save", name: "智慧树作业收录", match: location.href.includes("zhihuishu.com") && (location.href.includes("checkHomework") && location.host.includes("zhihuishu") && (location.pathname === "/stuExamWeb.html" || location.href.includes("/webExamList/checkHomework/"))), question: { html: ".questionType", question: ".subject_describe", options: ".examquestions-answer", type: ".newZy_TItle", workType: "zhs", pageType: "zhs" }, init: async () => { await waitUntil(function() { return $(".questionType").length > 0 && _unsafeWindow.zhsques && _unsafeWindow.zhsimgAnswer; }); }, answerHook: (item) => { let tid = $(item.html).find(".examPaper_subject").attr("data-questionid"); const quesData = _unsafeWindow.zhsimgAnswer; const quesList = _unsafeWindow.zhsques.examBase.workExamParts.map((item2) => item2.questionDtos).flat(); let data = quesList.find((item2) => item2.id == tid); data.answer = quesData[data.id]; item.question = removeHtml1(data.name); item.type = typeChange(data.questionType.name); item.options = data.questionOptions.map((item2) => removeHtml1(item2.content)); item.answer = data.answer.split("").map((code) => { return item.options[code.charCodeAt(0) - 65]; }); if (item.type == "3") { item.options = []; item.answer = isTrue(item.answer[0]) ? ["正确"] : isFalse(item.answer[0]) ? ["错误"] : []; } return item; } } ]; const xinwei = [ { type: "hook", name: "芯位教育hook", match: location.host === "www.51xinwei.com", main: (data) => { _unsafeWindow.mainClass = $(".el-main > div:eq(0)").attr("class"); let observer = new MutationObserver(async (mutations) => { if (_unsafeWindow.mainClass !== $(".el-main > div:eq(0)").attr("class")) { _unsafeWindow.mainClass = $(".el-main > div:eq(0)").attr("class"); if (_unsafeWindow.mainClass === "homework-detail-container") { await waitUntil(function() { return $(".el-loading-mask").length === 0; }); } vuePageChange(); observer.disconnect(); } for (let mutation of mutations) { if (mutation.type === "attributes" && mutation.attributeName === "class") { if (mutation.target.textContent && (mutation.target.textContent.includes("下一题") || mutation.target.textContent.includes("上一题"))) { observer.disconnect(); vuePageChange(); } } } }); if ($("#app").length >= 1) { observer.observe($("#app")[0], { subtree: true, attributes: true, childList: true }); } } }, { type: "ask", name: "芯位教育作业", tips: "芯位教育仅支持选择判断,其他题型待适配", match: () => location.host === "www.51xinwei.com" && /student\/#\/courseInfo\/[A-Za-z0-9]+\/homework/i.test(location.href), question: { html: ".content-area > div.content", question: ".content", options: ".el-radio-group label .label,.el-checkbox-group label .label", type: ".question-box .tag", workType: "xinwei", pageType: "xinwei" }, init: async () => { await waitUntil(function() { return $(".question-box").length !== 0; }); }, next: () => { $('.toggle-box > button:contains("下一题")').click(); }, ischecked: (item) => { return item.parent().parent().hasClass("is-checked"); }, questionHook: (item) => { const type = $(item.html).find(".question-box .tag").text(); switch (type) { case "单选": item.type = "0"; break; case "多选": item.type = "1"; break; case "判断": item.type = "3"; break; } return item; } }, // 芯位教育收录 { type: "save", name: "芯位教育", match: () => location.host === "www.51xinwei.com" && location.href.includes("/homeworkDetailPage"), question: { html: ".question-content-body", question: ".topic-title", options: ".el-radio-group label .label,.el-checkbox-group label .label", type: ".question-box .tag", workType: "xinwei", pageType: "xinwei" }, init: async () => { await waitUntil(function() { return $(".question-content-body").length !== 0; }); }, answerHook: (item) => { const type = $(item.html).find(".question-box .tag").text(); let answer = $(item.html).find(".answer-area > span:eq(1)").text(); switch (type) { case "单选": case "多选": answer = answer.split(","); item.answer = answer.map((xx) => { return item.options[xx.charCodeAt(0) - 65]; }); if (item.answer.length === 0) { return; } item.type = type === "单选" ? "0" : "1"; break; case "判断": item.type = "3"; if (answer == "T") { item.answer = ["正确"]; } if (answer == "F") { item.answer = ["错误"]; } break; } return item; } } ]; const chatglm = [ { type: "hook", name: "智普清言token获取", match: /chatglm.cn\/main\//i.test(location.href), main: (data) => { const app = data.app; const cookies = document.cookie.split(";"); let chatglm_refresh_token = ""; cookies.forEach((cookie) => { if (/chatglm_refresh_token/i.test(cookie)) { chatglm_refresh_token = cookie.split("=")[1]; } }); if (chatglm_refresh_token) { app.app.gpt.forEach((item) => { if (item.name === "GLM") { item.key = chatglm_refresh_token; } }); app.setConfig(app.app); msg("智普清言token获取成功"); } } } ]; const typeMap = { "single_selection": "单选题", "multiple_selection": "多选题", "true_or_false": "判断题", "fill_in_blank": "填空题", "short_answer": "简答题", "text": "文本", "analysis": "综合题", "matching": "匹配题", "random": "随机题", "cloze": "完形填空题" }; const guokai = [ { type: "hook", name: "国开hook", match: location.host.includes("ouchn.cn"), main: (data) => { _unsafeWindow.mainClass = getUrl(); let observer = new MutationObserver(async (mutations) => { if (_unsafeWindow.mainClass !== getUrl()) { _unsafeWindow.mainClass = getUrl(); if (_unsafeWindow.mainClass === "homework-detail-container") { await waitUntil(function() { return $(".selectDan").length !== 0; }); } vuePageChange(); observer.disconnect(); } }); if ($("body").length >= 1) { observer.observe($("body")[0], { subtree: true, attributes: true, childList: true }); } } }, // 国开答案收录 { type: "save", name: "国开答案收录旧", match: /\/exam\/([0-9]+)\/subjects#\/submission\/([0-9]+)/i.test(location.href), question: { html: "li.subject", question: ".summary-title .subject-description", options: ".subject-options li .option-content", type: ".subject-point > span:eq(0)", workType: "guokai", pageType: "guokai" }, init: async () => { await waitUntil(function() { return $(".loading-gif").hasClass("ng-hide"); }); }, answerHook: (item) => { const scope = _unsafeWindow.angular.element(item.html).scope(); const subject = scope.subject; if (subject.type === "text") { return; } let haveAnswer = false; const point = parseFloat(subject.point); const score = parseFloat(subject.score); const isT = point !== 0 && point === score; let ques = $(`
${subject.description}
`).clone(); ques.find("span.__blank__").remove(); item.question = removeHtml1(ques.html()); item.options = subject.options.map((item1) => { return removeHtml1(item1.content); }); item.type = typeChange(typeMap[subject.type]); if (subject.correctOptions && subject.correctOptions.length > 0) { item.answer = subject.correctOptions.map((item1) => { return removeHtml1(item1.content); }); haveAnswer = true; } if (subject.correct_answers && subject.correct_answers.length > 0) { item.answer = subject.correct_answers.map((item1) => { return item1.content; }); haveAnswer = true; } if (!haveAnswer && !isT && subject.type !== "true_or_false") { return; } switch (subject.type) { case "single_selection": case "multiple_selection": case "true_or_false": if (!haveAnswer) { item.answer = subject.options.filter((item2) => item2.isChosen).map((item2) => removeHtml1(item2.content)); if (item.answer.length === 0) return; if (subject.type === "true_or_false") { const answer = item.answer[0]; item.options = []; const isCorrect = isTrue(answer) ? "正确" : isFalse(answer) ? "错误" : ""; if (isCorrect) { item.answer = [isT ? isCorrect : isCorrect === "正确" ? "错误" : "正确"]; } else { item.answer = []; } } } else { if (subject.type === "true_or_false") { const answer = item.answer[0]; item.options = []; const isCorrect = isTrue(answer) ? "正确" : isFalse(answer) ? "错误" : ""; if (isCorrect) { item.answer = [isCorrect]; } } } break; case "analysis": break; case "cloze": item.options = subject.sub_subjects.map((item1) => { return item1.options.map((item2) => { return removeHtml1(item2.content); }); }).get(); break; case "fill_in_blank": if (!haveAnswer) { item.answer = subject.answers.map((item1) => { return item1.content; }); } break; } return item; } }, // 广开答案收录 { type: "save", name: "广开答案收录", match: /mod\/quiz\/review\.php/i.test(location.pathname) && ["moodle.syxy.ouchn.cn", "xczxzdbf.moodle.qwbx.ouchn.cn", "elearning.bjou.edu.cn", "whkpc.hnqtyq.cn:5678", "course.ougd.cn", "study.ouchn.cn"].includes(location.host), question: { html: ".que", question: ".qtext", options: ".answer > div", type: "", answer: ".rightanswer", workType: "guokai", pageType: "guokai" }, init: async () => { $(".specificfeedback").remove(); }, next: async () => { !$(".qn_buttons > a").last().hasClass("thispage") && $(".arrow_text").click(); }, answerHook: (item) => { const quesStatus = $(item.html).find(".info .state").text(); item.type = $(item.html).attr("class").split(" ")[1]; $(item.html).find(".qtext .accesshide").remove(); item.question = removeHtml1($(item.html).find(".qtext").html()); switch (item.type) { case "truefalse": item.type = "3"; item.$options = $(item.html).find("input[type=radio]"); item.options = $(item.html).find(".answer > div").map((index, element) => { let optionText = removeHtml1($(element).html()); return optionText.trim(); }).get(); item.answer = []; item.answer = $(item.html).find(".answer > div").map((index, element) => { if (item.$options.eq(index).prop("checked")) { return item.options[index]; } else { return ""; } }).get(); item.answer = item.answer.filter((item2) => item2 !== ""); if (item.answer.length === 0) { item.temp = removeHtml1($(item.html).find(".rightanswer").html()).replace("正确答案是", "").trim(); item.answer = [item.temp]; } else { if (!quesStatus.includes("正确")) { item.answer = item.options.filter((zzz) => !zzz.includes(item.answer[0])); } } isTrue(item.answer[0]) ? item.answer = ["正确"] : isFalse(item.answer[0]) ? item.answer = ["错误"] : item.answer = []; item.options = []; break; case "multichoice": case "multichoiceset": item.type = "1"; item.$options = $(item.html).find("input[type=checkbox]"); if (item.$options.length === 0) { item.type = "0"; item.$options = $(item.html).find("input[type=radio]"); } item.options = $(item.html).find(".answer > div").map((index, element) => { let inx = $(element).find(".answernumber").text().trim(); let optionText = removeHtml1($(element).html()); if (inx === "") { return optionText.trim(); } return optionText.split(inx)[1].trim(); }).get(); if (quesStatus.includes("正确") && !quesStatus.includes("部分正确")) { item.answer = []; item.answer = $(item.html).find(".answer > div").map((index, element) => { let inx = $(element).find(".answernumber").text().trim(); let optionText = removeHtml1($(element).html()); if (item.$options.eq(index).prop("checked") && $(element).find(".text-success").length > 0) { if (inx === "") { return optionText.trim(); } return optionText.split(inx)[1].trim(); } else { return ""; } }).get(); item.answer = item.answer.filter((item2) => item2 !== ""); } else { item.temp = removeHtml1($(item.html).find(".rightanswer").html(), false).replace("正确答案是:", "").trim(); const optionsBase = item.options.slice(0); optionsBase.sort((a, b) => { return b.length - a.length; }); item.answer = optionsBase.map((item1) => { if (item.temp.includes(item1)) { item.temp = item.temp.replace(item1, ""); return item1; } else { return ""; } }); item.answer = item.answer.filter((item2) => item2 !== ""); if (item.answer.length > 1) ; } break; case "shortanswer": item.type = "4"; item.$options = $(item.html).find("input[type=text]"); break; case "match": item.type = "24"; item.match = $(".answer tr td.text").map((index, element) => { return removeHtml1($(element).html()); }).get(); item.$options = $(".answer tr td.control select"); item.selects = $(".answer tr td.control select").map((index, element) => { let option = $(element).find("option").map((index2, element2) => { let value = $(element2).val(); let text = $(element2).text(); return { value, text }; }).get(); return [option]; }).get(); break; case "description": return; } return item; } }, { type: "ask", name: "广开形考", tips: "广开仅支持基础题型,特殊题型请手动完成", match: /mod\/quiz\/attempt\.php/i.test(location.pathname) && ["moodle.syxy.ouchn.cn", "xczxzdbf.moodle.qwbx.ouchn.cn", "elearning.bjou.edu.cn", "whkpc.hnqtyq.cn:5678", "course.ougd.cn", "study.ouchn.cn"].includes(location.host), question: { html: ".que", question: ".qtext", options: ".answer > div", type: "", workType: "guangkai", pageType: "guangkai" }, ischecked: (item) => { return Boolean(item.prop("checked")); }, questionHook: (item) => { item.type = $(item.html).attr("class").split(" ")[1]; $(item.html).find(".qtext .accesshide").remove(); item.question = removeHtml1($(item.html).find(".qtext").html()); switch (item.type) { case "truefalse": item.type = "3"; item.$options = $(item.html).find("input[type=radio]"); item.options = []; break; case "multichoice": case "multichoiceset": item.type = "1"; item.$options = $(item.html).find("input[type=checkbox]"); if (item.$options.length === 0) { item.type = "0"; item.$options = $(item.html).find("input[type=radio]"); } item.options = $(item.html).find(".answer > div").map((index, element) => { let inx = $(element).find(".answernumber").text().trim(); let optionText = removeHtml1($(element).html()); if (inx === "") { return optionText.trim(); } return optionText.split(inx)[1].trim(); }).get(); break; case "shortanswer": item.type = "4"; item.$options = $(item.html).find("input[type=text]"); break; case "match": item.type = "24"; item.match = $(".answer tr td.text").map((index, element) => { return removeHtml1($(element).html()); }).get(); item.$options = $(".answer tr td.control select"); item.selects = $(".answer tr td.control select").map((index, element) => { let option = $(element).find("option").map((index2, element2) => { let value = $(element2).val(); let text = $(element2).text(); return { value, text }; }).get(); return [option]; }).get(); case "essay": item.type = "4"; item.$options = $(item.html).find("iframe"); break; case "description": return; } return item; }, setAnswer: (item) => { switch (item.type) { case "4": $(item.html).find("input.form-control").each(function(index, element) { $(element).val(item.answer[index]); }); $(item.html).find("iframe:eq(0)").contents().find("body").html(item.answer[0]); return false; case "3": item.ques.$options.each((index, element) => { const pdtext = $(element).parent().find("label").text(); if (typeof item.answer === "object") { item.answer = item.answer[0]; } if (isTrue(item.answer) && isTrue(pdtext)) { $(element).click(); return false; } else if (isFalse(item.answer) && isFalse(pdtext)) { $(element).click(); return false; } return true; }); default: return true; } }, finish: (item) => { $(".submitbtns .btn-primary").click(); } }, { type: "ask", name: "国开专题测验", match: location.host === "lms.ouchn.cn" && /\/exam\/([0-9]+)\/subjects/i.test(location.pathname) && !/\/exam\/([0-9]+)\/subjects#\/submission\/([0-9]+)/i.test(location.href), question: { html: "li.subject", question: ".summary-title .subject-description", options: ".subject-options li .option-content", type: ".summary-sub-title span:eq(0)", workType: "guokai", pageType: "guokai" }, init: async () => { await waitUntil(function() { return $(".loading-gif").hasClass("ng-hide") && $(".hd .examinee .submit-label").eq(0).text() === ""; }); }, ischecked: (item) => { return Boolean(item.parent().find("input").eq(-1).prop("checked")); }, questionHook: (item) => { const scope = _unsafeWindow.angular.element(item.html).scope(); const subject = scope.subject; if (subject.type === "text") { return; } item.type = typeChange(typeMap[subject.type]); let ques = $(`
${subject.description}
`).clone(); ques.find("span.__blank__").remove(); item.question = removeHtml1(ques.html()); subject.options = subject.options.sort((a, b) => { return a.sort - b.sort; }); item.options = subject.options.map((item1) => { return removeHtml1(item1.content); }); log(item.type, subject.type); switch (subject.type) { case "cloze": item.options = subject.sub_subjects.map((item1) => { return item1.options.map((item2) => { return removeHtml1(item2.content); }); }); item.$options = $(item.html).find("select"); case "true_or_false": item.options = []; } item.subject = subject; item.scope = scope; return item; }, setAnswer: (item) => { log(item.ques, "success"); switch (item.type) { case "2": log($(item.html).find(".___answer"), "success"); $(item.html).find(".___answer").each((index, element) => { $(element).html(item.answer[index]); item.ques.scope.subject.answers[index].content = item.answer[index]; item.ques.scope.onChangeSubmission(item.ques.subject); }); return false; case "4": $(item.html).find(".simditor-body.needsclick>p").each(function(index, element) { $(element).html(item.answer[index]); item.ques.subject.answered_content = item.answer[index]; }); item.ques.scope.onChangeSubmission(item.ques.subject); return false; case "14": item.ques.subject.sub_subjects.forEach((sub_subject, index) => { let an = item.answer[index]; sub_subject.options.forEach((option, index1) => { if (option.content === an) { sub_subject.answeredOption = String(option.id); item.ques.scope.onChangeSubmission(sub_subject); $(item.html).find(`input[value="${option.id}"]`).click(); $(item.html).find(`button:eq(${index})>span:eq(1)`).text(an); } }); }); return false; } return true; } }, { type: "save", name: "上海开放收录", match: () => location.host === "l.shou.org.cn" && location.href.includes("assignment/history.aspx?homeWorkId"), question: { html: ".e-q-body", question: ".ErichText", options: "ul>li>.ErichText", type: ".question-box .tag", workType: "shou", pageType: "shou" }, init: async () => { }, answerHook: (item) => { item.$options = $(item.html).find("ul>li"); let an = $(item.html).find("ul>li.checked").map((index, element) => { return removeHtml1($(element).find(".ErichText").html()); }).get(); const isT = $(item.html).find(".e-q-right").length > 0; item.answer = an.filter((item2) => item2 !== ""); const ckAnswer = $(item.html).find(".e-ans-ref .e-ans-r").map((index, element) => { return removeHtml1($(element).html()); }).get(); let ans = ckAnswer.map((item1) => { let index = item1.charCodeAt() - 65; return item.options[index]; }).filter((item1) => item1 !== "" && item1 !== void 0); switch ($(item.html).attr("data-questiontype")) { case "2": item.type = "1"; break; case "1": item.type = "0"; break; case "3": item.type = "3"; item.answer = $(item.html).find("ul>li.checked").map((index, element) => { return removeHtml1($(element).html()); }).get(); item.options = []; isTrue(item.answer[0]) ? item.answer = ["正确"] : isFalse(item.answer[0]) ? item.answer = ["错误"] : item.answer = []; break; case "11": item.type = "19"; const quesList = $(item.html).find("form").map((index, element) => { return { type: "0", question: removeHtml1($(element).find(".e-q-q .ErichText").html()), options: $(element).find("ul li .ErichText").map((index2, element2) => { return removeHtml1($(element2).html()); }).get() }; }).get(); ans = ans.length > 0 ? judgeAnswer(ans[0]) : []; item.options = quesList; default: log("暂未适配当前题型", $(item.html).attr("data-questiontype"), "error"); return; } if (ans.length > 0) { item.answer = ans; return item; } if (!isT && item.type === "3" && item.answer.length > 0) { item.answer = judgeAnswer(item.answer[0]); } else if (!isT) { return; } return item; } }, { type: "ask", name: "上海开放作业", tips: "上海开放大学目前仅支持选择判断题,其他题型请手动完成", match: () => location.host === "l.shou.org.cn" && location.href.includes("assignment/preview.aspx?homeWorkId"), question: { html: ".e-q-body", question: ".ErichText", options: "ul>li>.ErichText", type: ".question-box .tag", workType: "shou", pageType: "shou" }, init: async () => { await waitUntil(function() { return $(".e-q-body").length !== 0; }); }, next: () => { }, ischecked: (item) => { return item.parent().parent().hasClass("is-checked"); }, questionHook: (item) => { switch ($(item.html).attr("data-questiontype")) { case "2": item.type = "1"; break; case "1": item.type = "0"; break; case "3": item.type = "3"; item.$options = $(item.html).find("ul>li"); break; default: log("暂未适配当前题型", $(item.html).attr("data-questiontype"), "error"); return; } return item; }, setAnswer: (item) => { return true; }, finish: (item) => { } } ]; const chengjiaoyun = [ { type: "ask", name: "成教云考试", tips: "成教云仅支持选择判断,其他题型请反馈给作者", match: () => location.href.includes("exam/student/exam2/doexam"), question: { html: () => { return $(".ui-paper-iframe").contents().find(".ui-question"); }, question: ".ui-question-content-wrapper", options: ".ui-question-options li .ui-question-content-wrapper", type: ".ui-question-group-title", workType: "chengjiaoyun", pageType: "chengjiaoyun" }, init: async () => { await waitUntil(function() { let exists = $(".ui-paper-iframe").contents().find(".ui-question").length > 0; return exists; }); }, toquestion: (index) => { $(`.ui-card-questions ul li:eq(${index - 1})`).click(); }, next: async () => { $("#next-btn").click(); }, ischecked: (item) => { return item.hasClass("ui-option-selected"); }, questionHook: (item) => { let type = $(item.html).parent().find(".ui-question-group-title").text().split(".")[1].trim(); item.$options = $(item.html).find(".ui-question-options li>span"); switch (type) { case "单选题": item.type = "0"; break; case "多选题": item.type = "1"; break; case "判断题": item.type = "3"; item.options = []; break; } return item; }, setAnswer: (item) => { switch (item.type) { case "3": let bold = item.answer; item.ques.$options.each((index, element) => { if (isTrue(bold) && isTrue(removeHtml1($(element).parent().html()))) { $(element).click(); } if (isFalse(bold) && isFalse(removeHtml1($(element).parent().html()))) { $(element).click(); } }); return false; default: return true; } }, finish: (item) => { } }, { type: "save", name: "成教云收录", match: () => location.href.includes("exam/student/exam2/doview"), question: { html: () => { return $(".ui-paper-iframe").contents().find(".ui-question"); }, question: ".ui-question-content-wrapper", options: ".ui-question-options li .ui-question-content-wrapper", type: ".ui-question-group-title", workType: "chengjiaoyun", pageType: "chengjiaoyun" }, init: async () => { await waitUntil(function() { let exists = $(".ui-paper-iframe").contents().find(".ui-question").length > 0; log($(".ui-paper-iframe").contents().find(".ui-question")); return exists; }); }, answerHook: (item) => { let type = $(item.html).parent().find(".ui-question-group-title").text().split(".")[1].trim(); item.$options = $(item.html).find(".ui-question-options li>span"); item.answer = $(item.html).find(".ui-question-options li.ui-correct-answer .ui-question-content-wrapper").map((_index, item2) => { return removeHtml1($(item2).html()); }).get(); switch (type) { case "单选题": item.type = "0"; break; case "多选题": item.type = "1"; break; case "判断题": item.type = "3"; item.options = []; item.answer = isTrue(item.answer[0]) ? ["正确"] : isFalse(item.answer[0]) ? ["错误"] : []; break; } return item; } } ]; const jsou = [ { type: "hook", name: "hook", match: () => location.host === "xuexi.jsou.cn" && location.href.includes("newHomework/showHomeworkByStatus") && location.href.includes("checked=true"), main: (data) => { _unsafeWindow.mainClass = $("#homeworkHistory").find(".active").attr("id"); let observer = new MutationObserver(async (mutations) => { if (_unsafeWindow.mainClass !== $("#homeworkHistory").find(".active").attr("id")) { _unsafeWindow.mainClass = $("#homeworkHistory").find(".active").attr("id"); await waitUntil(function() { return $(".layui-layer-shade").length === 0; }); vuePageChange(); observer.disconnect(); } for (let mutation of mutations) { if (mutation.type === "attributes" && mutation.attributeName === "class") { if (mutation.target.textContent && (mutation.target.textContent.includes("下一题") || mutation.target.textContent.includes("上一题"))) { observer.disconnect(); vuePageChange(); } } } }); if ($("body").length >= 1) { observer.observe($("body")[0], { subtree: true, attributes: true, childList: true }); } } }, { type: "ask", name: "江苏开放大学答题", tips: "江开适配中,目前仅支持选择、判断题、填空题,其他题型请反馈账号给作者", match: () => location.host === "xuexi.jsou.cn" && location.href.includes("/showHomeworkByStatus") && location.href.includes("checked=false"), question: { html: ".insert", question: ".window-title", options: ".questionId-option li > div:not(.numberCover)", type: ".questionDiv >div:eq(0)", workType: "jsou", pageType: "jsou" }, init: async () => { document.addEventListener("copy", function(event2) { event2.stopImmediatePropagation(); layer.msg("复制成功", { icon: 4 }); event2.clipboardData.setData("text/plain", window.getSelection().toString()); }); document.addEventListener("paste", () => { event.stopImmediatePropagation(); let paste = (event.clipboardData || window.clipboardData).getData("text"); layer.msg("粘贴成功", { icon: 4 }); document.execCommand("insertText", false, paste); }); }, next: () => { }, ischecked: (item) => { return item.parent().parent().hasClass("is-checked"); }, questionHook: (item) => { item.type = $(item.html).find(".questionDiv >div:eq(1)").text().trim(); item.type = typeChange(item.type); item.$options = $(item.html).find(".questionId-option li .numberCover"); return item; }, setAnswer: (item) => { switch (item.type) { case "2": item.$options = $(item.html).find(".questionTitle input"); if (item.$options.length == item.answer.length) { item.$options.each((index, element) => { $(element).val(item.answer[index]); }); return false; } } return true; }, finish: (item) => { } }, // 江开收录 { type: "save", name: "江苏开放大学收录", match: () => location.host === "xuexi.jsou.cn" && location.href.includes("newHomework/showHomeworkByStatus") && location.href.includes("checked=true"), question: { html: ".insert", question: ".window-title", options: "#questionId-option li > div:not(.numberCover)", type: ".questionDiv >div:eq(0)", workType: "jsou", pageType: "jsou" }, init: async () => { }, answerHook: (item) => { item.type = $(item.html).find(".questionDiv >div:eq(1)").text(); let score = $(item.html).find(".questionDiv >div").text().match(/分值(\d+)分/)[1]; let score2 = $(item.html).find(".questionDiv >div").text().match(/得分:(\d+)/)[1]; item.type = typeChange(item.type); let isT = score == score2 && score2 !== 0; if (!isT && item.type != 3) { return; } switch (item.type) { case "0": case "1": case "3": item.answer = $(item.html).find(".answer .correctAnswer").text().trim().split(";").map((xx) => { return item.options[xx.charCodeAt(0) - 65]; }); item.answer = item.answer.filter((x) => x); if (item.answer.length == 0) { item.answer = $(item.html).find(".answer .studentAnswer").text().trim().split(";").map((xx) => { return item.options[xx.charCodeAt(0) - 65]; }); } item.answer = item.answer.filter((x) => x); if (item.type == 3) { item.options = []; let answer = item.answer[0]; if (isFalse(answer)) item.answer = "错误"; else if (isTrue(answer)) item.answer = "正确"; else return; if (["正确", "错误"].includes(item.answer) && !isT) { item.answer = item.answer === "正确" ? "错误" : "正确"; } } break; case "2": item.options = []; item.answer = $(item.html).find(".answer .correctAnswer").text().trim().split(";"); item.answer = item.answer.filter((x) => x); if (item.answer.length == 0) { item.answer = $(item.html).find(".answer .studentAnswer").text().trim().split(";"); } item.answer = item.answer.filter((x) => x); break; default: return; } return item; } } ]; const zhijiaoyun = [ { type: "hook", name: "hook", match: location.host === "spoc-exam.icve.com.cn" || location.host.includes("exam.courshare.cn") || location.host.includes("webtrn.cn"), main: (data) => { _unsafeWindow.mainClass = $(".q_content").first().attr("id"); let observer = new MutationObserver(async (mutations) => { if (_unsafeWindow.mainClass !== $(".q_content").first().attr("id")) { _unsafeWindow.mainClass = $(".q_content").first().attr("id"); if (_unsafeWindow.mainClass === "homework-detail-container") { await waitUntil(function() { return $(".q_content").length !== 0; }); } vuePageChange(); observer.disconnect(); } for (let mutation of mutations) { if (mutation.type === "attributes" && mutation.attributeName === "class") { if (mutation.target.textContent && (mutation.target.textContent.includes("下一题") || mutation.target.textContent.includes("上一题"))) { observer.disconnect(); vuePageChange(); } } } }); if ($("#examPage").length >= 1) { observer.observe($("#examPage")[0], { subtree: true, attributes: true, childList: true }); } } }, { type: "hook", name: "hook", match: location.host === "zjy2.icve.com.cn" || location.host === "zyk.icve.com.cn", main: (data) => { $(".minimized-dialog img").css({ "z-index": "999999" }); _unsafeWindow.mainClass = $("#app")[0].__vue__.$route.name; let observer = new MutationObserver(async (mutations) => { if (_unsafeWindow.mainClass !== $("#app")[0].__vue__.$route.name) { _unsafeWindow.mainClass = $("#app")[0].__vue__.$route.name; if (_unsafeWindow.mainClass === "homework-detail-container") { await waitUntil(function() { return $(".q_content").length !== 0; }); } vuePageChange(); observer.disconnect(); } }); if ($("#app").length >= 1) { observer.observe($("#app")[0], { subtree: true, attributes: true, childList: true }); } } }, { type: "ask", name: "职教云作业", tips: "职教云只支持选择、判断题,其他题型请反馈给作者", match: () => location.href.includes("examflow_index.action"), question: { html: ".q_content", question: ".divQuestionTitle", options: ".questionOptions > div", type: ".question-box .tag", workType: "zhijiaoyun", pageType: "zhijiaoyun" }, init: async () => { await waitUntil(function() { return $(".q_content").length !== 0; }); }, next: () => { }, ischecked: (item) => { return item.parent().find(".checkbox_on").length !== 0; }, questionHook: (item) => { var _a, _b; item.question = removeHtml1($(item.html).find(".divQuestionTitle").html()); let qid = $(item.html).find("[name='quesId']").attr("id"); let type = (_b = (_a = document.getElementById(`questionId[${qid}]`)) == null ? void 0 : _a.getAttribute("answertype")) == null ? void 0 : _b.trim(); let inx = $(item.html).find("span[name^='questionIndex']").text().trim() + "、"; let score = $(item.html).find(".q_score").text().trim(); item.question = item.question.replace(inx, "").replace(score, "").trim(); item.options = $(item.html).find(".questionOptions>div").map((_inx, item2) => { let inx2 = $(item2).find(".option_index").text().trim(); return removeHtml1($(item2).html()).replace(inx2, "").trim(); }).get(); item.$options = $(item.html).find(".questionOptions>div input"); switch (type) { case "单项选择题": case "单选题": case "singlechoice": item.type = "0"; break; case "多项选择题": case "多选题": case "multichoice": item.type = "1"; break; case "判断题": case "bijudgement": item.type = "3"; item.options = []; break; case "fillblank": item.type = "2"; item.question = removeHtml1($(item.html).find("[name='fillblankTitle']").html()); break; } return item; }, setAnswer: (item) => { switch (item.type) { case "2": $(item.html).find(".fillblank_input > input").each((inx, xx) => { $(xx).val(item.answer[inx]); }); return false; } return true; }, finish: (item) => { $(".paging_next").click(); } }, { type: "save", name: "职教云收录", match: () => location.href.includes("examrecord_recordDetail.action"), question: { html: ".q_content", question: ".divQuestionTitle", options: ".questionOptions>div.q_option_readonly", type: ".question-box .tag", workType: "zhijiaoyun", pageType: "zhijiaoyun" }, init: async () => { await waitUntil(function() { return $(".q_content").length !== 0; }); }, answerHook: (item) => { const isT = $(item.html).find(".exam.icon_examright").length; const qid = $(item.html).find("input[name='quesId']:not([id='']").attr("id"); const type = $(`input#qId${qid}`).attr("qtype"); const inx = $(item.html).find("span[name^='questionIndex']").text().trim() + "、"; const score = $(item.html).find(".q_score").text().trim(); item.question = item.question.replace(inx, "").replace(score, "").trim(); item.options = $(item.html).find(".questionOptions>div.q_option_readonly").map((_inx, xx) => { let opInx = $(xx).find("span[name='optionIndexName']").text().trim(); return removeHtml1($(xx).html()).replace(opInx, "").trim(); }).get(); switch (type) { case "单项选择题": case "单选题": case "singlechoice": item.type = "0"; break; case "多项选择题": case "多选题": case "multichoice": item.type = "1"; break; case "判断题": case "bijudgement": item.type = "3"; break; case "fillblank": item.type = "2"; item.question = removeHtml1($(item.html).find(".answerOption>span:eq(0)").html()); break; } switch (item.type) { case "0": case "1": item.answer = $(item.html).find('.exam_rightAnswer .exam_answers_tit>span[name="rightAnswer"]').text().trim().split("").map((xx) => { return item.options[xx.charCodeAt(0) - 65]; }); log(item.answer, "success"); if (item.answer.length == 0) { if (isT == 0) { return; } item.answer = $(item.html).find('.exam_stu_answer span[name="stuAnswer"]').text().trim().split("").map((xx) => { return item.options[xx.charCodeAt(0) - 65]; }); } break; case "2": if (isT == 0) { return; } item.answer = $(item.html).find("span.fillblank_answer").map((inx2, xx) => { return removeHtml1($(xx).html()); }).get(); if (item.answer.length !== isT) { item.answer = []; return; } break; case "3": item.options = []; let answer = $(item.html).find('.exam_stu_answer span[name="stuAnswer"]').text().trim(); if (["正确", "错误"].includes(answer)) { if (isT) { item.answer = [answer]; } else { item.answer = [answer === "正确" ? "错误" : "正确"]; } } break; } return item; } }, { type: "save", name: "收录", match: () => location.host === "zjy2.icve.com.cn" && (location.href.includes("/spocviewsJob") || location.href.includes("/viewExam")), question: { html: ".subjectDet", question: ".seeTitle .htmlP.ql-editor", options: ".optionList .htmlP.ql-editor", type: ".question-box .tag", workType: "zhijiaoyun", pageType: "zhijiaoyun" }, init: async () => { await waitUntil(function() { return $(".subjectDet").length !== 0; }); }, answerHook: (item) => { const type = $(item.html).find(".xvhao").text().trim(); item.type = typeChange(type.match(/【(.*)】/)[1].trim().replace("填空题(客观)", "填空题")); let answer = $(item.html).find(".answer").text().trim(); item.answer = answer.split(",").map((xx) => { return item.options[xx.charCodeAt(0) - 65]; }); switch (item.type) { case "2": item.options = []; item.answer = $(item.html).find(".answer>span").map((inx, xx) => { return removeHtml1($(xx).html()); }).get(); break; case "3": item.options = $(item.html).find(".optionList>div").map((inx, xx) => { return removeHtml1($(xx).html()); }).get(); item.answer = answer.split(",").map((xx) => { return item.options[xx.charCodeAt(0) - 65]; }); item.answer = judgeAnswer(item.answer[0]); item.options = []; break; case "11": const left = $(item.html).find(".optionList .matching>.htmlP.ql-editor").map((inx, xx) => { return removeHtml1($(xx).html()); }).get(); const right = $(item.html).find(".optionList>.text .htmlP.ql-editor").map((inx, xx) => { return removeHtml1($(xx).html()); }).get(); item.options = [left, right]; let ans = {}; answer = $(item.html).find(".answer>span").map((inx, xx) => { let [l, r] = $(xx).text().trim().split("."); if (l.charCodeAt(0) >= 65) { l = (l.charCodeAt(0) - 65).toString(); } else if (/^\d+$/.test(l)) { l = (parseInt(l) - 1).toString(); } if (r.charCodeAt(0) >= 65) { r = (r.charCodeAt(0) - 65).toString(); } else if (/^\d+$/.test(r)) { r = (parseInt(r) - 1).toString(); } ans[left[l]] = right[r]; }); item.answer = ans; break; } return item; } }, { type: "ask", name: "智慧职教+答题", tips: "该平台问题较多,遇到请反馈给作者", match: () => location.host === "zyk.icve.com.cn" && location.href.includes("coursePreview/jobTest"), question: { html: ".subjectDet", question: ".ql-editor", options: ".optionList .ql-editor", type: ".question-box .tag", workType: "zhijiaoyun", pageType: "zhijiaoyun" }, init: async () => { await waitUntil(function() { return $(".subjectDet").length !== 0; }); }, next: () => { }, ischecked: (item) => { return item.parent().parent().hasClass("is-checked"); }, questionHook: (item) => { const type = $(item.html).find(".title.titleTwo").text().trim(); item.type = typeChange(type.match(/【(.*)】/)[1].trim().replace("填空题(客观)", "填空题")); switch (item.type) { case "3": item.options = []; item.$options = $(item.html).find(".optionList>div label"); break; } return item; }, setAnswer: (item) => { return true; }, finish: (item) => { } }, { type: "save", name: "智慧职教+收录", match: () => location.host === "zyk.icve.com.cn" && (location.href.includes("/coursePreview/viewJob1") || location.href.includes("/viewExam")), question: { html: ".subjectDet", question: ".seeTitle>span:eq(1)", options: ".optionList>div", type: ".question-box .tag", workType: "zhijiaoyun", pageType: "zhijiaoyun" }, init: async () => { await waitUntil(function() { return $(".subjectDet").length !== 0; }); }, answerHook: (item) => { item.options = removeStartChar(item.options); const type = $(item.html).find(".xvhao").text().trim(); item.type = typeChange(type.match(/【(.*)】/)[1].trim().replace("填空题(客观)", "填空题")); let answer = $(item.html).find(".answer").text().trim(); item.answer = answer.split(",").map((xx) => { return item.options[xx.charCodeAt(0) - 65]; }); switch (item.type) { case "2": item.options = []; item.answer = $(item.html).find(".answer>span").map((inx, xx) => { return removeHtml1($(xx).html()); }).get(); break; case "3": item.options = $(item.html).find(".optionList>div").map((inx, xx) => { return removeHtml1($(xx).html()); }).get(); item.answer = answer.split(",").map((xx) => { return item.options[xx.charCodeAt(0) - 65]; }); item.answer = judgeAnswer(item.answer[0]); item.options = []; break; } return item; } } ]; const cnzx = [ { type: "ask", name: "川农在线答题", tips: "川农在线仅支持选择判断题,其他题型请反馈", match: () => (location.host === "any.cnzx.info:81" || location.host === "zice.cnzx.info") && location.href.includes("KaoShi/ShiTiYe.aspx"), question: { html: "li.question", question: ".wenti >p.stem", options: ".wenti > ol > li", type: ".question_head > span:eq(0)", workType: "cnzx", pageType: "cnzx" }, init: async () => { }, next: () => { }, ischecked: (item) => { return item.find("input").prop("checked"); }, questionHook: (item) => { item.$options = $(item.html).find(".wenti > ol > li input"); if (item.options.length !== 0) { item.type = item.$options.eq(0).attr("type") === "radio" ? "0" : "1"; if (item.options.length === 2 && item.options.includes("正确") && item.options.includes("错误")) { item.type = "3"; item.options = []; } } return item; }, setAnswer(item) { switch (item.type) { case "3": $(item.html).find(".wenti > ol > li").each((i, element) => { if (isTrue(item.answer) && isTrue(removeHtml1($(element).html()))) { item.ques.$options.eq(i).click(); } if (isFalse(item.answer) && isFalse(removeHtml1($(element).html()))) { item.ques.$options.eq(i).click(); } }); return false; } return true; }, finish: (item) => { $("li.paginationjs-next.J-paginationjs-next").click(); } }, { type: "save", name: "收录", match: () => location.host === "zice.cnzx.info" && location.href.includes("ZaiXianLianXi.aspx"), question: { html: ".ShiTi>.ShiTiMiaoShu", question: ".ShiTiMiaoShu", options: ".el-radio-group label .label,.el-checkbox-group label .label", type: ".question-box .tag", workType: "cnzx", pageType: "cnzx" }, init: async () => { }, answerHook: (item) => { log($(item.html).text()); item.question = removeHtml1(titleClean(removeHtml1($(item.html).html()))); let type = $("ul.TiXing>li.DangQianTiXing:eq(0)>a").text(); let answer = []; let option = $(item.html).next(); item.options = removeStartChar(option.find("ul li").map((_i, e) => { if ($(e).hasClass("DaAn1")) { answer.push(_i); } return titleClean(removeHtml1($(e).html())); }).get()); item.answer = answer.map((i) => { return item.options[i]; }); switch (type) { case "单选题": case "词汇与结构": case "交际用语": item.type = "0"; break; case "多选题": item.type = "1"; break; case "判断题": item.type = "3"; item.options = []; item.answer = isTrue(item.answer[0]) ? ["正确"] : isFalse(item.answer[0]) ? ["错误"] : []; break; } return item; } } ]; const yktDecode = (table, table1, text) => { let reg = /(.+?)<\/span>/g; let fontList = text.match(reg); if (fontList) { fontList.forEach((font) => { reg = /(.+?)<\/span>/; let fontStr = reg.exec(font); if (fontStr && fontStr.length > 1) { let zz = fontStr[1]; let zz1 = zz.split("").map((item) => { return table[table1[item]]; }).join(""); text = text.replace(fontStr[0], zz1); } }); } return text; }; const ttfDownload = async (url) => { return new Promise((resolve) => { _GM_xmlhttpRequest({ method: "GET", url, responseType: "arraybuffer", onload: function(response) { let tables = {}; const font = Typr$1.parse(response.response); for (let i = 19968; i <= 40959 + 1; i++) { let char = String.fromCharCode(i); let glyphIndex = Typr$1.U.codeToGlyph(font, i); const path = Typr$1.U.glyphToPath(font, glyphIndex); let hash = md5Exports.md5(JSON.stringify(path)); tables[char] = hash; } resolve(tables); }, onerror: function(error) { resolve({}); } }); }); }; const ykt = [ { type: "hook", name: "hook", match: location.host.includes("yuketang.cn"), main: (data) => { _unsafeWindow.mainClass = $("#app")[0].__vue__.$route.name; log(_unsafeWindow.mainClass, "success"); let observer = new MutationObserver(async (mutations) => { if (_unsafeWindow.mainClass !== $("#app")[0].__vue__.$route.name) { _unsafeWindow.mainClass = $("#app")[0].__vue__.$route.name; vuePageChange(); observer.disconnect(); } }); if ($("#app").length >= 1) { observer.observe($("#app")[0], { subtree: true, attributes: true, childList: true }); } } }, { type: "ask", name: "雨课堂考试", tips: "雨课堂暂时未开发完,仅支持选择判断", match: () => location.host.includes("yuketang.cn") && location.href.includes("/exam/"), question: { html: ".exercise-item", question: ".content", options: ".el-checkbox__label,.el-radio__label", type: ".question-box .tag", workType: "xinwei", pageType: "xinwei" }, init: async () => { await waitUntil(function() { return $(".exercise-item").length !== 0; }); }, next: () => { }, ischecked: (item) => { return item.parent().hasClass("is-checked"); }, questionHook: (item) => { const ques = item.html.__vue__.item; item.type = typeChange(ques.TypeText); item.question = titleClean(removeHtml1(ques.Body)).trim(); const options = {}; ques.Options && ques.Options.forEach((item1) => { options[item1.key] = removeHtml1(item1.value); }); item.options = ques.Options.sort((a, b) => { return a.key.charCodeAt(0) - b.key.charCodeAt(0); }).map((item1) => { return removeHtml1(item1.value); }); switch (item.type) { case "0": case "1": break; case "2": item.options = []; break; case "3": item.options = []; break; } return item; }, setAnswer: (item) => { switch (item.type) { case "3": item.ques.$options.get().forEach((element) => { isFalse(item.answer) && $(element).find(".el-icon-close").length > 0 && element.click(); isTrue(item.answer) && $(element).find(".el-icon-check").length > 0 && element.click(); }); return false; } return true; }, finish: (item) => { } }, { type: "ask", name: "雨课堂作业", tips: "雨课堂仅兼容选择判断,其他题型请反馈给作者。雨课堂作业请务必开启自动切换,否则无法自动答题或导致答题错乱", match: () => location.host.includes("yuketang.cn") && location.href.includes("cloud/student/exercise"), question: { html: ".subject-item.J_order", question: ".content", options: ".el-radio__label", type: ".question-box .tag", workType: "yuketang", pageType: "yuketang" }, init: async () => { await waitUntil(function() { return $(".el-icon-loading").length == 0 && $(".container-problem").length > 0 && $(".container-problem")[0].__vue__ && $(".container-problem")[0].__vue__.exerciseList; }); const yktQues = $(".container-problem")[0].__vue__.exerciseList; if (!yktQues) { msg("未找到题目"); return; } msg("正在下载字体包,请耐心等待"); _unsafeWindow.ttfTable = await ttfDownload(yktQues.font); _unsafeWindow.problems = yktQues.problems; }, // 跳转指定 toquestion: (index) => { $(`.aside-body ul>li:eq(${index}) .subject-item`).click(); }, // 下一题 next: () => { $('.el-button.el-button--text:contains("下一题")').click(); }, ischecked: (item) => { return item.hasClass("is-checked"); }, questionHook: (item, index) => { if ($(".el-button.el-button--info.is-disabled.is-plain").length > 0) { return; } const problem = _unsafeWindow.problems[index]; const ttfTable = _unsafeWindow.ttfTable; const content = problem.content; problem.user; const table = JSON.parse(_GM_getResourceText("ttf2")); item.question = titleClean(removeHtml1(yktDecode(table, ttfTable, content.Body))).trim(); item.type = typeChange(content.TypeText); item.$options = () => { return $(".item-body ul>li>label"); }; const options = {}; if (content.Options) { content.Options.map((item1) => { options[item1.key] = removeHtml1(yktDecode(table, ttfTable, item1.value)); }); item.options = content.Options.sort( (a, b) => { return a.key.charCodeAt(0) - b.key.charCodeAt(0); } ).map((item1) => { return removeHtml1(yktDecode(table, ttfTable, item1.value)); }); } switch (item.type) { case "0": case "1": break; case "2": item.question = removeHtml1(item.question.replace(/\[填空\d\]/g, "")); break; case "3": item.options = []; break; default: log("未知题型", item.type, "error"); break; } return item; }, setAnswerHook: (item) => { }, setAnswer: (item) => { switch (item.type) { case "3": $(".item-body ul>li").get().forEach((element) => { isFalse(item.answer) && $(element).find('use[*|href="#icon--tiankongticuowu"]').length > 0 && $(element).find("label").click(); isTrue(item.answer) && $(element).find('use[*|href="#icon--tiankongtizhengque"]').length > 0 && $(element).find("label").click(); }); return false; } return true; }, finish: (item) => { } }, { type: "save", name: "考试收录", match: () => location.host.includes("yuketang.cn") && location.href.includes("/result/"), question: { html: ".subject-item > .result_item", question: "h4.clearfix.exam-font", options: "ul.list-unstyled li", type: ".item-type", workType: "yuketang", pageType: "yuketang" }, init: async () => { await waitUntil(function() { return $(".subject-item").length; }); }, answerHook: (item, index) => { const ques = item.html.__vue__.item; item.type = typeChange(ques.TypeText); const options = {}; if (ques.Options) { ques.Options.forEach((item1) => { options[item1.key] = removeHtml1(item1.value); }); item.options = ques.Options.sort((a, b) => { return a.key.charCodeAt(0) - b.key.charCodeAt(0); }).map((item1) => { return removeHtml1(item1.value); }); } item.question = titleClean(removeHtml1(ques.Body)).trim(); switch (item.type) { case "0": case "1": if (typeof ques.Answer === "string") { item.answer = ques.Answer.split("").map((item2) => { return options[item2]; }); } else if (typeof ques.Answer === "object") { item.answer = ques.Answer.map((item2) => { return options[item2]; }); } break; case "2": log(ques.Blanks, "error"); item.answer = ques.Blanks.map((aa) => { return removeHtml1(aa.Answers[0]); }); break; case "3": item.options = []; isTrue(ques.Answer[0]) ? item.answer = ["正确"] : isFalse(ques.Answer[0]) ? item.answer = ["错误"] : item.answer = []; break; } return item; } }, { type: "save", name: "作业收录", match: () => location.host.includes("yuketang.cn") && location.href.includes("cloud/student/exercise"), question: { html: ".dot", question: "h4.clearfix.exam-font", options: "ul.list-unstyled li", type: ".item-type", workType: "yuketang", pageType: "yuketang" }, init: async () => { await waitUntil(function() { return $(".el-icon-loading").length == 0 && $(".container-problem").length > 0 && $(".container-problem")[0].__vue__ && $(".container-problem")[0].__vue__.exerciseList; }); await waitUntil(function() { return $(".el-button.el-button--info.is-disabled.is-plain").length != 0; }); const yktQues = $(".container-problem")[0].__vue__.exerciseList; if (!yktQues) { msg("未找到题目"); return; } msg("正在下载字体包,请耐心等待"); _unsafeWindow.ttfTable = await ttfDownload(yktQues.font); _unsafeWindow.problems = yktQues.problems; log($(".container-problem")[0].__vue__.exerciseList, "success"); }, answerHook: (item, index) => { const problem = _unsafeWindow.problems[index]; const ttfTable = _unsafeWindow.ttfTable; const content = problem.content; const user = problem.user; const table = JSON.parse(_GM_getResourceText("ttf2")); item.question = titleClean(removeHtml1(yktDecode(table, ttfTable, content.Body))).trim(); item.type = typeChange(content.TypeText); const options = {}; if (content.Options) { content.Options.map((item1) => { options[item1.key] = removeHtml1(yktDecode(table, ttfTable, item1.value)); }); item.options = content.Options.sort( (a, b) => { return a.key.charCodeAt(0) - b.key.charCodeAt(0); } ).map((item1) => { return removeHtml1(yktDecode(table, ttfTable, item1.value)); }); } switch (item.type) { case "0": case "1": if (typeof user.answer === "string") { item.answer = user.answer.split("").map((item2) => { return options[item2]; }); } else if (typeof user.answer === "object") { item.answer = user.answer.map((item2) => { return options[item2]; }); } break; case "2": item.question = removeHtml1(item.question.replace(/\[填空\d\]/g, "")); item.answer = content.Blanks.map((xx) => { return removeHtml1(xx[0]); }); item.answer = item.answer.filter((item2) => { return item2 !== "undefined"; }); if (item.answer.length != content.blank_count) { log("填空题数量不对", item.answer, "error"); item.answer = []; log(user.answers, "error"); item.answer = Object.values(user.answers).map((xx) => { return removeHtml1(xx[0]); }); } break; case "3": item.options = []; isTrue(user.answer[0]) ? item.answer = ["正确"] : isFalse(user.answer[0]) ? item.answer = ["错误"] : item.answer = []; break; } return item; } } ]; const ahjxjy = [ { type: "ask", name: "安徽继续教育答题", tips: "该平台仅支持单选、多选、判断题型,其他题型暂不支持", match: () => location.host === "main.ahjxjy.cn" && (location.href.includes("study/html/content/studying/?courseOpenId=") || location.href.includes("study/html/content/sxsk/?courseOpenId=") || location.href.includes("study/html/content/tkOnline/?courseOpenId=")), question: { html: ".e-q-body>.e-q", question: ".ErichText", options: "ul>li>.ErichText", type: ".question-box .tag", workType: "ahjxjy", pageType: "ahjxjy" }, init: async () => { await waitUntil(function() { return isExist(".e-q-body>.e-q") && isExist(".e-save"); }); if (!isExist(".photo-time")) { return false; } }, ischecked: (item) => { return item.parent().parent().hasClass("is-checked"); }, questionHook: (item) => { item.type = $(item.html).parent().parent().attr("id").trim(); switch (item.type) { case "2": item.type = "1"; break; case "1": item.type = "0"; break; case "3": item.type = "3"; item.$options = $(item.html).find("ul>li"); break; default: log("暂未适配当前题型", item.type, "error"); return; } return item; }, setAnswer: (item) => { return true; }, finish: (item) => { } }, { type: "save", name: "安徽继续教育收录", tips: "该平台仅支持单选、多选、判断题型,其他题型暂不支持", match: () => location.host === "main.ahjxjy.cn" && (location.href.includes("study/html/content/studying/?courseOpenId=") || location.href.includes("study/html/content/sxsk/?courseOpenId=")), question: { html: ".e-q-body>.e-q", question: ".ErichText", options: "ul>li>.ErichText", type: ".question-box .tag", workType: "ahjxjy", pageType: "ahjxjy" }, init: async () => { await waitUntil(function() { log(isExist(".e-save")); return isExist(".e-q-body>.e-q") && isExist(".e-save"); }); if (!isExist(".totalscore")) { return false; } }, answerHook: (item) => { item.type = $(item.html).parent().parent().attr("id").trim(); item.$options = $(item.html).find("ul>li"); let an = $(item.html).find("ul>li.checked").map((index, element) => { return removeHtml1($(element).find(".ErichText").html()); }).get(); const isT = $(item.html).find(".e-q-right").length > 0; item.answer = an.filter((item2) => item2 !== ""); let ckAnswer = $(item.html).find(".e-ans-ref .e-ans-r").map((index, element) => { return removeHtml1($(element).html()); }).get(); if (ckAnswer.length === 1 && ckAnswer[0].length > 1) { ckAnswer = ckAnswer[0].split("、"); } let ans = ckAnswer.map((item1) => { let index = item1.charCodeAt() - 65; return item.options[index]; }).filter((item1) => item1 !== "" && item1 !== void 0); switch (item.type) { case "2": item.type = "1"; break; case "1": item.type = "0"; break; case "3": item.type = "3"; item.answer = $(item.html).find("ul>li.checked").map((index, element) => { return removeHtml1($(element).html()); }).get(); item.options = []; isTrue(item.answer[0]) ? item.answer = ["正确"] : isFalse(item.answer[0]) ? item.answer = ["错误"] : item.answer = []; break; case "11": item.type = "19"; const quesList = $(item.html).find("form").map((index, element) => { return { type: "0", question: removeHtml1($(element).find(".e-q-q .ErichText").html()), options: $(element).find("ul li .ErichText").map((index2, element2) => { return removeHtml1($(element2).html()); }).get() }; }).get(); ans = ans.length > 0 ? judgeAnswer(ans[0]) : []; item.options = quesList; default: log("暂未适配当前题型", item.type, "error"); return; } if (ans.length > 0) { item.answer = ans; return item; } if (!isT && item.type === "3" && item.answer.length > 0) { item.answer = judgeAnswer(item.answer[0]); } else if (!isT) { return; } return item; } } ]; const qingshu = [ { type: "save", name: "青书作业答题收录", match: () => location.host === "degree.qingshuxuetang.com" && (location.href.includes("Student/ExercisePaper?courseId=") || location.href.includes("Student/ViewQuiz?quizId=")), question: { html: ".paper-container > .question-detail-container", question: ".question-detail-description", options: ".question-detail-options .question-detail-option .option-description-preview", type: ".question-detail-type-desc", workType: "qingshu", pageType: "qingshu" }, init: async () => { await waitUntil(function() { return isExist(".question-detail-container") && _unsafeWindow.qsques; }); }, answerHook: (item, index) => { const ques = _unsafeWindow.qsques[index]; item.question = removeHtml1(ques.description); item.options = ques.options ? ques.options.map((v) => { return removeHtml1(v.description); }) : []; item.type = typeChange(ques.typeDesc); item.answer = ques.solution.split("").map((v) => { return item.options[v.charCodeAt(0) - 65]; }); switch (item.type) { case "3": item.options = []; item.answer = isTrue(item.answer[0]) ? ["正确"] : isFalse(item.answer[0]) ? ["错误"] : [""]; break; case "15": item.options = []; item.answer = []; ques.subQuestions.forEach((v) => { let options = v.options ? v.options.map((v2) => { return removeHtml1(v2.description); }) : []; let answer = v.solution.split("").map((v2) => { return options[v2.charCodeAt(0) - 65]; }); item.answer.push(answer); item.options.push(options); }); } return item; } }, { type: "ask", name: "青书学堂作业答题", tips: "青书学堂仅支持选择、判断等题型,其他题型请反馈给作者", match: () => location.host === "degree.qingshuxuetang.com" && (location.href.includes("/Student/ExercisePaper") || location.href.includes("Student/ExamPaper")), question: { html: ".paper-container > .question-detail-container", question: ".question-detail-description", options: ".question-detail-options .question-detail-option .option-description", type: ".question-detail-type-desc", workType: "qingshu", pageType: "qingshu" }, init: async () => { await waitUntil(function() { return isExist(".question-detail-container") && _unsafeWindow.qsques; }); }, next: () => { }, ischecked: (item) => { return item.parent().find("input").prop("checked"); }, toquestion: (index) => { log($(`.answered.group_item:eq(${index})`)); $(`.answered.group_item:eq(${index})`).click(); }, questionHook: (item, index) => { const ques = _unsafeWindow.qsques[index]; item.question = removeHtml1(ques.description); item.options = ques.options ? ques.options.map((v) => { return removeHtml1(v.description); }) : []; item.type = typeChange(ques.typeDesc); switch (item.type) { case "3": item.options = []; break; } return item; }, setAnswer: (item) => { return true; }, finish: (item) => { } } ]; const uooc = [ { type: "save", name: "优课在线收录", match: () => location.host === "cce.org.uooconline.com" && (location.href.includes("/exam/paper") || location.href.includes("/exam/")), question: { html: ".queContainer", question: ".topic-title", options: ".el-radio-group label .label,.el-checkbox-group label .label", type: ".question-box .tag", workType: "uooc", pageType: "uooc" }, init: async () => { await waitUntil(function() { return $(".queContainer").length !== 0; }); }, answerHook: (item) => { const ques = _unsafeWindow.angular.element(item.html).scope().question; item.type = typeChange(ques.type_text); item.question = ques.question; item.options = ques.options_app.map((item2) => item2.value); item.answer = ques.answer.map((ans) => { return ques.options[ans]; }); switch (item.type) { case "3": item.options = []; item.answer = judgeAnswer(item.answer[0]); break; } return item; } } ]; const cjedu = [ { type: "ask", name: "京人平台答题", tips: "京人平台仅支持选择判断,其他题型请反馈给作者", match: () => location.host.includes("cj-edu.com") && location.href.includes("/Examination"), question: { html: ".el-main>.all_subject>div.el-row", question: "div.stem", options: "ul li > label > span.el-radio__label > div:nth-child(2),ul li > label > span.el-checkbox__label > div:nth-child(2)", type: ".question-box .tag", workType: "cjedu", pageType: "cjedu" }, init: async () => { await waitUntil(function() { return $(".el-main>.all_subject>div.el-row").length !== 0; }); }, next: () => { }, ischecked: (item) => { return item.parent().parent().hasClass("is-checked"); }, questionHook: (item) => { let type = $(item.html).prevAll("h1").first().text().trim(); switch (type) { case "单选题": item.type = "0"; break; case "多选题": item.type = "1"; break; case "判断题": item.$options = $(item.html).find("ul li>label"); item.options = []; item.type = "3"; break; } return item; }, setAnswer: (item) => { return true; }, finish: (item) => { } }, // 芯位教育收录 { type: "save", name: "京人平台作业收录", match: () => location.host.includes("cj-edu.com") && location.href.includes("/ViewAnswerSheet"), question: { html: ".el-main>.all_subject>div.el-row", question: "p.stem", options: "ul li > label > span.el-radio__label > div:nth-child(2),ul li > label > span.el-checkbox__label > div:nth-child(2)", type: ".question-box .tag", workType: "cjedu", pageType: "cjedu" }, init: async () => { await waitUntil(function() { return $(".el-main>.all_subject>div.el-row").length !== 0; }); }, answerHook: (item) => { let answer = $(item.html).find(".seeStudentAnswer>p.answer").text().replace("参考答案:", "").trim(); let type = $(item.html).prevAll("h1").first().text().trim(); if (item.options.length > 0) { item.answer = answer.split(",").map((i) => { return item.options[i.charCodeAt(0) - 65]; }); } switch (type) { case "单选题": item.type = "0"; break; case "多选题": item.type = "1"; break; case "判断题": item.options = []; item.answer = judgeAnswer(answer); item.type = "3"; break; } return item; } } ]; const ytccr = [ { type: "ask", name: "绎通继教云答题", tips: "绎通继教云仅支持选择判断", match: () => location.host.includes("ytccr.com") && location.href.includes("learning-work") && location.href.includes("type=3"), question: { html: ".border-item", question: ".title.qa-title", options: ".opts-list .opt-title-cnt", type: ".question-box .tag", workType: "ytccr", pageType: "ytccr" }, init: async () => { await waitUntil(function() { return $(".border-item").length !== 0; }); }, next: () => { }, ischecked: (item) => { return item.parent().parent().hasClass("is-checked"); }, questionHook: (item) => { item.type = typeChange($(item.html).find(".qtype").text().trim()); switch (item.type) { case "3": item.options = []; break; } return item; }, setAnswer: (item) => { return true; }, finish: (item) => { } }, { type: "save", name: "绎通继教云收录", match: () => location.host.includes("ytccr.com") && location.href.includes("learning-work") && location.href.includes("type=5"), question: { html: ".border-item", question: ".title.qa-title", options: ".opts-list .opt-title-cnt", type: ".question-box .tag", workType: "ytccr", pageType: "ytccr" }, init: async () => { await waitUntil(function() { return $(".border-item").length !== 0; }); }, answerHook: (item) => { item.type = typeChange($(item.html).find(".qtype").text().trim()); let answer = $(item.html).find(".u-text-success,.u-text-danger").text().split(",")[0].trim(); answer = answer.match(/[A-Z]+$/)[0].trim(); item.answer = answer.split("").map((xx) => { return item.options[xx.charCodeAt(0) - 65]; }); if (item.answer.length === 0) { return item; } switch (item.type) { case "3": item.options = []; item.answer = judgeAnswer(item.answer[0]); } return item; } } ]; const _ruleList = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, ahjxjy, chaoxing, chatglm, chengjiaoyun, cjedu, cnzx, guokai, jsou, qingshu, uooc, xinwei, ykt, ytccr, yunmuxueyuan, zhihuishu, zhijiaoyun }, Symbol.toStringTag, { value: "Module" })); const rule = []; for (const key2 in _ruleList) { rule.push(..._ruleList[key2]); } const parseRuleHook = (rule2) => { rule2.filter((item) => item.match && item.hook).forEach((item) => { item.hook(); }); }; const parseRule = async (rule2) => { await waitUntil(() => _unsafeWindow[key] !== void 0); const matchedRule = rule2.filter((item) => { if (typeof item.match === "function") { return item.match(); } return item.match; }); const data = wapp(); if (!matchedRule.length) { data.app.app.alert = "当前没有任务"; console.log("没有匹配到规则", "error"); return; } for (const item of matchedRule) { console.log(`匹配到规则:${item.name}`, "success"); if (item.init) { let init = await item.init(); if (typeof init == "boolean" && init === false) { continue; } } data.app.alert = `当前任务:${item.name}`; if (item.type === "hook") item.main(data); if (item.type === "ask") askParser(item, data); if (item.type === "save") saveParser(item, data); } }; const saveParser = (rule2, data) => { const app = data.app; const ask = data.ask; ask.rule = rule2; rule2.tips && (ask.tips = rule2.tips); const quesList = questionSaveParser(rule2.question, rule2.answerHook || null).filter((item) => { if (item == null || item.answer.length === 0 || item.answer === "" || item.type == "8") { return false; } return true; }); ask.saveQuestionData = quesList; quesList.forEach((item) => { if (item.answer.length !== 0) { Answer.cacheAnswer(item); } }); const postData = { "questionList": quesList, "pageType": rule2.question.pageType }; app.setPage("question"); quesList.length && Answer.syncQuestionList(postData); app.app.alert = `题库收录完成,共缓存${quesList.length}道题目`; msg(`题库收录完成,共缓存${quesList.length}道题目`, "success"); rule2.next && rule2.next(); }; const askParser = (rule2, data) => { const app = data.app; const ask = data.ask; ask.rule = rule2; rule2.tips && (ask.tips = rule2.tips); app.app.showFloat = !app.app.hideFloat; app.setPage("ask"); ask.clearQuestion(); const quesList = questionParser(rule2.question, rule2.questionHook || null); quesList.forEach((item) => { ask.addQuestion(item); }); ask.autoAnswer && ask.toggleStart(); }; const questionSaveParser = (item, hook) => { if (typeof item.html === "function") { item.html = item.html(); } const quesLIst = $(item.html).map((index, element) => { const questionText = removeHtml1($(element).find(item.question).html()); const options = $(element).find(item.options).map((index2, element2) => { return removeHtml1($(element2).html()); }).get(); const questionTypeId = $(element).find(item.type).val(); const html = $(element)[0]; let questionData = { question: titleClean(questionText ?? ""), options, $options: $(element).find(item.options), $answer: $(element).find(item.answer), answer: [], type: questionTypeId, html }; hook && (questionData = hook(questionData, index)); if (questionData == void 0 || questionData == null) { return null; } return { question: questionData.question, options: questionData.options, answer: questionData.answer, type: questionData.type }; }); return quesLIst.get(); }; const questionParser = (item, hook) => { if (typeof item.html === "function") { item.html = item.html(); } const quesLIst = $(item.html).map((index, element) => { const questionText = removeHtml1($(element).find(item.question).html()); const options = $(element).find(item.options).map((index2, element2) => { return removeHtml1($(element2).html()); }).get(); const questionTypeId = $(element).find(item.type).val(); const workType = item.workType; const html = $(element)[0]; let questionData = { question: titleClean(questionText ?? ""), options, $options: $(element).find(item.options), type: questionTypeId, html, workType, pageType: item.pageType }; hook && (questionData = hook(questionData, index)); return questionData; }); return quesLIst.get(); }; const defaultSetAnswer = async (type, answer, ques, rule2) => { var _a; switch (type) { case "xx": for (let i = 0; i < ques.$options.length; i++) { if (answer.includes(i)) { if (rule2.ischecked && rule2.ischecked(ques.$options.eq(i))) { continue; } ques.$options.eq(i).click(); await sleep(Math.floor(Math.random() * 300 + 200)); } else if (rule2.ischecked && rule2.ischecked(ques.$options.eq(i))) { ques.$options.eq(i).click(); await sleep(Math.floor(Math.random() * 300 + 200)); } } break; case "pd": let bold = answer; if (ques.options.length == 0) { ques.$options.each((index, element) => { if (isTrue(bold) && isTrue(removeHtml1($(element).html()))) { $(element).click(); } if (isFalse(bold) && isFalse(removeHtml1($(element).html()))) { $(element).click(); } }); } else { ques.$options.each((index, element) => { if (isTrue(bold) && isTrue(ques.options[index])) { $(element).click(); } if (isFalse(bold) && isFalse(ques.options[index])) { $(element).click(); } }); } break; case "jd": $(ques.html).find("textarea").each(function(index) { _unsafeWindow.UE.getEditor($(this).attr("name")).ready(function() { this.setContent(answer[index].replace(/第.空:/g, "")); }); }); (_a = $(ques.html).find(".savebtndiv>a")) == null ? void 0 : _a.click(); break; } }; const ApiAnswerMatch = (res, ques) => { const data = wapp(); const ask = data.ask; let blankNum = 0; let answer; let setHook = true; let type = ques.type, html = ques.html; let matchArr = []; let answerData = [ "", matchArr, ques, ask.rule ]; if (ques.$options && typeof ques.$options === "function") { ques.$options = ques.$options(); } switch (type) { case "0": case "1": for (let i = 0; i < res.length; i++) { let answer2 = res[i].answer; let matchArr2 = matchAnswer(answer2, ques.options); res[i].match = matchArr2; } matchArr = res.filter((item) => item.match.length > 0); if (matchArr.length === 0) { return { res, haveAnswer: false }; } if (matchArr.length > 1) { let isSame = matchArr.every((item) => item.match.length === matchArr[0].match.length); if (!isSame) { let max = matchArr[0]; for (let i = 1; i < matchArr.length; i++) { if (matchArr[i].match.length > max.match.length) { max = matchArr[i]; } } matchArr = [max]; } } let selectM = matchArr[0].match; answerData[0] = "xx"; answerData[1] = selectM; break; case "3": matchArr = res.map((item) => { let answer2 = item.answer; if (typeof answer2 === "object") { answer2 = answer2[0]; } if (isTrue(answer2)) { item.answer = "正确"; } else if (isFalse(answer2)) { item.answer = "错误"; } else { item.answer = ""; } return item; }); matchArr = res.filter((item) => item.answer !== ""); if (matchArr.length === 0) { return { res, haveAnswer: false }; } answerData[0] = "pd"; answerData[1] = matchArr[0].answer; break; case "2": case "9": case "4": case "5": case "6": case "7": blankNum = $(html).find("textarea").length; matchArr = res.filter((item) => item.answer.length > 0); if (matchArr.length === 0) { return { res, haveAnswer: false }; } answer = matchArr[0].answer; if (typeof answer === "string") { answer = [answer]; } matchArr = matchArr.filter((item) => (typeof item.answer === "string" ? 1 : item.answer.length) === blankNum); if (matchArr.length === 0) { return { res, haveAnswer: false }; } answerData[0] = "jd"; answerData[1] = answer; break; case "14": blankNum = ques.$options.length; matchArr = res.filter((item) => item.answer.length > 0 && item.answer.length === blankNum); if (matchArr.length === 0) { return { res, haveAnswer: false }; } answer = matchArr[0].answer; matchArr = matchArr.filter((item) => (typeof item.answer === "string" ? 1 : item.answer.length) === blankNum); if (matchArr.length === 0) { return { res, haveAnswer: false }; } answerData[0] = "wxtk"; answerData[1] = answer; break; case "11": matchArr = res.filter((item) => { return typeof item.answer === "object"; }); if (matchArr.length === 0) { return { res, haveAnswer: false }; } answer = matchArr[0].answer; answerData[0] = "lx"; answerData[1] = answer; break; default: return { res, haveAnswer: false }; } if (ask.rule.setAnswerHook && typeof ask.rule.setAnswerHook === "function") { ask.rule.setAnswerHook({ type, answer: answerData[1], html: ques.html, ques }); } if (ask.rule.setAnswer && typeof ask.rule.setAnswer === "function") { setHook = ask.rule.setAnswer({ type, answer: answerData[1], html, ques, rule: ask.rule }); } if (setHook) { defaultSetAnswer(answerData[0], answerData[1], ques, ask.rule); } return { res, // 采用答案 form: matchArr ? matchArr[0] : [], haveAnswer: true }; }; const randomAnswerMatch = (res, ques) => { const data = wapp(); const ask = data.ask; let setHook = true; let type = ques.type, html = ques.html; let answerData = [ "", [], ques, ask.rule ]; switch (type) { case "0": case "1": let selectM = [Math.floor(Math.random() * ques.options.length)]; answerData[0] = "xx"; answerData[1] = selectM; break; case "3": let bold = Math.random() > 0.5 ? "正确" : "错误"; answerData[0] = "pd"; answerData[1] = bold; break; default: return; } if (ask.rule.setAnswerHook && typeof ask.rule.setAnswerHook === "function") { ask.rule.setAnswerHook({ type, answer: answerData[1], html: ques.html, ques }); } if (ask.rule.setAnswer && typeof ask.rule.setAnswer === "function") { setHook = ask.rule.setAnswer({ type, answer: answerData[1], html, ques, rule: ask.rule }); } if (setHook) { defaultSetAnswer(answerData[0], answerData[1], ques, ask.rule); } return; }; const vuePageChange = async () => { if (_unsafeWindow.vuePageChangeLock) return; _unsafeWindow.vuePageChangeLock = true; const data = wapp(); const app = data.app; const ask = data.ask; ask.questionInx = 0; app.app.showFloat = false; app.setPage("home"); ask.clearQuestion(); await parseRule(rule); _unsafeWindow.vuePageChangeLock = false; }; const zhsimgList = { "ef16b0304b00ce71fd40a6ec2ee77005": "ACDFGHIJ", "735b46e223cfc7bad9b86c9937c75234": "BDEFG", "24ec8818a8cc7ef047261e702dac5815": "ABCDEFGHIJ", "196888b3dcb1e1bfff5881cb653ba923": "BDEFGH", "b935cd024690d61b8fba0484a66108f0": "ABCDEGH", "2015082c8ae5776bfd6939c5b987bde8": "BEF", "95018628ad8e26805393ebbb913f5655": "AF", "9cbff65dc6a768716f51443d6086a1c3": "BDG", "b8f6dedb0bf830a10b66369b1c602088": "CFG", "1ad38a724dc5bac06ce6d1c63b0184cf": "ACDEFGI", "6ba30ef9d51b4c81a126ff6d17ee4fb2": "AEFHIJ", "78a0d910c07fde12bafafda0f23c8b31": "CEH", "9ae999623635bc09942f1d0eb59e6837": "BH", "7d6006b8e10d9dffbe1fa0570757caa7": "DH", "86eba22e064f8fe7223621469d91c696": "ACDF", "4e585ee0c6ac7c985615389285c830ef": "BCF", "5ff23de904db9fb6485cddb667995cd7": "ABCDEFGHI", "fc402dcdbd1751096532c45785acbbbe": "DF", "ece41fab3f00663e05f8f58eb73d24dd": "ABCDEFGH", "784388b61ba6bc8106194478e383908a": "CDFIJ", "e735470377881c422d187ce9bb7f4f24": "ACDEG", "6a721d0773b4945fbe8f550da3850005": "ABCDEFI", "cfcabe2eeaeef886169447086ac23b96": "AEG", "c38f5ab64c8b82df3bb66f8f9831097b": "AEF", "b684fb365965c6b3488eeedcae114384": "ADEF", "1c402ceeda5ea92b80fe8b5b5bcbdc4d": "ACF", "ce75bbb9a8b72f97de5a8bb03ee95df7": "J", "e21ba3c8d7f8bbb66e4af7a9182d87a5": "ACGI", "445adaca0de2f938fe7bacf8140eef36": "ABF", "4f14c1e0a1eccde02ee4f0a77eaa78cd": "BCEF", "e78e28ee7040cdf3894293cd2eeade9b": "H", "ee5a026e9664d3d75f0471b9bc826c98": "EF", "904d82937a49e762ec1fa7c53574bb39": "ADF", "2ee96820a6a35990bff61a607953274c": "BDDF", "dc13afaff7b568f31d96c0ff8b5998b8": "ABEF", "13c11253a2bb72c3726d318163662263": "ABCF", "ca8b276d3213cfda5e6406c0930dfdb5": "CDF", "0d38524f7ca472260864ef7b79b11591": "ABCDG", "0e9bfd8011be1eddfcf97102f9e21ab6": "DEF", "ca88100d2fd190136cdcb3ffe1648820": "DG", "2d8c02e62a414df727f2bd36d4231c68": "ABCFG", "099b9f86638886c7ca57401d4360165c": "ABCDEFG", "7a0a8f7222c07c8c24c4a6d201105ecc": "ACEF", "181f54c34d485b426b900e2c777a831c": "AEFHI", "993215603eb31c60f31aa261267790e8": "ABCEF", "fcae686eac9b3de629da73618ea6cdc0": "ABCDF", "8b6271d28906b0a6a765ea1c37c31ff9": "ABDF", "5dfd875662f18654b374acd37e6c3790": "CF", "e8b47f587340890e698ccb14ef1f39c4": "CDEF", "de2c87983e695e599c1a2f6836277a4f": "ABDEF", "14189c3fbb519be795b7fbe6e182debf": "A", "94f5aa9777f0f1fb7d53e669691d8bde": "AB", "3be90a70f03362711cf62e97751dfabe": "ABC", "b9691b2259745815096c074d5cc27514": "ABCD", "16374490395999a162f0652a32d13b8b": "ABCDE", "8b2a7f5a361969be6a905da99af21b44": "ABCDEF", "e12185b3db81b9ec20d0402632e83f74": "ACDEF", "83bd97c6c3ac69318ad965f7776a51b4": "ABCE", "80e9325ef9406e82b8202de25fd80cbb": "ABD", "7d2f8e1fc8dabca4d9baca38bf413732": "ABDE", "e329dd6e7aecd220d271ba06a87c1d4f": "ABE", "8d234f3f7209a68f21d4e2b8f367d0b3": "AC", "6ecb31b10f3e3a751f8d2caacbdc850d": "ACD", "034b452c93b9be10f437a385608d8c0f": "ACDE", "79b887d55f7fbe5f8f1e29537c4099b7": "ACE", "d23fcd2143ca2071fc33f912cf1c28e4": "AD", "32e93bed7ac49065a1af9639795f4b47": "ADE", "81e4110d9047c39ea1444a178b7cd33d": "AE", "fc9eb0edae6ae531956f368178f287e1": "B", "998251adc1952f413e9b2b8d2b3cad37": "BC", "47e6f17113fb5d7fa896270917aafb99": "BCD", "26fee236555e7629f11308452c47b032": "BCDE", "d22d3cc146b96cf9d049da3decb8060e": "BCDEF", "a90e4a238e95a9ef750a1e0844b6730b": "BCDG", "a4bfbd439f12870ac2294ac4f59c2ade": "BCE", "d7e98cd9fa6c9fc480ebcba65bbd5ed7": "BD", "859f062ed997fc06bebde9c00669d29d": "BDE", "1ad8f209d08633c3cee74a4f48862c4f": "BDEF", "8d34b7e5f05d2d9188a6d40a0f882cb0": "BDF", "fe4bf0dc5ee6f3e858034bacfbd8c657": "BE", "73223444a1f6ae044cc12664cfed422a": "C", "e5abe969bb50ce2495a7591f32d67cc3": "CD", "a897c5097bbbf5f66ad491c083a897f2": "CDE", "b01f11bd3ef4311b47cef1a032dde5c2": "CE", "ed3febdc9d4c5ca73f1066f3b6040d5a": "D", "6a1137dfc861563b83e2579024ce929f": "DE", "2e256e5ceb7a86e50fe2c93f622d30ac": "E", "ddeacacae3b5f3ceb9ae1638d1585271": "EG", "19be069faa48362663d092896fa7d4d4": "F", "52113efae9e75eacdb3529fefb168982": "G" }; const comHook = () => { Function.prototype.temp_constructor = Function.prototype.constructor; Function.prototype.constructor = function() { if (arguments && typeof arguments[0] === "string") { if (arguments[0] === "debugger") return () => { }; } return Function.prototype.temp_constructor.apply(this, arguments); }; const get_href = () => { return location.href; }; let baseSend = XMLHttpRequest.prototype.send; XMLHttpRequest.prototype.send = function() { this.addEventListener("readystatechange", function() { switch (true) { case /onlineexamh5new.zhihuishu.com/i.test(get_href()): if (this.readyState === 4 && (this.response.includes("workExamParts") || this.response.includes("lookHomework"))) { const data = JSON.parse(this.response); _unsafeWindow.zhsques = data.rt; } if (this.readyState === 4 && this.responseURL.includes("getAnswerImgInfo")) { let ques = {}; const data = JSON.parse(this.response).rt; for (let key2 in JSON.parse(this.response).rt) { ques[key2] = zhsimgList[md5Exports.md5(data[key2])]; } _unsafeWindow.zhsimgAnswer = ques; } break; case /icve.com.cn/i.test(location.host): if (this.readyState === 4 && this.responseURL && this.responseURL.includes("examRecordPaperList")) { log(JSON.parse(this.response), "success"); } break; case /yuketang.cn/i.test(get_href()): break; case /degree.qingshuxuetang.com/i.test(get_href()): if (this.readyState === 4 && this.responseURL.includes("Student/DetailData")) { const data = JSON.parse(this.response); _unsafeWindow.qsques = data.data.paperDetail.questions; log(data.data.paperDetail.questions, "success"); } break; case /cce.org.uooconline.com/i.test(get_href()): if (this.readyState === 4 && this.responseURL.includes("/exam/view?cid=")) { const data = JSON.parse(this.response); _unsafeWindow.cceques = data.data.questions; log(data.data.questions, "success"); } break; case /cj-edu.com/i.test(get_href()): if (this.readyState === 4 && this.responseURL.includes("api/student/getHomeworkStudentInfo.do")) { const data = JSON.parse(this.response); _unsafeWindow.cjques = data.data; log(data.data, "success"); } break; } }, false); return baseSend.apply(this, arguments); }; if (/onlineexamh5new.zhihuishu.com/i.test(get_href())) { const baseyxyz = _unsafeWindow.yxyz; _unsafeWindow.yxyz = function(a, b) { !_unsafeWindow.yxyzpush && (_unsafeWindow.yxyzpush = []); let data = baseyxyz(a, b); _unsafeWindow.yxyzpush.push({ ...a, data }); return data; }; } if (/icve.com.cn/i.test(get_href()) || /courshare.cn/i.test(get_href()) || /webtrn.cn/i.test(get_href())) { const baseOpen = _unsafeWindow.open; _unsafeWindow.open = function() { arguments[2] = ""; return baseOpen.apply(this, arguments); }; } if (/ytccr.com/i.test(get_href())) { const originalGetItem = localStorage.getItem; localStorage.getItem = function(key2) { if (key2 === "_debugger") { return true; } const result = originalGetItem.apply(this, arguments); return result; }; } }; const appConfig = { debug: true, // 第三方接口 searchApi: [], // 默认显示悬浮窗 showFloat: false, // 右下角看板 showBoard: true, // 检测更新 checkUpdate: true, // 强制隐藏悬浮窗 hideFloat: false, // 弹窗消息 alert: "点我有惊喜", // 右下角气泡提示开关 alertBubble: true, // key key: "", gpt: [ { "name": "GLM", "desc": "智普清言4.0", "api": "http://82.157.105.20:8002/v1/chat/completions", "key": "" } ] }; const appCache = Cache.get("app") || appConfig; Object.keys(appConfig).forEach((key2) => { if (appCache[key2] === void 0) { appCache[key2] = appConfig[key2]; } setApp(appCache); }); function getApp() { return Cache.get("app") || appConfig; } function setApp(config) { Cache.set("app", config); } const scriptInfo = _GM_info.script; const ConfigInput = { "base": [ { "type": "switch", "label": "默认显示悬浮", "name": "showFloat", "value": appCache.showFloat, "desc": "打开页面时是否显示悬浮窗", "options": [] }, // { // "type": "switch", // "label":"看板小图标", // "name":"showBoard", // "value": appCache.showBoard, // "desc":"打开页面时是否显示右下角看板", // "options":[ // ] // }, { "type": "switch", "label": "检测更新", "name": "checkUpdate", "value": appCache.checkUpdate, "desc": "打开页面时是否检测更新", "options": [] }, // 强制隐藏悬浮窗 { "type": "switch", "label": "强制隐藏", "name": "hideFloat", "value": appCache.hideFloat, "desc": "仅热键或点击右下角图片才显示悬浮窗", "options": [] }, // 右下角气泡提示 { "type": "switch", "label": "气泡提示", "name": "alertBubble", "value": appCache.alertBubble, "desc": "右下角气泡提示是否开启", "options": [] } ] }; const useAppStore = defineStore("app", { state: () => ({ app: appCache, script: scriptInfo, page: "home", ConfigInput }), actions: { setConfig(config) { this.app = config; Cache.set("app", config); }, // 修改页面 setPage(page) { this.page = page; } } }); const useAskStore = defineStore("ask", { state: () => ({ questionList: [], questionInx: 0, // 当前索引 inx: 0, // 定时器 Interval: 0, // 开启答题 start: false, // 跳过已答题 skipFinish: Cache.get("skipFinish", false), // 自动跳转 autoNext: Cache.get("autoNext", false), // 默认开启自动答题 autoAnswer: Cache.get("autoAnswer", true), // 免费题库优先 freeFirst: Cache.get("freeFirst", true), // 无答案随机答题 randomAnswer: Cache.get("randomAnswer", false), // 运行锁 lock: false, // 统计题库 formMap: {}, // 问答类型 type: "cx", // 加载状态 loading: false, // 默认msg tips: "本脚本仅供学习研究,请勿用于非法用途", // 答题延迟 delay: Cache.get("delay", 1e3), saveQuestionData: [] }), actions: { addQuestion(questionData) { this.questionList.push({ ...questionData, answer: [], status: 0, aiMsg: "" }); }, // 清空问题列表 clearQuestion() { this.questionList = []; }, getQuestion() { return this.questionList[this.questionInx]; }, nextQuestion() { if (this.questionInx === this.questionList.length - 1) { clearInterval(this.Interval); this.start = false; return; } this.questionInx++; }, prevQuestion() { if (this.questionInx === 0) { return; } this.questionInx--; }, // 切换到指定问题 toQuestion(inx) { this.questionInx = inx; let ques = this.questionList[inx]; this.rule.toquestion && this.rule.toquestion(inx); ques.html.scrollIntoView({ block: "center" }); if (_unsafeWindow.self !== _unsafeWindow.top) { let el = document.querySelector(".el-dialog"); if (el) { el.style.transform = "none"; let rect = ques.html.getBoundingClientRect(); el.style.top = `${rect.top - 700}px`; if (inx === 0) { el.style.top = "0px"; } if (inx === this.questionList.length - 1) { if (document.documentElement.scrollHeight > 2e3) { el.style.top = `${rect.top - 900}px`; } } } } ques.html.style.boxShadow = "0 0 10px rgba(0, 0, 0, 0.15)"; setTimeout(() => { ques.html.style.boxShadow = ""; }, 500); }, // 修改题目状态 setQuestionStatus(inx, status) { if (this.questionList[inx] && this.questionList[inx].status != void 0) { this.questionList[inx].status = status; } }, // 切换答题状态 async toggleStart() { const data = wapp(); const app = data.app; if (this.lock) return; this.start = !this.start; if (!this.start) return; this.lock = true; for (let i = this.questionInx; i < this.questionList.length && this.start; i++) { if (this.skipFinish && this.questionList[i].status === 1) { continue; } this.questionInx = i; let ques = this.questionList[i]; if (ques.type === "8") { this.setQuestionStatus(i, 2); continue; } await this.reAnswer(i); app.app.alert = `当前进度:${i + 1}/${this.questionList.length}`; await sleep(this.delay + Math.random() * 1e3); this.rule.toquestion && this.rule.toquestion(this.questionInx + 1); this.autoNext && this.rule.next && this.rule.next(); } this.autoNext && this.rule.finish && this.rule.finish({ "question": this.questionList }); this.start = false; this.lock = false; this.formMap = {}; this.questionList.forEach((item) => { var _a; if ((_a = item.form) == null ? void 0 : _a.form) { let key2 = item.form.form; if (key2) { this.formMap[key2] = this.formMap[key2] ? this.formMap[key2] + 1 : 1; } } else { this.formMap["无答案"] = this.formMap["无答案"] ? this.formMap["无答案"] + 1 : 1; } app.app.alert = `答题完成~`; }); }, // 重答指定题 async reAnswer(inx) { let ques = this.questionList[inx]; this.loading = true; let res = await Answer.getCacheAnswer(ques); let m = ApiAnswerMatch([res], ques); if (!m.haveAnswer) { if (this.freeFirst) { res = await Answer.getAnswersFree(ques); m = ApiAnswerMatch(res, ques); if (!m.haveAnswer) { let res1 = await Answer.getAnswers(ques); res1 = res.concat(res1); m = ApiAnswerMatch(res1, ques); } } else { res = await Answer.getAllAnswers(ques); m = ApiAnswerMatch(res, ques); } } ques.answer = m.res; ques.form = m.form; if (!m.haveAnswer) { this.randomAnswer && randomAnswerMatch(res, ques); this.setQuestionStatus(inx, 2); } else { this.setQuestionStatus(inx, 1); } this.loading = false; }, // ai答题 aiAnswer(inx) { const errorMsg = `AI响应异常,可能是没有获取KEY,请按下方步骤操作 1. 打开[智普清言](https://chatglm.cn/main/alltoolsdetail) 2. 登录后随便发一条消息即可 3. 返回答题页刷新页面 `; let ques = this.questionList[inx]; this.loading = true; let text = `[${typeChange2(ques.type)}]${ques.question} `; ques.aiMsg = ""; ques.options.forEach((item) => { text += `${item} `; }); if (ques.type === "24") { ques.match.forEach((item, index) => { text += `第一列${item} `; }); ques.selects[0].forEach((item, index) => { text += `第二列${item.text} `; }); } aiAsk( text, (msg2) => { ques.aiMsg += msg2; this.loading = false; }, () => { this.loading = false; if (ques.aiMsg.length <= 0) { ques.aiMsg = errorMsg; } } ); }, pause() { this.start = false; }, restart() { this.questionInx = 0; this.start = true; this.toggleStart(); } }, getters: { // 当前问题 current() { return this.questionList[this.questionInx]; }, currentAiMd() { const md = markdownit({ highlight: function(str, lang) { if (lang && hljs.getLanguage(lang)) { try { return '
' + hljs.highlight(str, { language: lang, ignoreIllegals: true }).value + "
"; } catch (__) { } } return '
' + md.utils.escapeHtml(str) + "
"; } }); return md.render(this.questionList[this.questionInx].aiMsg); } } }); const ApiCache = Cache.get("apiList", []); const DefApi = { name: "", url: "", method: "GET", params: [], response: [], request: [], headers: [] }; const DefParam = { name: "", value: "", type: "sys" }; const testQuestionData = { "question": "急性吗啡中毒的拮抗剂是:", "options": ["纳酪酮", "曲马朵", "尼莫地平", "阿托品", "肾上腺素"], "type": "0", "questionData": "", "workType": "ks" }; const useApiStore = defineStore("api", { state: () => ({ apiList: ApiCache, // 当前编辑的接口 currentApi: DefApi, currentParam: DefParam }), actions: { // 删除接口 deleteApi(index) { this.apiList.splice(index, 1); Cache.set("apiList", this.apiList); }, // 添加接口 addApi() { this.apiList.push(this.currentApi); Cache.set("apiList", this.apiList); }, // 更新接口 updateApi(index, api) { this.apiList[index] = api; Cache.set("apiList", this.apiList); }, // 添加参数 addParam() { this.currentApi.params.push({ name: this.currentParam.name, value: this.currentParam.value, type: this.currentParam.type }); this.currentParam = DefParam; }, // 删除参数 deleteParam(index) { this.currentApi.params.splice(index, 1); }, // 恢复默认 reset() { this.currentApi = DefApi; this.currentParam = DefParam; }, // 编辑接口 editApi(index) { this.currentApi = this.apiList[index]; }, // 编辑参数 editParam(index) { this.currentParam = this.currentApi.params[index]; }, // 测试API testApi(index) { let api = this.apiList[index]; let data = {}; api.params.forEach((item) => { switch (item.value) { case "$question": data[item.name] = testQuestionData.question; break; case "$options": data[item.name] = testQuestionData.options; break; case "$typeid": data[item.name] = testQuestionData.type; break; case "$questionData": data[item.name] = testQuestionData.questionData; break; case "$workType": data[item.name] = testQuestionData.workType; break; case "$timestamp": data[item.name] = (/* @__PURE__ */ new Date()).getTime(); break; case "$random": data[item.name] = Math.random(); break; default: data[item.name] = item.value; } }); return requestFetch(api.url, api.method, data, {}); } }, getters: {} }); const mini = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1702363595473'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='9984'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M253.360825%201024l-115.279176-58.836014v-53.205773c-64.888522-68.266667-62.917938-94.728797%2014.075602-153.424055-23.506254-17.594502-63.762474%202.674364-77.275052-36.315051%2047.434777-42.930584%2070.378007-101.062818%2087.972509-162.010172a326.694708%20326.694708%200%200%201%20208.037388-226.617182c4.644948-89.380069%2086.84646-143.430378%20178.478626-112.604811l-35.611272%2090.36536c105.144742%207.319313%20192.413471%2045.041924%20256.316701%20123.302268%2040.537732%2015.483162%2038.84866-34.766735%2069.251959-40.819244l11.964261%2058.27299%2050.390653-27.306667c28.151203%2018.72055-5.207973%2031.951615-10.415945%2052.220482%2014.779381%2020.12811%2028.995739%2040.537732%2044.4789%2060.243573a142.867354%20142.867354%200%200%201%2028.995739%20114.153128c-12.527285%2077.838076-30.262543%20154.831615-41.100756%20233.091958a1276.938557%201276.938557%200%200%200-5.207972%20139.48921h-21.113402l-89.239313-70.378007%209.993677-10.415945-17.735258%2036.878076L731.931271%20959.956014l-39.411683%2023.787766-42.226804-21.113402c-28.151203%2014.075601-52.501993%2036.03354-86.564949%2027.306667l-9.008385-37.863368H332.747216l-26.602886%2071.926323z%20m-9.993677-380.041237l-0.844536%200.985292%20126.680412%2019.705842%2010.838213%2010.978969c-29.277251%2032.373883-19.846598%2074.178419-29.699519%20110.493471L384.404674%20816.38488l-35.189004%2094.869553a412.274364%20412.274364%200%200%200%20233.514227%202.11134l9.712165-26.602886%2012.808797%2015.905429-11.823505%2050.672165%205.348728%204.644949c16.749966-11.682749%2033.218419-24.210034%2050.812921-34.62598a84.453608%2084.453608%200%200%201%2026.039863-5.348728l7.460069%2033.922199L731.931271%20928.145155l52.924262%2014.075601c-1.829828-43.212096-2.955876-80.934708-5.911753-118.516564%200-4.92646-9.852921-9.289897-15.060893-14.075601l-5.630241-23.224742%2014.075601-100.922062h18.72055l3.237389-1.266804c-11.964261%20106.411546%208.023093%20202.266392%2087.127972%20281.512027%208.726873-48.842337%2016.60921-93.321237%2024.632302-137.659381%207.460069-40.96%2015.060893-81.92%2022.520963-122.88%2010.556701-48.420069%2025.476838-97.262405-10.978969-140.756014L886.762887%20602.435739c0-16.468454%201.126048-33.077663%201.126048-49.546117%200-70.378007-53.205773-104.722474-115.982956-76.289759a232.951203%20232.951203%200%200%201-32.936907%209.430652c16.046186-32.373883-3.5189-52.924261-25.476838-70.378006a292.209485%20292.209485%200%200%200-209.304193-70.378007c-11.401237%200.70378-22.802474%200-40.25622%200l45.182681-104.581718c-40.396976%2010.978969-74.037663%2014.779381-94.728798%2045.464192s14.920137%2045.88646%2020.831891%2069.674227C325.005636%20360.194639%20232.528935%20436.343643%20198.606735%20548.948454l-70.378006%20172.707628%2049.123848%203.518901%205.630241%2054.191065c32.514639-26.039863%2026.039863-61.08811%2030.262543-92.898969h17.876014v58.413746l30.966323%206.33402c1.40756-6.615533%202.392852-11.682749%203.659656-16.468453%209.149141-34.625979-19.705842-59.117526-22.380206-91.491409zM205.50378%20822.859656l-6.474777%2020.83189-25.336082%2084.453609c1.548316%208.867629%200%2023.224742%205.067216%2025.476838%2032.373883%2016.046186%2065.733058%2029.277251%20104.159451%2045.745705%2021.113402-65.451546%2063.621718-114.434639%2069.53347-180.871478C315.152715%20802.309278%20281.512027%20786.966873%20247.730584%20774.158076c-17.031478-6.756289-36.315052-10.978969-35.048247%2019.002061z%20m121.753952-38.848659l10.556701-90.224605-48.138557-6.193265v78.964124z%20m-168.907217%2096.980893l23.083987-73.474639c-28.151203-10.415945-47.575533-9.289897-56.302406%2015.483161s2.674364%2042.789828%2032.936907%2057.991478z'%20fill='%23353947'%20p-id='9985'%3e%3c/path%3e%3cpath%20d='M198.606735%20548.948454c33.922199-112.604811%20126.680412-188.472302%20235.907079-192.272715-5.911753-23.787766-41.100756-39.55244-20.83189-69.674227s54.331821-34.485223%2094.728798-45.464192l-45.182681%20104.581718h40.25622a292.209485%20292.209485%200%200%201%20209.304193%2070.378007c21.957938%2017.735258%2042.226804%2038.285636%2025.476838%2070.378007l0.985292-0.985293c-30.966323%2026.743643-32.796151%2059.399038-19.846598%2095.151066l25.195327%2040.96-40.819244-6.193265-103.174158-14.075601-62.214158-93.039725-31.670104%2050.672165c-19.42433-5.630241-26.602887%200.844536-20.691134%2020.691134L464.494845%20579.210997a165.669828%20165.669828%200%200%200-100.077525-17.172234l-10.415945-86.564949L316.560275%20506.721649l-44.338144%2042.226805z%20m255.190653-62.917939l-10.556701-10.556701c-17.172234-17.031478-35.048247-15.060893-47.29402%203.378145s-4.785704%2036.73732%2012.105017%2050.249897c20.12811%2016.046186%2034.907491%209.712165%2045.745704-11.541993%2014.216357-10.838213%2015.201649-21.394914%200-31.81086z'%20fill='%23F5F5F6'%20p-id='9986'%20data-spm-anchor-id='a313x.search_index.0.i5.dc0f3a810XA6r8'%20class='selected'%3e%3c/path%3e%3cpath%20d='M592.442062%20886.762887l-9.712165%2026.602886a412.274364%20412.274364%200%200%201-233.514227-2.11134l35.189004-94.869553-34.062956-30.544055c9.852921-36.315052%200-78.119588%2029.699519-110.493471a198.184467%20198.184467%200%200%200%20105.426254-94.869553c16.327698%202.392852%2026.039863-1.689072%2020.691134-20.691134l31.670104-4.926461L600.887423%20633.402062c0%207.882337-1.970584%2018.01677%201.970584%2023.083986%2030.966323%2038.707904%2023.787766%2080.934708%2014.075601%20123.865292-8.586117%2036.03354-16.468454%2071.363299-24.491546%20106.411547zM442.818419%20663.523849c0%2014.075601-2.81512%2023.64701%200%2026.884398%2020.268866%2020.691134%2020.83189%2045.604948%2019.565086%2071.926323a96.840137%2096.840137%200%200%200%203.237388%2031.107079c5.911753%2020.409622%2012.668041%2041.382268%2038.426392%2044.056633A48.560825%2048.560825%200%200%200%20557.393814%20802.309278a696.601512%20696.601512%200%200%200%2018.579794-80.371683c6.052509-6.474777%2035.470515-2.533608%2018.157526-36.596564z'%20fill='%23F5F5F6'%20p-id='9987'%3e%3c/path%3e%3cpath%20d='M600.605911%20602.013471l103.174158%2014.075601%2040.819244%205.348729c37.863368%209.993677%2022.94323%2041.241512%2026.46213%2065.170034l-14.075601%20100.922062-49.827629%2078.119588-21.394914%2031.529347-10.134433%2021.394914a84.453608%2084.453608%200%200%200-26.039863%205.348728c-17.594502%2010.415945-34.062955%2022.94323-50.812921%2034.62598v-5.207973h-5.067216l11.823505-50.672165c16.046186-61.932646%2032.936907-123.724536%2047.716289-185.938694%205.348729-22.661718-25.476838-68.266667-51.938969-82.62378zM927.300619%20706.735945c-7.460069%2040.96-15.060893%2081.92-22.520963%20122.88-8.023093%2044.338144-15.90543%2088.817045-24.632302%20137.659381-79.10488-79.386392-98.52921-175.241237-87.127973-281.512027z'%20fill='%23B3DCF8'%20p-id='9988'%3e%3c/path%3e%3cpath%20d='M199.029003%20843.691546l6.474777-20.83189h45.604949c2.11134-39.270928-20.972646-30.262543-38.426392-30.121787-1.548316-29.981031%2018.01677-25.758351%2035.048247-18.579793%2034.062955%2013.231065%2067.422131%2028.151203%20104.722474%2044.4789-5.911753%2066.436838-48.420069%20115.419931-69.53347%20180.871478-38.426392-16.186942-71.926323-29.418007-104.159451-45.182681-4.785704-2.252096-3.5189-16.60921-5.067216-25.476838h33.499931l26.321375-70.378007z'%20fill='%2387BC85'%20p-id='9989'%3e%3c/path%3e%3cpath%20d='M738.265292%20486.030515a232.951203%20232.951203%200%200%200%2032.936907-9.430652c62.777182-28.151203%20116.405223%206.615533%20115.982956%2076.289759%200%2016.468454-0.70378%2033.077663-1.126048%2049.546117l1.126048-0.985292-12.105018-2.674365-21.53567%2016.749966-29.981031%208.304605A86.564948%2086.564948%200%200%201%20731.931271%20564.572371c2.392852-26.462131%204.644948-52.924261%207.037801-79.527148z%20m113.730859%2061.79189l-61.369622-52.501993c-3.941168%2035.752027-6.615533%2059.821306-10.275189%2093.180481z'%20fill='%23F5F5F6'%20p-id='9990'%20data-spm-anchor-id='a313x.search_index.0.i3.dc0f3a810XA6r8'%20class=''%3e%3c/path%3e%3cpath%20d='M198.606735%20548.948454h73.615396c-28.151203%2042.226804-74.178419%2076.852784-59.117526%20137.659381-4.22268%2031.810859%202.252096%2066.859107-30.262543%2092.898969l-6.052509-54.472577-49.123849-3.518901z'%20fill='%23AED4EF'%20p-id='9991'%3e%3c/path%3e%3cpath%20d='M927.300619%20706.735945l-134.281238-21.113402-3.237388%201.266804%206.897045-37.863368%2027.025154-7.74158%2031.247835-8.867629%2029.840275-20.691134%202.392853-10.275189-0.422268%200.985292%2030.262543-36.73732c35.752027%2043.77512%2020.83189%2092.617457%2010.275189%20141.037526zM369.625292%20663.946117l-126.680412-19.705842a171.300069%20171.300069%200%200%201%2016.749965-41.100756c21.817182-29.277251%2046.167973-56.302405%2069.533471-84.453608%203.237388%209.149141%206.756289%2018.157526%209.571409%2027.306666q15.623918%2049.123849%2030.966323%2098.52921z'%20fill='%23F5F5F6'%20p-id='9992'%3e%3c/path%3e%3cpath%20d='M763.179107%20810.473127c5.207973%204.644948%2014.075601%209.008385%2015.060893%2014.075602%202.955876%2037.581856%204.081924%2075.304467%205.911753%20118.516563l-52.924262-14.075601-47.9978%2023.787766-7.600825-34.766735c14.075601-1.970584%2020.550378-7.882337%2010.978969-21.817182%2021.394914%2011.682749%2023.787766-9.993677%2033.359175-19.002062z'%20fill='%23AED4EF'%20p-id='9993'%3e%3c/path%3e%3cpath%20d='M601.168935%20634.105842c26.462131%2014.075601%2057.287698%2059.962062%2051.938969%2082.62378-14.075601%2062.214158-31.670103%20124.006048-47.716289%20185.938694L592.442062%20886.762887c8.023093-35.329759%2015.90543-70.378007%2024.35079-105.989279%2010.134433-42.930584%2017.31299-85.157388-14.075601-123.865292-3.5189-4.785704-0.985292-14.920137-1.548316-22.802474zM328.806048%20518.404399c-23.365498%2028.151203-47.716289%2055.457869-69.533471%2084.453608a171.300069%20171.300069%200%200%200-16.749965%2041.100756l0.844536-0.985292-12.386529%2043.07134h-17.876014C198.043711%20625.660481%20243.507904%20591.175258%20272.222131%20548.948454l44.338144-42.226805z'%20fill='%23484F5E'%20p-id='9994'%3e%3c/path%3e%3cpath%20d='M327.257732%20784.010997l-37.581856-17.453746v-78.964124l48.138557%206.193265z'%20fill='%23D55375'%20p-id='9995'%3e%3c/path%3e%3cpath%20d='M823.704192%20641.284399l-27.025154%207.74158-6.897045%2037.863368h-18.72055c-3.5189-23.928522%2011.401237-55.176357-26.46213-65.170034l-25.195327-40.96%2012.527285-16.186942a86.564948%2086.564948%200%200%200%2091.350653%2059.258282zM369.625292%20663.946117v-19.846598l12.245773-12.949553c8.445361%201.266804%2020.409622%206.897045%2024.773059%203.237388%2020.550378-17.031478%2038.989416-36.455808%2058.132233-55.176357l20.972646%201.548316A198.184467%20198.184467%200%200%201%20380.041237%20675.628866z'%20fill='%23484F5E'%20p-id='9996'%3e%3c/path%3e%3cpath%20d='M199.029003%20843.691546l34.485224%2014.075602-26.321375%2070.378007h-33.499931z'%20fill='%23CAE7AF'%20p-id='9997'%3e%3c/path%3e%3cpath%20d='M230.980619%20686.326323l12.386529-43.07134c2.674364%2031.670103%2031.529347%2056.302405%2022.23945%2091.350653-1.266804%204.785704-2.252096%209.852921-3.659656%2016.468453l-30.966323-6.33402z'%20fill='%23F5F5F6'%20p-id='9998'%3e%3c/path%3e%3cpath%20d='M763.179107%20810.473127l-44.056633%2067.703643-11.964261-12.527285%2050.390653-78.4011z'%20fill='%23484F5E'%20p-id='9999'%3e%3c/path%3e%3cpath%20d='M212.682337%20792.737869c17.453746%200%2040.537732-9.149141%2038.426392%2030.121787H205.50378z'%20fill='%23CDEAB1'%20p-id='10000'%3e%3c/path%3e%3cpath%20d='M598.916838%20957.98543l-5.348728-4.644949h5.067216z'%20fill='%23484F5E'%20p-id='10001'%3e%3c/path%3e%3cpath%20d='M464.494845%20579.210997c-19.142818%2018.72055-37.581856%2038.14488-58.132233%2055.176357-4.363436%203.659656-16.327698-1.970584-24.773059-3.237388l-17.172233-69.111203A165.669828%20165.669828%200%200%201%20464.494845%20579.210997z'%20fill='%23AED4EF'%20p-id='10002'%3e%3c/path%3e%3cpath%20d='M364.41732%20562.038763l17.172233%2069.111203-12.245773%2012.949553q-15.342405-49.123849-30.966323-98.52921c-2.81512-9.149141-6.334021-18.157526-9.571409-27.306666l-12.245773-11.541994%2037.4411-30.966323z'%20fill='%23353947'%20p-id='10003'%3e%3c/path%3e%3cpath%20d='M600.605911%20602.013471v31.670103l-62.214158-79.245636-31.670104%204.926461%2031.388592-50.390653z'%20fill='%23484F5E'%20p-id='10004'%3e%3c/path%3e%3cpath%20d='M453.797388%20517.278351c-10.838213%2021.254158-25.617595%2028.151203-45.745704%2011.541993-16.890722-14.075601-24.632302-31.529347-12.105017-50.249897s30.121787-20.409622%2047.29402-3.378145c-23.506254%200.985292-34.766735%2011.541993-29.136495%2039.411684l39.693196%203.096633z'%20fill='%23AED4EF'%20p-id='10005'%3e%3c/path%3e%3cpath%20d='M731.931271%20564.572371l-12.808797%2015.623918c-12.949553-35.752027-11.119725-68.407423%2019.846598-95.151066-2.11134%2026.602887-4.363436%2053.065017-7.037801%2079.527148z'%20fill='%23353947'%20p-id='10006'%3e%3c/path%3e%3cpath%20d='M506.721649%20559.786667c5.348729%2019.002062-4.363436%2023.083986-20.691134%2020.691134-6.193265-19.846598%200.985292-26.321375%2020.691134-20.691134z'%20fill='%23484F5E'%20p-id='10007'%3e%3c/path%3e%3cpath%20d='M453.797388%20485.749003c15.201649%2010.415945%2014.075601%2020.972646%200%2031.529348v-31.81086zM443.240687%20475.192302l10.556701%2010.556701-10.556701-10.556701z'%20fill='%23AED4EF'%20p-id='10008'%3e%3c/path%3e%3cpath%20d='M442.818419%20663.523849l151.312715%2022.098694c17.31299%2034.062955-12.105017%2030.121787-18.157526%2036.596564A696.601512%20696.601512%200%200%201%20557.393814%20802.309278a48.560825%2048.560825%200%200%201-52.783505%2034.907492c-25.758351-2.674364-32.514639-23.64701-38.426391-44.056633a96.840137%2096.840137%200%200%201-3.237389-31.107079c1.266804-26.321375%200-51.235189-19.565086-71.926323-3.378144-2.955876-0.563024-12.386529-0.563024-26.602886z%20m66.296083%20153.987079c41.523024-26.462131%2042.226804-60.38433%2034.766735-98.52921l-55.317113-10.275189c-0.422268%2038.707904-15.201649%2075.163711%2020.550378%20108.804399zM707.158213%20865.649485l11.964261%2012.527285c-9.571409%209.008385-11.964261%2030.684811-33.359175%2019.002062z'%20fill='%23353947'%20p-id='10009'%3e%3c/path%3e%3cpath%20d='M686.185567%20896.756564c9.571409%2014.075601%202.955876%2019.846598-10.978969%2021.817182zM851.996151%20547.822405l-71.644811%2040.678488c3.659656-33.359175%206.334021-57.428454%2010.275189-93.180481z'%20fill='%23353947'%20p-id='10010'%3e%3c/path%3e%3cpath%20d='M884.792302%20611.725636l-29.840275%2020.691134-1.40756-16.890722%2021.53567-16.749966z'%20fill='%23484F5E'%20p-id='10011'%20data-spm-anchor-id='a313x.search_index.0.i4.dc0f3a810XA6r8'%20class='selected'%3e%3c/path%3e%3cpath%20d='M853.544467%20615.526048l1.40756%2016.890722-31.247835%208.867629v-17.453746zM884.792302%20611.725636l-9.712165-12.949554%2012.105018%202.674365z'%20fill='%23353947'%20p-id='10012'%3e%3c/path%3e%3cpath%20d='M443.522199%20474.91079l10.556701%2010.556701v31.951616l-39.693196-3.096633c-6.193265-27.869691%205.630241-38.426392%2029.136495-39.411684z'%20fill='%23F5F5F6'%20p-id='10013'%3e%3c/path%3e%3cpath%20d='M509.114502%20817.510928c-35.752027-33.640687-20.972646-70.378007-20.550378-108.804399l55.317113%2010.275189c7.882337%2038.14488%206.756289%2072.067079-34.766735%2098.52921z'%20fill='%23E25679'%20p-id='10014'%3e%3c/path%3e%3c/svg%3e"; const _withScopeId = (n) => (vue.pushScopeId("data-v-dd8b0264"), n = n(), vue.popScopeId(), n); const _hoisted_1$6 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("p", null, "本脚本仅供学习交流,请勿用作任何非法用途。", -1)); const _hoisted_2$4 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("p", null, "如果有其他平台需要答题功能,请反馈给作者,会根据需求量酌情增加", -1)); const _hoisted_3$4 = { class: "aah_plat" }; const _hoisted_4$4 = { key: 0 }; const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({ __name: "Home", setup(__props) { const appStore = useAppStore(); scriptInfo$1.script.downloadURL ?? "#"; const debug = vue.ref(true); const msg1 = (msg2) => { ElementPlus.ElMessage({ message: msg2, type: "success", duration: 2e3 }); }; return (_ctx, _cache) => { const _component_el_alert = vue.resolveComponent("el-alert"); const _component_el_divider = vue.resolveComponent("el-divider"); const _component_el_tag = vue.resolveComponent("el-tag"); const _component_el_button = vue.resolveComponent("el-button"); const _component_el_text = vue.resolveComponent("el-text"); const _component_el_col = vue.resolveComponent("el-col"); const _component_el_row = vue.resolveComponent("el-row"); return vue.openBlock(), vue.createBlock(_component_el_row, null, { default: vue.withCtx(() => [ vue.createVNode(_component_el_col, { span: 24 }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_alert, { type: "info", closable: false }, { title: vue.withCtx(() => [ _hoisted_1$6, _hoisted_2$4 ]), _: 1 }), vue.createVNode(_component_el_divider, null, { default: vue.withCtx(() => [ vue.createTextVNode("功能列表") ]), _: 1 }), vue.createElementVNode("div", _hoisted_3$4, [ vue.createVNode(_component_el_tag, null, { default: vue.withCtx(() => [ vue.createTextVNode("多平台答案检索") ]), _: 1 }), vue.createVNode(_component_el_tag, null, { default: vue.withCtx(() => [ vue.createTextVNode("AI辅助答题") ]), _: 1 }), vue.createVNode(_component_el_tag, null, { default: vue.withCtx(() => [ vue.createTextVNode("解除复制限制") ]), _: 1 }), vue.createVNode(_component_el_tag, null, { default: vue.withCtx(() => [ vue.createTextVNode("Ctrl+Shift+P 显隐悬浮窗") ]), _: 1 }), vue.createVNode(_component_el_tag, null, { default: vue.withCtx(() => [ vue.createTextVNode("更多功能待添加..") ]), _: 1 }) ]), debug.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$4, [ vue.createVNode(_component_el_button, { type: "primary", plain: "", onClick: _cache[0] || (_cache[0] = ($event) => vue.unref(appStore).setPage("Base")) }, { default: vue.withCtx(() => [ vue.createTextVNode("基础配置") ]), _: 1 }), vue.createVNode(_component_el_button, { type: "primary", plain: "", onClick: _cache[1] || (_cache[1] = ($event) => vue.unref(appStore).setPage("api")) }, { default: vue.withCtx(() => [ vue.createTextVNode("题库配置") ]), _: 1 }), vue.createVNode(_component_el_button, { type: "primary", plain: "", onClick: _cache[2] || (_cache[2] = ($event) => vue.unref(appStore).setPage("ask")) }, { default: vue.withCtx(() => [ vue.createTextVNode("答题页") ]), _: 1 }), vue.createVNode(_component_el_button, { type: "primary", plain: "", onClick: _cache[3] || (_cache[3] = ($event) => vue.unref(appStore).setPage("preview")) }, { default: vue.withCtx(() => [ vue.createTextVNode("本地题库") ]), _: 1 }), vue.createVNode(_component_el_button, { type: "primary", plain: "", onClick: _cache[4] || (_cache[4] = ($event) => vue.unref(appStore).setPage("question")) }, { default: vue.withCtx(() => [ vue.createTextVNode("题库缓存") ]), _: 1 }), vue.createVNode(_component_el_button, { type: "primary", plain: "", onClick: _cache[5] || (_cache[5] = ($event) => vue.unref(appStore).setPage("ai")) }, { default: vue.withCtx(() => [ vue.createTextVNode("AI") ]), _: 1 }) ])) : vue.createCommentVNode("", true), vue.createVNode(_component_el_divider, { onClick: msg1 }, { default: vue.withCtx(() => [ vue.createTextVNode("版本信息") ]), _: 1 }), vue.createElementVNode("div", null, [ vue.createElementVNode("p", null, [ vue.createTextVNode("当前版本号: "), vue.createVNode(_component_el_tag, { type: "primary" }, { default: vue.withCtx(() => [ vue.createTextVNode(vue.toDisplayString(vue.unref(scriptInfo$1).script.version), 1) ]), _: 1 }), vue.createVNode(_component_el_button, { size: "small", type: "primary", onClick: vue.unref(updateCheck1) }, { default: vue.withCtx(() => [ vue.createTextVNode("检测更新") ]), _: 1 }, 8, ["onClick"]) ]), vue.createElementVNode("p", null, [ vue.createVNode(_component_el_text, { class: "mx-1", type: "info" }, { default: vue.withCtx(() => [ vue.createTextVNode("PS:保持最新版本可以减少BUG的出现哦~") ]), _: 1 }) ]) ]) ]), _: 1 }) ]), _: 1 }); }; } }); const _export_sfc = (sfc, props) => { const target = sfc.__vccOpts || sfc; for (const [key2, val] of props) { target[key2] = val; } return target; }; const Home = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-dd8b0264"]]); const _sfc_main$7 = {}; function _sfc_render$1(_ctx, _cache) { return vue.openBlock(), vue.createElementBlock("h1", null, "这是一个公告"); } const Note = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$1]]); const _hoisted_1$5 = { style: { "margin": "10px" } }; const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({ __name: "Base", setup(__props) { const appStore = useAppStore(); vue.watch(appStore.app, (newVal) => { appStore.setConfig(newVal); }); vue.watch(appStore.ConfigInput, (newVal) => { for (let key2 in newVal) { for (let key1 in newVal[key2]) { let item = newVal[key2][key1]; appStore.app[item.name] = item.value; } } msg("配置修改成功", "success"); appStore.setConfig(appStore.app); }); const ConfigInput2 = appStore.ConfigInput; return (_ctx, _cache) => { const _component_el_alert = vue.resolveComponent("el-alert"); const _component_el_col = vue.resolveComponent("el-col"); const _component_el_switch = vue.resolveComponent("el-switch"); const _component_el_input = vue.resolveComponent("el-input"); const _component_el_input_number = vue.resolveComponent("el-input-number"); const _component_el_option = vue.resolveComponent("el-option"); const _component_el_select = vue.resolveComponent("el-select"); const _component_el_checkbox = vue.resolveComponent("el-checkbox"); const _component_el_checkbox_group = vue.resolveComponent("el-checkbox-group"); const _component_el_tooltip = vue.resolveComponent("el-tooltip"); const _component_el_row = vue.resolveComponent("el-row"); return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [ vue.createVNode(_component_el_alert, { title: "配置修改后会自动保存,直接刷新页面即可", type: "info", closable: false, "show-icon": "" }), (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(ConfigInput2).base, (item1) => { return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [ vue.createVNode(_component_el_row, { class: "row-bg", justify: "space-between", align: "middle" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_col, { span: 6 }, { default: vue.withCtx(() => [ vue.createTextVNode(vue.toDisplayString(item1.label), 1) ]), _: 2 }, 1024), vue.createVNode(_component_el_col, { span: 18, style: { "text-align": "right" } }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_tooltip, { class: "grid-content ep-bg-purple-light", effect: "dark", content: item1.desc || "", placement: "top" }, { default: vue.withCtx(() => [ item1.type === "switch" ? (vue.openBlock(), vue.createBlock(_component_el_switch, { key: 0, modelValue: item1.value, "onUpdate:modelValue": ($event) => item1.value = $event }, null, 8, ["modelValue", "onUpdate:modelValue"])) : item1.type === "input" ? (vue.openBlock(), vue.createBlock(_component_el_input, { key: 1, modelValue: item1.value, "onUpdate:modelValue": ($event) => item1.value = $event }, null, 8, ["modelValue", "onUpdate:modelValue"])) : item1.type === "number" ? (vue.openBlock(), vue.createBlock(_component_el_input_number, { key: 2, modelValue: item1.value, "onUpdate:modelValue": ($event) => item1.value = $event }, null, 8, ["modelValue", "onUpdate:modelValue"])) : item1.type === "select" ? (vue.openBlock(), vue.createBlock(_component_el_select, { key: 3, modelValue: item1.value, "onUpdate:modelValue": ($event) => item1.value = $event, placeholder: "请选择" }, { default: vue.withCtx(() => [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(item1.options, (item2) => { return vue.openBlock(), vue.createBlock(_component_el_option, { key: item2.value, label: item2.label, value: item2.value }, null, 8, ["label", "value"]); }), 128)) ]), _: 2 }, 1032, ["modelValue", "onUpdate:modelValue"])) : item1.type === "checkbox" ? (vue.openBlock(), vue.createBlock(_component_el_checkbox_group, { key: 4, modelValue: item1.value, "onUpdate:modelValue": ($event) => item1.value = $event }, { default: vue.withCtx(() => [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(item1.options, (item2) => { return vue.openBlock(), vue.createBlock(_component_el_checkbox, { key: item2.value, label: item2.value, name: item2.value }, { default: vue.withCtx(() => [ vue.createTextVNode(vue.toDisplayString(item2.label), 1) ]), _: 2 }, 1032, ["label", "name"]); }), 128)) ]), _: 2 }, 1032, ["modelValue", "onUpdate:modelValue"])) : vue.createCommentVNode("", true) ]), _: 2 }, 1032, ["content"]) ]), _: 2 }, 1024) ]), _: 2 }, 1024) ]); }), 256)) ], 64); }; } }); function makeShadow(el, option) { return makeShadowRaw(el, el.childNodes, option); } function makeShadowRaw(rootEl, childNodes, { mode = "open", delegatesFocus = false } = { mode: "open" }) { try { const oldroot = rootEl.shadowRoot; if (oldroot != null) { console.error("[shadow] Attach shadow multiple times", rootEl, childNodes, oldroot); return; } else { const shadow_root = rootEl.attachShadow({ mode, delegatesFocus }); if (childNodes) putDomIntoShadow(shadow_root, childNodes); return shadow_root; } } catch (e) { console.error("[shadow] make shadow-root failed", rootEl, childNodes); console.error(e); } } function putDomIntoShadow(shadow_root, childNodes) { const fragment = document.createDocumentFragment(); for (const node of childNodes) { fragment.appendChild(node); } shadow_root.appendChild(fragment); } const virtual_root = document.createDocumentFragment(); const ShadowStyle = vue.defineComponent({ props: { media: String, nonce: String }, setup(props, { slots }) { return () => { var _a; return vue.h("style", { media: props.media, nonce: props.nonce }, (_a = slots.default) == null ? void 0 : _a.call(slots)); }; } }); const ShadowRoot = withType()(vue.defineComponent({ props: { mode: { type: String, default: "open" }, delegatesFocus: { type: Boolean, default: false }, abstract: { type: Boolean, default: false }, tag: { type: String, default: "div" }, adoptedStyleSheets: { type: Array } }, emits: ["error"], setup(props, { slots, expose, emit }) { const abstract = vue.ref(false); const el = vue.ref(); const teleport_el = vue.ref(); const shadow_root = vue.ref(); const teleport_target = vue.computed(() => shadow_root.value ?? virtual_root); const ex = vue.reactive({ shadow_root }); expose(ex); vue.onBeforeMount(() => { abstract.value = props.abstract; }); vue.onMounted(() => { var _a; try { if (abstract.value) { if (teleport_el.value.parentElement.shadowRoot) { shadow_root.value = teleport_el.value.parentElement.shadowRoot; } else { shadow_root.value = makeShadowRaw(teleport_el.value.parentElement, void 0, { mode: props.mode, delegatesFocus: props.delegatesFocus }); } } else { shadow_root.value = makeShadowRaw(el.value, void 0, { mode: props.mode, delegatesFocus: props.delegatesFocus }); } (_a = shadow_root.value) == null ? void 0 : _a.styleSheets; } catch (e) { console.error(e); emit("error", e); } }); vue.watch([shadow_root, () => props.adoptedStyleSheets], ([shadow_root2, adoptedStyleSheets]) => { if (!shadow_root2 || !adoptedStyleSheets) return; try { ; shadow_root2.adoptedStyleSheets = adoptedStyleSheets; } catch (e) { console.error(e); emit("error", e); } }); return () => { var _a; const child_part = vue.h(vue.Teleport, { ref: teleport_el, to: teleport_target.value }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]); if (abstract.value) return child_part; return vue.h(props.tag, { ref: el }, child_part); }; }, install, Style: ShadowStyle })); function withType() { return (obj) => obj; } function install(app) { app.component("shadow-root", ShadowRoot); app.directive("shadow", { beforeMount(el) { console.warn("[VueShadowDom] Deprecated v-shadow directive, use component"); makeShadow(el); } }); } var shadow = { ShadowRoot, ShadowStyle, shadow_root: ShadowRoot, shadow_style: ShadowStyle, install }; const _hoisted_1$4 = /* @__PURE__ */ vue.createElementVNode("div", { class: "aah_bomHet50" }, [ /* @__PURE__ */ vue.createElementVNode("span", { class: "dq" }, [ /* @__PURE__ */ vue.createElementVNode("i"), /* @__PURE__ */ vue.createTextVNode("当前题目") ]), /* @__PURE__ */ vue.createElementVNode("span", { class: "yp" }, [ /* @__PURE__ */ vue.createElementVNode("i"), /* @__PURE__ */ vue.createTextVNode("已作答") ]), /* @__PURE__ */ vue.createElementVNode("span", { class: "wp" }, [ /* @__PURE__ */ vue.createElementVNode("i"), /* @__PURE__ */ vue.createTextVNode("无答案") ]), /* @__PURE__ */ vue.createElementVNode("span", { class: "zp" }, [ /* @__PURE__ */ vue.createElementVNode("i"), /* @__PURE__ */ vue.createTextVNode("未作答") ]) ], -1); const _hoisted_2$3 = ["innerHTML"]; const _hoisted_3$3 = ["innerHTML"]; const _hoisted_4$3 = { key: 0 }; const _hoisted_5$3 = { style: { "width": "100%" } }; const _hoisted_6$3 = ["innerHTML"]; const _hoisted_7$1 = ["value"]; const _hoisted_8$1 = { key: 1, style: { "color": "green" } }; const _hoisted_9$1 = { key: 2, style: { "color": "red" } }; const _hoisted_10$1 = { key: 0 }; const _hoisted_11 = { key: 1 }; const _hoisted_12 = ["innerHTML"]; const _hoisted_13 = { key: 0 }; const _hoisted_14 = ["innerHTML"]; const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({ __name: "Ask", setup(__props) { const ask = useAskStore(); const app = useAppStore(); const getOptionIndex = (inx) => { return String.fromCharCode(65 + inx); }; const formatTooltip = (val) => { return `答题间隔:${val}ms`; }; vue.watch(app.app, (newVal) => { app.setConfig(newVal); }); const watchAutoNext = () => { Cache.set("autoNext", ask.autoNext); }; const watchSkipFinish = () => { Cache.set("skipFinish", ask.skipFinish); }; const watchAutoAnswer = () => { Cache.set("autoAnswer", ask.autoAnswer); }; const watchFreeFirst = () => { Cache.set("freeFirst", ask.freeFirst); }; const watchRandomAnswer = () => { Cache.set("randomAnswer", ask.randomAnswer); }; const watchDelay = () => { Cache.set("delay", ask.delay); }; return (_ctx, _cache) => { const _component_el_alert = vue.resolveComponent("el-alert"); const _component_el_button = vue.resolveComponent("el-button"); const _component_el_col = vue.resolveComponent("el-col"); const _component_el_checkbox = vue.resolveComponent("el-checkbox"); const _component_el_input = vue.resolveComponent("el-input"); const _component_el_form_item = vue.resolveComponent("el-form-item"); const _component_el_slider = vue.resolveComponent("el-slider"); const _component_el_form = vue.resolveComponent("el-form"); const _component_el_tag = vue.resolveComponent("el-tag"); const _component_el_divider = vue.resolveComponent("el-divider"); const _component_el_row = vue.resolveComponent("el-row"); const _component_el_empty = vue.resolveComponent("el-empty"); const _directive_loading = vue.resolveDirective("loading"); return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [ vue.createVNode(_component_el_alert, { style: { "margin-bottom": "10px" }, title: vue.unref(ask).tips, type: "info", closable: false }, null, 8, ["title"]), vue.unref(ask).current ? (vue.openBlock(), vue.createBlock(_component_el_row, { key: 0 }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_col, { span: 12 }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_button, { onClick: _cache[0] || (_cache[0] = ($event) => vue.unref(ask).start ? vue.unref(ask).pause() : vue.unref(ask).toggleStart()), size: "small", class: "aah_btn", type: "primary", plain: "" }, { default: vue.withCtx(() => [ vue.createTextVNode(vue.toDisplayString(vue.unref(ask).start ? "暂停答题" : "开始答题"), 1) ]), _: 1 }) ]), _: 1 }), vue.createVNode(_component_el_col, { span: 12 }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_button, { onClick: _cache[1] || (_cache[1] = ($event) => vue.unref(ask).restart()), size: "small", class: "aah_btn", type: "primary", plain: "" }, { default: vue.withCtx(() => [ vue.createTextVNode("重新答题") ]), _: 1 }) ]), _: 1 }), vue.createVNode(_component_el_col, { span: 24 }, { default: vue.withCtx(() => [ _hoisted_1$4 ]), _: 1 }), (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(ask).questionList, (val, inx) => { return vue.openBlock(), vue.createBlock(_component_el_col, { span: 3 }, { default: vue.withCtx(() => [ (vue.openBlock(), vue.createBlock(_component_el_button, { class: vue.normalizeClass(inx == vue.unref(ask).questionInx ? "aah_active" : ""), style: { "width": "30px", "margin-bottom": "4px" }, key: inx, onClick: ($event) => vue.unref(ask).toQuestion(inx), size: "small", type: val.status == 1 ? "primary" : val.status == 2 ? "danger" : "", plain: "" }, { default: vue.withCtx(() => [ vue.createTextVNode(vue.toDisplayString(inx + 1), 1) ]), _: 2 }, 1032, ["class", "onClick", "type"])) ]), _: 2 }, 1024); }), 256)), vue.createVNode(_component_el_col, { span: 24 }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_form, { "label-width": "auto" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_checkbox, { onChange: watchSkipFinish, modelValue: vue.unref(ask).skipFinish, "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(ask).skipFinish = $event), label: "跳过已作答" }, null, 8, ["modelValue"]), vue.createVNode(_component_el_checkbox, { onChange: watchAutoAnswer, modelValue: vue.unref(ask).autoAnswer, "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => vue.unref(ask).autoAnswer = $event), label: "自动答题" }, null, 8, ["modelValue"]), vue.createVNode(_component_el_checkbox, { onChange: watchAutoNext, modelValue: vue.unref(ask).autoNext, "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => vue.unref(ask).autoNext = $event), label: "自动跳转" }, null, 8, ["modelValue"]), vue.createVNode(_component_el_checkbox, { onChange: watchFreeFirst, modelValue: vue.unref(ask).freeFirst, "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => vue.unref(ask).freeFirst = $event), label: "免费题库优先" }, null, 8, ["modelValue"]), vue.createVNode(_component_el_checkbox, { onChange: watchRandomAnswer, modelValue: vue.unref(ask).randomAnswer, "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => vue.unref(ask).randomAnswer = $event), label: "无答案随机答题" }, null, 8, ["modelValue"]), vue.createVNode(_component_el_form_item, { label: "秘钥" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_input, { class: "aah_password", placeholder: "请输入你购买的秘钥", modelValue: vue.unref(app).app.key, "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => vue.unref(app).app.key = $event), "show-password": "" }, null, 8, ["modelValue"]) ]), _: 1 }), vue.createVNode(_component_el_form_item, { label: "间隔" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_slider, { onChange: watchDelay, modelValue: vue.unref(ask).delay, "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => vue.unref(ask).delay = $event), max: 5e3, "format-tooltip": formatTooltip }, null, 8, ["modelValue"]) ]), _: 1 }) ]), _: 1 }) ]), _: 1 }), vue.unref(ask).formMap ? (vue.openBlock(), vue.createBlock(_component_el_col, { key: 0, span: 24 }, { default: vue.withCtx(() => [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(ask).formMap, (val, key2) => { return vue.openBlock(), vue.createBlock(_component_el_tag, { key: key2, style: { "margin-right": "10px" } }, { default: vue.withCtx(() => [ vue.createTextVNode(vue.toDisplayString(key2) + ":" + vue.toDisplayString(val) + " 次", 1) ]), _: 2 }, 1024); }), 128)) ]), _: 1 })) : vue.createCommentVNode("", true), vue.createVNode(_component_el_divider, null, { default: vue.withCtx(() => [ vue.createVNode(_component_el_button, { onClick: _cache[9] || (_cache[9] = ($event) => vue.unref(ask).reAnswer(vue.unref(ask).questionInx)), style: { "color": "red", "font-size": "10px" }, link: "" }, { default: vue.withCtx(() => [ vue.createTextVNode("重答") ]), _: 1 }), vue.createVNode(_component_el_divider, { direction: "vertical" }), vue.createVNode(_component_el_button, { onClick: _cache[10] || (_cache[10] = ($event) => vue.unref(ask).aiAnswer(vue.unref(ask).questionInx)), style: { "color": "red", "font-size": "10px" }, link: "" }, { default: vue.withCtx(() => [ vue.createTextVNode("AI答题") ]), _: 1 }) ]), _: 1 }), vue.createVNode(_component_el_col, { span: 24 }, { default: vue.withCtx(() => [ vue.createElementVNode("div", { class: "aah_title", innerHTML: "[" + vue.unref(typeChange2)(vue.unref(ask).current.type ?? "") + "]" + vue.unref(ask).current.question }, null, 8, _hoisted_2$3), (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(ask).current.options, (val, inx) => { return vue.openBlock(), vue.createElementBlock("p", { style: vue.normalizeStyle(vue.unref(ask).current.form && vue.unref(ask).current.form.match && vue.unref(ask).current.form.match.includes(inx) ? "color:green;" : ""), class: "aah_options", innerHTML: getOptionIndex(inx) + ". " + val }, null, 12, _hoisted_3$3); }), 256)), vue.unref(ask).current.type == "24" ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_4$3, [ vue.createVNode(vue.unref(ShadowRoot), null, { default: vue.withCtx(() => [ vue.createElementVNode("table", _hoisted_5$3, [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(ask).current.match, (val, inx) => { return vue.openBlock(), vue.createElementBlock("tr", null, [ vue.createElementVNode("td", { innerHTML: val }, null, 8, _hoisted_6$3), vue.createElementVNode("td", null, [ vue.createElementVNode("select", null, [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(ask).current.selects[inx], (item) => { return vue.openBlock(), vue.createElementBlock("option", { value: item.value }, vue.toDisplayString(item.text), 9, _hoisted_7$1); }), 256)) ]) ]) ]); }), 256)) ]) ]), _: 1 }) ])) : vue.createCommentVNode("", true), vue.unref(ask).current.form ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_8$1, " 采用【" + vue.toDisplayString(vue.unref(ask).current.form.form) + "】的答案 ", 1)) : vue.createCommentVNode("", true), vue.unref(ask).current.type == "8" || vue.unref(ask).current.type == void 0 || vue.unref(ask).current.type == "" ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_9$1, " 当前题型暂不支持,请反馈给作者吧 ")) : vue.createCommentVNode("", true) ]), _: 1 }), vue.withDirectives((vue.openBlock(), vue.createBlock(_component_el_col, { span: 24, "element-loading-text": "正在搜索中" }, { default: vue.withCtx(() => [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(ask).current.answer, (item) => { return vue.openBlock(), vue.createElementBlock("div", null, [ vue.createVNode(_component_el_divider, null, { default: vue.withCtx(() => [ vue.createTextVNode(vue.toDisplayString(`${item.form}(${item.duration}ms)`), 1) ]), _: 2 }, 1024), typeof item.answer === "object" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$1, [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(item.answer, (ans) => { return vue.openBlock(), vue.createElementBlock("p", null, [ vue.createVNode(_component_el_input, { value: ans, readonly: "", style: { "width": "100%" } }, null, 8, ["value"]) ]); }), 256)) ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_11, [ vue.createElementVNode("div", { innerHTML: item.answer ? item.answer : item.msg ?? "暂无答案" }, null, 8, _hoisted_12) ])) ]); }), 256)), vue.unref(ask).current.aiMsg ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13, [ vue.createVNode(_component_el_divider, null, { default: vue.withCtx(() => [ vue.createTextVNode("AI回答(仅供参考)") ]), _: 1 }), vue.createElementVNode("div", { innerHTML: vue.unref(ask).currentAiMd }, null, 8, _hoisted_14) ])) : vue.createCommentVNode("", true) ]), _: 1 })), [ [_directive_loading, vue.unref(ask).loading] ]) ]), _: 1 })) : (vue.openBlock(), vue.createBlock(_component_el_empty, { key: 1, description: "暂无题目数据" })) ], 64); }; } }); const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({ __name: "Api", setup(__props) { const apiStore = useApiStore(); const deleteRow = (index) => { apiStore.deleteApi(index); }; const paramVisible = vue.ref(false); const addParam = () => { if (apiStore.currentParam.name == "") { ElementPlus.ElNotification({ title: "参数效验不通过", message: "参数名不能为空", type: "error" }); return; } if (apiStore.currentParam.value == "") { ElementPlus.ElNotification({ title: "参数效验不通过", message: "参数值不能为空", type: "error" }); return; } const index = apiStore.currentApi.params.findIndex((item) => item.name == apiStore.currentParam.name); if (index != -1) { apiStore.currentApi.params[index] = apiStore.currentParam; ElementPlus.ElNotification({ title: "更新成功", message: "参数已更新", type: "success" }); paramVisible.value = false; return; } apiStore.addParam(); paramVisible.value = false; }; const addApi = () => { if (apiStore.currentApi.name == "") { ElementPlus.ElNotification({ title: "参数效验不通过", message: "接口名不能为空", type: "error" }); return; } if (apiStore.currentApi.url == "") { ElementPlus.ElNotification({ title: "参数效验不通过", message: "接口地址不能为空", type: "error" }); return; } if (apiStore.currentApi.params.length == 0) { ElementPlus.ElNotification({ title: "参数效验不通过", message: "参数不能为空", type: "error" }); return; } const index = apiStore.apiList.findIndex((item) => item.name == apiStore.currentApi.name); if (index != -1) { apiStore.updateApi(index, apiStore.currentApi); ElementPlus.ElNotification({ title: "更新成功", message: "接口已更新", type: "success" }); } apiStore.addApi(); apiStore.reset(); }; const editApi = (index) => { apiStore.editApi(index); }; const editParam = (index) => { apiStore.editParam(index); paramVisible.value = true; }; const testApi = (index) => { apiStore.testApi(index).then((res) => { }).catch((err) => { ElementPlus.ElNotification({ title: "请求失败", message: err, type: "error" }); }); }; return (_ctx, _cache) => { const _component_el_alert = vue.resolveComponent("el-alert"); const _component_el_input = vue.resolveComponent("el-input"); const _component_el_form_item = vue.resolveComponent("el-form-item"); const _component_el_option = vue.resolveComponent("el-option"); const _component_el_select = vue.resolveComponent("el-select"); const _component_el_button = vue.resolveComponent("el-button"); const _component_el_form = vue.resolveComponent("el-form"); const _component_el_dialog = vue.resolveComponent("el-dialog"); const _component_el_table_column = vue.resolveComponent("el-table-column"); const _component_el_table = vue.resolveComponent("el-table"); const _component_el_col = vue.resolveComponent("el-col"); const _component_el_row = vue.resolveComponent("el-row"); return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [ vue.createVNode(_component_el_alert, { title: "当前功能开发中,若您有急需添加的API可以先反馈给作者", type: "error" }), vue.createVNode(_component_el_dialog, { modelValue: paramVisible.value, "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => paramVisible.value = $event), title: "添加参数", style: { "width": "400px" } }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_form, { model: vue.unref(apiStore).currentParam, "label-width": "auto" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_form_item, { label: "参数名" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_input, { modelValue: vue.unref(apiStore).currentParam.name, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(apiStore).currentParam.name = $event), autocomplete: "off" }, null, 8, ["modelValue"]) ]), _: 1 }), vue.createVNode(_component_el_form_item, { label: "参数类型" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_select, { modelValue: vue.unref(apiStore).currentParam.type, "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(apiStore).currentParam.type = $event), placeholder: "请选择" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_option, { label: "内置参数", value: "sys" }), vue.createVNode(_component_el_option, { label: "自定义参数", value: "diy" }) ]), _: 1 }, 8, ["modelValue"]) ]), _: 1 }), vue.createVNode(_component_el_form_item, { label: "参数值" }, { default: vue.withCtx(() => [ vue.unref(apiStore).currentParam.type == "diy" ? (vue.openBlock(), vue.createBlock(_component_el_input, { key: 0, modelValue: vue.unref(apiStore).currentParam.value, "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(apiStore).currentParam.value = $event), autocomplete: "off" }, null, 8, ["modelValue"])) : (vue.openBlock(), vue.createBlock(_component_el_select, { key: 1, modelValue: vue.unref(apiStore).currentParam.value, "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => vue.unref(apiStore).currentParam.value = $event), placeholder: "请选择" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_option, { label: "题型(字符串)", value: "$type" }), vue.createVNode(_component_el_option, { label: "题型(数字)", value: "$typeid" }), vue.createVNode(_component_el_option, { label: "题干(题目)", value: "$question" }), vue.createVNode(_component_el_option, { label: "选项", value: "$options" }), vue.createVNode(_component_el_option, { label: "时间戳", value: "$timestamp" }), vue.createVNode(_component_el_option, { label: "随机数", value: "$random" }) ]), _: 1 }, 8, ["modelValue"])) ]), _: 1 }), vue.createVNode(_component_el_form_item, null, { default: vue.withCtx(() => [ vue.createVNode(_component_el_button, { onClick: addParam, plain: "", style: { "width": "100%" } }, { default: vue.withCtx(() => [ vue.createTextVNode("添加") ]), _: 1 }) ]), _: 1 }) ]), _: 1 }, 8, ["model"]) ]), _: 1 }, 8, ["modelValue"]), vue.createVNode(_component_el_table, { data: vue.unref(apiStore).apiList, style: { "width": "100%", "margin-bottom": "10px" }, "empty-text": "暂无数据" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_table_column, { prop: "name", label: "接口名", width: "120" }), vue.createVNode(_component_el_table_column, { prop: "url", label: "接口地址", width: "120" }), vue.createVNode(_component_el_table_column, { prop: "method", label: "请求方式", width: "120" }), vue.createVNode(_component_el_table_column, { fixed: "right", label: "操作", width: "120" }, { default: vue.withCtx((scope) => [ vue.createVNode(_component_el_button, { link: "", type: "primary", size: "small", onClick: vue.withModifiers(($event) => deleteRow(scope.$index), ["prevent"]) }, { default: vue.withCtx(() => [ vue.createTextVNode(" 删除 ") ]), _: 2 }, 1032, ["onClick"]), vue.createVNode(_component_el_button, { link: "", type: "primary", size: "small", onClick: vue.withModifiers(($event) => editApi(scope.$index), ["prevent"]) }, { default: vue.withCtx(() => [ vue.createTextVNode(" 编辑 ") ]), _: 2 }, 1032, ["onClick"]), vue.createVNode(_component_el_button, { link: "", type: "primary", size: "small", onClick: vue.withModifiers(($event) => testApi(scope.$index), ["prevent"]) }, { default: vue.withCtx(() => [ vue.createTextVNode(" 测试 ") ]), _: 2 }, 1032, ["onClick"]) ]), _: 1 }) ]), _: 1 }, 8, ["data"]), vue.createVNode(_component_el_row, null, { default: vue.withCtx(() => [ vue.createVNode(_component_el_col, { span: 24 }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_form, { model: vue.unref(apiStore).currentApi, "label-width": "80px" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_form_item, { label: "接口名" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_input, { modelValue: vue.unref(apiStore).currentApi.name, "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => vue.unref(apiStore).currentApi.name = $event), placeholder: "请输入接口名" }, null, 8, ["modelValue"]) ]), _: 1 }), vue.createVNode(_component_el_form_item, { label: "接口地址" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_input, { modelValue: vue.unref(apiStore).currentApi.url, "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => vue.unref(apiStore).currentApi.url = $event), placeholder: "请输入接口地址" }, null, 8, ["modelValue"]) ]), _: 1 }), vue.createVNode(_component_el_form_item, { label: "请求方式" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_select, { modelValue: vue.unref(apiStore).currentApi.method, "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => vue.unref(apiStore).currentApi.method = $event), placeholder: "请选择" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_option, { label: "GET", value: "GET" }), vue.createVNode(_component_el_option, { label: "POST", value: "POST" }) ]), _: 1 }, 8, ["modelValue"]) ]), _: 1 }), vue.createVNode(_component_el_form_item, { label: "请求参数" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_table, { data: vue.unref(apiStore).currentApi.params, style: { "width": "100%" }, "empty-text": "暂无参数" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_table_column, { prop: "name", label: "参数名", width: "120" }), vue.createVNode(_component_el_table_column, { prop: "value", label: "参数值", width: "120" }), vue.createVNode(_component_el_table_column, { fixed: "right", label: "操作", width: "120" }, { default: vue.withCtx((scope) => [ vue.createVNode(_component_el_button, { link: "", type: "primary", size: "small", onClick: vue.withModifiers(($event) => vue.unref(apiStore).deleteParam(scope.$index), ["prevent"]) }, { default: vue.withCtx(() => [ vue.createTextVNode(" 删除 ") ]), _: 2 }, 1032, ["onClick"]), vue.createVNode(_component_el_button, { link: "", type: "primary", size: "small", onClick: vue.withModifiers(($event) => editParam(scope.$index), ["prevent"]) }, { default: vue.withCtx(() => [ vue.createTextVNode(" 编辑 ") ]), _: 2 }, 1032, ["onClick"]) ]), _: 1 }) ]), _: 1 }, 8, ["data"]), vue.createVNode(_component_el_button, { type: "primary", onClick: _cache[8] || (_cache[8] = ($event) => paramVisible.value = true), text: "" }, { default: vue.withCtx(() => [ vue.createTextVNode("添加参数") ]), _: 1 }) ]), _: 1 }), vue.createVNode(_component_el_form_item, null, { default: vue.withCtx(() => [ vue.createVNode(_component_el_button, { type: "primary", onClick: addApi, plain: "" }, { default: vue.withCtx(() => [ vue.createTextVNode("添加") ]), _: 1 }) ]), _: 1 }) ]), _: 1 }, 8, ["model"]) ]), _: 1 }) ]), _: 1 }) ], 64); }; } }); const _sfc_main$3 = {}; const _hoisted_1$3 = { src: "https://chatglm.cn/miniapp/home", width: "100%", height: "600px", frameborder: "0", style: { "border": "none", "overflow": "hidden" } }; function _sfc_render(_ctx, _cache) { return vue.openBlock(), vue.createElementBlock("iframe", _hoisted_1$3); } const Ai = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render]]); var dist = {}; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { d2.__proto__ = b2; } || function(d2, b2) { for (var p in b2) if (b2.hasOwnProperty(p)) d2[p] = b2[p]; }; return extendStatics(d, b); }; function __extends(d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var __assign = function() { __assign = Object.assign || function __assign2(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; function __rest(s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; } function __decorate(decorators, target, key2, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key2) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key2, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key2, r) : d(target, key2)) || r; return c > 3 && r && Object.defineProperty(target, key2, r), r; } function __param(paramIndex, decorator) { return function(target, key2) { decorator(target, key2, paramIndex); }; } function __metadata(metadataKey, metadataValue) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } function __awaiter(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); }); } return new (P || (P = Promise))(function(resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function(v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } } function __createBinding(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; } function __exportStar(m, exports) { for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p]; } function __values(o) { var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; if (m) return m.call(o); if (o && typeof o.length === "number") return { next: function() { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); } function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; } function __spreadArrays() { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; } function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } function __asyncGenerator(thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { return this; }, i; function verb(n) { if (g[n]) i[n] = function(v) { return new Promise(function(a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } } function __asyncDelegator(o) { var i, p; return i = {}, verb("next"), verb("throw", function(e) { throw e; }), verb("return"), i[Symbol.iterator] = function() { return this; }, i; function verb(n, f) { i[n] = o[n] ? function(v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } } function __asyncValues(o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { return this; }, i); function verb(n) { i[n] = o[n] && function(v) { return new Promise(function(resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v2) { resolve({ value: v2, done: d }); }, reject); } } function __makeTemplateObject(cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } return cooked; } function __importStar(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; } result.default = mod; return result; } function __importDefault(mod) { return mod && mod.__esModule ? mod : { default: mod }; } function __classPrivateFieldGet(receiver, privateMap) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return privateMap.get(receiver); } function __classPrivateFieldSet(receiver, privateMap, value) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to set private field on non-instance"); } privateMap.set(receiver, value); return value; } const tslib_es6 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, get __assign() { return __assign; }, __asyncDelegator, __asyncGenerator, __asyncValues, __await, __awaiter, __classPrivateFieldGet, __classPrivateFieldSet, __createBinding, __decorate, __exportStar, __extends, __generator, __importDefault, __importStar, __makeTemplateObject, __metadata, __param, __read, __rest, __spread, __spreadArrays, __values }, Symbol.toStringTag, { value: "Module" })); const require$$0 = /* @__PURE__ */ getAugmentedNamespace(tslib_es6); var internal = {}; var utils = {}; var templates = {}; var documentTemplate = {}; var hasRequiredDocumentTemplate; function requireDocumentTemplate() { if (hasRequiredDocumentTemplate) return documentTemplate; hasRequiredDocumentTemplate = 1; Object.defineProperty(documentTemplate, "__esModule", { value: true }); documentTemplate.documentTemplate = documentTemplate.defaultMargins = void 0; documentTemplate.defaultMargins = { top: 1440, right: 1440, bottom: 1440, left: 1440, header: 720, footer: 720, gutter: 0 }; documentTemplate.documentTemplate = function(width, height, orient, margins) { return '\n\n \n \n \n \n \n \n \n\n'; }; return documentTemplate; } var mhtDocumentTemplate = {}; var hasRequiredMhtDocumentTemplate; function requireMhtDocumentTemplate() { if (hasRequiredMhtDocumentTemplate) return mhtDocumentTemplate; hasRequiredMhtDocumentTemplate = 1; Object.defineProperty(mhtDocumentTemplate, "__esModule", { value: true }); mhtDocumentTemplate.mhtDocumentTemplate = void 0; mhtDocumentTemplate.mhtDocumentTemplate = function(htmlSource, contentParts) { return 'MIME-Version: 1.0\nContent-Type: multipart/related;\n type="text/html";\n boundary="----=mhtDocumentPart"\n\n\n------=mhtDocumentPart\nContent-Type: text/html;\n charset="utf-8"\nContent-Transfer-Encoding: quoted-printable\nContent-Location: file:///C:/fake/document.html\n\n' + htmlSource + "\n\n" + contentParts + "\n\n------=mhtDocumentPart--\n"; }; return mhtDocumentTemplate; } var mhtPartTemplate = {}; var hasRequiredMhtPartTemplate; function requireMhtPartTemplate() { if (hasRequiredMhtPartTemplate) return mhtPartTemplate; hasRequiredMhtPartTemplate = 1; Object.defineProperty(mhtPartTemplate, "__esModule", { value: true }); mhtPartTemplate.mhtPartTemplate = void 0; mhtPartTemplate.mhtPartTemplate = function(contentType, contentEncoding, contentLocation, encodedContent) { return "------=mhtDocumentPart\nContent-Type: " + contentType + "\nContent-Transfer-Encoding: " + contentEncoding + "\nContent-Location: " + contentLocation + "\n\n" + encodedContent + "\n"; }; return mhtPartTemplate; } (function(exports) { Object.defineProperty(exports, "__esModule", { value: true }); var tslib_12 = require$$0; tslib_12.__exportStar(requireDocumentTemplate(), exports); tslib_12.__exportStar(requireMhtDocumentTemplate(), exports); tslib_12.__exportStar(requireMhtPartTemplate(), exports); })(templates); Object.defineProperty(utils, "__esModule", { value: true }); utils.getMHTdocument = void 0; var templates_1$1 = templates; function getMHTdocument(htmlSource) { var ref2 = _prepareImageParts(htmlSource); var imageContentPartsString = ref2.imageContentParts.join("\n"); htmlSource = ref2.htmlSource.replace(/\=/g, "=3D"); return templates_1$1.mhtDocumentTemplate(htmlSource, imageContentPartsString); } utils.getMHTdocument = getMHTdocument; function _prepareImageParts(htmlSource) { var imageContentParts = []; var inlinedSrcPattern = /"data:(\w+\/\w+);(\w+),(\S+)"/g; var inlinedReplacer = function(match, contentType, contentEncoding, encodedContent) { var index = imageContentParts.length; var extension = contentType.split("/")[1]; var contentLocation = "file:///C:/fake/image" + index + "." + extension; imageContentParts.push(templates_1$1.mhtPartTemplate(contentType, contentEncoding, contentLocation, encodedContent)); return '"' + contentLocation + '"'; }; if (!/ (c) 2009-2016 Stuart Knightley Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. JSZip uses the library pako released under the MIT license : https://github.com/nodeca/pako/blob/main/LICENSE */ (function(module, exports) { !function(e) { module.exports = e(); }(function() { return function s(a, o, h2) { function u(r, e2) { if (!o[r]) { if (!a[r]) { var t = "function" == typeof commonjsRequire && commonjsRequire; if (!e2 && t) return t(r, true); if (l) return l(r, true); var n = new Error("Cannot find module '" + r + "'"); throw n.code = "MODULE_NOT_FOUND", n; } var i = o[r] = { exports: {} }; a[r][0].call(i.exports, function(e3) { var t2 = a[r][1][e3]; return u(t2 || e3); }, i, i.exports, s, a, o, h2); } return o[r].exports; } for (var l = "function" == typeof commonjsRequire && commonjsRequire, e = 0; e < h2.length; e++) u(h2[e]); return u; }({ 1: [function(e, t, r) { var d = e("./utils"), c = e("./support"), p = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; r.encode = function(e2) { for (var t2, r2, n, i, s, a, o, h2 = [], u = 0, l = e2.length, f = l, c2 = "string" !== d.getTypeOf(e2); u < e2.length; ) f = l - u, n = c2 ? (t2 = e2[u++], r2 = u < l ? e2[u++] : 0, u < l ? e2[u++] : 0) : (t2 = e2.charCodeAt(u++), r2 = u < l ? e2.charCodeAt(u++) : 0, u < l ? e2.charCodeAt(u++) : 0), i = t2 >> 2, s = (3 & t2) << 4 | r2 >> 4, a = 1 < f ? (15 & r2) << 2 | n >> 6 : 64, o = 2 < f ? 63 & n : 64, h2.push(p.charAt(i) + p.charAt(s) + p.charAt(a) + p.charAt(o)); return h2.join(""); }, r.decode = function(e2) { var t2, r2, n, i, s, a, o = 0, h2 = 0, u = "data:"; if (e2.substr(0, u.length) === u) throw new Error("Invalid base64 input, it looks like a data url."); var l, f = 3 * (e2 = e2.replace(/[^A-Za-z0-9+/=]/g, "")).length / 4; if (e2.charAt(e2.length - 1) === p.charAt(64) && f--, e2.charAt(e2.length - 2) === p.charAt(64) && f--, f % 1 != 0) throw new Error("Invalid base64 input, bad content length."); for (l = c.uint8array ? new Uint8Array(0 | f) : new Array(0 | f); o < e2.length; ) t2 = p.indexOf(e2.charAt(o++)) << 2 | (i = p.indexOf(e2.charAt(o++))) >> 4, r2 = (15 & i) << 4 | (s = p.indexOf(e2.charAt(o++))) >> 2, n = (3 & s) << 6 | (a = p.indexOf(e2.charAt(o++))), l[h2++] = t2, 64 !== s && (l[h2++] = r2), 64 !== a && (l[h2++] = n); return l; }; }, { "./support": 30, "./utils": 32 }], 2: [function(e, t, r) { var n = e("./external"), i = e("./stream/DataWorker"), s = e("./stream/Crc32Probe"), a = e("./stream/DataLengthProbe"); function o(e2, t2, r2, n2, i2) { this.compressedSize = e2, this.uncompressedSize = t2, this.crc32 = r2, this.compression = n2, this.compressedContent = i2; } o.prototype = { getContentWorker: function() { var e2 = new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")), t2 = this; return e2.on("end", function() { if (this.streamInfo.data_length !== t2.uncompressedSize) throw new Error("Bug : uncompressed data size mismatch"); }), e2; }, getCompressedWorker: function() { return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize", this.compressedSize).withStreamInfo("uncompressedSize", this.uncompressedSize).withStreamInfo("crc32", this.crc32).withStreamInfo("compression", this.compression); } }, o.createWorkerFrom = function(e2, t2, r2) { return e2.pipe(new s()).pipe(new a("uncompressedSize")).pipe(t2.compressWorker(r2)).pipe(new a("compressedSize")).withStreamInfo("compression", t2); }, t.exports = o; }, { "./external": 6, "./stream/Crc32Probe": 25, "./stream/DataLengthProbe": 26, "./stream/DataWorker": 27 }], 3: [function(e, t, r) { var n = e("./stream/GenericWorker"); r.STORE = { magic: "\0\0", compressWorker: function() { return new n("STORE compression"); }, uncompressWorker: function() { return new n("STORE decompression"); } }, r.DEFLATE = e("./flate"); }, { "./flate": 7, "./stream/GenericWorker": 28 }], 4: [function(e, t, r) { var n = e("./utils"); var o = function() { for (var e2, t2 = [], r2 = 0; r2 < 256; r2++) { e2 = r2; for (var n2 = 0; n2 < 8; n2++) e2 = 1 & e2 ? 3988292384 ^ e2 >>> 1 : e2 >>> 1; t2[r2] = e2; } return t2; }(); t.exports = function(e2, t2) { return void 0 !== e2 && e2.length ? "string" !== n.getTypeOf(e2) ? function(e3, t3, r2, n2) { var i = o, s = n2 + r2; e3 ^= -1; for (var a = n2; a < s; a++) e3 = e3 >>> 8 ^ i[255 & (e3 ^ t3[a])]; return -1 ^ e3; }(0 | t2, e2, e2.length, 0) : function(e3, t3, r2, n2) { var i = o, s = n2 + r2; e3 ^= -1; for (var a = n2; a < s; a++) e3 = e3 >>> 8 ^ i[255 & (e3 ^ t3.charCodeAt(a))]; return -1 ^ e3; }(0 | t2, e2, e2.length, 0) : 0; }; }, { "./utils": 32 }], 5: [function(e, t, r) { r.base64 = false, r.binary = false, r.dir = false, r.createFolders = true, r.date = null, r.compression = null, r.compressionOptions = null, r.comment = null, r.unixPermissions = null, r.dosPermissions = null; }, {}], 6: [function(e, t, r) { var n = null; n = "undefined" != typeof Promise ? Promise : e("lie"), t.exports = { Promise: n }; }, { lie: 37 }], 7: [function(e, t, r) { var n = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Uint32Array, i = e("pako"), s = e("./utils"), a = e("./stream/GenericWorker"), o = n ? "uint8array" : "array"; function h2(e2, t2) { a.call(this, "FlateWorker/" + e2), this._pako = null, this._pakoAction = e2, this._pakoOptions = t2, this.meta = {}; } r.magic = "\b\0", s.inherits(h2, a), h2.prototype.processChunk = function(e2) { this.meta = e2.meta, null === this._pako && this._createPako(), this._pako.push(s.transformTo(o, e2.data), false); }, h2.prototype.flush = function() { a.prototype.flush.call(this), null === this._pako && this._createPako(), this._pako.push([], true); }, h2.prototype.cleanUp = function() { a.prototype.cleanUp.call(this), this._pako = null; }, h2.prototype._createPako = function() { this._pako = new i[this._pakoAction]({ raw: true, level: this._pakoOptions.level || -1 }); var t2 = this; this._pako.onData = function(e2) { t2.push({ data: e2, meta: t2.meta }); }; }, r.compressWorker = function(e2) { return new h2("Deflate", e2); }, r.uncompressWorker = function() { return new h2("Inflate", {}); }; }, { "./stream/GenericWorker": 28, "./utils": 32, pako: 38 }], 8: [function(e, t, r) { function A(e2, t2) { var r2, n2 = ""; for (r2 = 0; r2 < t2; r2++) n2 += String.fromCharCode(255 & e2), e2 >>>= 8; return n2; } function n(e2, t2, r2, n2, i2, s2) { var a, o, h2 = e2.file, u = e2.compression, l = s2 !== O.utf8encode, f = I.transformTo("string", s2(h2.name)), c = I.transformTo("string", O.utf8encode(h2.name)), d = h2.comment, p = I.transformTo("string", s2(d)), m = I.transformTo("string", O.utf8encode(d)), _ = c.length !== h2.name.length, g = m.length !== d.length, b = "", v = "", y = "", w = h2.dir, k = h2.date, x = { crc32: 0, compressedSize: 0, uncompressedSize: 0 }; t2 && !r2 || (x.crc32 = e2.crc32, x.compressedSize = e2.compressedSize, x.uncompressedSize = e2.uncompressedSize); var S = 0; t2 && (S |= 8), l || !_ && !g || (S |= 2048); var z = 0, C = 0; w && (z |= 16), "UNIX" === i2 ? (C = 798, z |= function(e3, t3) { var r3 = e3; return e3 || (r3 = t3 ? 16893 : 33204), (65535 & r3) << 16; }(h2.unixPermissions, w)) : (C = 20, z |= function(e3) { return 63 & (e3 || 0); }(h2.dosPermissions)), a = k.getUTCHours(), a <<= 6, a |= k.getUTCMinutes(), a <<= 5, a |= k.getUTCSeconds() / 2, o = k.getUTCFullYear() - 1980, o <<= 4, o |= k.getUTCMonth() + 1, o <<= 5, o |= k.getUTCDate(), _ && (v = A(1, 1) + A(B(f), 4) + c, b += "up" + A(v.length, 2) + v), g && (y = A(1, 1) + A(B(p), 4) + m, b += "uc" + A(y.length, 2) + y); var E = ""; return E += "\n\0", E += A(S, 2), E += u.magic, E += A(a, 2), E += A(o, 2), E += A(x.crc32, 4), E += A(x.compressedSize, 4), E += A(x.uncompressedSize, 4), E += A(f.length, 2), E += A(b.length, 2), { fileRecord: R.LOCAL_FILE_HEADER + E + f + b, dirRecord: R.CENTRAL_FILE_HEADER + A(C, 2) + E + A(p.length, 2) + "\0\0\0\0" + A(z, 4) + A(n2, 4) + f + b + p }; } var I = e("../utils"), i = e("../stream/GenericWorker"), O = e("../utf8"), B = e("../crc32"), R = e("../signature"); function s(e2, t2, r2, n2) { i.call(this, "ZipFileWorker"), this.bytesWritten = 0, this.zipComment = t2, this.zipPlatform = r2, this.encodeFileName = n2, this.streamFiles = e2, this.accumulate = false, this.contentBuffer = [], this.dirRecords = [], this.currentSourceOffset = 0, this.entriesCount = 0, this.currentFile = null, this._sources = []; } I.inherits(s, i), s.prototype.push = function(e2) { var t2 = e2.meta.percent || 0, r2 = this.entriesCount, n2 = this._sources.length; this.accumulate ? this.contentBuffer.push(e2) : (this.bytesWritten += e2.data.length, i.prototype.push.call(this, { data: e2.data, meta: { currentFile: this.currentFile, percent: r2 ? (t2 + 100 * (r2 - n2 - 1)) / r2 : 100 } })); }, s.prototype.openedSource = function(e2) { this.currentSourceOffset = this.bytesWritten, this.currentFile = e2.file.name; var t2 = this.streamFiles && !e2.file.dir; if (t2) { var r2 = n(e2, t2, false, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); this.push({ data: r2.fileRecord, meta: { percent: 0 } }); } else this.accumulate = true; }, s.prototype.closedSource = function(e2) { this.accumulate = false; var t2 = this.streamFiles && !e2.file.dir, r2 = n(e2, t2, true, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); if (this.dirRecords.push(r2.dirRecord), t2) this.push({ data: function(e3) { return R.DATA_DESCRIPTOR + A(e3.crc32, 4) + A(e3.compressedSize, 4) + A(e3.uncompressedSize, 4); }(e2), meta: { percent: 100 } }); else for (this.push({ data: r2.fileRecord, meta: { percent: 0 } }); this.contentBuffer.length; ) this.push(this.contentBuffer.shift()); this.currentFile = null; }, s.prototype.flush = function() { for (var e2 = this.bytesWritten, t2 = 0; t2 < this.dirRecords.length; t2++) this.push({ data: this.dirRecords[t2], meta: { percent: 100 } }); var r2 = this.bytesWritten - e2, n2 = function(e3, t3, r3, n3, i2) { var s2 = I.transformTo("string", i2(n3)); return R.CENTRAL_DIRECTORY_END + "\0\0\0\0" + A(e3, 2) + A(e3, 2) + A(t3, 4) + A(r3, 4) + A(s2.length, 2) + s2; }(this.dirRecords.length, r2, e2, this.zipComment, this.encodeFileName); this.push({ data: n2, meta: { percent: 100 } }); }, s.prototype.prepareNextSource = function() { this.previous = this._sources.shift(), this.openedSource(this.previous.streamInfo), this.isPaused ? this.previous.pause() : this.previous.resume(); }, s.prototype.registerPrevious = function(e2) { this._sources.push(e2); var t2 = this; return e2.on("data", function(e3) { t2.processChunk(e3); }), e2.on("end", function() { t2.closedSource(t2.previous.streamInfo), t2._sources.length ? t2.prepareNextSource() : t2.end(); }), e2.on("error", function(e3) { t2.error(e3); }), this; }, s.prototype.resume = function() { return !!i.prototype.resume.call(this) && (!this.previous && this._sources.length ? (this.prepareNextSource(), true) : this.previous || this._sources.length || this.generatedError ? void 0 : (this.end(), true)); }, s.prototype.error = function(e2) { var t2 = this._sources; if (!i.prototype.error.call(this, e2)) return false; for (var r2 = 0; r2 < t2.length; r2++) try { t2[r2].error(e2); } catch (e3) { } return true; }, s.prototype.lock = function() { i.prototype.lock.call(this); for (var e2 = this._sources, t2 = 0; t2 < e2.length; t2++) e2[t2].lock(); }, t.exports = s; }, { "../crc32": 4, "../signature": 23, "../stream/GenericWorker": 28, "../utf8": 31, "../utils": 32 }], 9: [function(e, t, r) { var u = e("../compressions"), n = e("./ZipFileWorker"); r.generateWorker = function(e2, a, t2) { var o = new n(a.streamFiles, t2, a.platform, a.encodeFileName), h2 = 0; try { e2.forEach(function(e3, t3) { h2++; var r2 = function(e4, t4) { var r3 = e4 || t4, n3 = u[r3]; if (!n3) throw new Error(r3 + " is not a valid compression method !"); return n3; }(t3.options.compression, a.compression), n2 = t3.options.compressionOptions || a.compressionOptions || {}, i = t3.dir, s = t3.date; t3._compressWorker(r2, n2).withStreamInfo("file", { name: e3, dir: i, date: s, comment: t3.comment || "", unixPermissions: t3.unixPermissions, dosPermissions: t3.dosPermissions }).pipe(o); }), o.entriesCount = h2; } catch (e3) { o.error(e3); } return o; }; }, { "../compressions": 3, "./ZipFileWorker": 8 }], 10: [function(e, t, r) { function n() { if (!(this instanceof n)) return new n(); if (arguments.length) throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide."); this.files = /* @__PURE__ */ Object.create(null), this.comment = null, this.root = "", this.clone = function() { var e2 = new n(); for (var t2 in this) "function" != typeof this[t2] && (e2[t2] = this[t2]); return e2; }; } (n.prototype = e("./object")).loadAsync = e("./load"), n.support = e("./support"), n.defaults = e("./defaults"), n.version = "3.10.1", n.loadAsync = function(e2, t2) { return new n().loadAsync(e2, t2); }, n.external = e("./external"), t.exports = n; }, { "./defaults": 5, "./external": 6, "./load": 11, "./object": 15, "./support": 30 }], 11: [function(e, t, r) { var u = e("./utils"), i = e("./external"), n = e("./utf8"), s = e("./zipEntries"), a = e("./stream/Crc32Probe"), l = e("./nodejsUtils"); function f(n2) { return new i.Promise(function(e2, t2) { var r2 = n2.decompressed.getContentWorker().pipe(new a()); r2.on("error", function(e3) { t2(e3); }).on("end", function() { r2.streamInfo.crc32 !== n2.decompressed.crc32 ? t2(new Error("Corrupted zip : CRC32 mismatch")) : e2(); }).resume(); }); } t.exports = function(e2, o) { var h2 = this; return o = u.extend(o || {}, { base64: false, checkCRC32: false, optimizedBinaryString: false, createFolders: false, decodeFileName: n.utf8decode }), l.isNode && l.isStream(e2) ? i.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")) : u.prepareContent("the loaded zip file", e2, true, o.optimizedBinaryString, o.base64).then(function(e3) { var t2 = new s(o); return t2.load(e3), t2; }).then(function(e3) { var t2 = [i.Promise.resolve(e3)], r2 = e3.files; if (o.checkCRC32) for (var n2 = 0; n2 < r2.length; n2++) t2.push(f(r2[n2])); return i.Promise.all(t2); }).then(function(e3) { for (var t2 = e3.shift(), r2 = t2.files, n2 = 0; n2 < r2.length; n2++) { var i2 = r2[n2], s2 = i2.fileNameStr, a2 = u.resolve(i2.fileNameStr); h2.file(a2, i2.decompressed, { binary: true, optimizedBinaryString: true, date: i2.date, dir: i2.dir, comment: i2.fileCommentStr.length ? i2.fileCommentStr : null, unixPermissions: i2.unixPermissions, dosPermissions: i2.dosPermissions, createFolders: o.createFolders }), i2.dir || (h2.file(a2).unsafeOriginalName = s2); } return t2.zipComment.length && (h2.comment = t2.zipComment), h2; }); }; }, { "./external": 6, "./nodejsUtils": 14, "./stream/Crc32Probe": 25, "./utf8": 31, "./utils": 32, "./zipEntries": 33 }], 12: [function(e, t, r) { var n = e("../utils"), i = e("../stream/GenericWorker"); function s(e2, t2) { i.call(this, "Nodejs stream input adapter for " + e2), this._upstreamEnded = false, this._bindStream(t2); } n.inherits(s, i), s.prototype._bindStream = function(e2) { var t2 = this; (this._stream = e2).pause(), e2.on("data", function(e3) { t2.push({ data: e3, meta: { percent: 0 } }); }).on("error", function(e3) { t2.isPaused ? this.generatedError = e3 : t2.error(e3); }).on("end", function() { t2.isPaused ? t2._upstreamEnded = true : t2.end(); }); }, s.prototype.pause = function() { return !!i.prototype.pause.call(this) && (this._stream.pause(), true); }, s.prototype.resume = function() { return !!i.prototype.resume.call(this) && (this._upstreamEnded ? this.end() : this._stream.resume(), true); }, t.exports = s; }, { "../stream/GenericWorker": 28, "../utils": 32 }], 13: [function(e, t, r) { var i = e("readable-stream").Readable; function n(e2, t2, r2) { i.call(this, t2), this._helper = e2; var n2 = this; e2.on("data", function(e3, t3) { n2.push(e3) || n2._helper.pause(), r2 && r2(t3); }).on("error", function(e3) { n2.emit("error", e3); }).on("end", function() { n2.push(null); }); } e("../utils").inherits(n, i), n.prototype._read = function() { this._helper.resume(); }, t.exports = n; }, { "../utils": 32, "readable-stream": 16 }], 14: [function(e, t, r) { t.exports = { isNode: "undefined" != typeof Buffer, newBufferFrom: function(e2, t2) { if (Buffer.from && Buffer.from !== Uint8Array.from) return Buffer.from(e2, t2); if ("number" == typeof e2) throw new Error('The "data" argument must not be a number'); return new Buffer(e2, t2); }, allocBuffer: function(e2) { if (Buffer.alloc) return Buffer.alloc(e2); var t2 = new Buffer(e2); return t2.fill(0), t2; }, isBuffer: function(e2) { return Buffer.isBuffer(e2); }, isStream: function(e2) { return e2 && "function" == typeof e2.on && "function" == typeof e2.pause && "function" == typeof e2.resume; } }; }, {}], 15: [function(e, t, r) { function s(e2, t2, r2) { var n2, i2 = u.getTypeOf(t2), s2 = u.extend(r2 || {}, f); s2.date = s2.date || /* @__PURE__ */ new Date(), null !== s2.compression && (s2.compression = s2.compression.toUpperCase()), "string" == typeof s2.unixPermissions && (s2.unixPermissions = parseInt(s2.unixPermissions, 8)), s2.unixPermissions && 16384 & s2.unixPermissions && (s2.dir = true), s2.dosPermissions && 16 & s2.dosPermissions && (s2.dir = true), s2.dir && (e2 = g(e2)), s2.createFolders && (n2 = _(e2)) && b.call(this, n2, true); var a2 = "string" === i2 && false === s2.binary && false === s2.base64; r2 && void 0 !== r2.binary || (s2.binary = !a2), (t2 instanceof c && 0 === t2.uncompressedSize || s2.dir || !t2 || 0 === t2.length) && (s2.base64 = false, s2.binary = true, t2 = "", s2.compression = "STORE", i2 = "string"); var o2 = null; o2 = t2 instanceof c || t2 instanceof l ? t2 : p.isNode && p.isStream(t2) ? new m(e2, t2) : u.prepareContent(e2, t2, s2.binary, s2.optimizedBinaryString, s2.base64); var h3 = new d(e2, o2, s2); this.files[e2] = h3; } var i = e("./utf8"), u = e("./utils"), l = e("./stream/GenericWorker"), a = e("./stream/StreamHelper"), f = e("./defaults"), c = e("./compressedObject"), d = e("./zipObject"), o = e("./generate"), p = e("./nodejsUtils"), m = e("./nodejs/NodejsStreamInputAdapter"), _ = function(e2) { "/" === e2.slice(-1) && (e2 = e2.substring(0, e2.length - 1)); var t2 = e2.lastIndexOf("/"); return 0 < t2 ? e2.substring(0, t2) : ""; }, g = function(e2) { return "/" !== e2.slice(-1) && (e2 += "/"), e2; }, b = function(e2, t2) { return t2 = void 0 !== t2 ? t2 : f.createFolders, e2 = g(e2), this.files[e2] || s.call(this, e2, null, { dir: true, createFolders: t2 }), this.files[e2]; }; function h2(e2) { return "[object RegExp]" === Object.prototype.toString.call(e2); } var n = { load: function() { throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); }, forEach: function(e2) { var t2, r2, n2; for (t2 in this.files) n2 = this.files[t2], (r2 = t2.slice(this.root.length, t2.length)) && t2.slice(0, this.root.length) === this.root && e2(r2, n2); }, filter: function(r2) { var n2 = []; return this.forEach(function(e2, t2) { r2(e2, t2) && n2.push(t2); }), n2; }, file: function(e2, t2, r2) { if (1 !== arguments.length) return e2 = this.root + e2, s.call(this, e2, t2, r2), this; if (h2(e2)) { var n2 = e2; return this.filter(function(e3, t3) { return !t3.dir && n2.test(e3); }); } var i2 = this.files[this.root + e2]; return i2 && !i2.dir ? i2 : null; }, folder: function(r2) { if (!r2) return this; if (h2(r2)) return this.filter(function(e3, t3) { return t3.dir && r2.test(e3); }); var e2 = this.root + r2, t2 = b.call(this, e2), n2 = this.clone(); return n2.root = t2.name, n2; }, remove: function(r2) { r2 = this.root + r2; var e2 = this.files[r2]; if (e2 || ("/" !== r2.slice(-1) && (r2 += "/"), e2 = this.files[r2]), e2 && !e2.dir) delete this.files[r2]; else for (var t2 = this.filter(function(e3, t3) { return t3.name.slice(0, r2.length) === r2; }), n2 = 0; n2 < t2.length; n2++) delete this.files[t2[n2].name]; return this; }, generate: function() { throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); }, generateInternalStream: function(e2) { var t2, r2 = {}; try { if ((r2 = u.extend(e2 || {}, { streamFiles: false, compression: "STORE", compressionOptions: null, type: "", platform: "DOS", comment: null, mimeType: "application/zip", encodeFileName: i.utf8encode })).type = r2.type.toLowerCase(), r2.compression = r2.compression.toUpperCase(), "binarystring" === r2.type && (r2.type = "string"), !r2.type) throw new Error("No output type specified."); u.checkSupport(r2.type), "darwin" !== r2.platform && "freebsd" !== r2.platform && "linux" !== r2.platform && "sunos" !== r2.platform || (r2.platform = "UNIX"), "win32" === r2.platform && (r2.platform = "DOS"); var n2 = r2.comment || this.comment || ""; t2 = o.generateWorker(this, r2, n2); } catch (e3) { (t2 = new l("error")).error(e3); } return new a(t2, r2.type || "string", r2.mimeType); }, generateAsync: function(e2, t2) { return this.generateInternalStream(e2).accumulate(t2); }, generateNodeStream: function(e2, t2) { return (e2 = e2 || {}).type || (e2.type = "nodebuffer"), this.generateInternalStream(e2).toNodejsStream(t2); } }; t.exports = n; }, { "./compressedObject": 2, "./defaults": 5, "./generate": 9, "./nodejs/NodejsStreamInputAdapter": 12, "./nodejsUtils": 14, "./stream/GenericWorker": 28, "./stream/StreamHelper": 29, "./utf8": 31, "./utils": 32, "./zipObject": 35 }], 16: [function(e, t, r) { t.exports = e("stream"); }, { stream: void 0 }], 17: [function(e, t, r) { var n = e("./DataReader"); function i(e2) { n.call(this, e2); for (var t2 = 0; t2 < this.data.length; t2++) e2[t2] = 255 & e2[t2]; } e("../utils").inherits(i, n), i.prototype.byteAt = function(e2) { return this.data[this.zero + e2]; }, i.prototype.lastIndexOfSignature = function(e2) { for (var t2 = e2.charCodeAt(0), r2 = e2.charCodeAt(1), n2 = e2.charCodeAt(2), i2 = e2.charCodeAt(3), s = this.length - 4; 0 <= s; --s) if (this.data[s] === t2 && this.data[s + 1] === r2 && this.data[s + 2] === n2 && this.data[s + 3] === i2) return s - this.zero; return -1; }, i.prototype.readAndCheckSignature = function(e2) { var t2 = e2.charCodeAt(0), r2 = e2.charCodeAt(1), n2 = e2.charCodeAt(2), i2 = e2.charCodeAt(3), s = this.readData(4); return t2 === s[0] && r2 === s[1] && n2 === s[2] && i2 === s[3]; }, i.prototype.readData = function(e2) { if (this.checkOffset(e2), 0 === e2) return []; var t2 = this.data.slice(this.zero + this.index, this.zero + this.index + e2); return this.index += e2, t2; }, t.exports = i; }, { "../utils": 32, "./DataReader": 18 }], 18: [function(e, t, r) { var n = e("../utils"); function i(e2) { this.data = e2, this.length = e2.length, this.index = 0, this.zero = 0; } i.prototype = { checkOffset: function(e2) { this.checkIndex(this.index + e2); }, checkIndex: function(e2) { if (this.length < this.zero + e2 || e2 < 0) throw new Error("End of data reached (data length = " + this.length + ", asked index = " + e2 + "). Corrupted zip ?"); }, setIndex: function(e2) { this.checkIndex(e2), this.index = e2; }, skip: function(e2) { this.setIndex(this.index + e2); }, byteAt: function() { }, readInt: function(e2) { var t2, r2 = 0; for (this.checkOffset(e2), t2 = this.index + e2 - 1; t2 >= this.index; t2--) r2 = (r2 << 8) + this.byteAt(t2); return this.index += e2, r2; }, readString: function(e2) { return n.transformTo("string", this.readData(e2)); }, readData: function() { }, lastIndexOfSignature: function() { }, readAndCheckSignature: function() { }, readDate: function() { var e2 = this.readInt(4); return new Date(Date.UTC(1980 + (e2 >> 25 & 127), (e2 >> 21 & 15) - 1, e2 >> 16 & 31, e2 >> 11 & 31, e2 >> 5 & 63, (31 & e2) << 1)); } }, t.exports = i; }, { "../utils": 32 }], 19: [function(e, t, r) { var n = e("./Uint8ArrayReader"); function i(e2) { n.call(this, e2); } e("../utils").inherits(i, n), i.prototype.readData = function(e2) { this.checkOffset(e2); var t2 = this.data.slice(this.zero + this.index, this.zero + this.index + e2); return this.index += e2, t2; }, t.exports = i; }, { "../utils": 32, "./Uint8ArrayReader": 21 }], 20: [function(e, t, r) { var n = e("./DataReader"); function i(e2) { n.call(this, e2); } e("../utils").inherits(i, n), i.prototype.byteAt = function(e2) { return this.data.charCodeAt(this.zero + e2); }, i.prototype.lastIndexOfSignature = function(e2) { return this.data.lastIndexOf(e2) - this.zero; }, i.prototype.readAndCheckSignature = function(e2) { return e2 === this.readData(4); }, i.prototype.readData = function(e2) { this.checkOffset(e2); var t2 = this.data.slice(this.zero + this.index, this.zero + this.index + e2); return this.index += e2, t2; }, t.exports = i; }, { "../utils": 32, "./DataReader": 18 }], 21: [function(e, t, r) { var n = e("./ArrayReader"); function i(e2) { n.call(this, e2); } e("../utils").inherits(i, n), i.prototype.readData = function(e2) { if (this.checkOffset(e2), 0 === e2) return new Uint8Array(0); var t2 = this.data.subarray(this.zero + this.index, this.zero + this.index + e2); return this.index += e2, t2; }, t.exports = i; }, { "../utils": 32, "./ArrayReader": 17 }], 22: [function(e, t, r) { var n = e("../utils"), i = e("../support"), s = e("./ArrayReader"), a = e("./StringReader"), o = e("./NodeBufferReader"), h2 = e("./Uint8ArrayReader"); t.exports = function(e2) { var t2 = n.getTypeOf(e2); return n.checkSupport(t2), "string" !== t2 || i.uint8array ? "nodebuffer" === t2 ? new o(e2) : i.uint8array ? new h2(n.transformTo("uint8array", e2)) : new s(n.transformTo("array", e2)) : new a(e2); }; }, { "../support": 30, "../utils": 32, "./ArrayReader": 17, "./NodeBufferReader": 19, "./StringReader": 20, "./Uint8ArrayReader": 21 }], 23: [function(e, t, r) { r.LOCAL_FILE_HEADER = "PK", r.CENTRAL_FILE_HEADER = "PK", r.CENTRAL_DIRECTORY_END = "PK", r.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x07", r.ZIP64_CENTRAL_DIRECTORY_END = "PK", r.DATA_DESCRIPTOR = "PK\x07\b"; }, {}], 24: [function(e, t, r) { var n = e("./GenericWorker"), i = e("../utils"); function s(e2) { n.call(this, "ConvertWorker to " + e2), this.destType = e2; } i.inherits(s, n), s.prototype.processChunk = function(e2) { this.push({ data: i.transformTo(this.destType, e2.data), meta: e2.meta }); }, t.exports = s; }, { "../utils": 32, "./GenericWorker": 28 }], 25: [function(e, t, r) { var n = e("./GenericWorker"), i = e("../crc32"); function s() { n.call(this, "Crc32Probe"), this.withStreamInfo("crc32", 0); } e("../utils").inherits(s, n), s.prototype.processChunk = function(e2) { this.streamInfo.crc32 = i(e2.data, this.streamInfo.crc32 || 0), this.push(e2); }, t.exports = s; }, { "../crc32": 4, "../utils": 32, "./GenericWorker": 28 }], 26: [function(e, t, r) { var n = e("../utils"), i = e("./GenericWorker"); function s(e2) { i.call(this, "DataLengthProbe for " + e2), this.propName = e2, this.withStreamInfo(e2, 0); } n.inherits(s, i), s.prototype.processChunk = function(e2) { if (e2) { var t2 = this.streamInfo[this.propName] || 0; this.streamInfo[this.propName] = t2 + e2.data.length; } i.prototype.processChunk.call(this, e2); }, t.exports = s; }, { "../utils": 32, "./GenericWorker": 28 }], 27: [function(e, t, r) { var n = e("../utils"), i = e("./GenericWorker"); function s(e2) { i.call(this, "DataWorker"); var t2 = this; this.dataIsReady = false, this.index = 0, this.max = 0, this.data = null, this.type = "", this._tickScheduled = false, e2.then(function(e3) { t2.dataIsReady = true, t2.data = e3, t2.max = e3 && e3.length || 0, t2.type = n.getTypeOf(e3), t2.isPaused || t2._tickAndRepeat(); }, function(e3) { t2.error(e3); }); } n.inherits(s, i), s.prototype.cleanUp = function() { i.prototype.cleanUp.call(this), this.data = null; }, s.prototype.resume = function() { return !!i.prototype.resume.call(this) && (!this._tickScheduled && this.dataIsReady && (this._tickScheduled = true, n.delay(this._tickAndRepeat, [], this)), true); }, s.prototype._tickAndRepeat = function() { this._tickScheduled = false, this.isPaused || this.isFinished || (this._tick(), this.isFinished || (n.delay(this._tickAndRepeat, [], this), this._tickScheduled = true)); }, s.prototype._tick = function() { if (this.isPaused || this.isFinished) return false; var e2 = null, t2 = Math.min(this.max, this.index + 16384); if (this.index >= this.max) return this.end(); switch (this.type) { case "string": e2 = this.data.substring(this.index, t2); break; case "uint8array": e2 = this.data.subarray(this.index, t2); break; case "array": case "nodebuffer": e2 = this.data.slice(this.index, t2); } return this.index = t2, this.push({ data: e2, meta: { percent: this.max ? this.index / this.max * 100 : 0 } }); }, t.exports = s; }, { "../utils": 32, "./GenericWorker": 28 }], 28: [function(e, t, r) { function n(e2) { this.name = e2 || "default", this.streamInfo = {}, this.generatedError = null, this.extraStreamInfo = {}, this.isPaused = true, this.isFinished = false, this.isLocked = false, this._listeners = { data: [], end: [], error: [] }, this.previous = null; } n.prototype = { push: function(e2) { this.emit("data", e2); }, end: function() { if (this.isFinished) return false; this.flush(); try { this.emit("end"), this.cleanUp(), this.isFinished = true; } catch (e2) { this.emit("error", e2); } return true; }, error: function(e2) { return !this.isFinished && (this.isPaused ? this.generatedError = e2 : (this.isFinished = true, this.emit("error", e2), this.previous && this.previous.error(e2), this.cleanUp()), true); }, on: function(e2, t2) { return this._listeners[e2].push(t2), this; }, cleanUp: function() { this.streamInfo = this.generatedError = this.extraStreamInfo = null, this._listeners = []; }, emit: function(e2, t2) { if (this._listeners[e2]) for (var r2 = 0; r2 < this._listeners[e2].length; r2++) this._listeners[e2][r2].call(this, t2); }, pipe: function(e2) { return e2.registerPrevious(this); }, registerPrevious: function(e2) { if (this.isLocked) throw new Error("The stream '" + this + "' has already been used."); this.streamInfo = e2.streamInfo, this.mergeStreamInfo(), this.previous = e2; var t2 = this; return e2.on("data", function(e3) { t2.processChunk(e3); }), e2.on("end", function() { t2.end(); }), e2.on("error", function(e3) { t2.error(e3); }), this; }, pause: function() { return !this.isPaused && !this.isFinished && (this.isPaused = true, this.previous && this.previous.pause(), true); }, resume: function() { if (!this.isPaused || this.isFinished) return false; var e2 = this.isPaused = false; return this.generatedError && (this.error(this.generatedError), e2 = true), this.previous && this.previous.resume(), !e2; }, flush: function() { }, processChunk: function(e2) { this.push(e2); }, withStreamInfo: function(e2, t2) { return this.extraStreamInfo[e2] = t2, this.mergeStreamInfo(), this; }, mergeStreamInfo: function() { for (var e2 in this.extraStreamInfo) Object.prototype.hasOwnProperty.call(this.extraStreamInfo, e2) && (this.streamInfo[e2] = this.extraStreamInfo[e2]); }, lock: function() { if (this.isLocked) throw new Error("The stream '" + this + "' has already been used."); this.isLocked = true, this.previous && this.previous.lock(); }, toString: function() { var e2 = "Worker " + this.name; return this.previous ? this.previous + " -> " + e2 : e2; } }, t.exports = n; }, {}], 29: [function(e, t, r) { var h2 = e("../utils"), i = e("./ConvertWorker"), s = e("./GenericWorker"), u = e("../base64"), n = e("../support"), a = e("../external"), o = null; if (n.nodestream) try { o = e("../nodejs/NodejsStreamOutputAdapter"); } catch (e2) { } function l(e2, o2) { return new a.Promise(function(t2, r2) { var n2 = [], i2 = e2._internalType, s2 = e2._outputType, a2 = e2._mimeType; e2.on("data", function(e3, t3) { n2.push(e3), o2 && o2(t3); }).on("error", function(e3) { n2 = [], r2(e3); }).on("end", function() { try { var e3 = function(e4, t3, r3) { switch (e4) { case "blob": return h2.newBlob(h2.transformTo("arraybuffer", t3), r3); case "base64": return u.encode(t3); default: return h2.transformTo(e4, t3); } }(s2, function(e4, t3) { var r3, n3 = 0, i3 = null, s3 = 0; for (r3 = 0; r3 < t3.length; r3++) s3 += t3[r3].length; switch (e4) { case "string": return t3.join(""); case "array": return Array.prototype.concat.apply([], t3); case "uint8array": for (i3 = new Uint8Array(s3), r3 = 0; r3 < t3.length; r3++) i3.set(t3[r3], n3), n3 += t3[r3].length; return i3; case "nodebuffer": return Buffer.concat(t3); default: throw new Error("concat : unsupported type '" + e4 + "'"); } }(i2, n2), a2); t2(e3); } catch (e4) { r2(e4); } n2 = []; }).resume(); }); } function f(e2, t2, r2) { var n2 = t2; switch (t2) { case "blob": case "arraybuffer": n2 = "uint8array"; break; case "base64": n2 = "string"; } try { this._internalType = n2, this._outputType = t2, this._mimeType = r2, h2.checkSupport(n2), this._worker = e2.pipe(new i(n2)), e2.lock(); } catch (e3) { this._worker = new s("error"), this._worker.error(e3); } } f.prototype = { accumulate: function(e2) { return l(this, e2); }, on: function(e2, t2) { var r2 = this; return "data" === e2 ? this._worker.on(e2, function(e3) { t2.call(r2, e3.data, e3.meta); }) : this._worker.on(e2, function() { h2.delay(t2, arguments, r2); }), this; }, resume: function() { return h2.delay(this._worker.resume, [], this._worker), this; }, pause: function() { return this._worker.pause(), this; }, toNodejsStream: function(e2) { if (h2.checkSupport("nodestream"), "nodebuffer" !== this._outputType) throw new Error(this._outputType + " is not supported by this method"); return new o(this, { objectMode: "nodebuffer" !== this._outputType }, e2); } }, t.exports = f; }, { "../base64": 1, "../external": 6, "../nodejs/NodejsStreamOutputAdapter": 13, "../support": 30, "../utils": 32, "./ConvertWorker": 24, "./GenericWorker": 28 }], 30: [function(e, t, r) { if (r.base64 = true, r.array = true, r.string = true, r.arraybuffer = "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array, r.nodebuffer = "undefined" != typeof Buffer, r.uint8array = "undefined" != typeof Uint8Array, "undefined" == typeof ArrayBuffer) r.blob = false; else { var n = new ArrayBuffer(0); try { r.blob = 0 === new Blob([n], { type: "application/zip" }).size; } catch (e2) { try { var i = new (self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder)(); i.append(n), r.blob = 0 === i.getBlob("application/zip").size; } catch (e3) { r.blob = false; } } } try { r.nodestream = !!e("readable-stream").Readable; } catch (e2) { r.nodestream = false; } }, { "readable-stream": 16 }], 31: [function(e, t, s) { for (var o = e("./utils"), h2 = e("./support"), r = e("./nodejsUtils"), n = e("./stream/GenericWorker"), u = new Array(256), i = 0; i < 256; i++) u[i] = 252 <= i ? 6 : 248 <= i ? 5 : 240 <= i ? 4 : 224 <= i ? 3 : 192 <= i ? 2 : 1; u[254] = u[254] = 1; function a() { n.call(this, "utf-8 decode"), this.leftOver = null; } function l() { n.call(this, "utf-8 encode"); } s.utf8encode = function(e2) { return h2.nodebuffer ? r.newBufferFrom(e2, "utf-8") : function(e3) { var t2, r2, n2, i2, s2, a2 = e3.length, o2 = 0; for (i2 = 0; i2 < a2; i2++) 55296 == (64512 & (r2 = e3.charCodeAt(i2))) && i2 + 1 < a2 && 56320 == (64512 & (n2 = e3.charCodeAt(i2 + 1))) && (r2 = 65536 + (r2 - 55296 << 10) + (n2 - 56320), i2++), o2 += r2 < 128 ? 1 : r2 < 2048 ? 2 : r2 < 65536 ? 3 : 4; for (t2 = h2.uint8array ? new Uint8Array(o2) : new Array(o2), i2 = s2 = 0; s2 < o2; i2++) 55296 == (64512 & (r2 = e3.charCodeAt(i2))) && i2 + 1 < a2 && 56320 == (64512 & (n2 = e3.charCodeAt(i2 + 1))) && (r2 = 65536 + (r2 - 55296 << 10) + (n2 - 56320), i2++), r2 < 128 ? t2[s2++] = r2 : (r2 < 2048 ? t2[s2++] = 192 | r2 >>> 6 : (r2 < 65536 ? t2[s2++] = 224 | r2 >>> 12 : (t2[s2++] = 240 | r2 >>> 18, t2[s2++] = 128 | r2 >>> 12 & 63), t2[s2++] = 128 | r2 >>> 6 & 63), t2[s2++] = 128 | 63 & r2); return t2; }(e2); }, s.utf8decode = function(e2) { return h2.nodebuffer ? o.transformTo("nodebuffer", e2).toString("utf-8") : function(e3) { var t2, r2, n2, i2, s2 = e3.length, a2 = new Array(2 * s2); for (t2 = r2 = 0; t2 < s2; ) if ((n2 = e3[t2++]) < 128) a2[r2++] = n2; else if (4 < (i2 = u[n2])) a2[r2++] = 65533, t2 += i2 - 1; else { for (n2 &= 2 === i2 ? 31 : 3 === i2 ? 15 : 7; 1 < i2 && t2 < s2; ) n2 = n2 << 6 | 63 & e3[t2++], i2--; 1 < i2 ? a2[r2++] = 65533 : n2 < 65536 ? a2[r2++] = n2 : (n2 -= 65536, a2[r2++] = 55296 | n2 >> 10 & 1023, a2[r2++] = 56320 | 1023 & n2); } return a2.length !== r2 && (a2.subarray ? a2 = a2.subarray(0, r2) : a2.length = r2), o.applyFromCharCode(a2); }(e2 = o.transformTo(h2.uint8array ? "uint8array" : "array", e2)); }, o.inherits(a, n), a.prototype.processChunk = function(e2) { var t2 = o.transformTo(h2.uint8array ? "uint8array" : "array", e2.data); if (this.leftOver && this.leftOver.length) { if (h2.uint8array) { var r2 = t2; (t2 = new Uint8Array(r2.length + this.leftOver.length)).set(this.leftOver, 0), t2.set(r2, this.leftOver.length); } else t2 = this.leftOver.concat(t2); this.leftOver = null; } var n2 = function(e3, t3) { var r3; for ((t3 = t3 || e3.length) > e3.length && (t3 = e3.length), r3 = t3 - 1; 0 <= r3 && 128 == (192 & e3[r3]); ) r3--; return r3 < 0 ? t3 : 0 === r3 ? t3 : r3 + u[e3[r3]] > t3 ? r3 : t3; }(t2), i2 = t2; n2 !== t2.length && (h2.uint8array ? (i2 = t2.subarray(0, n2), this.leftOver = t2.subarray(n2, t2.length)) : (i2 = t2.slice(0, n2), this.leftOver = t2.slice(n2, t2.length))), this.push({ data: s.utf8decode(i2), meta: e2.meta }); }, a.prototype.flush = function() { this.leftOver && this.leftOver.length && (this.push({ data: s.utf8decode(this.leftOver), meta: {} }), this.leftOver = null); }, s.Utf8DecodeWorker = a, o.inherits(l, n), l.prototype.processChunk = function(e2) { this.push({ data: s.utf8encode(e2.data), meta: e2.meta }); }, s.Utf8EncodeWorker = l; }, { "./nodejsUtils": 14, "./stream/GenericWorker": 28, "./support": 30, "./utils": 32 }], 32: [function(e, t, a) { var o = e("./support"), h2 = e("./base64"), r = e("./nodejsUtils"), u = e("./external"); function n(e2) { return e2; } function l(e2, t2) { for (var r2 = 0; r2 < e2.length; ++r2) t2[r2] = 255 & e2.charCodeAt(r2); return t2; } e("setimmediate"), a.newBlob = function(t2, r2) { a.checkSupport("blob"); try { return new Blob([t2], { type: r2 }); } catch (e2) { try { var n2 = new (self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder)(); return n2.append(t2), n2.getBlob(r2); } catch (e3) { throw new Error("Bug : can't construct the Blob."); } } }; var i = { stringifyByChunk: function(e2, t2, r2) { var n2 = [], i2 = 0, s2 = e2.length; if (s2 <= r2) return String.fromCharCode.apply(null, e2); for (; i2 < s2; ) "array" === t2 || "nodebuffer" === t2 ? n2.push(String.fromCharCode.apply(null, e2.slice(i2, Math.min(i2 + r2, s2)))) : n2.push(String.fromCharCode.apply(null, e2.subarray(i2, Math.min(i2 + r2, s2)))), i2 += r2; return n2.join(""); }, stringifyByChar: function(e2) { for (var t2 = "", r2 = 0; r2 < e2.length; r2++) t2 += String.fromCharCode(e2[r2]); return t2; }, applyCanBeUsed: { uint8array: function() { try { return o.uint8array && 1 === String.fromCharCode.apply(null, new Uint8Array(1)).length; } catch (e2) { return false; } }(), nodebuffer: function() { try { return o.nodebuffer && 1 === String.fromCharCode.apply(null, r.allocBuffer(1)).length; } catch (e2) { return false; } }() } }; function s(e2) { var t2 = 65536, r2 = a.getTypeOf(e2), n2 = true; if ("uint8array" === r2 ? n2 = i.applyCanBeUsed.uint8array : "nodebuffer" === r2 && (n2 = i.applyCanBeUsed.nodebuffer), n2) for (; 1 < t2; ) try { return i.stringifyByChunk(e2, r2, t2); } catch (e3) { t2 = Math.floor(t2 / 2); } return i.stringifyByChar(e2); } function f(e2, t2) { for (var r2 = 0; r2 < e2.length; r2++) t2[r2] = e2[r2]; return t2; } a.applyFromCharCode = s; var c = {}; c.string = { string: n, array: function(e2) { return l(e2, new Array(e2.length)); }, arraybuffer: function(e2) { return c.string.uint8array(e2).buffer; }, uint8array: function(e2) { return l(e2, new Uint8Array(e2.length)); }, nodebuffer: function(e2) { return l(e2, r.allocBuffer(e2.length)); } }, c.array = { string: s, array: n, arraybuffer: function(e2) { return new Uint8Array(e2).buffer; }, uint8array: function(e2) { return new Uint8Array(e2); }, nodebuffer: function(e2) { return r.newBufferFrom(e2); } }, c.arraybuffer = { string: function(e2) { return s(new Uint8Array(e2)); }, array: function(e2) { return f(new Uint8Array(e2), new Array(e2.byteLength)); }, arraybuffer: n, uint8array: function(e2) { return new Uint8Array(e2); }, nodebuffer: function(e2) { return r.newBufferFrom(new Uint8Array(e2)); } }, c.uint8array = { string: s, array: function(e2) { return f(e2, new Array(e2.length)); }, arraybuffer: function(e2) { return e2.buffer; }, uint8array: n, nodebuffer: function(e2) { return r.newBufferFrom(e2); } }, c.nodebuffer = { string: s, array: function(e2) { return f(e2, new Array(e2.length)); }, arraybuffer: function(e2) { return c.nodebuffer.uint8array(e2).buffer; }, uint8array: function(e2) { return f(e2, new Uint8Array(e2.length)); }, nodebuffer: n }, a.transformTo = function(e2, t2) { if (t2 = t2 || "", !e2) return t2; a.checkSupport(e2); var r2 = a.getTypeOf(t2); return c[r2][e2](t2); }, a.resolve = function(e2) { for (var t2 = e2.split("/"), r2 = [], n2 = 0; n2 < t2.length; n2++) { var i2 = t2[n2]; "." === i2 || "" === i2 && 0 !== n2 && n2 !== t2.length - 1 || (".." === i2 ? r2.pop() : r2.push(i2)); } return r2.join("/"); }, a.getTypeOf = function(e2) { return "string" == typeof e2 ? "string" : "[object Array]" === Object.prototype.toString.call(e2) ? "array" : o.nodebuffer && r.isBuffer(e2) ? "nodebuffer" : o.uint8array && e2 instanceof Uint8Array ? "uint8array" : o.arraybuffer && e2 instanceof ArrayBuffer ? "arraybuffer" : void 0; }, a.checkSupport = function(e2) { if (!o[e2.toLowerCase()]) throw new Error(e2 + " is not supported by this platform"); }, a.MAX_VALUE_16BITS = 65535, a.MAX_VALUE_32BITS = -1, a.pretty = function(e2) { var t2, r2, n2 = ""; for (r2 = 0; r2 < (e2 || "").length; r2++) n2 += "\\x" + ((t2 = e2.charCodeAt(r2)) < 16 ? "0" : "") + t2.toString(16).toUpperCase(); return n2; }, a.delay = function(e2, t2, r2) { setImmediate(function() { e2.apply(r2 || null, t2 || []); }); }, a.inherits = function(e2, t2) { function r2() { } r2.prototype = t2.prototype, e2.prototype = new r2(); }, a.extend = function() { var e2, t2, r2 = {}; for (e2 = 0; e2 < arguments.length; e2++) for (t2 in arguments[e2]) Object.prototype.hasOwnProperty.call(arguments[e2], t2) && void 0 === r2[t2] && (r2[t2] = arguments[e2][t2]); return r2; }, a.prepareContent = function(r2, e2, n2, i2, s2) { return u.Promise.resolve(e2).then(function(n3) { return o.blob && (n3 instanceof Blob || -1 !== ["[object File]", "[object Blob]"].indexOf(Object.prototype.toString.call(n3))) && "undefined" != typeof FileReader ? new u.Promise(function(t2, r3) { var e3 = new FileReader(); e3.onload = function(e4) { t2(e4.target.result); }, e3.onerror = function(e4) { r3(e4.target.error); }, e3.readAsArrayBuffer(n3); }) : n3; }).then(function(e3) { var t2 = a.getTypeOf(e3); return t2 ? ("arraybuffer" === t2 ? e3 = a.transformTo("uint8array", e3) : "string" === t2 && (s2 ? e3 = h2.decode(e3) : n2 && true !== i2 && (e3 = function(e4) { return l(e4, o.uint8array ? new Uint8Array(e4.length) : new Array(e4.length)); }(e3))), e3) : u.Promise.reject(new Error("Can't read the data of '" + r2 + "'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?")); }); }; }, { "./base64": 1, "./external": 6, "./nodejsUtils": 14, "./support": 30, setimmediate: 54 }], 33: [function(e, t, r) { var n = e("./reader/readerFor"), i = e("./utils"), s = e("./signature"), a = e("./zipEntry"), o = e("./support"); function h2(e2) { this.files = [], this.loadOptions = e2; } h2.prototype = { checkSignature: function(e2) { if (!this.reader.readAndCheckSignature(e2)) { this.reader.index -= 4; var t2 = this.reader.readString(4); throw new Error("Corrupted zip or bug: unexpected signature (" + i.pretty(t2) + ", expected " + i.pretty(e2) + ")"); } }, isSignature: function(e2, t2) { var r2 = this.reader.index; this.reader.setIndex(e2); var n2 = this.reader.readString(4) === t2; return this.reader.setIndex(r2), n2; }, readBlockEndOfCentral: function() { this.diskNumber = this.reader.readInt(2), this.diskWithCentralDirStart = this.reader.readInt(2), this.centralDirRecordsOnThisDisk = this.reader.readInt(2), this.centralDirRecords = this.reader.readInt(2), this.centralDirSize = this.reader.readInt(4), this.centralDirOffset = this.reader.readInt(4), this.zipCommentLength = this.reader.readInt(2); var e2 = this.reader.readData(this.zipCommentLength), t2 = o.uint8array ? "uint8array" : "array", r2 = i.transformTo(t2, e2); this.zipComment = this.loadOptions.decodeFileName(r2); }, readBlockZip64EndOfCentral: function() { this.zip64EndOfCentralSize = this.reader.readInt(8), this.reader.skip(4), this.diskNumber = this.reader.readInt(4), this.diskWithCentralDirStart = this.reader.readInt(4), this.centralDirRecordsOnThisDisk = this.reader.readInt(8), this.centralDirRecords = this.reader.readInt(8), this.centralDirSize = this.reader.readInt(8), this.centralDirOffset = this.reader.readInt(8), this.zip64ExtensibleData = {}; for (var e2, t2, r2, n2 = this.zip64EndOfCentralSize - 44; 0 < n2; ) e2 = this.reader.readInt(2), t2 = this.reader.readInt(4), r2 = this.reader.readData(t2), this.zip64ExtensibleData[e2] = { id: e2, length: t2, value: r2 }; }, readBlockZip64EndOfCentralLocator: function() { if (this.diskWithZip64CentralDirStart = this.reader.readInt(4), this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8), this.disksCount = this.reader.readInt(4), 1 < this.disksCount) throw new Error("Multi-volumes zip are not supported"); }, readLocalFiles: function() { var e2, t2; for (e2 = 0; e2 < this.files.length; e2++) t2 = this.files[e2], this.reader.setIndex(t2.localHeaderOffset), this.checkSignature(s.LOCAL_FILE_HEADER), t2.readLocalPart(this.reader), t2.handleUTF8(), t2.processAttributes(); }, readCentralDir: function() { var e2; for (this.reader.setIndex(this.centralDirOffset); this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER); ) (e2 = new a({ zip64: this.zip64 }, this.loadOptions)).readCentralPart(this.reader), this.files.push(e2); if (this.centralDirRecords !== this.files.length && 0 !== this.centralDirRecords && 0 === this.files.length) throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length); }, readEndOfCentral: function() { var e2 = this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END); if (e2 < 0) throw !this.isSignature(0, s.LOCAL_FILE_HEADER) ? new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html") : new Error("Corrupted zip: can't find end of central directory"); this.reader.setIndex(e2); var t2 = e2; if (this.checkSignature(s.CENTRAL_DIRECTORY_END), this.readBlockEndOfCentral(), this.diskNumber === i.MAX_VALUE_16BITS || this.diskWithCentralDirStart === i.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === i.MAX_VALUE_16BITS || this.centralDirRecords === i.MAX_VALUE_16BITS || this.centralDirSize === i.MAX_VALUE_32BITS || this.centralDirOffset === i.MAX_VALUE_32BITS) { if (this.zip64 = true, (e2 = this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR)) < 0) throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator"); if (this.reader.setIndex(e2), this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR), this.readBlockZip64EndOfCentralLocator(), !this.isSignature(this.relativeOffsetEndOfZip64CentralDir, s.ZIP64_CENTRAL_DIRECTORY_END) && (this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END), this.relativeOffsetEndOfZip64CentralDir < 0)) throw new Error("Corrupted zip: can't find the ZIP64 end of central directory"); this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir), this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END), this.readBlockZip64EndOfCentral(); } var r2 = this.centralDirOffset + this.centralDirSize; this.zip64 && (r2 += 20, r2 += 12 + this.zip64EndOfCentralSize); var n2 = t2 - r2; if (0 < n2) this.isSignature(t2, s.CENTRAL_FILE_HEADER) || (this.reader.zero = n2); else if (n2 < 0) throw new Error("Corrupted zip: missing " + Math.abs(n2) + " bytes."); }, prepareReader: function(e2) { this.reader = n(e2); }, load: function(e2) { this.prepareReader(e2), this.readEndOfCentral(), this.readCentralDir(), this.readLocalFiles(); } }, t.exports = h2; }, { "./reader/readerFor": 22, "./signature": 23, "./support": 30, "./utils": 32, "./zipEntry": 34 }], 34: [function(e, t, r) { var n = e("./reader/readerFor"), s = e("./utils"), i = e("./compressedObject"), a = e("./crc32"), o = e("./utf8"), h2 = e("./compressions"), u = e("./support"); function l(e2, t2) { this.options = e2, this.loadOptions = t2; } l.prototype = { isEncrypted: function() { return 1 == (1 & this.bitFlag); }, useUTF8: function() { return 2048 == (2048 & this.bitFlag); }, readLocalPart: function(e2) { var t2, r2; if (e2.skip(22), this.fileNameLength = e2.readInt(2), r2 = e2.readInt(2), this.fileName = e2.readData(this.fileNameLength), e2.skip(r2), -1 === this.compressedSize || -1 === this.uncompressedSize) throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)"); if (null === (t2 = function(e3) { for (var t3 in h2) if (Object.prototype.hasOwnProperty.call(h2, t3) && h2[t3].magic === e3) return h2[t3]; return null; }(this.compressionMethod))) throw new Error("Corrupted zip : compression " + s.pretty(this.compressionMethod) + " unknown (inner file : " + s.transformTo("string", this.fileName) + ")"); this.decompressed = new i(this.compressedSize, this.uncompressedSize, this.crc32, t2, e2.readData(this.compressedSize)); }, readCentralPart: function(e2) { this.versionMadeBy = e2.readInt(2), e2.skip(2), this.bitFlag = e2.readInt(2), this.compressionMethod = e2.readString(2), this.date = e2.readDate(), this.crc32 = e2.readInt(4), this.compressedSize = e2.readInt(4), this.uncompressedSize = e2.readInt(4); var t2 = e2.readInt(2); if (this.extraFieldsLength = e2.readInt(2), this.fileCommentLength = e2.readInt(2), this.diskNumberStart = e2.readInt(2), this.internalFileAttributes = e2.readInt(2), this.externalFileAttributes = e2.readInt(4), this.localHeaderOffset = e2.readInt(4), this.isEncrypted()) throw new Error("Encrypted zip are not supported"); e2.skip(t2), this.readExtraFields(e2), this.parseZIP64ExtraField(e2), this.fileComment = e2.readData(this.fileCommentLength); }, processAttributes: function() { this.unixPermissions = null, this.dosPermissions = null; var e2 = this.versionMadeBy >> 8; this.dir = !!(16 & this.externalFileAttributes), 0 == e2 && (this.dosPermissions = 63 & this.externalFileAttributes), 3 == e2 && (this.unixPermissions = this.externalFileAttributes >> 16 & 65535), this.dir || "/" !== this.fileNameStr.slice(-1) || (this.dir = true); }, parseZIP64ExtraField: function() { if (this.extraFields[1]) { var e2 = n(this.extraFields[1].value); this.uncompressedSize === s.MAX_VALUE_32BITS && (this.uncompressedSize = e2.readInt(8)), this.compressedSize === s.MAX_VALUE_32BITS && (this.compressedSize = e2.readInt(8)), this.localHeaderOffset === s.MAX_VALUE_32BITS && (this.localHeaderOffset = e2.readInt(8)), this.diskNumberStart === s.MAX_VALUE_32BITS && (this.diskNumberStart = e2.readInt(4)); } }, readExtraFields: function(e2) { var t2, r2, n2, i2 = e2.index + this.extraFieldsLength; for (this.extraFields || (this.extraFields = {}); e2.index + 4 < i2; ) t2 = e2.readInt(2), r2 = e2.readInt(2), n2 = e2.readData(r2), this.extraFields[t2] = { id: t2, length: r2, value: n2 }; e2.setIndex(i2); }, handleUTF8: function() { var e2 = u.uint8array ? "uint8array" : "array"; if (this.useUTF8()) this.fileNameStr = o.utf8decode(this.fileName), this.fileCommentStr = o.utf8decode(this.fileComment); else { var t2 = this.findExtraFieldUnicodePath(); if (null !== t2) this.fileNameStr = t2; else { var r2 = s.transformTo(e2, this.fileName); this.fileNameStr = this.loadOptions.decodeFileName(r2); } var n2 = this.findExtraFieldUnicodeComment(); if (null !== n2) this.fileCommentStr = n2; else { var i2 = s.transformTo(e2, this.fileComment); this.fileCommentStr = this.loadOptions.decodeFileName(i2); } } }, findExtraFieldUnicodePath: function() { var e2 = this.extraFields[28789]; if (e2) { var t2 = n(e2.value); return 1 !== t2.readInt(1) ? null : a(this.fileName) !== t2.readInt(4) ? null : o.utf8decode(t2.readData(e2.length - 5)); } return null; }, findExtraFieldUnicodeComment: function() { var e2 = this.extraFields[25461]; if (e2) { var t2 = n(e2.value); return 1 !== t2.readInt(1) ? null : a(this.fileComment) !== t2.readInt(4) ? null : o.utf8decode(t2.readData(e2.length - 5)); } return null; } }, t.exports = l; }, { "./compressedObject": 2, "./compressions": 3, "./crc32": 4, "./reader/readerFor": 22, "./support": 30, "./utf8": 31, "./utils": 32 }], 35: [function(e, t, r) { function n(e2, t2, r2) { this.name = e2, this.dir = r2.dir, this.date = r2.date, this.comment = r2.comment, this.unixPermissions = r2.unixPermissions, this.dosPermissions = r2.dosPermissions, this._data = t2, this._dataBinary = r2.binary, this.options = { compression: r2.compression, compressionOptions: r2.compressionOptions }; } var s = e("./stream/StreamHelper"), i = e("./stream/DataWorker"), a = e("./utf8"), o = e("./compressedObject"), h2 = e("./stream/GenericWorker"); n.prototype = { internalStream: function(e2) { var t2 = null, r2 = "string"; try { if (!e2) throw new Error("No output type specified."); var n2 = "string" === (r2 = e2.toLowerCase()) || "text" === r2; "binarystring" !== r2 && "text" !== r2 || (r2 = "string"), t2 = this._decompressWorker(); var i2 = !this._dataBinary; i2 && !n2 && (t2 = t2.pipe(new a.Utf8EncodeWorker())), !i2 && n2 && (t2 = t2.pipe(new a.Utf8DecodeWorker())); } catch (e3) { (t2 = new h2("error")).error(e3); } return new s(t2, r2, ""); }, async: function(e2, t2) { return this.internalStream(e2).accumulate(t2); }, nodeStream: function(e2, t2) { return this.internalStream(e2 || "nodebuffer").toNodejsStream(t2); }, _compressWorker: function(e2, t2) { if (this._data instanceof o && this._data.compression.magic === e2.magic) return this._data.getCompressedWorker(); var r2 = this._decompressWorker(); return this._dataBinary || (r2 = r2.pipe(new a.Utf8EncodeWorker())), o.createWorkerFrom(r2, e2, t2); }, _decompressWorker: function() { return this._data instanceof o ? this._data.getContentWorker() : this._data instanceof h2 ? this._data : new i(this._data); } }; for (var u = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer"], l = function() { throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); }, f = 0; f < u.length; f++) n.prototype[u[f]] = l; t.exports = n; }, { "./compressedObject": 2, "./stream/DataWorker": 27, "./stream/GenericWorker": 28, "./stream/StreamHelper": 29, "./utf8": 31 }], 36: [function(e, l, t) { (function(t2) { var r, n, e2 = t2.MutationObserver || t2.WebKitMutationObserver; if (e2) { var i = 0, s = new e2(u), a = t2.document.createTextNode(""); s.observe(a, { characterData: true }), r = function() { a.data = i = ++i % 2; }; } else if (t2.setImmediate || void 0 === t2.MessageChannel) r = "document" in t2 && "onreadystatechange" in t2.document.createElement("script") ? function() { var e3 = t2.document.createElement("script"); e3.onreadystatechange = function() { u(), e3.onreadystatechange = null, e3.parentNode.removeChild(e3), e3 = null; }, t2.document.documentElement.appendChild(e3); } : function() { setTimeout(u, 0); }; else { var o = new t2.MessageChannel(); o.port1.onmessage = u, r = function() { o.port2.postMessage(0); }; } var h2 = []; function u() { var e3, t3; n = true; for (var r2 = h2.length; r2; ) { for (t3 = h2, h2 = [], e3 = -1; ++e3 < r2; ) t3[e3](); r2 = h2.length; } n = false; } l.exports = function(e3) { 1 !== h2.push(e3) || n || r(); }; }).call(this, "undefined" != typeof commonjsGlobal ? commonjsGlobal : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}); }, {}], 37: [function(e, t, r) { var i = e("immediate"); function u() { } var l = {}, s = ["REJECTED"], a = ["FULFILLED"], n = ["PENDING"]; function o(e2) { if ("function" != typeof e2) throw new TypeError("resolver must be a function"); this.state = n, this.queue = [], this.outcome = void 0, e2 !== u && d(this, e2); } function h2(e2, t2, r2) { this.promise = e2, "function" == typeof t2 && (this.onFulfilled = t2, this.callFulfilled = this.otherCallFulfilled), "function" == typeof r2 && (this.onRejected = r2, this.callRejected = this.otherCallRejected); } function f(t2, r2, n2) { i(function() { var e2; try { e2 = r2(n2); } catch (e3) { return l.reject(t2, e3); } e2 === t2 ? l.reject(t2, new TypeError("Cannot resolve promise with itself")) : l.resolve(t2, e2); }); } function c(e2) { var t2 = e2 && e2.then; if (e2 && ("object" == typeof e2 || "function" == typeof e2) && "function" == typeof t2) return function() { t2.apply(e2, arguments); }; } function d(t2, e2) { var r2 = false; function n2(e3) { r2 || (r2 = true, l.reject(t2, e3)); } function i2(e3) { r2 || (r2 = true, l.resolve(t2, e3)); } var s2 = p(function() { e2(i2, n2); }); "error" === s2.status && n2(s2.value); } function p(e2, t2) { var r2 = {}; try { r2.value = e2(t2), r2.status = "success"; } catch (e3) { r2.status = "error", r2.value = e3; } return r2; } (t.exports = o).prototype.finally = function(t2) { if ("function" != typeof t2) return this; var r2 = this.constructor; return this.then(function(e2) { return r2.resolve(t2()).then(function() { return e2; }); }, function(e2) { return r2.resolve(t2()).then(function() { throw e2; }); }); }, o.prototype.catch = function(e2) { return this.then(null, e2); }, o.prototype.then = function(e2, t2) { if ("function" != typeof e2 && this.state === a || "function" != typeof t2 && this.state === s) return this; var r2 = new this.constructor(u); this.state !== n ? f(r2, this.state === a ? e2 : t2, this.outcome) : this.queue.push(new h2(r2, e2, t2)); return r2; }, h2.prototype.callFulfilled = function(e2) { l.resolve(this.promise, e2); }, h2.prototype.otherCallFulfilled = function(e2) { f(this.promise, this.onFulfilled, e2); }, h2.prototype.callRejected = function(e2) { l.reject(this.promise, e2); }, h2.prototype.otherCallRejected = function(e2) { f(this.promise, this.onRejected, e2); }, l.resolve = function(e2, t2) { var r2 = p(c, t2); if ("error" === r2.status) return l.reject(e2, r2.value); var n2 = r2.value; if (n2) d(e2, n2); else { e2.state = a, e2.outcome = t2; for (var i2 = -1, s2 = e2.queue.length; ++i2 < s2; ) e2.queue[i2].callFulfilled(t2); } return e2; }, l.reject = function(e2, t2) { e2.state = s, e2.outcome = t2; for (var r2 = -1, n2 = e2.queue.length; ++r2 < n2; ) e2.queue[r2].callRejected(t2); return e2; }, o.resolve = function(e2) { if (e2 instanceof this) return e2; return l.resolve(new this(u), e2); }, o.reject = function(e2) { var t2 = new this(u); return l.reject(t2, e2); }, o.all = function(e2) { var r2 = this; if ("[object Array]" !== Object.prototype.toString.call(e2)) return this.reject(new TypeError("must be an array")); var n2 = e2.length, i2 = false; if (!n2) return this.resolve([]); var s2 = new Array(n2), a2 = 0, t2 = -1, o2 = new this(u); for (; ++t2 < n2; ) h3(e2[t2], t2); return o2; function h3(e3, t3) { r2.resolve(e3).then(function(e4) { s2[t3] = e4, ++a2 !== n2 || i2 || (i2 = true, l.resolve(o2, s2)); }, function(e4) { i2 || (i2 = true, l.reject(o2, e4)); }); } }, o.race = function(e2) { var t2 = this; if ("[object Array]" !== Object.prototype.toString.call(e2)) return this.reject(new TypeError("must be an array")); var r2 = e2.length, n2 = false; if (!r2) return this.resolve([]); var i2 = -1, s2 = new this(u); for (; ++i2 < r2; ) a2 = e2[i2], t2.resolve(a2).then(function(e3) { n2 || (n2 = true, l.resolve(s2, e3)); }, function(e3) { n2 || (n2 = true, l.reject(s2, e3)); }); var a2; return s2; }; }, { immediate: 36 }], 38: [function(e, t, r) { var n = {}; (0, e("./lib/utils/common").assign)(n, e("./lib/deflate"), e("./lib/inflate"), e("./lib/zlib/constants")), t.exports = n; }, { "./lib/deflate": 39, "./lib/inflate": 40, "./lib/utils/common": 41, "./lib/zlib/constants": 44 }], 39: [function(e, t, r) { var a = e("./zlib/deflate"), o = e("./utils/common"), h2 = e("./utils/strings"), i = e("./zlib/messages"), s = e("./zlib/zstream"), u = Object.prototype.toString, l = 0, f = -1, c = 0, d = 8; function p(e2) { if (!(this instanceof p)) return new p(e2); this.options = o.assign({ level: f, method: d, chunkSize: 16384, windowBits: 15, memLevel: 8, strategy: c, to: "" }, e2 || {}); var t2 = this.options; t2.raw && 0 < t2.windowBits ? t2.windowBits = -t2.windowBits : t2.gzip && 0 < t2.windowBits && t2.windowBits < 16 && (t2.windowBits += 16), this.err = 0, this.msg = "", this.ended = false, this.chunks = [], this.strm = new s(), this.strm.avail_out = 0; var r2 = a.deflateInit2(this.strm, t2.level, t2.method, t2.windowBits, t2.memLevel, t2.strategy); if (r2 !== l) throw new Error(i[r2]); if (t2.header && a.deflateSetHeader(this.strm, t2.header), t2.dictionary) { var n2; if (n2 = "string" == typeof t2.dictionary ? h2.string2buf(t2.dictionary) : "[object ArrayBuffer]" === u.call(t2.dictionary) ? new Uint8Array(t2.dictionary) : t2.dictionary, (r2 = a.deflateSetDictionary(this.strm, n2)) !== l) throw new Error(i[r2]); this._dict_set = true; } } function n(e2, t2) { var r2 = new p(t2); if (r2.push(e2, true), r2.err) throw r2.msg || i[r2.err]; return r2.result; } p.prototype.push = function(e2, t2) { var r2, n2, i2 = this.strm, s2 = this.options.chunkSize; if (this.ended) return false; n2 = t2 === ~~t2 ? t2 : true === t2 ? 4 : 0, "string" == typeof e2 ? i2.input = h2.string2buf(e2) : "[object ArrayBuffer]" === u.call(e2) ? i2.input = new Uint8Array(e2) : i2.input = e2, i2.next_in = 0, i2.avail_in = i2.input.length; do { if (0 === i2.avail_out && (i2.output = new o.Buf8(s2), i2.next_out = 0, i2.avail_out = s2), 1 !== (r2 = a.deflate(i2, n2)) && r2 !== l) return this.onEnd(r2), !(this.ended = true); 0 !== i2.avail_out && (0 !== i2.avail_in || 4 !== n2 && 2 !== n2) || ("string" === this.options.to ? this.onData(h2.buf2binstring(o.shrinkBuf(i2.output, i2.next_out))) : this.onData(o.shrinkBuf(i2.output, i2.next_out))); } while ((0 < i2.avail_in || 0 === i2.avail_out) && 1 !== r2); return 4 === n2 ? (r2 = a.deflateEnd(this.strm), this.onEnd(r2), this.ended = true, r2 === l) : 2 !== n2 || (this.onEnd(l), !(i2.avail_out = 0)); }, p.prototype.onData = function(e2) { this.chunks.push(e2); }, p.prototype.onEnd = function(e2) { e2 === l && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = o.flattenChunks(this.chunks)), this.chunks = [], this.err = e2, this.msg = this.strm.msg; }, r.Deflate = p, r.deflate = n, r.deflateRaw = function(e2, t2) { return (t2 = t2 || {}).raw = true, n(e2, t2); }, r.gzip = function(e2, t2) { return (t2 = t2 || {}).gzip = true, n(e2, t2); }; }, { "./utils/common": 41, "./utils/strings": 42, "./zlib/deflate": 46, "./zlib/messages": 51, "./zlib/zstream": 53 }], 40: [function(e, t, r) { var c = e("./zlib/inflate"), d = e("./utils/common"), p = e("./utils/strings"), m = e("./zlib/constants"), n = e("./zlib/messages"), i = e("./zlib/zstream"), s = e("./zlib/gzheader"), _ = Object.prototype.toString; function a(e2) { if (!(this instanceof a)) return new a(e2); this.options = d.assign({ chunkSize: 16384, windowBits: 0, to: "" }, e2 || {}); var t2 = this.options; t2.raw && 0 <= t2.windowBits && t2.windowBits < 16 && (t2.windowBits = -t2.windowBits, 0 === t2.windowBits && (t2.windowBits = -15)), !(0 <= t2.windowBits && t2.windowBits < 16) || e2 && e2.windowBits || (t2.windowBits += 32), 15 < t2.windowBits && t2.windowBits < 48 && 0 == (15 & t2.windowBits) && (t2.windowBits |= 15), this.err = 0, this.msg = "", this.ended = false, this.chunks = [], this.strm = new i(), this.strm.avail_out = 0; var r2 = c.inflateInit2(this.strm, t2.windowBits); if (r2 !== m.Z_OK) throw new Error(n[r2]); this.header = new s(), c.inflateGetHeader(this.strm, this.header); } function o(e2, t2) { var r2 = new a(t2); if (r2.push(e2, true), r2.err) throw r2.msg || n[r2.err]; return r2.result; } a.prototype.push = function(e2, t2) { var r2, n2, i2, s2, a2, o2, h2 = this.strm, u = this.options.chunkSize, l = this.options.dictionary, f = false; if (this.ended) return false; n2 = t2 === ~~t2 ? t2 : true === t2 ? m.Z_FINISH : m.Z_NO_FLUSH, "string" == typeof e2 ? h2.input = p.binstring2buf(e2) : "[object ArrayBuffer]" === _.call(e2) ? h2.input = new Uint8Array(e2) : h2.input = e2, h2.next_in = 0, h2.avail_in = h2.input.length; do { if (0 === h2.avail_out && (h2.output = new d.Buf8(u), h2.next_out = 0, h2.avail_out = u), (r2 = c.inflate(h2, m.Z_NO_FLUSH)) === m.Z_NEED_DICT && l && (o2 = "string" == typeof l ? p.string2buf(l) : "[object ArrayBuffer]" === _.call(l) ? new Uint8Array(l) : l, r2 = c.inflateSetDictionary(this.strm, o2)), r2 === m.Z_BUF_ERROR && true === f && (r2 = m.Z_OK, f = false), r2 !== m.Z_STREAM_END && r2 !== m.Z_OK) return this.onEnd(r2), !(this.ended = true); h2.next_out && (0 !== h2.avail_out && r2 !== m.Z_STREAM_END && (0 !== h2.avail_in || n2 !== m.Z_FINISH && n2 !== m.Z_SYNC_FLUSH) || ("string" === this.options.to ? (i2 = p.utf8border(h2.output, h2.next_out), s2 = h2.next_out - i2, a2 = p.buf2string(h2.output, i2), h2.next_out = s2, h2.avail_out = u - s2, s2 && d.arraySet(h2.output, h2.output, i2, s2, 0), this.onData(a2)) : this.onData(d.shrinkBuf(h2.output, h2.next_out)))), 0 === h2.avail_in && 0 === h2.avail_out && (f = true); } while ((0 < h2.avail_in || 0 === h2.avail_out) && r2 !== m.Z_STREAM_END); return r2 === m.Z_STREAM_END && (n2 = m.Z_FINISH), n2 === m.Z_FINISH ? (r2 = c.inflateEnd(this.strm), this.onEnd(r2), this.ended = true, r2 === m.Z_OK) : n2 !== m.Z_SYNC_FLUSH || (this.onEnd(m.Z_OK), !(h2.avail_out = 0)); }, a.prototype.onData = function(e2) { this.chunks.push(e2); }, a.prototype.onEnd = function(e2) { e2 === m.Z_OK && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = d.flattenChunks(this.chunks)), this.chunks = [], this.err = e2, this.msg = this.strm.msg; }, r.Inflate = a, r.inflate = o, r.inflateRaw = function(e2, t2) { return (t2 = t2 || {}).raw = true, o(e2, t2); }, r.ungzip = o; }, { "./utils/common": 41, "./utils/strings": 42, "./zlib/constants": 44, "./zlib/gzheader": 47, "./zlib/inflate": 49, "./zlib/messages": 51, "./zlib/zstream": 53 }], 41: [function(e, t, r) { var n = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Int32Array; r.assign = function(e2) { for (var t2 = Array.prototype.slice.call(arguments, 1); t2.length; ) { var r2 = t2.shift(); if (r2) { if ("object" != typeof r2) throw new TypeError(r2 + "must be non-object"); for (var n2 in r2) r2.hasOwnProperty(n2) && (e2[n2] = r2[n2]); } } return e2; }, r.shrinkBuf = function(e2, t2) { return e2.length === t2 ? e2 : e2.subarray ? e2.subarray(0, t2) : (e2.length = t2, e2); }; var i = { arraySet: function(e2, t2, r2, n2, i2) { if (t2.subarray && e2.subarray) e2.set(t2.subarray(r2, r2 + n2), i2); else for (var s2 = 0; s2 < n2; s2++) e2[i2 + s2] = t2[r2 + s2]; }, flattenChunks: function(e2) { var t2, r2, n2, i2, s2, a; for (t2 = n2 = 0, r2 = e2.length; t2 < r2; t2++) n2 += e2[t2].length; for (a = new Uint8Array(n2), t2 = i2 = 0, r2 = e2.length; t2 < r2; t2++) s2 = e2[t2], a.set(s2, i2), i2 += s2.length; return a; } }, s = { arraySet: function(e2, t2, r2, n2, i2) { for (var s2 = 0; s2 < n2; s2++) e2[i2 + s2] = t2[r2 + s2]; }, flattenChunks: function(e2) { return [].concat.apply([], e2); } }; r.setTyped = function(e2) { e2 ? (r.Buf8 = Uint8Array, r.Buf16 = Uint16Array, r.Buf32 = Int32Array, r.assign(r, i)) : (r.Buf8 = Array, r.Buf16 = Array, r.Buf32 = Array, r.assign(r, s)); }, r.setTyped(n); }, {}], 42: [function(e, t, r) { var h2 = e("./common"), i = true, s = true; try { String.fromCharCode.apply(null, [0]); } catch (e2) { i = false; } try { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (e2) { s = false; } for (var u = new h2.Buf8(256), n = 0; n < 256; n++) u[n] = 252 <= n ? 6 : 248 <= n ? 5 : 240 <= n ? 4 : 224 <= n ? 3 : 192 <= n ? 2 : 1; function l(e2, t2) { if (t2 < 65537 && (e2.subarray && s || !e2.subarray && i)) return String.fromCharCode.apply(null, h2.shrinkBuf(e2, t2)); for (var r2 = "", n2 = 0; n2 < t2; n2++) r2 += String.fromCharCode(e2[n2]); return r2; } u[254] = u[254] = 1, r.string2buf = function(e2) { var t2, r2, n2, i2, s2, a = e2.length, o = 0; for (i2 = 0; i2 < a; i2++) 55296 == (64512 & (r2 = e2.charCodeAt(i2))) && i2 + 1 < a && 56320 == (64512 & (n2 = e2.charCodeAt(i2 + 1))) && (r2 = 65536 + (r2 - 55296 << 10) + (n2 - 56320), i2++), o += r2 < 128 ? 1 : r2 < 2048 ? 2 : r2 < 65536 ? 3 : 4; for (t2 = new h2.Buf8(o), i2 = s2 = 0; s2 < o; i2++) 55296 == (64512 & (r2 = e2.charCodeAt(i2))) && i2 + 1 < a && 56320 == (64512 & (n2 = e2.charCodeAt(i2 + 1))) && (r2 = 65536 + (r2 - 55296 << 10) + (n2 - 56320), i2++), r2 < 128 ? t2[s2++] = r2 : (r2 < 2048 ? t2[s2++] = 192 | r2 >>> 6 : (r2 < 65536 ? t2[s2++] = 224 | r2 >>> 12 : (t2[s2++] = 240 | r2 >>> 18, t2[s2++] = 128 | r2 >>> 12 & 63), t2[s2++] = 128 | r2 >>> 6 & 63), t2[s2++] = 128 | 63 & r2); return t2; }, r.buf2binstring = function(e2) { return l(e2, e2.length); }, r.binstring2buf = function(e2) { for (var t2 = new h2.Buf8(e2.length), r2 = 0, n2 = t2.length; r2 < n2; r2++) t2[r2] = e2.charCodeAt(r2); return t2; }, r.buf2string = function(e2, t2) { var r2, n2, i2, s2, a = t2 || e2.length, o = new Array(2 * a); for (r2 = n2 = 0; r2 < a; ) if ((i2 = e2[r2++]) < 128) o[n2++] = i2; else if (4 < (s2 = u[i2])) o[n2++] = 65533, r2 += s2 - 1; else { for (i2 &= 2 === s2 ? 31 : 3 === s2 ? 15 : 7; 1 < s2 && r2 < a; ) i2 = i2 << 6 | 63 & e2[r2++], s2--; 1 < s2 ? o[n2++] = 65533 : i2 < 65536 ? o[n2++] = i2 : (i2 -= 65536, o[n2++] = 55296 | i2 >> 10 & 1023, o[n2++] = 56320 | 1023 & i2); } return l(o, n2); }, r.utf8border = function(e2, t2) { var r2; for ((t2 = t2 || e2.length) > e2.length && (t2 = e2.length), r2 = t2 - 1; 0 <= r2 && 128 == (192 & e2[r2]); ) r2--; return r2 < 0 ? t2 : 0 === r2 ? t2 : r2 + u[e2[r2]] > t2 ? r2 : t2; }; }, { "./common": 41 }], 43: [function(e, t, r) { t.exports = function(e2, t2, r2, n) { for (var i = 65535 & e2 | 0, s = e2 >>> 16 & 65535 | 0, a = 0; 0 !== r2; ) { for (r2 -= a = 2e3 < r2 ? 2e3 : r2; s = s + (i = i + t2[n++] | 0) | 0, --a; ) ; i %= 65521, s %= 65521; } return i | s << 16 | 0; }; }, {}], 44: [function(e, t, r) { t.exports = { Z_NO_FLUSH: 0, Z_PARTIAL_FLUSH: 1, Z_SYNC_FLUSH: 2, Z_FULL_FLUSH: 3, Z_FINISH: 4, Z_BLOCK: 5, Z_TREES: 6, Z_OK: 0, Z_STREAM_END: 1, Z_NEED_DICT: 2, Z_ERRNO: -1, Z_STREAM_ERROR: -2, Z_DATA_ERROR: -3, Z_BUF_ERROR: -5, Z_NO_COMPRESSION: 0, Z_BEST_SPEED: 1, Z_BEST_COMPRESSION: 9, Z_DEFAULT_COMPRESSION: -1, Z_FILTERED: 1, Z_HUFFMAN_ONLY: 2, Z_RLE: 3, Z_FIXED: 4, Z_DEFAULT_STRATEGY: 0, Z_BINARY: 0, Z_TEXT: 1, Z_UNKNOWN: 2, Z_DEFLATED: 8 }; }, {}], 45: [function(e, t, r) { var o = function() { for (var e2, t2 = [], r2 = 0; r2 < 256; r2++) { e2 = r2; for (var n = 0; n < 8; n++) e2 = 1 & e2 ? 3988292384 ^ e2 >>> 1 : e2 >>> 1; t2[r2] = e2; } return t2; }(); t.exports = function(e2, t2, r2, n) { var i = o, s = n + r2; e2 ^= -1; for (var a = n; a < s; a++) e2 = e2 >>> 8 ^ i[255 & (e2 ^ t2[a])]; return -1 ^ e2; }; }, {}], 46: [function(e, t, r) { var h2, c = e("../utils/common"), u = e("./trees"), d = e("./adler32"), p = e("./crc32"), n = e("./messages"), l = 0, f = 4, m = 0, _ = -2, g = -1, b = 4, i = 2, v = 8, y = 9, s = 286, a = 30, o = 19, w = 2 * s + 1, k = 15, x = 3, S = 258, z = S + x + 1, C = 42, E = 113, A = 1, I = 2, O = 3, B = 4; function R(e2, t2) { return e2.msg = n[t2], t2; } function T(e2) { return (e2 << 1) - (4 < e2 ? 9 : 0); } function D(e2) { for (var t2 = e2.length; 0 <= --t2; ) e2[t2] = 0; } function F(e2) { var t2 = e2.state, r2 = t2.pending; r2 > e2.avail_out && (r2 = e2.avail_out), 0 !== r2 && (c.arraySet(e2.output, t2.pending_buf, t2.pending_out, r2, e2.next_out), e2.next_out += r2, t2.pending_out += r2, e2.total_out += r2, e2.avail_out -= r2, t2.pending -= r2, 0 === t2.pending && (t2.pending_out = 0)); } function N(e2, t2) { u._tr_flush_block(e2, 0 <= e2.block_start ? e2.block_start : -1, e2.strstart - e2.block_start, t2), e2.block_start = e2.strstart, F(e2.strm); } function U(e2, t2) { e2.pending_buf[e2.pending++] = t2; } function P(e2, t2) { e2.pending_buf[e2.pending++] = t2 >>> 8 & 255, e2.pending_buf[e2.pending++] = 255 & t2; } function L(e2, t2) { var r2, n2, i2 = e2.max_chain_length, s2 = e2.strstart, a2 = e2.prev_length, o2 = e2.nice_match, h3 = e2.strstart > e2.w_size - z ? e2.strstart - (e2.w_size - z) : 0, u2 = e2.window, l2 = e2.w_mask, f2 = e2.prev, c2 = e2.strstart + S, d2 = u2[s2 + a2 - 1], p2 = u2[s2 + a2]; e2.prev_length >= e2.good_match && (i2 >>= 2), o2 > e2.lookahead && (o2 = e2.lookahead); do { if (u2[(r2 = t2) + a2] === p2 && u2[r2 + a2 - 1] === d2 && u2[r2] === u2[s2] && u2[++r2] === u2[s2 + 1]) { s2 += 2, r2++; do { } while (u2[++s2] === u2[++r2] && u2[++s2] === u2[++r2] && u2[++s2] === u2[++r2] && u2[++s2] === u2[++r2] && u2[++s2] === u2[++r2] && u2[++s2] === u2[++r2] && u2[++s2] === u2[++r2] && u2[++s2] === u2[++r2] && s2 < c2); if (n2 = S - (c2 - s2), s2 = c2 - S, a2 < n2) { if (e2.match_start = t2, o2 <= (a2 = n2)) break; d2 = u2[s2 + a2 - 1], p2 = u2[s2 + a2]; } } } while ((t2 = f2[t2 & l2]) > h3 && 0 != --i2); return a2 <= e2.lookahead ? a2 : e2.lookahead; } function j(e2) { var t2, r2, n2, i2, s2, a2, o2, h3, u2, l2, f2 = e2.w_size; do { if (i2 = e2.window_size - e2.lookahead - e2.strstart, e2.strstart >= f2 + (f2 - z)) { for (c.arraySet(e2.window, e2.window, f2, f2, 0), e2.match_start -= f2, e2.strstart -= f2, e2.block_start -= f2, t2 = r2 = e2.hash_size; n2 = e2.head[--t2], e2.head[t2] = f2 <= n2 ? n2 - f2 : 0, --r2; ) ; for (t2 = r2 = f2; n2 = e2.prev[--t2], e2.prev[t2] = f2 <= n2 ? n2 - f2 : 0, --r2; ) ; i2 += f2; } if (0 === e2.strm.avail_in) break; if (a2 = e2.strm, o2 = e2.window, h3 = e2.strstart + e2.lookahead, u2 = i2, l2 = void 0, l2 = a2.avail_in, u2 < l2 && (l2 = u2), r2 = 0 === l2 ? 0 : (a2.avail_in -= l2, c.arraySet(o2, a2.input, a2.next_in, l2, h3), 1 === a2.state.wrap ? a2.adler = d(a2.adler, o2, l2, h3) : 2 === a2.state.wrap && (a2.adler = p(a2.adler, o2, l2, h3)), a2.next_in += l2, a2.total_in += l2, l2), e2.lookahead += r2, e2.lookahead + e2.insert >= x) for (s2 = e2.strstart - e2.insert, e2.ins_h = e2.window[s2], e2.ins_h = (e2.ins_h << e2.hash_shift ^ e2.window[s2 + 1]) & e2.hash_mask; e2.insert && (e2.ins_h = (e2.ins_h << e2.hash_shift ^ e2.window[s2 + x - 1]) & e2.hash_mask, e2.prev[s2 & e2.w_mask] = e2.head[e2.ins_h], e2.head[e2.ins_h] = s2, s2++, e2.insert--, !(e2.lookahead + e2.insert < x)); ) ; } while (e2.lookahead < z && 0 !== e2.strm.avail_in); } function Z(e2, t2) { for (var r2, n2; ; ) { if (e2.lookahead < z) { if (j(e2), e2.lookahead < z && t2 === l) return A; if (0 === e2.lookahead) break; } if (r2 = 0, e2.lookahead >= x && (e2.ins_h = (e2.ins_h << e2.hash_shift ^ e2.window[e2.strstart + x - 1]) & e2.hash_mask, r2 = e2.prev[e2.strstart & e2.w_mask] = e2.head[e2.ins_h], e2.head[e2.ins_h] = e2.strstart), 0 !== r2 && e2.strstart - r2 <= e2.w_size - z && (e2.match_length = L(e2, r2)), e2.match_length >= x) if (n2 = u._tr_tally(e2, e2.strstart - e2.match_start, e2.match_length - x), e2.lookahead -= e2.match_length, e2.match_length <= e2.max_lazy_match && e2.lookahead >= x) { for (e2.match_length--; e2.strstart++, e2.ins_h = (e2.ins_h << e2.hash_shift ^ e2.window[e2.strstart + x - 1]) & e2.hash_mask, r2 = e2.prev[e2.strstart & e2.w_mask] = e2.head[e2.ins_h], e2.head[e2.ins_h] = e2.strstart, 0 != --e2.match_length; ) ; e2.strstart++; } else e2.strstart += e2.match_length, e2.match_length = 0, e2.ins_h = e2.window[e2.strstart], e2.ins_h = (e2.ins_h << e2.hash_shift ^ e2.window[e2.strstart + 1]) & e2.hash_mask; else n2 = u._tr_tally(e2, 0, e2.window[e2.strstart]), e2.lookahead--, e2.strstart++; if (n2 && (N(e2, false), 0 === e2.strm.avail_out)) return A; } return e2.insert = e2.strstart < x - 1 ? e2.strstart : x - 1, t2 === f ? (N(e2, true), 0 === e2.strm.avail_out ? O : B) : e2.last_lit && (N(e2, false), 0 === e2.strm.avail_out) ? A : I; } function W(e2, t2) { for (var r2, n2, i2; ; ) { if (e2.lookahead < z) { if (j(e2), e2.lookahead < z && t2 === l) return A; if (0 === e2.lookahead) break; } if (r2 = 0, e2.lookahead >= x && (e2.ins_h = (e2.ins_h << e2.hash_shift ^ e2.window[e2.strstart + x - 1]) & e2.hash_mask, r2 = e2.prev[e2.strstart & e2.w_mask] = e2.head[e2.ins_h], e2.head[e2.ins_h] = e2.strstart), e2.prev_length = e2.match_length, e2.prev_match = e2.match_start, e2.match_length = x - 1, 0 !== r2 && e2.prev_length < e2.max_lazy_match && e2.strstart - r2 <= e2.w_size - z && (e2.match_length = L(e2, r2), e2.match_length <= 5 && (1 === e2.strategy || e2.match_length === x && 4096 < e2.strstart - e2.match_start) && (e2.match_length = x - 1)), e2.prev_length >= x && e2.match_length <= e2.prev_length) { for (i2 = e2.strstart + e2.lookahead - x, n2 = u._tr_tally(e2, e2.strstart - 1 - e2.prev_match, e2.prev_length - x), e2.lookahead -= e2.prev_length - 1, e2.prev_length -= 2; ++e2.strstart <= i2 && (e2.ins_h = (e2.ins_h << e2.hash_shift ^ e2.window[e2.strstart + x - 1]) & e2.hash_mask, r2 = e2.prev[e2.strstart & e2.w_mask] = e2.head[e2.ins_h], e2.head[e2.ins_h] = e2.strstart), 0 != --e2.prev_length; ) ; if (e2.match_available = 0, e2.match_length = x - 1, e2.strstart++, n2 && (N(e2, false), 0 === e2.strm.avail_out)) return A; } else if (e2.match_available) { if ((n2 = u._tr_tally(e2, 0, e2.window[e2.strstart - 1])) && N(e2, false), e2.strstart++, e2.lookahead--, 0 === e2.strm.avail_out) return A; } else e2.match_available = 1, e2.strstart++, e2.lookahead--; } return e2.match_available && (n2 = u._tr_tally(e2, 0, e2.window[e2.strstart - 1]), e2.match_available = 0), e2.insert = e2.strstart < x - 1 ? e2.strstart : x - 1, t2 === f ? (N(e2, true), 0 === e2.strm.avail_out ? O : B) : e2.last_lit && (N(e2, false), 0 === e2.strm.avail_out) ? A : I; } function M(e2, t2, r2, n2, i2) { this.good_length = e2, this.max_lazy = t2, this.nice_length = r2, this.max_chain = n2, this.func = i2; } function H() { this.strm = null, this.status = 0, this.pending_buf = null, this.pending_buf_size = 0, this.pending_out = 0, this.pending = 0, this.wrap = 0, this.gzhead = null, this.gzindex = 0, this.method = v, this.last_flush = -1, this.w_size = 0, this.w_bits = 0, this.w_mask = 0, this.window = null, this.window_size = 0, this.prev = null, this.head = null, this.ins_h = 0, this.hash_size = 0, this.hash_bits = 0, this.hash_mask = 0, this.hash_shift = 0, this.block_start = 0, this.match_length = 0, this.prev_match = 0, this.match_available = 0, this.strstart = 0, this.match_start = 0, this.lookahead = 0, this.prev_length = 0, this.max_chain_length = 0, this.max_lazy_match = 0, this.level = 0, this.strategy = 0, this.good_match = 0, this.nice_match = 0, this.dyn_ltree = new c.Buf16(2 * w), this.dyn_dtree = new c.Buf16(2 * (2 * a + 1)), this.bl_tree = new c.Buf16(2 * (2 * o + 1)), D(this.dyn_ltree), D(this.dyn_dtree), D(this.bl_tree), this.l_desc = null, this.d_desc = null, this.bl_desc = null, this.bl_count = new c.Buf16(k + 1), this.heap = new c.Buf16(2 * s + 1), D(this.heap), this.heap_len = 0, this.heap_max = 0, this.depth = new c.Buf16(2 * s + 1), D(this.depth), this.l_buf = 0, this.lit_bufsize = 0, this.last_lit = 0, this.d_buf = 0, this.opt_len = 0, this.static_len = 0, this.matches = 0, this.insert = 0, this.bi_buf = 0, this.bi_valid = 0; } function G(e2) { var t2; return e2 && e2.state ? (e2.total_in = e2.total_out = 0, e2.data_type = i, (t2 = e2.state).pending = 0, t2.pending_out = 0, t2.wrap < 0 && (t2.wrap = -t2.wrap), t2.status = t2.wrap ? C : E, e2.adler = 2 === t2.wrap ? 0 : 1, t2.last_flush = l, u._tr_init(t2), m) : R(e2, _); } function K(e2) { var t2 = G(e2); return t2 === m && function(e3) { e3.window_size = 2 * e3.w_size, D(e3.head), e3.max_lazy_match = h2[e3.level].max_lazy, e3.good_match = h2[e3.level].good_length, e3.nice_match = h2[e3.level].nice_length, e3.max_chain_length = h2[e3.level].max_chain, e3.strstart = 0, e3.block_start = 0, e3.lookahead = 0, e3.insert = 0, e3.match_length = e3.prev_length = x - 1, e3.match_available = 0, e3.ins_h = 0; }(e2.state), t2; } function Y(e2, t2, r2, n2, i2, s2) { if (!e2) return _; var a2 = 1; if (t2 === g && (t2 = 6), n2 < 0 ? (a2 = 0, n2 = -n2) : 15 < n2 && (a2 = 2, n2 -= 16), i2 < 1 || y < i2 || r2 !== v || n2 < 8 || 15 < n2 || t2 < 0 || 9 < t2 || s2 < 0 || b < s2) return R(e2, _); 8 === n2 && (n2 = 9); var o2 = new H(); return (e2.state = o2).strm = e2, o2.wrap = a2, o2.gzhead = null, o2.w_bits = n2, o2.w_size = 1 << o2.w_bits, o2.w_mask = o2.w_size - 1, o2.hash_bits = i2 + 7, o2.hash_size = 1 << o2.hash_bits, o2.hash_mask = o2.hash_size - 1, o2.hash_shift = ~~((o2.hash_bits + x - 1) / x), o2.window = new c.Buf8(2 * o2.w_size), o2.head = new c.Buf16(o2.hash_size), o2.prev = new c.Buf16(o2.w_size), o2.lit_bufsize = 1 << i2 + 6, o2.pending_buf_size = 4 * o2.lit_bufsize, o2.pending_buf = new c.Buf8(o2.pending_buf_size), o2.d_buf = 1 * o2.lit_bufsize, o2.l_buf = 3 * o2.lit_bufsize, o2.level = t2, o2.strategy = s2, o2.method = r2, K(e2); } h2 = [new M(0, 0, 0, 0, function(e2, t2) { var r2 = 65535; for (r2 > e2.pending_buf_size - 5 && (r2 = e2.pending_buf_size - 5); ; ) { if (e2.lookahead <= 1) { if (j(e2), 0 === e2.lookahead && t2 === l) return A; if (0 === e2.lookahead) break; } e2.strstart += e2.lookahead, e2.lookahead = 0; var n2 = e2.block_start + r2; if ((0 === e2.strstart || e2.strstart >= n2) && (e2.lookahead = e2.strstart - n2, e2.strstart = n2, N(e2, false), 0 === e2.strm.avail_out)) return A; if (e2.strstart - e2.block_start >= e2.w_size - z && (N(e2, false), 0 === e2.strm.avail_out)) return A; } return e2.insert = 0, t2 === f ? (N(e2, true), 0 === e2.strm.avail_out ? O : B) : (e2.strstart > e2.block_start && (N(e2, false), e2.strm.avail_out), A); }), new M(4, 4, 8, 4, Z), new M(4, 5, 16, 8, Z), new M(4, 6, 32, 32, Z), new M(4, 4, 16, 16, W), new M(8, 16, 32, 32, W), new M(8, 16, 128, 128, W), new M(8, 32, 128, 256, W), new M(32, 128, 258, 1024, W), new M(32, 258, 258, 4096, W)], r.deflateInit = function(e2, t2) { return Y(e2, t2, v, 15, 8, 0); }, r.deflateInit2 = Y, r.deflateReset = K, r.deflateResetKeep = G, r.deflateSetHeader = function(e2, t2) { return e2 && e2.state ? 2 !== e2.state.wrap ? _ : (e2.state.gzhead = t2, m) : _; }, r.deflate = function(e2, t2) { var r2, n2, i2, s2; if (!e2 || !e2.state || 5 < t2 || t2 < 0) return e2 ? R(e2, _) : _; if (n2 = e2.state, !e2.output || !e2.input && 0 !== e2.avail_in || 666 === n2.status && t2 !== f) return R(e2, 0 === e2.avail_out ? -5 : _); if (n2.strm = e2, r2 = n2.last_flush, n2.last_flush = t2, n2.status === C) if (2 === n2.wrap) e2.adler = 0, U(n2, 31), U(n2, 139), U(n2, 8), n2.gzhead ? (U(n2, (n2.gzhead.text ? 1 : 0) + (n2.gzhead.hcrc ? 2 : 0) + (n2.gzhead.extra ? 4 : 0) + (n2.gzhead.name ? 8 : 0) + (n2.gzhead.comment ? 16 : 0)), U(n2, 255 & n2.gzhead.time), U(n2, n2.gzhead.time >> 8 & 255), U(n2, n2.gzhead.time >> 16 & 255), U(n2, n2.gzhead.time >> 24 & 255), U(n2, 9 === n2.level ? 2 : 2 <= n2.strategy || n2.level < 2 ? 4 : 0), U(n2, 255 & n2.gzhead.os), n2.gzhead.extra && n2.gzhead.extra.length && (U(n2, 255 & n2.gzhead.extra.length), U(n2, n2.gzhead.extra.length >> 8 & 255)), n2.gzhead.hcrc && (e2.adler = p(e2.adler, n2.pending_buf, n2.pending, 0)), n2.gzindex = 0, n2.status = 69) : (U(n2, 0), U(n2, 0), U(n2, 0), U(n2, 0), U(n2, 0), U(n2, 9 === n2.level ? 2 : 2 <= n2.strategy || n2.level < 2 ? 4 : 0), U(n2, 3), n2.status = E); else { var a2 = v + (n2.w_bits - 8 << 4) << 8; a2 |= (2 <= n2.strategy || n2.level < 2 ? 0 : n2.level < 6 ? 1 : 6 === n2.level ? 2 : 3) << 6, 0 !== n2.strstart && (a2 |= 32), a2 += 31 - a2 % 31, n2.status = E, P(n2, a2), 0 !== n2.strstart && (P(n2, e2.adler >>> 16), P(n2, 65535 & e2.adler)), e2.adler = 1; } if (69 === n2.status) if (n2.gzhead.extra) { for (i2 = n2.pending; n2.gzindex < (65535 & n2.gzhead.extra.length) && (n2.pending !== n2.pending_buf_size || (n2.gzhead.hcrc && n2.pending > i2 && (e2.adler = p(e2.adler, n2.pending_buf, n2.pending - i2, i2)), F(e2), i2 = n2.pending, n2.pending !== n2.pending_buf_size)); ) U(n2, 255 & n2.gzhead.extra[n2.gzindex]), n2.gzindex++; n2.gzhead.hcrc && n2.pending > i2 && (e2.adler = p(e2.adler, n2.pending_buf, n2.pending - i2, i2)), n2.gzindex === n2.gzhead.extra.length && (n2.gzindex = 0, n2.status = 73); } else n2.status = 73; if (73 === n2.status) if (n2.gzhead.name) { i2 = n2.pending; do { if (n2.pending === n2.pending_buf_size && (n2.gzhead.hcrc && n2.pending > i2 && (e2.adler = p(e2.adler, n2.pending_buf, n2.pending - i2, i2)), F(e2), i2 = n2.pending, n2.pending === n2.pending_buf_size)) { s2 = 1; break; } s2 = n2.gzindex < n2.gzhead.name.length ? 255 & n2.gzhead.name.charCodeAt(n2.gzindex++) : 0, U(n2, s2); } while (0 !== s2); n2.gzhead.hcrc && n2.pending > i2 && (e2.adler = p(e2.adler, n2.pending_buf, n2.pending - i2, i2)), 0 === s2 && (n2.gzindex = 0, n2.status = 91); } else n2.status = 91; if (91 === n2.status) if (n2.gzhead.comment) { i2 = n2.pending; do { if (n2.pending === n2.pending_buf_size && (n2.gzhead.hcrc && n2.pending > i2 && (e2.adler = p(e2.adler, n2.pending_buf, n2.pending - i2, i2)), F(e2), i2 = n2.pending, n2.pending === n2.pending_buf_size)) { s2 = 1; break; } s2 = n2.gzindex < n2.gzhead.comment.length ? 255 & n2.gzhead.comment.charCodeAt(n2.gzindex++) : 0, U(n2, s2); } while (0 !== s2); n2.gzhead.hcrc && n2.pending > i2 && (e2.adler = p(e2.adler, n2.pending_buf, n2.pending - i2, i2)), 0 === s2 && (n2.status = 103); } else n2.status = 103; if (103 === n2.status && (n2.gzhead.hcrc ? (n2.pending + 2 > n2.pending_buf_size && F(e2), n2.pending + 2 <= n2.pending_buf_size && (U(n2, 255 & e2.adler), U(n2, e2.adler >> 8 & 255), e2.adler = 0, n2.status = E)) : n2.status = E), 0 !== n2.pending) { if (F(e2), 0 === e2.avail_out) return n2.last_flush = -1, m; } else if (0 === e2.avail_in && T(t2) <= T(r2) && t2 !== f) return R(e2, -5); if (666 === n2.status && 0 !== e2.avail_in) return R(e2, -5); if (0 !== e2.avail_in || 0 !== n2.lookahead || t2 !== l && 666 !== n2.status) { var o2 = 2 === n2.strategy ? function(e3, t3) { for (var r3; ; ) { if (0 === e3.lookahead && (j(e3), 0 === e3.lookahead)) { if (t3 === l) return A; break; } if (e3.match_length = 0, r3 = u._tr_tally(e3, 0, e3.window[e3.strstart]), e3.lookahead--, e3.strstart++, r3 && (N(e3, false), 0 === e3.strm.avail_out)) return A; } return e3.insert = 0, t3 === f ? (N(e3, true), 0 === e3.strm.avail_out ? O : B) : e3.last_lit && (N(e3, false), 0 === e3.strm.avail_out) ? A : I; }(n2, t2) : 3 === n2.strategy ? function(e3, t3) { for (var r3, n3, i3, s3, a3 = e3.window; ; ) { if (e3.lookahead <= S) { if (j(e3), e3.lookahead <= S && t3 === l) return A; if (0 === e3.lookahead) break; } if (e3.match_length = 0, e3.lookahead >= x && 0 < e3.strstart && (n3 = a3[i3 = e3.strstart - 1]) === a3[++i3] && n3 === a3[++i3] && n3 === a3[++i3]) { s3 = e3.strstart + S; do { } while (n3 === a3[++i3] && n3 === a3[++i3] && n3 === a3[++i3] && n3 === a3[++i3] && n3 === a3[++i3] && n3 === a3[++i3] && n3 === a3[++i3] && n3 === a3[++i3] && i3 < s3); e3.match_length = S - (s3 - i3), e3.match_length > e3.lookahead && (e3.match_length = e3.lookahead); } if (e3.match_length >= x ? (r3 = u._tr_tally(e3, 1, e3.match_length - x), e3.lookahead -= e3.match_length, e3.strstart += e3.match_length, e3.match_length = 0) : (r3 = u._tr_tally(e3, 0, e3.window[e3.strstart]), e3.lookahead--, e3.strstart++), r3 && (N(e3, false), 0 === e3.strm.avail_out)) return A; } return e3.insert = 0, t3 === f ? (N(e3, true), 0 === e3.strm.avail_out ? O : B) : e3.last_lit && (N(e3, false), 0 === e3.strm.avail_out) ? A : I; }(n2, t2) : h2[n2.level].func(n2, t2); if (o2 !== O && o2 !== B || (n2.status = 666), o2 === A || o2 === O) return 0 === e2.avail_out && (n2.last_flush = -1), m; if (o2 === I && (1 === t2 ? u._tr_align(n2) : 5 !== t2 && (u._tr_stored_block(n2, 0, 0, false), 3 === t2 && (D(n2.head), 0 === n2.lookahead && (n2.strstart = 0, n2.block_start = 0, n2.insert = 0))), F(e2), 0 === e2.avail_out)) return n2.last_flush = -1, m; } return t2 !== f ? m : n2.wrap <= 0 ? 1 : (2 === n2.wrap ? (U(n2, 255 & e2.adler), U(n2, e2.adler >> 8 & 255), U(n2, e2.adler >> 16 & 255), U(n2, e2.adler >> 24 & 255), U(n2, 255 & e2.total_in), U(n2, e2.total_in >> 8 & 255), U(n2, e2.total_in >> 16 & 255), U(n2, e2.total_in >> 24 & 255)) : (P(n2, e2.adler >>> 16), P(n2, 65535 & e2.adler)), F(e2), 0 < n2.wrap && (n2.wrap = -n2.wrap), 0 !== n2.pending ? m : 1); }, r.deflateEnd = function(e2) { var t2; return e2 && e2.state ? (t2 = e2.state.status) !== C && 69 !== t2 && 73 !== t2 && 91 !== t2 && 103 !== t2 && t2 !== E && 666 !== t2 ? R(e2, _) : (e2.state = null, t2 === E ? R(e2, -3) : m) : _; }, r.deflateSetDictionary = function(e2, t2) { var r2, n2, i2, s2, a2, o2, h3, u2, l2 = t2.length; if (!e2 || !e2.state) return _; if (2 === (s2 = (r2 = e2.state).wrap) || 1 === s2 && r2.status !== C || r2.lookahead) return _; for (1 === s2 && (e2.adler = d(e2.adler, t2, l2, 0)), r2.wrap = 0, l2 >= r2.w_size && (0 === s2 && (D(r2.head), r2.strstart = 0, r2.block_start = 0, r2.insert = 0), u2 = new c.Buf8(r2.w_size), c.arraySet(u2, t2, l2 - r2.w_size, r2.w_size, 0), t2 = u2, l2 = r2.w_size), a2 = e2.avail_in, o2 = e2.next_in, h3 = e2.input, e2.avail_in = l2, e2.next_in = 0, e2.input = t2, j(r2); r2.lookahead >= x; ) { for (n2 = r2.strstart, i2 = r2.lookahead - (x - 1); r2.ins_h = (r2.ins_h << r2.hash_shift ^ r2.window[n2 + x - 1]) & r2.hash_mask, r2.prev[n2 & r2.w_mask] = r2.head[r2.ins_h], r2.head[r2.ins_h] = n2, n2++, --i2; ) ; r2.strstart = n2, r2.lookahead = x - 1, j(r2); } return r2.strstart += r2.lookahead, r2.block_start = r2.strstart, r2.insert = r2.lookahead, r2.lookahead = 0, r2.match_length = r2.prev_length = x - 1, r2.match_available = 0, e2.next_in = o2, e2.input = h3, e2.avail_in = a2, r2.wrap = s2, m; }, r.deflateInfo = "pako deflate (from Nodeca project)"; }, { "../utils/common": 41, "./adler32": 43, "./crc32": 45, "./messages": 51, "./trees": 52 }], 47: [function(e, t, r) { t.exports = function() { this.text = 0, this.time = 0, this.xflags = 0, this.os = 0, this.extra = null, this.extra_len = 0, this.name = "", this.comment = "", this.hcrc = 0, this.done = false; }; }, {}], 48: [function(e, t, r) { t.exports = function(e2, t2) { var r2, n, i, s, a, o, h2, u, l, f, c, d, p, m, _, g, b, v, y, w, k, x, S, z, C; r2 = e2.state, n = e2.next_in, z = e2.input, i = n + (e2.avail_in - 5), s = e2.next_out, C = e2.output, a = s - (t2 - e2.avail_out), o = s + (e2.avail_out - 257), h2 = r2.dmax, u = r2.wsize, l = r2.whave, f = r2.wnext, c = r2.window, d = r2.hold, p = r2.bits, m = r2.lencode, _ = r2.distcode, g = (1 << r2.lenbits) - 1, b = (1 << r2.distbits) - 1; e: do { p < 15 && (d += z[n++] << p, p += 8, d += z[n++] << p, p += 8), v = m[d & g]; t: for (; ; ) { if (d >>>= y = v >>> 24, p -= y, 0 === (y = v >>> 16 & 255)) C[s++] = 65535 & v; else { if (!(16 & y)) { if (0 == (64 & y)) { v = m[(65535 & v) + (d & (1 << y) - 1)]; continue t; } if (32 & y) { r2.mode = 12; break e; } e2.msg = "invalid literal/length code", r2.mode = 30; break e; } w = 65535 & v, (y &= 15) && (p < y && (d += z[n++] << p, p += 8), w += d & (1 << y) - 1, d >>>= y, p -= y), p < 15 && (d += z[n++] << p, p += 8, d += z[n++] << p, p += 8), v = _[d & b]; r: for (; ; ) { if (d >>>= y = v >>> 24, p -= y, !(16 & (y = v >>> 16 & 255))) { if (0 == (64 & y)) { v = _[(65535 & v) + (d & (1 << y) - 1)]; continue r; } e2.msg = "invalid distance code", r2.mode = 30; break e; } if (k = 65535 & v, p < (y &= 15) && (d += z[n++] << p, (p += 8) < y && (d += z[n++] << p, p += 8)), h2 < (k += d & (1 << y) - 1)) { e2.msg = "invalid distance too far back", r2.mode = 30; break e; } if (d >>>= y, p -= y, (y = s - a) < k) { if (l < (y = k - y) && r2.sane) { e2.msg = "invalid distance too far back", r2.mode = 30; break e; } if (S = c, (x = 0) === f) { if (x += u - y, y < w) { for (w -= y; C[s++] = c[x++], --y; ) ; x = s - k, S = C; } } else if (f < y) { if (x += u + f - y, (y -= f) < w) { for (w -= y; C[s++] = c[x++], --y; ) ; if (x = 0, f < w) { for (w -= y = f; C[s++] = c[x++], --y; ) ; x = s - k, S = C; } } } else if (x += f - y, y < w) { for (w -= y; C[s++] = c[x++], --y; ) ; x = s - k, S = C; } for (; 2 < w; ) C[s++] = S[x++], C[s++] = S[x++], C[s++] = S[x++], w -= 3; w && (C[s++] = S[x++], 1 < w && (C[s++] = S[x++])); } else { for (x = s - k; C[s++] = C[x++], C[s++] = C[x++], C[s++] = C[x++], 2 < (w -= 3); ) ; w && (C[s++] = C[x++], 1 < w && (C[s++] = C[x++])); } break; } } break; } } while (n < i && s < o); n -= w = p >> 3, d &= (1 << (p -= w << 3)) - 1, e2.next_in = n, e2.next_out = s, e2.avail_in = n < i ? i - n + 5 : 5 - (n - i), e2.avail_out = s < o ? o - s + 257 : 257 - (s - o), r2.hold = d, r2.bits = p; }; }, {}], 49: [function(e, t, r) { var I = e("../utils/common"), O = e("./adler32"), B = e("./crc32"), R = e("./inffast"), T = e("./inftrees"), D = 1, F = 2, N = 0, U = -2, P = 1, n = 852, i = 592; function L(e2) { return (e2 >>> 24 & 255) + (e2 >>> 8 & 65280) + ((65280 & e2) << 8) + ((255 & e2) << 24); } function s() { this.mode = 0, this.last = false, this.wrap = 0, this.havedict = false, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new I.Buf16(320), this.work = new I.Buf16(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0; } function a(e2) { var t2; return e2 && e2.state ? (t2 = e2.state, e2.total_in = e2.total_out = t2.total = 0, e2.msg = "", t2.wrap && (e2.adler = 1 & t2.wrap), t2.mode = P, t2.last = 0, t2.havedict = 0, t2.dmax = 32768, t2.head = null, t2.hold = 0, t2.bits = 0, t2.lencode = t2.lendyn = new I.Buf32(n), t2.distcode = t2.distdyn = new I.Buf32(i), t2.sane = 1, t2.back = -1, N) : U; } function o(e2) { var t2; return e2 && e2.state ? ((t2 = e2.state).wsize = 0, t2.whave = 0, t2.wnext = 0, a(e2)) : U; } function h2(e2, t2) { var r2, n2; return e2 && e2.state ? (n2 = e2.state, t2 < 0 ? (r2 = 0, t2 = -t2) : (r2 = 1 + (t2 >> 4), t2 < 48 && (t2 &= 15)), t2 && (t2 < 8 || 15 < t2) ? U : (null !== n2.window && n2.wbits !== t2 && (n2.window = null), n2.wrap = r2, n2.wbits = t2, o(e2))) : U; } function u(e2, t2) { var r2, n2; return e2 ? (n2 = new s(), (e2.state = n2).window = null, (r2 = h2(e2, t2)) !== N && (e2.state = null), r2) : U; } var l, f, c = true; function j(e2) { if (c) { var t2; for (l = new I.Buf32(512), f = new I.Buf32(32), t2 = 0; t2 < 144; ) e2.lens[t2++] = 8; for (; t2 < 256; ) e2.lens[t2++] = 9; for (; t2 < 280; ) e2.lens[t2++] = 7; for (; t2 < 288; ) e2.lens[t2++] = 8; for (T(D, e2.lens, 0, 288, l, 0, e2.work, { bits: 9 }), t2 = 0; t2 < 32; ) e2.lens[t2++] = 5; T(F, e2.lens, 0, 32, f, 0, e2.work, { bits: 5 }), c = false; } e2.lencode = l, e2.lenbits = 9, e2.distcode = f, e2.distbits = 5; } function Z(e2, t2, r2, n2) { var i2, s2 = e2.state; return null === s2.window && (s2.wsize = 1 << s2.wbits, s2.wnext = 0, s2.whave = 0, s2.window = new I.Buf8(s2.wsize)), n2 >= s2.wsize ? (I.arraySet(s2.window, t2, r2 - s2.wsize, s2.wsize, 0), s2.wnext = 0, s2.whave = s2.wsize) : (n2 < (i2 = s2.wsize - s2.wnext) && (i2 = n2), I.arraySet(s2.window, t2, r2 - n2, i2, s2.wnext), (n2 -= i2) ? (I.arraySet(s2.window, t2, r2 - n2, n2, 0), s2.wnext = n2, s2.whave = s2.wsize) : (s2.wnext += i2, s2.wnext === s2.wsize && (s2.wnext = 0), s2.whave < s2.wsize && (s2.whave += i2))), 0; } r.inflateReset = o, r.inflateReset2 = h2, r.inflateResetKeep = a, r.inflateInit = function(e2) { return u(e2, 15); }, r.inflateInit2 = u, r.inflate = function(e2, t2) { var r2, n2, i2, s2, a2, o2, h3, u2, l2, f2, c2, d, p, m, _, g, b, v, y, w, k, x, S, z, C = 0, E = new I.Buf8(4), A = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; if (!e2 || !e2.state || !e2.output || !e2.input && 0 !== e2.avail_in) return U; 12 === (r2 = e2.state).mode && (r2.mode = 13), a2 = e2.next_out, i2 = e2.output, h3 = e2.avail_out, s2 = e2.next_in, n2 = e2.input, o2 = e2.avail_in, u2 = r2.hold, l2 = r2.bits, f2 = o2, c2 = h3, x = N; e: for (; ; ) switch (r2.mode) { case P: if (0 === r2.wrap) { r2.mode = 13; break; } for (; l2 < 16; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } if (2 & r2.wrap && 35615 === u2) { E[r2.check = 0] = 255 & u2, E[1] = u2 >>> 8 & 255, r2.check = B(r2.check, E, 2, 0), l2 = u2 = 0, r2.mode = 2; break; } if (r2.flags = 0, r2.head && (r2.head.done = false), !(1 & r2.wrap) || (((255 & u2) << 8) + (u2 >> 8)) % 31) { e2.msg = "incorrect header check", r2.mode = 30; break; } if (8 != (15 & u2)) { e2.msg = "unknown compression method", r2.mode = 30; break; } if (l2 -= 4, k = 8 + (15 & (u2 >>>= 4)), 0 === r2.wbits) r2.wbits = k; else if (k > r2.wbits) { e2.msg = "invalid window size", r2.mode = 30; break; } r2.dmax = 1 << k, e2.adler = r2.check = 1, r2.mode = 512 & u2 ? 10 : 12, l2 = u2 = 0; break; case 2: for (; l2 < 16; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } if (r2.flags = u2, 8 != (255 & r2.flags)) { e2.msg = "unknown compression method", r2.mode = 30; break; } if (57344 & r2.flags) { e2.msg = "unknown header flags set", r2.mode = 30; break; } r2.head && (r2.head.text = u2 >> 8 & 1), 512 & r2.flags && (E[0] = 255 & u2, E[1] = u2 >>> 8 & 255, r2.check = B(r2.check, E, 2, 0)), l2 = u2 = 0, r2.mode = 3; case 3: for (; l2 < 32; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } r2.head && (r2.head.time = u2), 512 & r2.flags && (E[0] = 255 & u2, E[1] = u2 >>> 8 & 255, E[2] = u2 >>> 16 & 255, E[3] = u2 >>> 24 & 255, r2.check = B(r2.check, E, 4, 0)), l2 = u2 = 0, r2.mode = 4; case 4: for (; l2 < 16; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } r2.head && (r2.head.xflags = 255 & u2, r2.head.os = u2 >> 8), 512 & r2.flags && (E[0] = 255 & u2, E[1] = u2 >>> 8 & 255, r2.check = B(r2.check, E, 2, 0)), l2 = u2 = 0, r2.mode = 5; case 5: if (1024 & r2.flags) { for (; l2 < 16; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } r2.length = u2, r2.head && (r2.head.extra_len = u2), 512 & r2.flags && (E[0] = 255 & u2, E[1] = u2 >>> 8 & 255, r2.check = B(r2.check, E, 2, 0)), l2 = u2 = 0; } else r2.head && (r2.head.extra = null); r2.mode = 6; case 6: if (1024 & r2.flags && (o2 < (d = r2.length) && (d = o2), d && (r2.head && (k = r2.head.extra_len - r2.length, r2.head.extra || (r2.head.extra = new Array(r2.head.extra_len)), I.arraySet(r2.head.extra, n2, s2, d, k)), 512 & r2.flags && (r2.check = B(r2.check, n2, d, s2)), o2 -= d, s2 += d, r2.length -= d), r2.length)) break e; r2.length = 0, r2.mode = 7; case 7: if (2048 & r2.flags) { if (0 === o2) break e; for (d = 0; k = n2[s2 + d++], r2.head && k && r2.length < 65536 && (r2.head.name += String.fromCharCode(k)), k && d < o2; ) ; if (512 & r2.flags && (r2.check = B(r2.check, n2, d, s2)), o2 -= d, s2 += d, k) break e; } else r2.head && (r2.head.name = null); r2.length = 0, r2.mode = 8; case 8: if (4096 & r2.flags) { if (0 === o2) break e; for (d = 0; k = n2[s2 + d++], r2.head && k && r2.length < 65536 && (r2.head.comment += String.fromCharCode(k)), k && d < o2; ) ; if (512 & r2.flags && (r2.check = B(r2.check, n2, d, s2)), o2 -= d, s2 += d, k) break e; } else r2.head && (r2.head.comment = null); r2.mode = 9; case 9: if (512 & r2.flags) { for (; l2 < 16; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } if (u2 !== (65535 & r2.check)) { e2.msg = "header crc mismatch", r2.mode = 30; break; } l2 = u2 = 0; } r2.head && (r2.head.hcrc = r2.flags >> 9 & 1, r2.head.done = true), e2.adler = r2.check = 0, r2.mode = 12; break; case 10: for (; l2 < 32; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } e2.adler = r2.check = L(u2), l2 = u2 = 0, r2.mode = 11; case 11: if (0 === r2.havedict) return e2.next_out = a2, e2.avail_out = h3, e2.next_in = s2, e2.avail_in = o2, r2.hold = u2, r2.bits = l2, 2; e2.adler = r2.check = 1, r2.mode = 12; case 12: if (5 === t2 || 6 === t2) break e; case 13: if (r2.last) { u2 >>>= 7 & l2, l2 -= 7 & l2, r2.mode = 27; break; } for (; l2 < 3; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } switch (r2.last = 1 & u2, l2 -= 1, 3 & (u2 >>>= 1)) { case 0: r2.mode = 14; break; case 1: if (j(r2), r2.mode = 20, 6 !== t2) break; u2 >>>= 2, l2 -= 2; break e; case 2: r2.mode = 17; break; case 3: e2.msg = "invalid block type", r2.mode = 30; } u2 >>>= 2, l2 -= 2; break; case 14: for (u2 >>>= 7 & l2, l2 -= 7 & l2; l2 < 32; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } if ((65535 & u2) != (u2 >>> 16 ^ 65535)) { e2.msg = "invalid stored block lengths", r2.mode = 30; break; } if (r2.length = 65535 & u2, l2 = u2 = 0, r2.mode = 15, 6 === t2) break e; case 15: r2.mode = 16; case 16: if (d = r2.length) { if (o2 < d && (d = o2), h3 < d && (d = h3), 0 === d) break e; I.arraySet(i2, n2, s2, d, a2), o2 -= d, s2 += d, h3 -= d, a2 += d, r2.length -= d; break; } r2.mode = 12; break; case 17: for (; l2 < 14; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } if (r2.nlen = 257 + (31 & u2), u2 >>>= 5, l2 -= 5, r2.ndist = 1 + (31 & u2), u2 >>>= 5, l2 -= 5, r2.ncode = 4 + (15 & u2), u2 >>>= 4, l2 -= 4, 286 < r2.nlen || 30 < r2.ndist) { e2.msg = "too many length or distance symbols", r2.mode = 30; break; } r2.have = 0, r2.mode = 18; case 18: for (; r2.have < r2.ncode; ) { for (; l2 < 3; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } r2.lens[A[r2.have++]] = 7 & u2, u2 >>>= 3, l2 -= 3; } for (; r2.have < 19; ) r2.lens[A[r2.have++]] = 0; if (r2.lencode = r2.lendyn, r2.lenbits = 7, S = { bits: r2.lenbits }, x = T(0, r2.lens, 0, 19, r2.lencode, 0, r2.work, S), r2.lenbits = S.bits, x) { e2.msg = "invalid code lengths set", r2.mode = 30; break; } r2.have = 0, r2.mode = 19; case 19: for (; r2.have < r2.nlen + r2.ndist; ) { for (; g = (C = r2.lencode[u2 & (1 << r2.lenbits) - 1]) >>> 16 & 255, b = 65535 & C, !((_ = C >>> 24) <= l2); ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } if (b < 16) u2 >>>= _, l2 -= _, r2.lens[r2.have++] = b; else { if (16 === b) { for (z = _ + 2; l2 < z; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } if (u2 >>>= _, l2 -= _, 0 === r2.have) { e2.msg = "invalid bit length repeat", r2.mode = 30; break; } k = r2.lens[r2.have - 1], d = 3 + (3 & u2), u2 >>>= 2, l2 -= 2; } else if (17 === b) { for (z = _ + 3; l2 < z; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } l2 -= _, k = 0, d = 3 + (7 & (u2 >>>= _)), u2 >>>= 3, l2 -= 3; } else { for (z = _ + 7; l2 < z; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } l2 -= _, k = 0, d = 11 + (127 & (u2 >>>= _)), u2 >>>= 7, l2 -= 7; } if (r2.have + d > r2.nlen + r2.ndist) { e2.msg = "invalid bit length repeat", r2.mode = 30; break; } for (; d--; ) r2.lens[r2.have++] = k; } } if (30 === r2.mode) break; if (0 === r2.lens[256]) { e2.msg = "invalid code -- missing end-of-block", r2.mode = 30; break; } if (r2.lenbits = 9, S = { bits: r2.lenbits }, x = T(D, r2.lens, 0, r2.nlen, r2.lencode, 0, r2.work, S), r2.lenbits = S.bits, x) { e2.msg = "invalid literal/lengths set", r2.mode = 30; break; } if (r2.distbits = 6, r2.distcode = r2.distdyn, S = { bits: r2.distbits }, x = T(F, r2.lens, r2.nlen, r2.ndist, r2.distcode, 0, r2.work, S), r2.distbits = S.bits, x) { e2.msg = "invalid distances set", r2.mode = 30; break; } if (r2.mode = 20, 6 === t2) break e; case 20: r2.mode = 21; case 21: if (6 <= o2 && 258 <= h3) { e2.next_out = a2, e2.avail_out = h3, e2.next_in = s2, e2.avail_in = o2, r2.hold = u2, r2.bits = l2, R(e2, c2), a2 = e2.next_out, i2 = e2.output, h3 = e2.avail_out, s2 = e2.next_in, n2 = e2.input, o2 = e2.avail_in, u2 = r2.hold, l2 = r2.bits, 12 === r2.mode && (r2.back = -1); break; } for (r2.back = 0; g = (C = r2.lencode[u2 & (1 << r2.lenbits) - 1]) >>> 16 & 255, b = 65535 & C, !((_ = C >>> 24) <= l2); ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } if (g && 0 == (240 & g)) { for (v = _, y = g, w = b; g = (C = r2.lencode[w + ((u2 & (1 << v + y) - 1) >> v)]) >>> 16 & 255, b = 65535 & C, !(v + (_ = C >>> 24) <= l2); ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } u2 >>>= v, l2 -= v, r2.back += v; } if (u2 >>>= _, l2 -= _, r2.back += _, r2.length = b, 0 === g) { r2.mode = 26; break; } if (32 & g) { r2.back = -1, r2.mode = 12; break; } if (64 & g) { e2.msg = "invalid literal/length code", r2.mode = 30; break; } r2.extra = 15 & g, r2.mode = 22; case 22: if (r2.extra) { for (z = r2.extra; l2 < z; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } r2.length += u2 & (1 << r2.extra) - 1, u2 >>>= r2.extra, l2 -= r2.extra, r2.back += r2.extra; } r2.was = r2.length, r2.mode = 23; case 23: for (; g = (C = r2.distcode[u2 & (1 << r2.distbits) - 1]) >>> 16 & 255, b = 65535 & C, !((_ = C >>> 24) <= l2); ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } if (0 == (240 & g)) { for (v = _, y = g, w = b; g = (C = r2.distcode[w + ((u2 & (1 << v + y) - 1) >> v)]) >>> 16 & 255, b = 65535 & C, !(v + (_ = C >>> 24) <= l2); ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } u2 >>>= v, l2 -= v, r2.back += v; } if (u2 >>>= _, l2 -= _, r2.back += _, 64 & g) { e2.msg = "invalid distance code", r2.mode = 30; break; } r2.offset = b, r2.extra = 15 & g, r2.mode = 24; case 24: if (r2.extra) { for (z = r2.extra; l2 < z; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } r2.offset += u2 & (1 << r2.extra) - 1, u2 >>>= r2.extra, l2 -= r2.extra, r2.back += r2.extra; } if (r2.offset > r2.dmax) { e2.msg = "invalid distance too far back", r2.mode = 30; break; } r2.mode = 25; case 25: if (0 === h3) break e; if (d = c2 - h3, r2.offset > d) { if ((d = r2.offset - d) > r2.whave && r2.sane) { e2.msg = "invalid distance too far back", r2.mode = 30; break; } p = d > r2.wnext ? (d -= r2.wnext, r2.wsize - d) : r2.wnext - d, d > r2.length && (d = r2.length), m = r2.window; } else m = i2, p = a2 - r2.offset, d = r2.length; for (h3 < d && (d = h3), h3 -= d, r2.length -= d; i2[a2++] = m[p++], --d; ) ; 0 === r2.length && (r2.mode = 21); break; case 26: if (0 === h3) break e; i2[a2++] = r2.length, h3--, r2.mode = 21; break; case 27: if (r2.wrap) { for (; l2 < 32; ) { if (0 === o2) break e; o2--, u2 |= n2[s2++] << l2, l2 += 8; } if (c2 -= h3, e2.total_out += c2, r2.total += c2, c2 && (e2.adler = r2.check = r2.flags ? B(r2.check, i2, c2, a2 - c2) : O(r2.check, i2, c2, a2 - c2)), c2 = h3, (r2.flags ? u2 : L(u2)) !== r2.check) { e2.msg = "incorrect data check", r2.mode = 30; break; } l2 = u2 = 0; } r2.mode = 28; case 28: if (r2.wrap && r2.flags) { for (; l2 < 32; ) { if (0 === o2) break e; o2--, u2 += n2[s2++] << l2, l2 += 8; } if (u2 !== (4294967295 & r2.total)) { e2.msg = "incorrect length check", r2.mode = 30; break; } l2 = u2 = 0; } r2.mode = 29; case 29: x = 1; break e; case 30: x = -3; break e; case 31: return -4; case 32: default: return U; } return e2.next_out = a2, e2.avail_out = h3, e2.next_in = s2, e2.avail_in = o2, r2.hold = u2, r2.bits = l2, (r2.wsize || c2 !== e2.avail_out && r2.mode < 30 && (r2.mode < 27 || 4 !== t2)) && Z(e2, e2.output, e2.next_out, c2 - e2.avail_out) ? (r2.mode = 31, -4) : (f2 -= e2.avail_in, c2 -= e2.avail_out, e2.total_in += f2, e2.total_out += c2, r2.total += c2, r2.wrap && c2 && (e2.adler = r2.check = r2.flags ? B(r2.check, i2, c2, e2.next_out - c2) : O(r2.check, i2, c2, e2.next_out - c2)), e2.data_type = r2.bits + (r2.last ? 64 : 0) + (12 === r2.mode ? 128 : 0) + (20 === r2.mode || 15 === r2.mode ? 256 : 0), (0 == f2 && 0 === c2 || 4 === t2) && x === N && (x = -5), x); }, r.inflateEnd = function(e2) { if (!e2 || !e2.state) return U; var t2 = e2.state; return t2.window && (t2.window = null), e2.state = null, N; }, r.inflateGetHeader = function(e2, t2) { var r2; return e2 && e2.state ? 0 == (2 & (r2 = e2.state).wrap) ? U : ((r2.head = t2).done = false, N) : U; }, r.inflateSetDictionary = function(e2, t2) { var r2, n2 = t2.length; return e2 && e2.state ? 0 !== (r2 = e2.state).wrap && 11 !== r2.mode ? U : 11 === r2.mode && O(1, t2, n2, 0) !== r2.check ? -3 : Z(e2, t2, n2, n2) ? (r2.mode = 31, -4) : (r2.havedict = 1, N) : U; }, r.inflateInfo = "pako inflate (from Nodeca project)"; }, { "../utils/common": 41, "./adler32": 43, "./crc32": 45, "./inffast": 48, "./inftrees": 50 }], 50: [function(e, t, r) { var D = e("../utils/common"), F = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0], N = [16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78], U = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0], P = [16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64]; t.exports = function(e2, t2, r2, n, i, s, a, o) { var h2, u, l, f, c, d, p, m, _, g = o.bits, b = 0, v = 0, y = 0, w = 0, k = 0, x = 0, S = 0, z = 0, C = 0, E = 0, A = null, I = 0, O = new D.Buf16(16), B = new D.Buf16(16), R = null, T = 0; for (b = 0; b <= 15; b++) O[b] = 0; for (v = 0; v < n; v++) O[t2[r2 + v]]++; for (k = g, w = 15; 1 <= w && 0 === O[w]; w--) ; if (w < k && (k = w), 0 === w) return i[s++] = 20971520, i[s++] = 20971520, o.bits = 1, 0; for (y = 1; y < w && 0 === O[y]; y++) ; for (k < y && (k = y), b = z = 1; b <= 15; b++) if (z <<= 1, (z -= O[b]) < 0) return -1; if (0 < z && (0 === e2 || 1 !== w)) return -1; for (B[1] = 0, b = 1; b < 15; b++) B[b + 1] = B[b] + O[b]; for (v = 0; v < n; v++) 0 !== t2[r2 + v] && (a[B[t2[r2 + v]]++] = v); if (d = 0 === e2 ? (A = R = a, 19) : 1 === e2 ? (A = F, I -= 257, R = N, T -= 257, 256) : (A = U, R = P, -1), b = y, c = s, S = v = E = 0, l = -1, f = (C = 1 << (x = k)) - 1, 1 === e2 && 852 < C || 2 === e2 && 592 < C) return 1; for (; ; ) { for (p = b - S, _ = a[v] < d ? (m = 0, a[v]) : a[v] > d ? (m = R[T + a[v]], A[I + a[v]]) : (m = 96, 0), h2 = 1 << b - S, y = u = 1 << x; i[c + (E >> S) + (u -= h2)] = p << 24 | m << 16 | _ | 0, 0 !== u; ) ; for (h2 = 1 << b - 1; E & h2; ) h2 >>= 1; if (0 !== h2 ? (E &= h2 - 1, E += h2) : E = 0, v++, 0 == --O[b]) { if (b === w) break; b = t2[r2 + a[v]]; } if (k < b && (E & f) !== l) { for (0 === S && (S = k), c += y, z = 1 << (x = b - S); x + S < w && !((z -= O[x + S]) <= 0); ) x++, z <<= 1; if (C += 1 << x, 1 === e2 && 852 < C || 2 === e2 && 592 < C) return 1; i[l = E & f] = k << 24 | x << 16 | c - s | 0; } } return 0 !== E && (i[c + E] = b - S << 24 | 64 << 16 | 0), o.bits = k, 0; }; }, { "../utils/common": 41 }], 51: [function(e, t, r) { t.exports = { 2: "need dictionary", 1: "stream end", 0: "", "-1": "file error", "-2": "stream error", "-3": "data error", "-4": "insufficient memory", "-5": "buffer error", "-6": "incompatible version" }; }, {}], 52: [function(e, t, r) { var i = e("../utils/common"), o = 0, h2 = 1; function n(e2) { for (var t2 = e2.length; 0 <= --t2; ) e2[t2] = 0; } var s = 0, a = 29, u = 256, l = u + 1 + a, f = 30, c = 19, _ = 2 * l + 1, g = 15, d = 16, p = 7, m = 256, b = 16, v = 17, y = 18, w = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0], k = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13], x = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7], S = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], z = new Array(2 * (l + 2)); n(z); var C = new Array(2 * f); n(C); var E = new Array(512); n(E); var A = new Array(256); n(A); var I = new Array(a); n(I); var O, B, R, T = new Array(f); function D(e2, t2, r2, n2, i2) { this.static_tree = e2, this.extra_bits = t2, this.extra_base = r2, this.elems = n2, this.max_length = i2, this.has_stree = e2 && e2.length; } function F(e2, t2) { this.dyn_tree = e2, this.max_code = 0, this.stat_desc = t2; } function N(e2) { return e2 < 256 ? E[e2] : E[256 + (e2 >>> 7)]; } function U(e2, t2) { e2.pending_buf[e2.pending++] = 255 & t2, e2.pending_buf[e2.pending++] = t2 >>> 8 & 255; } function P(e2, t2, r2) { e2.bi_valid > d - r2 ? (e2.bi_buf |= t2 << e2.bi_valid & 65535, U(e2, e2.bi_buf), e2.bi_buf = t2 >> d - e2.bi_valid, e2.bi_valid += r2 - d) : (e2.bi_buf |= t2 << e2.bi_valid & 65535, e2.bi_valid += r2); } function L(e2, t2, r2) { P(e2, r2[2 * t2], r2[2 * t2 + 1]); } function j(e2, t2) { for (var r2 = 0; r2 |= 1 & e2, e2 >>>= 1, r2 <<= 1, 0 < --t2; ) ; return r2 >>> 1; } function Z(e2, t2, r2) { var n2, i2, s2 = new Array(g + 1), a2 = 0; for (n2 = 1; n2 <= g; n2++) s2[n2] = a2 = a2 + r2[n2 - 1] << 1; for (i2 = 0; i2 <= t2; i2++) { var o2 = e2[2 * i2 + 1]; 0 !== o2 && (e2[2 * i2] = j(s2[o2]++, o2)); } } function W(e2) { var t2; for (t2 = 0; t2 < l; t2++) e2.dyn_ltree[2 * t2] = 0; for (t2 = 0; t2 < f; t2++) e2.dyn_dtree[2 * t2] = 0; for (t2 = 0; t2 < c; t2++) e2.bl_tree[2 * t2] = 0; e2.dyn_ltree[2 * m] = 1, e2.opt_len = e2.static_len = 0, e2.last_lit = e2.matches = 0; } function M(e2) { 8 < e2.bi_valid ? U(e2, e2.bi_buf) : 0 < e2.bi_valid && (e2.pending_buf[e2.pending++] = e2.bi_buf), e2.bi_buf = 0, e2.bi_valid = 0; } function H(e2, t2, r2, n2) { var i2 = 2 * t2, s2 = 2 * r2; return e2[i2] < e2[s2] || e2[i2] === e2[s2] && n2[t2] <= n2[r2]; } function G(e2, t2, r2) { for (var n2 = e2.heap[r2], i2 = r2 << 1; i2 <= e2.heap_len && (i2 < e2.heap_len && H(t2, e2.heap[i2 + 1], e2.heap[i2], e2.depth) && i2++, !H(t2, n2, e2.heap[i2], e2.depth)); ) e2.heap[r2] = e2.heap[i2], r2 = i2, i2 <<= 1; e2.heap[r2] = n2; } function K(e2, t2, r2) { var n2, i2, s2, a2, o2 = 0; if (0 !== e2.last_lit) for (; n2 = e2.pending_buf[e2.d_buf + 2 * o2] << 8 | e2.pending_buf[e2.d_buf + 2 * o2 + 1], i2 = e2.pending_buf[e2.l_buf + o2], o2++, 0 === n2 ? L(e2, i2, t2) : (L(e2, (s2 = A[i2]) + u + 1, t2), 0 !== (a2 = w[s2]) && P(e2, i2 -= I[s2], a2), L(e2, s2 = N(--n2), r2), 0 !== (a2 = k[s2]) && P(e2, n2 -= T[s2], a2)), o2 < e2.last_lit; ) ; L(e2, m, t2); } function Y(e2, t2) { var r2, n2, i2, s2 = t2.dyn_tree, a2 = t2.stat_desc.static_tree, o2 = t2.stat_desc.has_stree, h3 = t2.stat_desc.elems, u2 = -1; for (e2.heap_len = 0, e2.heap_max = _, r2 = 0; r2 < h3; r2++) 0 !== s2[2 * r2] ? (e2.heap[++e2.heap_len] = u2 = r2, e2.depth[r2] = 0) : s2[2 * r2 + 1] = 0; for (; e2.heap_len < 2; ) s2[2 * (i2 = e2.heap[++e2.heap_len] = u2 < 2 ? ++u2 : 0)] = 1, e2.depth[i2] = 0, e2.opt_len--, o2 && (e2.static_len -= a2[2 * i2 + 1]); for (t2.max_code = u2, r2 = e2.heap_len >> 1; 1 <= r2; r2--) G(e2, s2, r2); for (i2 = h3; r2 = e2.heap[1], e2.heap[1] = e2.heap[e2.heap_len--], G(e2, s2, 1), n2 = e2.heap[1], e2.heap[--e2.heap_max] = r2, e2.heap[--e2.heap_max] = n2, s2[2 * i2] = s2[2 * r2] + s2[2 * n2], e2.depth[i2] = (e2.depth[r2] >= e2.depth[n2] ? e2.depth[r2] : e2.depth[n2]) + 1, s2[2 * r2 + 1] = s2[2 * n2 + 1] = i2, e2.heap[1] = i2++, G(e2, s2, 1), 2 <= e2.heap_len; ) ; e2.heap[--e2.heap_max] = e2.heap[1], function(e3, t3) { var r3, n3, i3, s3, a3, o3, h4 = t3.dyn_tree, u3 = t3.max_code, l2 = t3.stat_desc.static_tree, f2 = t3.stat_desc.has_stree, c2 = t3.stat_desc.extra_bits, d2 = t3.stat_desc.extra_base, p2 = t3.stat_desc.max_length, m2 = 0; for (s3 = 0; s3 <= g; s3++) e3.bl_count[s3] = 0; for (h4[2 * e3.heap[e3.heap_max] + 1] = 0, r3 = e3.heap_max + 1; r3 < _; r3++) p2 < (s3 = h4[2 * h4[2 * (n3 = e3.heap[r3]) + 1] + 1] + 1) && (s3 = p2, m2++), h4[2 * n3 + 1] = s3, u3 < n3 || (e3.bl_count[s3]++, a3 = 0, d2 <= n3 && (a3 = c2[n3 - d2]), o3 = h4[2 * n3], e3.opt_len += o3 * (s3 + a3), f2 && (e3.static_len += o3 * (l2[2 * n3 + 1] + a3))); if (0 !== m2) { do { for (s3 = p2 - 1; 0 === e3.bl_count[s3]; ) s3--; e3.bl_count[s3]--, e3.bl_count[s3 + 1] += 2, e3.bl_count[p2]--, m2 -= 2; } while (0 < m2); for (s3 = p2; 0 !== s3; s3--) for (n3 = e3.bl_count[s3]; 0 !== n3; ) u3 < (i3 = e3.heap[--r3]) || (h4[2 * i3 + 1] !== s3 && (e3.opt_len += (s3 - h4[2 * i3 + 1]) * h4[2 * i3], h4[2 * i3 + 1] = s3), n3--); } }(e2, t2), Z(s2, u2, e2.bl_count); } function X(e2, t2, r2) { var n2, i2, s2 = -1, a2 = t2[1], o2 = 0, h3 = 7, u2 = 4; for (0 === a2 && (h3 = 138, u2 = 3), t2[2 * (r2 + 1) + 1] = 65535, n2 = 0; n2 <= r2; n2++) i2 = a2, a2 = t2[2 * (n2 + 1) + 1], ++o2 < h3 && i2 === a2 || (o2 < u2 ? e2.bl_tree[2 * i2] += o2 : 0 !== i2 ? (i2 !== s2 && e2.bl_tree[2 * i2]++, e2.bl_tree[2 * b]++) : o2 <= 10 ? e2.bl_tree[2 * v]++ : e2.bl_tree[2 * y]++, s2 = i2, u2 = (o2 = 0) === a2 ? (h3 = 138, 3) : i2 === a2 ? (h3 = 6, 3) : (h3 = 7, 4)); } function V(e2, t2, r2) { var n2, i2, s2 = -1, a2 = t2[1], o2 = 0, h3 = 7, u2 = 4; for (0 === a2 && (h3 = 138, u2 = 3), n2 = 0; n2 <= r2; n2++) if (i2 = a2, a2 = t2[2 * (n2 + 1) + 1], !(++o2 < h3 && i2 === a2)) { if (o2 < u2) for (; L(e2, i2, e2.bl_tree), 0 != --o2; ) ; else 0 !== i2 ? (i2 !== s2 && (L(e2, i2, e2.bl_tree), o2--), L(e2, b, e2.bl_tree), P(e2, o2 - 3, 2)) : o2 <= 10 ? (L(e2, v, e2.bl_tree), P(e2, o2 - 3, 3)) : (L(e2, y, e2.bl_tree), P(e2, o2 - 11, 7)); s2 = i2, u2 = (o2 = 0) === a2 ? (h3 = 138, 3) : i2 === a2 ? (h3 = 6, 3) : (h3 = 7, 4); } } n(T); var q = false; function J(e2, t2, r2, n2) { P(e2, (s << 1) + (n2 ? 1 : 0), 3), function(e3, t3, r3, n3) { M(e3), n3 && (U(e3, r3), U(e3, ~r3)), i.arraySet(e3.pending_buf, e3.window, t3, r3, e3.pending), e3.pending += r3; }(e2, t2, r2, true); } r._tr_init = function(e2) { q || (function() { var e3, t2, r2, n2, i2, s2 = new Array(g + 1); for (n2 = r2 = 0; n2 < a - 1; n2++) for (I[n2] = r2, e3 = 0; e3 < 1 << w[n2]; e3++) A[r2++] = n2; for (A[r2 - 1] = n2, n2 = i2 = 0; n2 < 16; n2++) for (T[n2] = i2, e3 = 0; e3 < 1 << k[n2]; e3++) E[i2++] = n2; for (i2 >>= 7; n2 < f; n2++) for (T[n2] = i2 << 7, e3 = 0; e3 < 1 << k[n2] - 7; e3++) E[256 + i2++] = n2; for (t2 = 0; t2 <= g; t2++) s2[t2] = 0; for (e3 = 0; e3 <= 143; ) z[2 * e3 + 1] = 8, e3++, s2[8]++; for (; e3 <= 255; ) z[2 * e3 + 1] = 9, e3++, s2[9]++; for (; e3 <= 279; ) z[2 * e3 + 1] = 7, e3++, s2[7]++; for (; e3 <= 287; ) z[2 * e3 + 1] = 8, e3++, s2[8]++; for (Z(z, l + 1, s2), e3 = 0; e3 < f; e3++) C[2 * e3 + 1] = 5, C[2 * e3] = j(e3, 5); O = new D(z, w, u + 1, l, g), B = new D(C, k, 0, f, g), R = new D(new Array(0), x, 0, c, p); }(), q = true), e2.l_desc = new F(e2.dyn_ltree, O), e2.d_desc = new F(e2.dyn_dtree, B), e2.bl_desc = new F(e2.bl_tree, R), e2.bi_buf = 0, e2.bi_valid = 0, W(e2); }, r._tr_stored_block = J, r._tr_flush_block = function(e2, t2, r2, n2) { var i2, s2, a2 = 0; 0 < e2.level ? (2 === e2.strm.data_type && (e2.strm.data_type = function(e3) { var t3, r3 = 4093624447; for (t3 = 0; t3 <= 31; t3++, r3 >>>= 1) if (1 & r3 && 0 !== e3.dyn_ltree[2 * t3]) return o; if (0 !== e3.dyn_ltree[18] || 0 !== e3.dyn_ltree[20] || 0 !== e3.dyn_ltree[26]) return h2; for (t3 = 32; t3 < u; t3++) if (0 !== e3.dyn_ltree[2 * t3]) return h2; return o; }(e2)), Y(e2, e2.l_desc), Y(e2, e2.d_desc), a2 = function(e3) { var t3; for (X(e3, e3.dyn_ltree, e3.l_desc.max_code), X(e3, e3.dyn_dtree, e3.d_desc.max_code), Y(e3, e3.bl_desc), t3 = c - 1; 3 <= t3 && 0 === e3.bl_tree[2 * S[t3] + 1]; t3--) ; return e3.opt_len += 3 * (t3 + 1) + 5 + 5 + 4, t3; }(e2), i2 = e2.opt_len + 3 + 7 >>> 3, (s2 = e2.static_len + 3 + 7 >>> 3) <= i2 && (i2 = s2)) : i2 = s2 = r2 + 5, r2 + 4 <= i2 && -1 !== t2 ? J(e2, t2, r2, n2) : 4 === e2.strategy || s2 === i2 ? (P(e2, 2 + (n2 ? 1 : 0), 3), K(e2, z, C)) : (P(e2, 4 + (n2 ? 1 : 0), 3), function(e3, t3, r3, n3) { var i3; for (P(e3, t3 - 257, 5), P(e3, r3 - 1, 5), P(e3, n3 - 4, 4), i3 = 0; i3 < n3; i3++) P(e3, e3.bl_tree[2 * S[i3] + 1], 3); V(e3, e3.dyn_ltree, t3 - 1), V(e3, e3.dyn_dtree, r3 - 1); }(e2, e2.l_desc.max_code + 1, e2.d_desc.max_code + 1, a2 + 1), K(e2, e2.dyn_ltree, e2.dyn_dtree)), W(e2), n2 && M(e2); }, r._tr_tally = function(e2, t2, r2) { return e2.pending_buf[e2.d_buf + 2 * e2.last_lit] = t2 >>> 8 & 255, e2.pending_buf[e2.d_buf + 2 * e2.last_lit + 1] = 255 & t2, e2.pending_buf[e2.l_buf + e2.last_lit] = 255 & r2, e2.last_lit++, 0 === t2 ? e2.dyn_ltree[2 * r2]++ : (e2.matches++, t2--, e2.dyn_ltree[2 * (A[r2] + u + 1)]++, e2.dyn_dtree[2 * N(t2)]++), e2.last_lit === e2.lit_bufsize - 1; }, r._tr_align = function(e2) { P(e2, 2, 3), L(e2, m, z), function(e3) { 16 === e3.bi_valid ? (U(e3, e3.bi_buf), e3.bi_buf = 0, e3.bi_valid = 0) : 8 <= e3.bi_valid && (e3.pending_buf[e3.pending++] = 255 & e3.bi_buf, e3.bi_buf >>= 8, e3.bi_valid -= 8); }(e2); }; }, { "../utils/common": 41 }], 53: [function(e, t, r) { t.exports = function() { this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0; }; }, {}], 54: [function(e, t, r) { (function(e2) { !function(r2, n) { if (!r2.setImmediate) { var i, s, t2, a, o = 1, h2 = {}, u = false, l = r2.document, e3 = Object.getPrototypeOf && Object.getPrototypeOf(r2); e3 = e3 && e3.setTimeout ? e3 : r2, i = "[object process]" === {}.toString.call(r2.process) ? function(e4) { process.nextTick(function() { c(e4); }); } : function() { if (r2.postMessage && !r2.importScripts) { var e4 = true, t3 = r2.onmessage; return r2.onmessage = function() { e4 = false; }, r2.postMessage("", "*"), r2.onmessage = t3, e4; } }() ? (a = "setImmediate$" + Math.random() + "$", r2.addEventListener ? r2.addEventListener("message", d, false) : r2.attachEvent("onmessage", d), function(e4) { r2.postMessage(a + e4, "*"); }) : r2.MessageChannel ? ((t2 = new MessageChannel()).port1.onmessage = function(e4) { c(e4.data); }, function(e4) { t2.port2.postMessage(e4); }) : l && "onreadystatechange" in l.createElement("script") ? (s = l.documentElement, function(e4) { var t3 = l.createElement("script"); t3.onreadystatechange = function() { c(e4), t3.onreadystatechange = null, s.removeChild(t3), t3 = null; }, s.appendChild(t3); }) : function(e4) { setTimeout(c, 0, e4); }, e3.setImmediate = function(e4) { "function" != typeof e4 && (e4 = new Function("" + e4)); for (var t3 = new Array(arguments.length - 1), r3 = 0; r3 < t3.length; r3++) t3[r3] = arguments[r3 + 1]; var n2 = { callback: e4, args: t3 }; return h2[o] = n2, i(o), o++; }, e3.clearImmediate = f; } function f(e4) { delete h2[e4]; } function c(e4) { if (u) setTimeout(c, 0, e4); else { var t3 = h2[e4]; if (t3) { u = true; try { !function(e5) { var t4 = e5.callback, r3 = e5.args; switch (r3.length) { case 0: t4(); break; case 1: t4(r3[0]); break; case 2: t4(r3[0], r3[1]); break; case 3: t4(r3[0], r3[1], r3[2]); break; default: t4.apply(n, r3); } }(t3); } finally { f(e4), u = false; } } } } function d(e4) { e4.source === r2 && "string" == typeof e4.data && 0 === e4.data.indexOf(a) && c(+e4.data.slice(a.length)); } }("undefined" == typeof self ? void 0 === e2 ? this : e2 : self); }).call(this, "undefined" != typeof commonjsGlobal ? commonjsGlobal : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}); }, {}] }, {}, [10])(10); }); })(jszip_min); var jszip_minExports = jszip_min.exports; Object.defineProperty(dist, "__esModule", { value: true }); var asBlob_1 = dist.asBlob = void 0; var tslib_1 = require$$0; var internal_1 = internal; var JSZip = jszip_minExports; function asBlob(html, options) { if (options === void 0) { options = {}; } return tslib_1.__awaiter(this, void 0, void 0, function() { var zip; return tslib_1.__generator(this, function(_a) { switch (_a.label) { case 0: zip = new JSZip(); internal_1.addFiles(zip, html, options); return [4, internal_1.generateDocument(zip)]; case 1: return [2, _a.sent()]; } }); }); } asBlob_1 = dist.asBlob = asBlob; const _hoisted_1$2 = /* @__PURE__ */ vue.createElementVNode("br", null, null, -1); const _hoisted_2$2 = /* @__PURE__ */ vue.createElementVNode("br", null, null, -1); const _hoisted_3$2 = /* @__PURE__ */ vue.createElementVNode("p", { style: { "color": "red" } }, "且并非所有网站都支持,需要作者适配,若您的平台不支持可以反馈给作者", -1); const _hoisted_4$2 = ["innerHTML"]; const _hoisted_5$2 = ["innerHTML"]; const _hoisted_6$2 = ["innerHTML"]; const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({ __name: "Question", setup(__props) { const showBtn = vue.ref(0); window.addEventListener("keydown", (e) => { if (e.key === "`") { showBtn.value++; } }); const scriptId = scriptInfo$1.script.updateURL.match(/scripts\/(\d+)/)[1]; const url = `https://greasyfork.org/zh-CN/scripts/${scriptId}.json`; const ask = useAskStore(); const questionkey = Cache.match("ques_"); const clearCache = () => { Cache.matchRemove("ques_"); msg("清除成功", "success"); }; const exportDocx = async () => { const html = ask.saveQuestionData.map((item, inx) => { return `

爱问答助手

${inx + 1}、[${typeChange2(item.type)}]${item.question}

${optionsToString(item.options)}

答案:${answerFormat2(item.answer)}

`; }).join("
"); const data = await asBlob_1(html, { orientation: "portrait" }); const a = document.createElement("a"); a.href = window.URL.createObjectURL(data); a.setAttribute("download", "document.docx"); a.click(); a.remove(); }; const exportDocx1 = async () => { const questionList = Cache.matchGet("ques_") || []; const html = questionList.map((item, inx) => { return `

爱问答助手

${inx + 1}、[${typeChange2(item.type)}]${item.question}

${optionsToString(item.options)}

"); const data = await asBlob_1(html, { orientation: "portrait" }); const a = document.createElement("a"); a.href = window.URL.createObjectURL(data); a.setAttribute("download", "document.docx"); a.click(); a.remove(); }; const changeT = (item) => { return typeChange2(item.type); }; const answerFormat2 = (item) => { if (Array.isArray(item)) { return item.join("
"); } else if (typeof item === "string") { return item; } else if (typeof item === "object") { return JSON.stringify(item); } else { return item; } }; return (_ctx, _cache) => { const _component_el_alert = vue.resolveComponent("el-alert"); const _component_el_statistic = vue.resolveComponent("el-statistic"); const _component_el_col = vue.resolveComponent("el-col"); const _component_el_row = vue.resolveComponent("el-row"); const _component_el_button = vue.resolveComponent("el-button"); const _component_el_popconfirm = vue.resolveComponent("el-popconfirm"); const _component_el_table_column = vue.resolveComponent("el-table-column"); const _component_el_table = vue.resolveComponent("el-table"); const _component_el_watermark = vue.resolveComponent("el-watermark"); return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [ vue.createVNode(_component_el_alert, { type: "info", closable: false }, { default: vue.withCtx(() => [ vue.createTextVNode(" 本脚本支持将存在答案的题目收录到本地,以供后续答题检索,可减少接口请求次数,以及提高答案正确率"), _hoisted_1$2, vue.createTextVNode(" 在支持重复答题且答完题显示答案的情况下可以无需使用接口搜索答案"), _hoisted_2$2, _hoisted_3$2 ]), _: 1 }), vue.createVNode(_component_el_watermark, { content: ["爱问答助手", "AiAskHelper"] }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_row, null, { default: vue.withCtx(() => [ vue.createVNode(_component_el_col, { span: 24 }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_statistic, { title: "缓存题目数量", value: vue.unref(questionkey).length }, null, 8, ["value"]) ]), _: 1 }) ]), _: 1 }), vue.createVNode(_component_el_popconfirm, { title: "确定要清空本地缓存吗?", "confirm-button-text": "确定", "cancel-button-text": "取消", onConfirm: clearCache, "hide-after": 0 }, { reference: vue.withCtx(() => [ vue.createVNode(_component_el_button, { type: "danger" }, { default: vue.withCtx(() => [ vue.createTextVNode("清除缓存") ]), _: 1 }) ]), _: 1 }), showBtn.value > 10 ? (vue.openBlock(), vue.createBlock(_component_el_button, { key: 0, type: "primary", onClick: exportDocx }, { default: vue.withCtx(() => [ vue.createTextVNode("导出当前") ]), _: 1 })) : vue.createCommentVNode("", true), showBtn.value > 10 ? (vue.openBlock(), vue.createBlock(_component_el_button, { key: 1, type: "primary", onClick: exportDocx1 }, { default: vue.withCtx(() => [ vue.createTextVNode("导出所有") ]), _: 1 })) : vue.createCommentVNode("", true), vue.createVNode(_component_el_table, { data: vue.unref(ask).saveQuestionData, style: { "width": "100%" }, "empty-text": "当前页暂无数据" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_table_column, { prop: "type", label: "题型", formatter: changeT }), vue.createVNode(_component_el_table_column, { prop: "question", label: "题目" }, { default: vue.withCtx((scope) => [ vue.createElementVNode("div", { innerHTML: scope.row.question }, null, 8, _hoisted_4$2) ]), _: 1 }), vue.createVNode(_component_el_table_column, { prop: "options", label: "选项" }, { default: vue.withCtx((scope) => [ vue.createElementVNode("div", { innerHTML: scope.row.options.join("
") }, null, 8, _hoisted_5$2) ]), _: 1 }), vue.createVNode(_component_el_table_column, { prop: "answer", label: "答案" }, { default: vue.withCtx((scope) => [ vue.createElementVNode("div", { innerHTML: answerFormat2(scope.row.answer) }, null, 8, _hoisted_6$2) ]), _: 1 }) ]), _: 1 }, 8, ["data"]) ]), _: 1 }) ], 64); }; } }); /*! Element Plus Icons Vue v2.3.1 */ var search_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({ name: "Search", __name: "search", setup(__props) { return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704" }) ])); } }); var search_default = search_vue_vue_type_script_setup_true_lang_default; const _hoisted_1$1 = /* @__PURE__ */ vue.createElementVNode("br", null, null, -1); const _hoisted_2$1 = /* @__PURE__ */ vue.createElementVNode("p", { style: { "color": "red" } }, "当缓存题目过多时可能会出现卡顿崩溃等情况", -1); const _hoisted_3$1 = /* @__PURE__ */ vue.createElementVNode("br", null, null, -1); const _hoisted_4$1 = /* @__PURE__ */ vue.createElementVNode("br", null, null, -1); const _hoisted_5$1 = ["innerHTML"]; const _hoisted_6$1 = ["innerHTML"]; const _hoisted_7 = { key: 0 }; const _hoisted_8 = { key: 1 }; const _hoisted_9 = ["innerHTML"]; const _hoisted_10 = { key: 2 }; const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({ __name: "Preview", setup(__props) { const questionList = vue.ref(Cache.matchGet("ques_") || []); const input3 = vue.ref(""); const currentPage = vue.ref(1); const pageSize = vue.ref(10); const paginatedQuestions = vue.computed(() => { const start = (currentPage.value - 1) * pageSize.value; const end = start + pageSize.value; return questionList.value.slice(start, end); }); const totalQuestions = vue.computed(() => questionList.value.length); const getOptionIndex = (inx) => { return String.fromCharCode(65 + inx); }; const handlePageChange = (page) => { currentPage.value = page; }; const search = () => { const keyword = input3.value.trim(); if (!keyword) { questionList.value = Cache.matchGet("ques_") || []; } else { questionList.value = Cache.matchGet("ques_").filter((item) => { return item.question.includes(keyword); }); questionList.value.forEach((item) => { item.question = item.question.replace( new RegExp(keyword, "g"), `${keyword}` ); }); } currentPage.value = 1; }; return (_ctx, _cache) => { const _component_el_alert = vue.resolveComponent("el-alert"); const _component_el_button = vue.resolveComponent("el-button"); const _component_el_input = vue.resolveComponent("el-input"); const _component_el_row = vue.resolveComponent("el-row"); const _component_el_col = vue.resolveComponent("el-col"); const _component_el_card = vue.resolveComponent("el-card"); const _component_el_watermark = vue.resolveComponent("el-watermark"); const _component_el_pagination = vue.resolveComponent("el-pagination"); return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [ vue.createVNode(_component_el_alert, { type: "info", closable: false }, { default: vue.withCtx(() => [ vue.createTextVNode(" 本地题库支持预览、导出、搜索等功能。搜索仅支持题目关键词,后续会增加选项搜索等功能"), _hoisted_1$1, _hoisted_2$1 ]), _: 1 }), _hoisted_3$1, vue.createVNode(_component_el_row, null, { default: vue.withCtx(() => [ vue.createVNode(_component_el_input, { modelValue: input3.value, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => input3.value = $event), style: { "max-width": "600px" }, placeholder: "输入关键词匹配搜索", class: "input-with-select", onInput: search }, { append: vue.withCtx(() => [ vue.createVNode(_component_el_button, { icon: vue.unref(search_default) }, null, 8, ["icon"]) ]), _: 1 }, 8, ["modelValue"]) ]), _: 1 }), _hoisted_4$1, vue.createVNode(_component_el_watermark, { content: ["爱问答助手", "AiAskHelper"] }, { default: vue.withCtx(() => [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(paginatedQuestions.value, (question, inx) => { return vue.openBlock(), vue.createBlock(_component_el_card, { key: inx, class: "question-card" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_col, { span: 24 }, { default: vue.withCtx(() => [ vue.createElementVNode("div", { class: "aah_title", innerHTML: "[" + vue.unref(typeChange2)(question.type ?? "") + "]" + question.question }, null, 8, _hoisted_5$1), (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(question.options, (val, index) => { return vue.openBlock(), vue.createElementBlock("p", { key: index, style: vue.normalizeStyle(question.answer.includes(val) ? "color:green;" : ""), class: "aah_options", innerHTML: getOptionIndex(index) + ". " + val }, null, 12, _hoisted_6$1); }), 128)), Array.isArray(question.answer) && question.options.length == 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7, [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(question.answer, (ans, index) => { return vue.openBlock(), vue.createElementBlock("p", { key: index }, [ vue.createVNode(_component_el_input, { value: ans, readonly: "", style: { "width": "100%" } }, null, 8, ["value"]) ]); }), 128)) ])) : !question.options ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8, [ vue.createElementVNode("div", { innerHTML: question.answer ? question.answer : "暂无答案" }, null, 8, _hoisted_9) ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_10)) ]), _: 2 }, 1024) ]), _: 2 }, 1024); }), 128)) ]), _: 1 }), vue.createVNode(_component_el_pagination, { small: "", background: "", layout: "prev, pager, next", total: totalQuestions.value, "page-size": pageSize.value, "current-page": currentPage.value, "onUpdate:currentPage": _cache[1] || (_cache[1] = ($event) => currentPage.value = $event), onCurrentChange: handlePageChange, class: "mt-4" }, null, 8, ["total", "page-size", "current-page"]) ], 64); }; } }); const _hoisted_1 = { class: "aah_wrapper" }; const _hoisted_2 = ["src"]; const _hoisted_3 = ["id"]; const _hoisted_4 = { key: 0, class: "aah_breadcrumb" }; const _hoisted_5 = /* @__PURE__ */ vue.createElementVNode("strong", null, "home", -1); const _hoisted_6 = ["src"]; const _sfc_main = /* @__PURE__ */ vue.defineComponent({ __name: "App", setup(__props) { const appStore = useAppStore(); const askStore = useAskStore(); _unsafeWindow[key] = { "app": appStore, "ask": askStore }; document.onkeydown = function(e) { if (e.ctrlKey && e.shiftKey && (e.code == "ArrowUp" || e.code == "KeyP")) { appStore.app.showFloat = !appStore.app.showFloat; } }; const logs = () => { msg("日志组件开发中...."); }; vue.ref(false); updateCheck(); return (_ctx, _cache) => { const _component_el_button = vue.resolveComponent("el-button"); const _component_el_breadcrumb_item = vue.resolveComponent("el-breadcrumb-item"); const _component_el_breadcrumb = vue.resolveComponent("el-breadcrumb"); const _component_el_scrollbar = vue.resolveComponent("el-scrollbar"); const _component_el_dialog = vue.resolveComponent("el-dialog"); const _component_el_tooltip = vue.resolveComponent("el-tooltip"); const _component_el_config_provider = vue.resolveComponent("el-config-provider"); return vue.openBlock(), vue.createBlock(_component_el_config_provider, { namespace: "aah" }, { default: vue.withCtx(() => [ vue.createElementVNode("div", _hoisted_1, [ vue.createVNode(_component_el_dialog, { modelValue: vue.unref(appStore).app.showFloat, "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(appStore).app.showFloat = $event), title: "爱问答助手", draggable: "", overflow: "", "show-close": true, modal: false, "close-on-click-modal": false, style: vue.normalizeStyle(vue.unref(appStore).page === "ai" ? "width: 70vh;" : "width: 400px;") }, { header: vue.withCtx(({ close, titleId, titleClass }) => [ vue.createElementVNode("img", { src: vue.unref(scriptInfo$1).script.icon, alt: "icon", style: { "width": "20px", "height": "20px", "margin-right": "10px", "vertical-align": "middle" } }, null, 8, _hoisted_2), vue.createElementVNode("span", { id: titleId, class: vue.normalizeClass(titleClass) }, vue.toDisplayString(`${vue.unref(scriptInfo$1).script.name} - ${vue.unref(scriptInfo$1).script.version}`), 11, _hoisted_3), vue.createTextVNode("   "), vue.createVNode(_component_el_button, { onClick: logs, link: "" }, { default: vue.withCtx(() => [ vue.createTextVNode("log") ]), _: 1 }) ]), default: vue.withCtx(() => [ vue.createVNode(_component_el_scrollbar, { "max-height": "55vh" }, { default: vue.withCtx(() => [ vue.unref(appStore).page != "home" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [ vue.createVNode(_component_el_breadcrumb, { separator: "/" }, { default: vue.withCtx(() => [ vue.createVNode(_component_el_breadcrumb_item, { onClick: _cache[0] || (_cache[0] = ($event) => vue.unref(appStore).setPage("home")) }, { default: vue.withCtx(() => [ _hoisted_5 ]), _: 1 }), vue.createVNode(_component_el_breadcrumb_item, null, { default: vue.withCtx(() => [ vue.createTextVNode(vue.toDisplayString(vue.unref(appStore).page), 1) ]), _: 1 }) ]), _: 1 }) ])) : vue.createCommentVNode("", true), vue.unref(appStore).page == "home" ? (vue.openBlock(), vue.createBlock(Home, { key: 1 })) : vue.unref(appStore).page == "note" ? (vue.openBlock(), vue.createBlock(Note, { key: 2 })) : vue.unref(appStore).page == "Base" ? (vue.openBlock(), vue.createBlock(_sfc_main$6, { key: 3 })) : vue.unref(appStore).page == "ask" ? (vue.openBlock(), vue.createBlock(_sfc_main$5, { key: 4 })) : vue.unref(appStore).page == "api" ? (vue.openBlock(), vue.createBlock(_sfc_main$4, { key: 5 })) : vue.unref(appStore).page == "ai" ? (vue.openBlock(), vue.createBlock(Ai, { key: 6 })) : vue.unref(appStore).page == "question" ? (vue.openBlock(), vue.createBlock(_sfc_main$2, { key: 7 })) : vue.unref(appStore).page == "preview" ? (vue.openBlock(), vue.createBlock(_sfc_main$1, { key: 8 })) : vue.createCommentVNode("", true) ]), _: 1 }) ]), _: 1 }, 8, ["modelValue", "style"]), vue.withDirectives(vue.createElementVNode("div", { class: "minimized-dialog", onClick: _cache[4] || (_cache[4] = ($event) => vue.unref(appStore).app.showFloat = true) }, [ vue.createElementVNode("div", { onClick: _cache[3] || (_cache[3] = ($event) => vue.unref(appStore).app.showFloat = true) }, [ vue.createVNode(_component_el_tooltip, { content: vue.unref(appStore).app.alert, placement: "top", visible: !vue.unref(appStore).app.showFloat && vue.unref(appStore).app.alertBubble }, { default: vue.withCtx(() => [ vue.createElementVNode("img", { width: "50px", height: "50px", src: vue.unref(mini), onClick: _cache[2] || (_cache[2] = ($event) => vue.unref(appStore).app.showFloat = true) }, null, 8, _hoisted_6) ]), _: 1 }, 8, ["content", "visible"]) ]) ], 512), [ [vue.vShow, !vue.unref(appStore).app.showFloat] ]) ]) ]), _: 1 }); }; } }); const LoadVue = () => { const pinia = createPinia(); const app = vue.createApp(_sfc_main); app.use(ElementPlus, { namespace: "aah" }); app.use(pinia); app.use(shadow); app.mount( (() => { const app2 = document.createElement("div"); app2.id = "AiAskApp"; document.body.append(app2); return app2; })() ); }; comHook(); parseRuleHook(rule); const run = async () => { allowCopy(); if (!console.log || console.log.toString().length < 13 || console.log.toString().indexOf("native code") === -1) { recoverConsole(); } const not_match_url = [/\/work\/doHomeWorkNew/i, /selectWorkQuestionYiPiYue/i, /uooconline.com/i, /edu-edu.com/i]; if (_unsafeWindow !== _unsafeWindow.top && !not_match_url.some((item) => item.test(location.href))) { return; } LoadVue(); parseRule(rule); }; let loop = setInterval(() => { if (document.readyState === "complete") { run(); clearInterval(loop); } }, 100); })(Vue, ElementPlus, DOMPurify, $, markdownit, hljs);