mockforme 8.2.0 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/mockforme.client.cjs.js +2 -1
- package/dist/mockforme.client.cjs.js.LICENSE.txt +20 -0
- package/dist/mockforme.client.esm.js +2 -1
- package/dist/mockforme.client.esm.js.LICENSE.txt +20 -0
- package/dist/mockforme.client.umd.js +2 -1
- package/dist/mockforme.client.umd.js.LICENSE.txt +20 -0
- package/dist/mockforme.server.cjs.js +1 -1
- package/dist/mockforme.server.esm.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1,2 @@
|
|
|
1
|
-
var e={849:(e,t,n)=>{n.r(t),n.d(t,{default:()=>oe}),function(){try{if("undefined"!=typeof document){var e=document.createElement("style");e.appendChild(document.createTextNode('.mfm-token-form{padding:24px;text-align:center;max-width:400px;margin:0 auto;width:100%;box-sizing:border-box}.mfm-token-link-container{margin-top:15px;font-size:.8rem}.mfm-token-link-container a{color:var(--mfm-primary)}.mfm-token-container{display:flex;flex-direction:column;align-items:center;padding:16px}.mfm-token-header{position:absolute;right:0;top:0}.mfm-token-logo{margin-bottom:16px;height:30px}.mfm-token-title{margin:0 0 8px;font-size:1.25rem;font-weight:600;color:var(--mfm-text)}.mfm-token-desc{color:var(--mfm-text-dim);font-size:.9rem;margin-bottom:24px;line-height:1.5}.mfm-token-input{text-align:center;height:44px;font-size:1rem;width:100%;border:1px solid var(--mfm-border);border-radius:6px;background:var(--mfm-input-bg);color:var(--mfm-text);padding:0 12px;outline:none;transition:all .2s}.mfm-token-input:focus{border-color:var(--mfm-primary);box-shadow:0 0 0 2px #3b82f633}.mfm-token-error{color:var(--mfm-error);font-size:.8rem;margin-top:8px;display:none;min-height:20px}.mfm-token-submit{margin-top:16px;width:100%;height:44px;background:var(--mfm-primary);color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.mfm-token-submit:hover{background:var(--mfm-primary-hover)}.mfm-token-submit:disabled{opacity:.7;cursor:not-allowed}.json-viewer{font-family:Consolas,Monaco,monospace;font-size:13px;line-height:1.6;padding:12px;border-radius:6px;overflow:auto}.json-viewer-light{background:#fff;color:#1f1f1f}.json-viewer-dark{background:#1e1e1e;color:#d4d4d4}.json-node{position:relative;padding-left:18px;white-space:nowrap;-webkit-user-select:text;user-select:text}.json-children{margin-left:18px;padding-left:8px;border-left:1px dotted rgba(128,128,128,.25)}.json-toggle{position:absolute;left:0;cursor:pointer;-webkit-user-select:none;user-select:none;width:14px;height:14px;display:flex;align-items:center;justify-content:center;color:#888;font-weight:700;font-size:14px;border:1px solid rgba(128,128,128,.3);border-radius:2px;line-height:1;background:#8080800d;top:4px}.json-toggle:hover{color:#007acc;border-color:#007acc;background:#007acc0d}.json-bracket,.json-closing-bracket{display:inline-block}.json-closing-bracket{margin-left:18px}.json-key{color:#922}.json-viewer-dark .json-key{color:#9cdcfe}.json-value.string{color:#0b7500}.json-value.number{color:#1a01cc}.json-value.boolean{color:#aa0d91}.json-value.null{color:#777}.json-viewer-dark .json-value.string{color:#ce9178}.json-viewer-dark .json-value.number{color:#b5cea8}.json-viewer-dark .json-value.boolean{color:#569cd6}.json-viewer-dark .json-value.null{color:gray}.json-node:hover{background:#0000000a;border-radius:4px}.json-viewer-dark .json-node:hover{background:#ffffff0f}.json-match{background-color:#ffff0059;border-radius:3px}.json-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(128,128,128,.15)}.json-toolbar-group,.json-search-group{display:flex;align-items:center;gap:4px}.json-toolbar .json-toolbar-group button{height:20px;width:20px}.json-toolbar button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:4px;border:1px solid var(--mfm-primary);cursor:pointer;background:var(--mfm-bg);color:#555;transition:all .2s}.json-toolbar button:hover{background:#eee;border-color:#ccc;color:#000}.json-viewer-dark .json-toolbar button{background:#333;color:#bbb;border:1px solid #444}.json-viewer-dark .json-toolbar button:hover{background:#444;border-color:#555;color:#fff}.json-search-group{flex:1;max-width:200px}.json-toolbar input{flex:1;font-size:12px;height:28px;padding:0 8px;border-radius:4px;border:1px solid var(--mfm-primary);outline:none}.json-viewer-dark .json-toolbar input{background:#252525;color:#ddd;border:1px solid #444}.json-viewer::-webkit-scrollbar{width:8px;height:8px}.json-viewer::-webkit-scrollbar-thumb{background:#80808066;border-radius:4px}.json-viewer::-webkit-scrollbar-thumb:hover{background:#80808099}.json-viewer-fullscreen{position:fixed!important;top:0!important;left:1%!important;width:98%;height:100vh!important;z-index:1000000!important;display:flex!important;flex-direction:column!important;box-sizing:border-box!important;max-height:99%!important}body.json-viewer-body-fullscreen{overflow:hidden!important;height:100vh!important}.json-viewer-fullscreen .json-tree-container{flex:1!important;overflow:auto!important;max-height:500px!important}.json-viewer.json-is-searching .json-node{display:none!important}.json-viewer.json-is-searching .json-node.json-item-visible{display:block!important}.json-tree-container{overflow:auto;max-height:315px}pre{user-select:text;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text}.mfm-status.rule{color:var(--mfm-info)}.mfm-mod-pill{font-size:.7rem;color:var(--mfm-primary);background:#3b82f61a;padding:2px 6px;border-radius:10px;font-weight:500}.mfm-rule-info .mfm-rule-action{font-weight:700;color:var(--mfm-primary)}.mfm-rule-info .mfm-rule-value{color:var(--mfm-value)}.mfm-mapping-list-activity{padding:0;max-height:468px;overflow-y:scroll}.mfm-mapping-list-activity .mfm-spinner{display:flex;justify-content:center;margin:10px auto}.mfm-mapping-list-activity .mfm-request-item{padding:16px}.mfm-empty{padding:32px;text-align:center;color:var(--mfm-text-dim);font-size:.9rem}.mfm-spinner{width:24px;height:24px;border:2px solid var(--mfm-border);border-top-color:var(--mfm-primary);border-radius:50%;animation:mfm-spin .8s linear infinite}@keyframes mfm-spin{to{transform:rotate(360deg)}}.mfm-rule-info{font-size:.7rem;color:var(--mfm-text-dim);margin-top:4px;padding-left:4px}.mfm-mocked-apis-activity{padding:0;height:468px;overflow-y:scroll}.mfm-other-apis-activity{padding:0;max-height:468px}.mfm-request-item{display:flex;flex-direction:column;padding:12px 16px;border-bottom:1px solid var(--mfm-border);cursor:pointer;background:var(--mfm-bg);transition:background-color .2s ease}.mfm-request-item:hover{background:var(--mfm-hover)}.mfm-request-item.active{background:var(--mfm-active-bg)}.mfm-request-header{display:flex;justify-content:space-between;align-items:center}.mfm-flex-row{display:flex;align-items:center;gap:8px}.mfm-method{font-size:.75rem;font-weight:700;min-width:40px}.mfm-status{font-size:.8rem;margin-left:8px}.mfm-status.success{color:var(--mfm-success)}.mfm-status.error{color:var(--mfm-error)}.mfm-status.pending{color:var(--mfm-text-dim)}.mfm-url{font-size:.85rem;color:var(--mfm-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.mfm-dropdown{position:relative;display:inline-block}.mfm-dropdown-content{display:none;position:absolute;right:0;top:100%;background-color:var(--mfm-bg);min-width:160px;box-shadow:0 4px 12px #00000026;z-index:1000;border:1px solid var(--mfm-border);border-radius:6px;overflow:hidden;margin-top:4px}.mfm-dropdown-content button{color:var(--mfm-text);padding:10px 16px;text-decoration:none;display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;font-size:.85rem;transition:background .1s}.mfm-dropdown-content button:hover{background-color:var(--mfm-hover)}.mfm-btn-icon{background:none;border:none;padding:4px;cursor:pointer;color:var(--mfm-text-dim);border-radius:4px;display:flex;align-items:center;justify-content:center}.mfm-btn-icon:hover{background:var(--mfm-hover);color:var(--mfm-text)}:root{--mfm-primary: #2563eb;--mfm-primary-hover: #1d4ed8;--mfm-bg: #ffffff;--mfm-surface: #f8fafc;--mfm-surface-bright: #f1f5f9;--mfm-text: #0f172a;--mfm-text-dim: #64748b;--mfm-border: #e2e8f0;--mfm-success: #10b981;--mfm-error: #ef4444;--mfm-warning: #f59e0b;--mfm-radius: 8px;--mfm-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--mfm-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px 1px rgb(0 0 0 / .1);--mfm-transition: all .15s ease-in-out;--mfm-value: #9b2418}#mfm-root{all:initial;display:block;position:fixed;bottom:24px;right:24px;z-index:2147483647;font-family:Inter,-apple-system,system-ui,sans-serif;color:var(--mfm-text);-webkit-user-select:none;user-select:none;box-sizing:border-box;font-size:12px}#mfm-root svg{fill:transparent}#mfm-root *{box-sizing:border-box;font-family:inherit;font-size:inherit}.mfm-widget-toggle{display:flex;align-items:center;background:#fff;padding:6px;border-radius:9999px;box-shadow:var(--mfm-shadow-lg);border:1px solid var(--mfm-border);gap:2px;cursor:pointer;transition:var(--mfm-transition)}.mfm-widget-toggle.hidden{display:none!important}.mfm-toggle-section{padding:6px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:var(--mfm-transition)}.mfm-toggle-section:hover{background:var(--mfm-surface-bright)}.mfm-toggle-logo img{width:32px;height:32px}.mfm-toggle-divider{width:1px;height:24px;background:var(--mfm-border);margin:0 4px}.mfm-main-container{position:fixed;bottom:24px;right:24px;width:370px;height:650px;background:var(--mfm-bg);border:1px solid var(--mfm-border);border-radius:var(--mfm-radius);box-shadow:var(--mfm-shadow-lg);display:flex;flex-direction:column;overflow:hidden;transition:var(--mfm-transition);transform-origin:bottom right}.mfm-main-container.hidden{opacity:0;transform:scale(.95) translateY(20px);pointer-events:none}.mfm-header{padding:12px 16px;margin-bottom:5px;background:#fff;display:flex;align-items:center;justify-content:space-between}.mfm-logo img{height:25px;width:auto}.mfm-tabs-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.mfm-tabs-nav{display:flex;padding:0 16px;background:#fff;border-bottom:1px solid var(--mfm-border);gap:4px}.mfm-tab-btn{padding:10px 16px;background:transparent;border:1px solid transparent;border-bottom:none;color:var(--mfm-text-dim);cursor:pointer;font-size:15px!important;font-weight:500;margin-bottom:-1px;border-top-left-radius:4px;border-top-right-radius:4px;transition:var(--mfm-transition)}.mfm-tab-btn:hover{color:var(--mfm-text);background:var(--mfm-surface)}.mfm-tab-btn.active{color:var(--mfm-primary);background:#fff;border-color:var(--mfm-border);border-bottom:1px solid white;font-weight:700}.mfm-tab-toolbar{padding:12px 16px;border-bottom:1px solid var(--mfm-border);display:flex;flex-direction:column;gap:8px}.mfm-toolbar-row{display:flex;gap:8px;align-items:center}.mfm-input{height:36px;width:100%;padding:0 12px;border:1px solid var(--mfm-border);border-radius:6px;font-size:.875rem;outline:none}.mfm-input:focus{border-color:var(--mfm-primary);box-shadow:0 0 0 2px #2563eb1a}.mfm-btn-outline,.mfm-btn-icon{height:26px;padding:0 12px;background:transparent!important;border:none!important;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;color:var(--mfm-text-dim);transition:var(--mfm-transition);display:flex;align-items:center;justify-content:center}.back-btn{padding:0}.mfm-btn-outline:hover,.mfm-btn-icon:hover{background:var(--mfm-surface-bright)!important;color:var(--mfm-text)}.mfm-preserve-logs{display:flex;align-items:center;gap:1px;font-size:.75rem;color:var(--mfm-text-dim);cursor:pointer}.mfm-preserve-logs input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.mfm-tab-content{flex:1;background:#fff;height:468px;overflow-y:scroll}.mfm-list{display:flex;flex-direction:column;max-height:460px;overflow-y:scroll}.mfm-empty{padding:60px 20px;text-align:center;color:var(--mfm-text-dim);font-size:.875rem}.mfm-request-item{padding:6px 16px;border-bottom:1px solid var(--mfm-border);cursor:pointer;transition:var(--mfm-transition)}.mfm-request-item.active{background:#eff6ff;border-left:3px solid var(--mfm-primary)}.mfm-request-item:hover{background:var(--mfm-surface)}.mfm-request-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.mfm-method{font-size:.7rem;font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase}.mfm-method.get{color:#2563eb;background:#eff6ff}.mfm-method.post{color:#16a34a;background:#f0fdf4}.mfm-method.put{color:#d97706;background:#fffbeb}.mfm-method.delete{color:#dc2626;background:#fef2f2}.mfm-method.rule{color:#7c3aed;background:#f5f3ff}.mfm-status{font-size:.75rem;font-weight:600}.mfm-status.rule{color:#8b5cf6;background:#8b5cf61a}.mfm-status.success{color:#16a34a}.mfm-status.error{color:#dc2626}.mfm-status.pending{color:#64748b}.mfm-url{font-size:.8125rem;color:var(--mfm-text);white-space:nowrap;overflow-x:scroll;width:290px;max-width:290px;scrollbar-width:thin}.mfm-url .mfm-rule-condition{display:inline-block;margin-right:4px;border-radius:20px;font-size:inherit;background:#eee;padding:2px 5px}.mfm-url .mfm-rule-condition .mfm-rule-condition-type{font-weight:600;color:var(--mfm-primary)}.mfm-url .mfm-rule-condition .mfm-rule-condition-operator{font-weight:600;border-bottom:1px solid var(--mfm-primary);text-transform:capitalize}.mfm-url .mfm-rule-condition .mfm-rule-condition-key-value{color:var(--mfm-value)}.mfm-rule-list .mfm-url{white-space:auto!important;overflow-x:scroll!important;text-overflow:inherit!important;scrollbar-width:thin}.mfm-bottomsheet{position:absolute;top:60px;left:0;right:0;bottom:0;background:#fff;z-index:1100;display:flex;flex-direction:column;transform:translate(100%);transition:transform .25s ease-in-out}.mfm-bottomsheet.active{transform:translate(0)}.mfm-bottomsheet-header{padding:12px 16px;border-bottom:1px solid var(--mfm-border);display:flex;align-items:center;gap:5px}.mfm-bottomsheet-content{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column}.mfm-detail-tabs{display:flex;border-bottom:1px solid var(--mfm-border);margin:16px -16px;padding:0 16px;gap:8px}.mfm-detail-tab-btn{padding:8px 12px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--mfm-text-dim);font-size:.8rem;font-weight:600;cursor:pointer;transition:var(--mfm-transition)}.mfm-detail-tab-btn:hover{color:var(--mfm-text)}.mfm-detail-tab-btn.active{color:var(--mfm-primary);border-bottom-color:var(--mfm-primary)}.mfm-detail-body{flex:1}.mfm-tab-content::-webkit-scrollbar,.mfm-bottomsheet-content::-webkit-scrollbar{width:8px}.mfm-tab-content::-webkit-scrollbar-track,.mfm-bottomsheet-content::-webkit-scrollbar-track{background:transparent}.mfm-tab-content::-webkit-scrollbar-thumb,.mfm-bottomsheet-content::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px;border:2px solid white}.mfm-tab-content::-webkit-scrollbar-thumb:hover,.mfm-bottomsheet-content::-webkit-scrollbar-thumb:hover{background:#94a3b8}.mfm-detail-section{margin-bottom:24px}.mfm-detail-title{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--mfm-text-dim);margin-bottom:8px;display:flex;justify-content:space-between}.mfm-detail-content{background:var(--mfm-bg);padding:12px;border-radius:6px;font-family:JetBrains Mono,Menlo,monospace;font-size:.8rem;border:1px solid var(--mfm-primary);word-break:break-all;max-height:500px;overflow-y:auto}.mfm-copy-btn{background:var(--mfm-primary);border:none;color:#fff;padding:4px 8px;border-radius:4px;font-size:.7rem;cursor:pointer;font-weight:600}.mfm-dropdown{position:relative}.mfm-dropdown-content{display:none;position:absolute;top:100%;right:0;background:#fff;min-width:140px;box-shadow:var(--mfm-shadow-lg);border:1px solid var(--mfm-border);border-radius:8px;z-index:1000;overflow:hidden}.mfm-dropdown-content.show{display:block}.mfm-dropdown-content button{width:100%;padding:10px 16px;text-align:left;background:transparent;border:none;font-size:.8125rem;color:var(--mfm-text);cursor:pointer}.mfm-dropdown-content button:hover{background:var(--mfm-surface)}.mfm-btn-primary{background:var(--mfm-primary);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-weight:600;cursor:pointer;transition:var(--mfm-transition)}.mfm-btn-primary:hover{background:var(--mfm-primary-hover)}.mfm-header-actions{display:flex;align-items:center}.mfm-switch{position:relative;display:inline-block;width:32px;height:20px;margin-right:12px}.mfm-switch input{opacity:0;width:0;height:0}.mfm-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#cbd5e1;transition:.4s;border-radius:34px}.mfm-slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.mfm-slider{background-color:var(--mfm-primary)}input:checked+.mfm-slider:before{transform:translate(12px)}.mfm-spinner{width:14px;height:14px;border:2px solid #cbd5e1;border-bottom-color:var(--mfm-primary);border-radius:50%;display:inline-block;box-sizing:border-box;animation:mfm-rotation 1s linear infinite}@keyframes mfm-rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mfm-request-item.pending-item{cursor:default;opacity:.8}.mfm-snackbar{visibility:hidden;min-width:250px;background-color:#333;color:#fff;text-align:center;border-radius:8px;padding:12px;position:fixed;z-index:2000;left:50%;bottom:30px;transform:translate(-50%);font-size:.9rem;box-shadow:0 4px 6px #0000001a;opacity:0;transition:opacity .3s,bottom .3s}.mfm-snackbar.show{visibility:visible;opacity:1;bottom:50px}.clear-btn svg{color:var(--mfm-text-dim)}#mfm-root .mfm-bulk-mock-popup{position:absolute;top:5px;left:5px;right:5px;bottom:5px;background:#fff;z-index:1200;border-radius:var(--mfm-radius);box-shadow:var(--mfm-shadow-lg);display:none;flex-direction:column;border:1px solid var(--mfm-border)}#mfm-root .mfm-bulk-mock-popup.active{display:flex}#mfm-root .mfm-bulk-mock-container{display:flex;flex-direction:column;height:100%;padding:16px;overflow:hidden}#mfm-root .mfm-bulk-mock-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-shrink:0}#mfm-root .mfm-bulk-mock-header h3{margin:0;font-size:1.1rem;color:var(--mfm-text)}#mfm-root .mfm-bulk-mock-header-actions{display:flex;align-items:center;gap:8px}#mfm-root #mfm-bulk-save-btn{padding:6px 12px;font-size:.8rem;background:var(--mfm-primary);color:#fff;border:none;border-radius:4px;cursor:pointer}#mfm-root #mfm-bulk-save-btn:disabled{opacity:.5;background:var(--mfm-text-dim);cursor:not-allowed}#mfm-root .mfm-bulk-mock-filters{display:flex;flex-direction:column;gap:12px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--mfm-border);flex-shrink:0}#mfm-root .mfm-bulk-mock-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px}#mfm-root .mfm-bulk-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;transition:var(--mfm-transition)}#mfm-root .mfm-bulk-item:hover{background:var(--mfm-surface)}#mfm-root .mfm-bulk-item .mfm-url{flex:1;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:auto}#mfm-root .mfm-toolbar-dropdown{position:relative;display:flex;align-items:center}#mfm-root .mfm-toolbar-dropdown .mfm-dropdown-menu{display:none;position:absolute;top:100%;right:0;background:#fff;min-width:120px;box-shadow:var(--mfm-shadow-lg);border:1px solid var(--mfm-border);border-radius:8px;z-index:1001;margin-top:4px}#mfm-root .mfm-toolbar-dropdown.show .mfm-dropdown-menu{display:block}#mfm-root .mfm-dropdown-item{width:100%;padding:10px 16px;text-align:left;background:transparent;border:none;font-size:.85rem;color:var(--mfm-text);cursor:pointer}#mfm-root .mfm-dropdown-item:hover{background:var(--mfm-surface)}#mfm-root .mfm-bulk-mock-popup{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}#mfm-root .mfm-bulk-item.selected{background:#2563eb0d;border-color:#2563eb1a}#mfm-root .mfm-bulk-checkbox{width:16px;height:16px;accent-color:var(--mfm-primary)}#mfm-root .mfm-bulk-mock-header h3{font-weight:700;letter-spacing:-.01em}#mfm-root .mfm-bulk-size{font-size:.7rem;color:var(--mfm-text-dim);margin-left:auto;padding:0 8px;font-family:inherit}#mfm-root .mfm-url-container{display:flex;flex-direction:column;overflow:hidden;flex:1;gap:2px}#mfm-root .mfm-url-path{font-size:.8rem;font-weight:500;color:var(--mfm-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}#mfm-root .mfm-url-domain{font-size:.7rem;color:var(--mfm-text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.mfm-bulk-item-actions{display:flex;gap:8px;margin-left:auto}.mfm-btn-text{background:transparent;border:none;color:var(--mfm-primary);font-size:.75rem;cursor:pointer;padding:2px 6px;border-radius:4px}.mfm-btn-text:hover{background:#2563eb1a}.mfm-response-editor{position:absolute;top:0;left:0;right:0;bottom:0;background:#fff;z-index:1300;display:none;flex-direction:column;padding:16px}.mfm-response-editor.active{display:flex}.mfm-response-editor textarea{flex:1;width:100%;padding:12px;border:1px solid var(--mfm-border);border-radius:6px;font-family:JetBrains Mono,Menlo,monospace;font-size:.8rem;resize:none;margin:12px 0}.mfm-editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.mfm-editor-footer{display:flex;justify-content:flex-end;gap:12px}#mfm-root .mfm-bulk-mock-list::-webkit-scrollbar{width:6px}#mfm-root .mfm-bulk-mock-list::-webkit-scrollbar-track{background:transparent}#mfm-root .mfm-bulk-mock-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.mfm-switch-with-label{display:flex;align-items:center;gap:4px;border:1px solid var(--mfm-border);border-radius:20px;padding:2px 2px 2px 5px}.mfm-switch-with-label .mfm-label{font-weight:700}')),document.head.appendChild(e)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}}();var o=(e=>(e[e.NONE=0]="NONE",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))(o||{}),r=(e=>(e.MFM_REQ_MAPPINGS="MFM_REQ_MAPPINGS",e.MFM_REQ_SAVED_MAPPINGS="MFM_REQ_SAVED_MAPPINGS",e.MFM_DEL_CLIENT_TOKEN="MFM_DEL_CLIENT_TOKEN",e.MFM_SUBMIT_TOKEN="MFM_SUBMIT_TOKEN",e.MFM_TOGGLE_INTERCEPTION="MFM_TOGGLE_INTERCEPTION",e.MFM_RES_MAPPINGS="MFM_RES_MAPPINGS",e.MFM_REQ="MFM_REQ",e.MFM_RES="MFM_RES",e.MFM_TOKEN_ERROR="MFM_TOKEN_ERROR",e.MFM_TOKEN_API_FAILED="MFM_TOKEN_API_FAILED",e.MFM_LOG_INFO="MFM_LOG_INFO",e.MFM_LOG_WARN="MFM_LOG_WARN",e.MFM_LOG_ERROR="MFM_LOG_ERROR",e))(r||{});function s(e,t,n="*",o){window.postMessage(function(e,t,n){const o={type:e};return n&&(o.source=n),void 0!==t&&(o.payload=t),o}(e,t,o),n)}const i=new class{constructor(){this.level=o.NONE}setLevel(e){this.level=e}normalizeArgs(e){return e.map((e=>{try{return void 0===e?"undefined":"string"==typeof e||"object"==typeof e?e:String(e)}catch{return"[Unserializable]"}}))}postLog(e,t){s(e,this.normalizeArgs(t),"*","mfm-widget-logger")}info(...e){this.level<o.INFO||(console.log("[MFM Info]",...e),this.postLog(r.MFM_LOG_INFO,e))}warn(...e){this.level<o.WARN||(console.warn("[MFM Warn]",...e),this.postLog(r.MFM_LOG_WARN,e))}error(...e){this.level<o.ERROR||(console.error("[MFM Error]",...e),this.postLog(r.MFM_LOG_ERROR,e))}},a=new Map,l=new Set;let d=!1;function c(e){return e!==r.MFM_LOG_INFO&&e!==r.MFM_LOG_WARN&&e!==r.MFM_LOG_ERROR}function m(){d||"undefined"==typeof window||(window.addEventListener("message",p),d=!0)}function u(e,t){c(e)&&i.info(`[postMessage] ${e}`,t),s(e,t)}function p(e){if(!function(e){if(!e||"object"!=typeof e)return!1;if(!("type"in e))return!1;const t=e.type;return"string"==typeof t&&t.startsWith("MFM_")}(e.data))return;const t=e.data;c(t.type)&&i.info(`[onMessage] ${t.type}`,t.payload),l.forEach((e=>e(t)));const n=a.get(t.type);n&&n.forEach((e=>{e(t.payload)}))}function f(e,t){if(!e)return t;try{return JSON.parse(e)}catch{return t}}const h={state:function(){var e,t,n,o,r,s,i,a,l,d,c,m;const u=f(sessionStorage.getItem("MFM_SAVED_REQUESTS"),[]).filter((e=>{var t;return!((null==(t=e.request)?void 0:t.url)||"").includes("/3f4eae522b")})).map((e=>e.response?e:{...e,response:{statusCode:0,statusText:"Disconnected",body:"[Request terminated due to page refresh or network interruption]",headers:{},endTime:new Date(e.timestamp||Date.now()).toISOString()}})),p=f(localStorage.getItem("MFM_CONFIG"),{}),h={enabled:!0,isInterceptEnabled:"false"!==sessionStorage.getItem("MFM_IS_INTERCEPT_ENABLED"),isOpen:p.isOpen||!1,token:localStorage.getItem("MFM_TOKEN")||null,isTokenValidating:!1,isTokenLoading:!1,mappings:{apis:[],rules:[]},isMappingsLoading:!1,requests:u.filter((e=>!e.request.url.includes("mockforme.com"))),ui:{selectedTab:p.selectedTab||"MOCKED",tokenError:null,activeDropdownId:null,detailTab:p.detailTab||"HEADERS",tabConfigs:{MAPPINGS:{searchText:"",selectedRule:(null==(t=null==(e=p.tabConfigs)?void 0:e.MAPPINGS)?void 0:t.selectedRule)||null,isDetailOpen:Boolean(null==(o=null==(n=p.tabConfigs)?void 0:n.MAPPINGS)?void 0:o.isDetailOpen)},MOCKED:{searchText:"",selectedRequestId:(null==(s=null==(r=p.tabConfigs)?void 0:r.MOCKED)?void 0:s.selectedRequestId)||null,isPreserveLogs:"true"===localStorage.getItem("MFM_PRESERVE_LOGS_MOCKED"),isDetailOpen:Boolean(null==(a=null==(i=p.tabConfigs)?void 0:i.MOCKED)?void 0:a.isDetailOpen)},OTHER:{searchText:"",selectedRequestId:(null==(d=null==(l=p.tabConfigs)?void 0:l.OTHER)?void 0:d.selectedRequestId)||null,isPreserveLogs:"true"===localStorage.getItem("MFM_PRESERVE_LOGS_OTHER"),isDetailOpen:Boolean(null==(m=null==(c=p.tabConfigs)?void 0:c.OTHER)?void 0:m.isDetailOpen)}},isBulkMockOpen:!1}};return function(e){const t=e.ui.selectedTab;if("MAPPINGS"===t)return;const n=e.ui.tabConfigs[t];if(!n.isDetailOpen||!n.selectedRequestId)return;e.requests.some((e=>String(e.requestId)===String(n.selectedRequestId)))||(n.isDetailOpen=!1,n.selectedRequestId=null,e.ui.selectedTab="MOCKED")}(h),h}(),listeners:[],_notifyTimer:null,subscribe(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter((t=>t!==e))}},notify(){this._notifyTimer||(this._notifyTimer=requestAnimationFrame((()=>{var e;this._notifyTimer=null,this.listeners.forEach((e=>e(this.state))),document.dispatchEvent(new CustomEvent("MFM_STATE_CHANGE",{detail:this.state})),e=this.state,localStorage.setItem("MFM_CONFIG",JSON.stringify({isOpen:e.isOpen,selectedTab:e.ui.selectedTab,detailTab:e.ui.detailTab,activeDropdownId:e.ui.activeDropdownId,tabConfigs:{MAPPINGS:{selectedRule:e.ui.tabConfigs.MAPPINGS.selectedRule,isDetailOpen:e.ui.tabConfigs.MAPPINGS.isDetailOpen},MOCKED:{selectedRequestId:e.ui.tabConfigs.MOCKED.selectedRequestId,isDetailOpen:e.ui.tabConfigs.MOCKED.isDetailOpen},OTHER:{selectedRequestId:e.ui.tabConfigs.OTHER.selectedRequestId,isDetailOpen:e.ui.tabConfigs.OTHER.isDetailOpen}}}))})))},update(e,t){const n=e.split(".");let o=this.state;for(let e=0;e<n.length-1;e+=1){const t=o[n[e]];if(!t||"object"!=typeof t)return;o=t}o[n[n.length-1]]=t,this.notify()},set(e,t){this.state[e]=t,this.notify()}};let b=[];function g(e){var t,n;const o=null==(t=h.state.ui.tabConfigs.MOCKED)?void 0:t.isPreserveLogs,r=null==(n=h.state.ui.tabConfigs.OTHER)?void 0:n.isPreserveLogs,s=e.filter((e=>{const t="MOCKED"===e.interceptionType;return t&&o||!t&&r}));s.length>0?sessionStorage.setItem("MFM_SAVED_REQUESTS",JSON.stringify(s)):sessionStorage.removeItem("MFM_SAVED_REQUESTS")}function y(e){var t;const n=(null==(t=e.request)?void 0:t.url)||"";if(n.includes("/3f4eae522b")||n.includes("mockforme.com"))return;if(h.state.isTokenValidating)return i.info("Queuing request during token validation",e.requestId),void b.push(e);const o=function(e){const t=[...h.state.requests],n=t.findIndex((t=>t.requestId===e.requestId));if(n>-1){const o=t[n];t[n]={...o,...e,rule:e.rule||o.rule}}else t.push(e);return t.length>100?t.slice(t.length-100):t}(e);h.set("requests",o),g(o)}const v={toggleWidget(){h.update("isOpen",!h.state.isOpen)},setTab(e){h.update("ui.selectedTab",e)},deleteToken(){i.warn("Deleting Client Token"),h.update("token",null),h.update("isTokenValidating",!1),h.update("isTokenLoading",!1),h.update("ui.tokenError",null),this.closeDetails(),h.set("requests",[]),this.clearQueue(),sessionStorage.removeItem("MFM_SAVED_REQUESTS"),localStorage.removeItem("MFM_TOKEN"),u(r.MFM_DEL_CLIENT_TOKEN)},submitToken(e){e?(h.update("ui.tokenError",null),h.update("isTokenValidating",!0),h.update("isTokenLoading",!0),localStorage.setItem("MFM_TOKEN_TEMP",e),(e=>{u(r.MFM_SUBMIT_TOKEN,{token:e})})(e)):h.update("ui.tokenError","Token is required")},reloadMappings(){i.info("Reloading Mappings"),h.update("ui.tokenError",null),h.update("isMappingsLoading",!0),u(r.MFM_REQ_MAPPINGS)},fetchSavedMappings(){i.info("Fetching Saved Mappings"),u(r.MFM_REQ_SAVED_MAPPINGS)},toggleInterception(e){const t=void 0!==e?e:!h.state.isInterceptEnabled;t!==h.state.isInterceptEnabled&&(i.info("Toggling Interception:",t),h.update("isInterceptEnabled",t),sessionStorage.setItem("MFM_IS_INTERCEPT_ENABLED",String(t)),(e=>{u(r.MFM_TOGGLE_INTERCEPTION,{enabled:e})})(t))},addRequest(e){y(e)},clearRequests(){const e=h.state.ui.selectedTab,t=h.state.requests.filter((t=>("MOCKED"===t.interceptionType?"MOCKED":"OTHER")!==e));h.set("requests",t),sessionStorage.setItem("MFM_SAVED_REQUESTS",JSON.stringify(t))},setPreserveLogs(e){const t=h.state.ui.selectedTab;"MAPPINGS"!==t&&(h.update(`ui.tabConfigs.${t}.isPreserveLogs`,e),localStorage.setItem(`MFM_PRESERVE_LOGS_${t}`,String(e)),g(h.state.requests))},setSearchText(e){const t=h.state.ui.selectedTab;h.update(`ui.tabConfigs.${t}.searchText`,e)},selectRequest(e){const t=h.state.ui.selectedTab;"MAPPINGS"!==t&&(h.update(`ui.tabConfigs.${t}.selectedRequestId`,e),h.update(`ui.tabConfigs.${t}.isDetailOpen`,!0),h.update("ui.detailTab","HEADERS"))},selectRule(e){h.update("ui.tabConfigs.MAPPINGS.selectedRule",e),h.update("ui.tabConfigs.MAPPINGS.isDetailOpen",!0),h.update("ui.detailTab","HEADERS")},minimizeDetails(){const e=h.state.ui.selectedTab;h.update(`ui.tabConfigs.${e}.isDetailOpen`,!1)},closeDetails(){const e=h.state.ui.selectedTab;h.update(`ui.tabConfigs.${e}.isDetailOpen`,!1),"MAPPINGS"!==e?h.update(`ui.tabConfigs.${e}.selectedRequestId`,null):h.update("ui.tabConfigs.MAPPINGS.selectedRule",null)},resetUnavailableRequestDetails(e){h.update(`ui.tabConfigs.${e}.isDetailOpen`,!1),h.update(`ui.tabConfigs.${e}.selectedRequestId`,null),h.update("ui.selectedTab","MOCKED"),h.update("ui.detailTab","HEADERS")},setDetailTab(e){h.update("ui.detailTab",e)},setOpenDropdown(e){const t=h.state.ui.activeDropdownId;h.update("ui.activeDropdownId",t===e?null:e)},clearOpenDropdown(){h.state.ui.activeDropdownId&&h.update("ui.activeDropdownId",null)},setBulkMockOpen(e){h.update("ui.isBulkMockOpen",e)},flushQueue(){!function(){i.info("Flushing request queue",b.length);const e=[...b];b=[],e.forEach((e=>y(e)))}()},clearQueue(){i.warn("Clearing request queue"),b=[]}};function x(e,t="default",n=3e3){if(!document.body)return;let o=document.getElementById("mfm-snackbar");o||(o=document.createElement("div"),o.id="mfm-snackbar",o.className="mfm-snackbar",document.body.appendChild(o)),o.textContent=e,o.className=("mfm-snackbar show "+("error"===t?"mfm-snackbar-error":"")).trim(),setTimeout((()=>{o&&(o.className=o.className.replace("show","").trim())}),n)}function k(){const e=document.querySelector("#mfm-reload-header");e&&(e.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><polyline points="21 3 21 8 16 8"></polyline></svg>',e.style.pointerEvents="auto")}function w(e,t){i.error(`Token Error (${e})`,t),h.update("ui.tokenError",(null==t?void 0:t.message)||"Something went wrong"),h.update("isTokenLoading",!1),h.update("isMappingsLoading",!1),h.update("isTokenValidating",!1),e===r.MFM_TOKEN_ERROR&&(h.update("token",null),v.clearQueue(),localStorage.removeItem("MFM_TOKEN"),localStorage.removeItem("MFM_TOKEN_TEMP")),k(),x((null==t?void 0:t.message)||"Request failed","error")}const E="https://www.mockforme.com/assets/images/logo.png",M='<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:block;"><circle cx="12" cy="12" r="10"></circle><line x1="4.93" y1="4.93" x2="19.07" y2="19.07"></line></svg>',q='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>',S='<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"></path></svg>';class R{constructor(e){this.input=null,this.submitBtn=null,this.errorDisplay=null,this.closeBtn=null,this.unsubscribe=null,this.parent=e,this.element=document.createElement("div"),this.element.className="mfm-token-form",this.unsubscribe=h.subscribe(this.render.bind(this)),this.init()}init(){this.renderStructure(),this.bindEvents(),this.render(h.state),this.parent.appendChild(this.element)}closeTokenForm(){v.toggleWidget()}renderStructure(){this.element.innerHTML=`\n <div class="mfm-token-header">\n <button class="mfm-btn-icon" id="mfm-close-token-form" title="Close Widget">\n ${q}\n </button>\n </div>\n <div class="mfm-token-container">\n <img src="${E}" alt="MockForMe Logo" class="mfm-token-logo">\n <h3 class="mfm-token-title">Welcome to MockForMe</h3>\n <p class="mfm-token-desc">\n Paste your token below to start mocking and intercepting API requests.\n </p>\n <input type="text" class="mfm-input mfm-token-input" placeholder="Enter Client Token...">\n <div class="mfm-token-error"></div>\n <button class="mfm-token-submit">Continue</button>\n <div class="mfm-token-link-container">\n <a href="https://dashboard.mockforme.com/user/token" target="_blank" class="mfm-token-link">Get your access token</a>\n </div>\n </div>\n `,this.input=this.element.querySelector(".mfm-token-input"),this.submitBtn=this.element.querySelector(".mfm-token-submit"),this.errorDisplay=this.element.querySelector(".mfm-token-error"),this.closeBtn=this.element.querySelector("#mfm-close-token-form")}bindEvents(){this.input&&(this.input.oninput=()=>{h.state.ui.tokenError&&h.update("ui.tokenError",null)}),this.submitBtn&&(this.submitBtn.onclick=()=>{var e;const t=null==(e=this.input)?void 0:e.value.trim();t&&v.submitToken(t)}),this.closeBtn&&(this.closeBtn.onclick=()=>{this.closeTokenForm()})}render(e){if(!this.input||!this.submitBtn||!this.errorDisplay)return;const{tokenError:t}=e.ui,{isTokenLoading:n}=e;t?(this.errorDisplay.textContent=t,this.errorDisplay.style.display="block",this.input.style.borderColor="var(--mfm-error)"):(this.errorDisplay.style.display="none",this.input.style.borderColor=""),n?(this.input.disabled=!0,this.submitBtn.disabled=!0,this.submitBtn.innerHTML='<div class="mfm-spinner"></div>'):(this.input.disabled=!1,this.submitBtn.disabled=!1,this.submitBtn.innerHTML="Continue")}destroy(){this.unsubscribe&&this.unsubscribe(),this.element.remove()}}function _(e,t){if(!document.body)return;const n=document.createElement("textarea");n.value=e,n.setAttribute("readonly","true"),n.style.position="fixed",n.style.top="-9999px",n.style.left="-9999px",document.body.appendChild(n),n.focus(),n.select();try{document.execCommand("copy")&&t()}finally{n.remove()}}function T(e,t){if(C(e),!t)return;e.container.classList.add("json-is-searching");const n=new RegExp(t,"i");Array.from(e.treeContainer.querySelectorAll(".json-node")).forEach((t=>{const o=t.dataset.searchKey||"",r=t.dataset.searchValue||"";(n.test(o)||n.test(r))&&(t.classList.add("json-item-visible","json-match"),function(e){const t=e.querySelector(":scope > .json-children");if(!t)return;t.querySelectorAll(".json-node").forEach((e=>{e.classList.add("json-item-visible")})),t.style.display="block";const n=e.querySelector(":scope > .json-toggle");n&&(n.textContent="-")}(t),function(e,t){let n=t.parentElement;for(;n&&n!==e.treeContainer;){if(n.classList.contains("json-node")&&n.classList.add("json-item-visible"),n.classList.contains("json-children")){n.style.display="block";const e=n.parentElement.querySelector(":scope > .json-toggle");e&&(e.textContent="-")}n=n.parentElement}}(e,t))}))}function C(e){e.container.classList.remove("json-is-searching"),e.treeContainer.querySelectorAll(".json-match").forEach((e=>{e.classList.remove("json-match")})),e.treeContainer.querySelectorAll(".json-item-visible").forEach((e=>{e.classList.remove("json-item-visible")}))}function O(e,t,n=null,o=0){const r=document.createElement("div");if(r.className="json-node",null!==n){const e=document.createElement("span");e.className="json-key",e.textContent=`"${n}": `,r.appendChild(e),r.dataset.searchKey=String(n).toLowerCase()}if("object"==typeof t&&null!==t)return function(e,t,n,o){const r=Array.isArray(n),s=o<e.options.expandLevel,i=document.createElement("span");i.className="json-toggle",i.textContent=s?"-":"+";const a=document.createElement("span");a.className="json-bracket",a.textContent=r?"[":"{";const l=document.createElement("div");l.className="json-children",l.style.display=s?"block":"none",i.addEventListener("click",(()=>{const e="none"===l.style.display;l.style.display=e?"block":"none",i.textContent=e?"-":"+"})),t.appendChild(i),t.appendChild(a),Object.entries(n).forEach((([t,n])=>{const r=O(e,n,t,o+1);l.appendChild(r)})),t.appendChild(l);const d=document.createElement("div");d.className="json-closing-bracket",d.textContent=r?"]":"}",t.appendChild(d)}(e,r,t,o),r;const s=document.createElement("span");s.className="json-value "+typeof t;const i="string"==typeof t?`"${t}"`:String(t);return s.textContent=i,r.appendChild(s),r.dataset.searchValue=i.toLowerCase(),r}function I(e,t,n){const o=document.createElement("button");return o.innerHTML=e,o.title=t,o.onclick=n,o}class L{constructor(e,t={}){if(!e)throw new Error("Container element required");this.container=e,this.options={expandLevel:t.expandLevel??1,theme:t.theme??"light",toolbar:t.toolbar??!0,searchable:t.searchable??!0,debounceTime:t.debounceTime??300},this.data=null,this.searchTimer=null,this.container.classList.add("json-viewer",`json-viewer-${this.options.theme}`),this.options.toolbar&&function(e,t){e.toolbar=document.createElement("div"),e.toolbar.className="json-toolbar";const n=document.createElement("div");n.className="json-toolbar-group",n.appendChild(I(t.expand,"Expand All",(()=>e.expandAll()))),n.appendChild(I(t.collapse,"Collapse All",(()=>e.collapseAll()))),e.fullscreenBtn=I(t.fullscreen,"Fullscreen",(()=>e.toggleFullscreen())),e.copyBtn=I(t.copy,"Copy JSON",(()=>e.copy())),n.appendChild(e.fullscreenBtn),n.appendChild(e.copyBtn),e.toolbar.appendChild(n),e.options.searchable&&e.toolbar.appendChild(function(e,t){const n=document.createElement("div");n.className="json-search-group";const o=document.createElement("input");o.placeholder="Search...",o.oninput=t=>{clearTimeout(e.searchTimer),e.searchTimer=setTimeout((()=>{const n=t.target;T(e,n.value)}),e.options.debounceTime)};const r=I(t,"Clear Search",(()=>{o.value="",C(e)}));return n.appendChild(o),n.appendChild(r),n}(e,t.clear)),e.container.appendChild(e.toolbar)}(this,{expand:'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>',collapse:'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line></svg>',fullscreen:S,copy:'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1-2-2h9a2 2 0 0 1 2 2v1"></path></svg>',clear:M}),this.treeContainer=document.createElement("div"),this.treeContainer.className="json-tree-container",this.container.appendChild(this.treeContainer)}toggleFullscreen(){const e=this.container.classList.toggle("json-viewer-fullscreen");document.body.classList.toggle("json-viewer-body-fullscreen",e),this.fullscreenBtn&&(this.fullscreenBtn.innerHTML=e?'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3"></path></svg>':S,this.fullscreenBtn.title=e?"Minimize":"Fullscreen")}render(e){this.data=e,this.treeContainer.innerHTML="",this.root=O(this,e,null,0),this.treeContainer.appendChild(this.root)}copy(){!function(e){if(!e.data)return;const t=JSON.stringify(e.data,null,2),n=()=>{if(!e.copyBtn)return;const t=e.copyBtn.innerHTML;e.copyBtn.innerHTML="✓",setTimeout((()=>{e.copyBtn.innerHTML=t}),2e3)};navigator.clipboard&&"function"==typeof navigator.clipboard.writeText?navigator.clipboard.writeText(t).then(n).catch((()=>{_(t,n)})):_(t,n)}(this)}expandAll(){var e;(e=this).treeContainer.querySelectorAll(".json-children").forEach((e=>{e.style.display="block"})),e.treeContainer.querySelectorAll(".json-toggle").forEach((e=>{e.textContent="-"}))}collapseAll(){var e;(e=this).treeContainer.querySelectorAll(".json-children").forEach((e=>{e.style.display="none"})),e.treeContainer.querySelectorAll(".json-toggle").forEach((e=>{e.textContent="+"}))}search(e){T(this,e)}clearSearch(){C(this)}}function N(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function A(e,t,n){const o=function(e){if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return e}}(n);if(!o||"object"!=typeof o)return;const r=e.querySelector(t);r&&(r.innerHTML="",new L(r,{expandLevel:1,theme:"light",toolbar:!0,searchable:!0}).render(o))}function $(e){const t={},n=e.modificationActions;return n&&Object.entries(n).forEach((([e,n])=>{(null==n?void 0:n.enabled)&&(t[e]=n)})),{requestId:`rule_${String(e.ruleName||e.condition||"unknown")}`,interceptionType:"RULE",request:{method:"RULE",url:String(e.condition||e.ruleName||""),headers:n||{},body:t},response:{statusCode:0,body:e}}}function j(e){var t,n,o,r;const{selectedTab:s,detailTab:i,tabConfigs:a}=h.state.ui,l=a[s];if(!l||!l.isDetailOpen)return e.sheet.classList.remove("active"),e.isUrlExpanded=!1,e.responseBodyMode="TEXT",e.prevState={},e;const{req:d,isRule:c}=function(){const{selectedTab:e,tabConfigs:t}=h.state.ui,n=t[e],o=n.selectedRequestId||null,r=n.selectedRule||null;return"MAPPINGS"===e&&r?{req:$(r),isRule:!0}:"MAPPINGS"!==e&&o?{req:h.state.requests.find((e=>String(e.requestId)===String(o)))||null,isRule:!1}:{req:null,isRule:!1}}();if(!d)return"MOCKED"!==s&&"OTHER"!==s||v.resetUnavailableRequestDetails(s),e.sheet.classList.remove("active"),e;if(function(e,t){const{selectedTab:n,detailTab:o,tabConfigs:r}=h.state.ui,s=r[n];return e.prevState.selectedTab===n&&e.prevState.selectedRule===s.selectedRule&&e.prevState.selectedRequestId===s.selectedRequestId&&e.prevState.reqObj===t&&e.prevState.detailTab===o&&e.prevState.isUrlExpanded===e.isUrlExpanded&&e.prevState.responseBodyMode===e.responseBodyMode}(e,d))return e;!function(e,t){const{selectedTab:n,detailTab:o,tabConfigs:r}=h.state.ui,s=r[n];e.prevState={selectedTab:n,selectedRule:s.selectedRule,selectedRequestId:s.selectedRequestId,reqObj:t,detailTab:o,isUrlExpanded:e.isUrlExpanded,responseBodyMode:e.responseBodyMode}}(e,d),function(e,t,n){var o;const r=t.request.method||"REQ",s=n?"RULE":(null==(o=t.response)?void 0:o.statusCode)??"Pending",i=function(e,t,n,o){return e?"pending":t?"success":n?"error":o?"rule":""}("Pending"===s,"number"==typeof s&&s>=200&&s<300,"number"==typeof s&&(0===s||s>=400),n),a=0===s?"Error":s,l=n?"":`<span class="mfm-method ${String(r).toLowerCase()}" style="flex-shrink: 0;">${r}</span>`,d=e.isUrlExpanded?"normal":"nowrap",c=e.isUrlExpanded?"break-all":"normal",m=e.isUrlExpanded?"60px":"2em",u=e.isUrlExpanded?"auto":"hidden";e.infoContainer.innerHTML=`\n ${l}\n <span class="mfm-status ${i}" style="flex-shrink: 0;">${a}</span>\n <span class="mfm-url-small" title="Click to toggle full URL" style="font-family: monospace; color: var(--mfm-text-dim); overflow: hidden; text-overflow: ellipsis; white-space: ${d}; word-break: ${c}; max-height: ${m}; overflow-y: ${u}; flex: 1;">${t.request.url||""}</span>\n `}(e,d,c);const m=e.sheet.querySelector(".mfm-bottomsheet-content");if(!m)return e;const u={first:"Headers",second:"Request",third:"Response"};c&&(u.first="Configs",u.second="Modifications",u.third="Full Rule");const p=null==(t=d.response)?void 0:t.body,f="string"==typeof p?p:JSON.stringify(p||{},null,2),b=function(e){if(!e||"object"!=typeof e)return"";const t=e,n=t["content-type"]||t["Content-Type"]||t["CONTENT-TYPE"];return"string"==typeof n?n.toLowerCase():""}(null==(n=d.response)?void 0:n.headers),g=!c&&"string"==typeof p&&!function(e){try{return JSON.parse(e),!0}catch{return!1}}(p)&&(b.includes("text/html")||/<!doctype html|<html[\s>]|<body[\s>]|<\/?[a-z][\s\S]*>/i.test(p));g||(e.responseBodyMode="TEXT");let y="";if("HEADERS"===i&&(y=function(e,t,n){const o=n?"":`\n <div class="mfm-detail-section" style="margin-top:16px">\n <div class="mfm-detail-title">Response Headers</div>\n <div class="mfm-detail-content"><pre style="margin:0">${JSON.stringify(t||{},null,2)}</pre></div>\n </div>\n `;return`\n <div class="mfm-detail-section">\n <div class="mfm-detail-title">${n?"Rule Configuration":"Request Headers"}</div>\n <div class="mfm-detail-content"><pre style="margin:0">${JSON.stringify(e||{},null,2)}</pre></div>\n </div>\n ${o}\n `}(d.request.headers,null==(o=d.response)?void 0:o.headers,c)),"REQ_BODY"===i&&(y=function(e,t){return`\n <div class="mfm-detail-section">\n <div class="mfm-detail-title">${t?"Enabled Modifications":"Request Body"}</div>\n <div class="mfm-detail-content" id="mfm-req-viewer"><pre style="margin:0">${"string"==typeof e?N(e):JSON.stringify(e,null,2)}</pre></div>\n </div>\n `}(d.request.body,c)),"RES_BODY"===i&&(y=function(e){const t=e.isRule?"Complete Rule Object":"Response Body";let n="";e.isHtmlNonJsonResponse&&(n=`\n <div style="display:flex; gap:8px; margin-bottom:8px;">\n <button class="mfm-btn-outline mfm-res-mode-btn ${"TEXT"===e.responseBodyMode?"active":""}" data-mode="TEXT">Text</button>\n <button class="mfm-btn-outline mfm-res-mode-btn ${"PREVIEW"===e.responseBodyMode?"active":""}" data-mode="PREVIEW">Preview</button>\n </div>\n `);let o=`<pre style="margin:0">${N(e.responseText)}</pre>`;return e.isHtmlNonJsonResponse&&"PREVIEW"===e.responseBodyMode&&(o='<iframe id="mfm-res-preview" sandbox="" style="width:100%; min-height:280px; border:1px solid var(--mfm-border); border-radius:8px; background:#fff;"></iframe>'),`\n <div class="mfm-detail-section">\n <div class="mfm-detail-title">${t}</div>\n ${n}\n <div class="mfm-detail-content" id="mfm-res-viewer">${o}</div>\n </div>\n `}({isRule:c,isHtmlNonJsonResponse:g,responseBodyMode:e.responseBodyMode,responseText:f})),m.innerHTML=`${function(e,t){return`\n <div class="mfm-detail-tabs" style="margin-top: 0;">\n <button class="mfm-detail-tab-btn ${"HEADERS"===e?"active":""}" data-tab="HEADERS">${t.first}</button>\n <button class="mfm-detail-tab-btn ${"REQ_BODY"===e?"active":""}" data-tab="REQ_BODY">${t.second}</button>\n <button class="mfm-detail-tab-btn ${"RES_BODY"===e?"active":""}" data-tab="RES_BODY">${t.third}</button>\n </div>\n `}(i,u)}<div class="mfm-detail-body">${y}</div>`,"REQ_BODY"===i&&d.request.body&&A(e.sheet,"#mfm-req-viewer",d.request.body),"RES_BODY"===i&&(null==(r=d.response)?void 0:r.body)&&!g&&A(e.sheet,"#mfm-res-viewer",d.response.body),"RES_BODY"===i&&g&&"PREVIEW"===e.responseBodyMode){const t=e.sheet.querySelector("#mfm-res-preview");t&&(t.srcdoc=f)}return e.sheet.querySelectorAll(".mfm-detail-tab-btn").forEach((e=>{e.onclick=()=>{const t=e.dataset.tab;t&&v.setDetailTab(t)}})),e.sheet.querySelectorAll(".mfm-res-mode-btn").forEach((t=>{t.onclick=()=>{const n=t.dataset.mode;n&&n!==e.responseBodyMode&&(e.responseBodyMode=n,j(e))}})),e.sheet.classList.add("active"),e}function P(e){try{const t=new URL(e);return{path:t.pathname+(t.search||""),domain:t.hostname}}catch(t){return{path:e,domain:""}}}class D{constructor(e){this.parent=e,this.element=document.createElement("div"),this.element.className="mfm-apis-list",this.init()}init(){this.parent.appendChild(this.element)}render(e){(null==e?void 0:e.length)?this.element.innerHTML=e.map((e=>{const{path:t,domain:n}=P(e.url);return`\n <div class="mfm-request-item" data-id="${e.url}" data-type="api">\n <div class="mfm-request-header">\n <div class="mfm-flex-row" style="width: 100%;">\n <span class="mfm-method ${(e.method||"").toLowerCase()}">${e.method||"REQ"}</span>\n <div class="mfm-url-container">\n <div class="mfm-url-path" title="${e.url}">${t}</div>\n <div class="mfm-url-domain" style="max-width: 250px;">${n}</div>\n </div>\n </div>\n </div>\n </div>\n `})).join(""):this.element.innerHTML=""}}function F(e,t){const n=e.ruleName||"",o=function(e){const t=B(e);if(t.length>0){const e=t[0];if("string"==typeof e.value)return e.value}return String(e.condition||e.ruleName||"")}(e);return`${t}::${n}::${o}`}function B(e){const t=e,n=function(e){const t=e,n=t.rule;if(n&&"object"==typeof n)return n;if("string"==typeof n)try{const e=JSON.parse(n);if(e&&"object"==typeof e)return e}catch{return t}return t}(e),o=Array.isArray(t.conditions)?t.conditions:[],r=Array.isArray(n.conditions)?n.conditions:[];return o.length>0?o:r}class H{constructor(e){this.parent=e,this.element=document.createElement("div"),this.element.className="mfm-rule-list",this.init()}init(){this.parent.appendChild(this.element),this.attachEvents()}attachEvents(){this.element.onclick=e=>{var t;const n=e.target,o=n.closest(".mfm-dots-btn");if(o){e.stopPropagation();const t=o.closest(".mfm-request-item"),n=null==t?void 0:t.dataset.id;return void(n&&v.setOpenDropdown(n))}const r=n.closest("[data-action]");if(r){e.stopPropagation();const n=r.dataset.action,o=r.closest(".mfm-request-item"),s=this.readRuleIndex(o);return n&&null!==s&&this.handleAction(n,s),void(null==(t=r.parentElement)||t.classList.remove("show"))}const s=n.closest(".mfm-request-item");if(!s)return;e.stopPropagation();const i=this.readRuleIndex(s);if(null===i)return;const a=h.state.mappings.rules[i];a&&v.selectRule(a)}}readRuleIndex(e){if(!(null==e?void 0:e.dataset.ruleIndex))return null;const t=Number(e.dataset.ruleIndex);return Number.isNaN(t)?null:t}handleAction(e,t){if("view-rule-details"===e){const e=h.state.mappings.rules[t];e&&v.selectRule(e)}v.clearOpenDropdown()}render(e){if(!(null==e?void 0:e.length))return void(this.element.innerHTML="");const t=e.map(((e,t)=>F(e,t)));Array.from(this.element.querySelectorAll(".mfm-request-item")).forEach((e=>{t.includes(e.dataset.id||"")||e.remove()})),e.forEach(((e,t)=>{var n,o,r;const s=F(e,t),i=this.element.querySelector(`[data-id="${s}"]`),a=function(e){const t=B(e);let n=[];return t.length>0&&(n=t.map((e=>{const t=function(e){const t="string"==typeof e.type&&e.type.trim()?e.type:"RULE",n="string"==typeof e.operator&&e.operator.trim()?e.operator:"matches",o="string"==typeof e.key&&e.key.trim()?e.key:"",r="string"==typeof e.value&&e.value.trim()?e.value:"-";return o?`\n <span class="mfm-rule-condition-type">${t}</span>\n <span class="mfm-rule-condition-operator">${n}</span>\n <span class="mfm-rule-condition-key-value">${o}=${r}</span>\n `:`\n <span class="mfm-rule-condition-type">${t}</span>\n <span class="mfm-rule-condition-operator">${n}</span>\n <span class="mfm-rule-condition-key-value">${r}</span>\n `}(e);return t}))),n}(e),l=function(e){const{action:t,config:n}=function(e){const t=e.timingAction;if(!(null==t?void 0:t.actions)||"object"!=typeof t.actions)return{action:"",config:null};const n=Object.keys(t.actions);if(0===n.length)return{action:"",config:null};const o=t.activeAction||n[0],r=t.actions[o];return{action:o,config:r&&"object"==typeof r?r:null}}(e);if(!t||!n)return"";const o="number"!=typeof(r=n.value)||Number.isNaN(r)||r<0?0:r;var r;const s="string"==typeof n.redirectUrl&&n.redirectUrl.trim()?n.redirectUrl:"";return"delay_and_timeout"===t?`\n <span class="mfm-rule-action">Delay and Timeout</span>\n <span class="mfm-rule-value">${o}s</span>`:"delay_and_redirect"===t?s?`\n <span class="mfm-rule-action">Delay and Redirect ${o}s</span>\n <span class="mfm-rule-value">${s}</span>`:`\n <span class="mfm-rule-action">Delay and Redirect ${o}s</span>\n <span class="mfm-rule-value">${s}</span>`:"delay"===t?`\n <span class="mfm-rule-action">Delay ${o}s</span>`:`\n <span class="mfm-rule-action">${function(e){if(!e)return e;const t=e.toLowerCase().replace(/_/g," ");return t.charAt(0).toUpperCase()+t.slice(1)}(t)} ${o}s</span>`}(e),d=null==(n=e.timingAction)?void 0:n.activeAction,c=null==(r=null==(o=e.timingAction)?void 0:o.actions)?void 0:r[d||""],m=c?`${c.value||0}s (${String(d).replace(/_/g," ")})`:String(e.type||"RULE");let u=0;e.modificationActions&&Object.values(e.modificationActions).forEach((e=>{e.enabled&&(u+=1)}));const p=h.state.ui.tabConfigs.MAPPINGS.selectedRule,f=Boolean(p)&&((null==p?void 0:p.ruleName)===(e.ruleName||e.condition)||(null==p?void 0:p.condition)===(e.condition||e.ruleName)),b=h.state.ui.activeDropdownId===s,g=`${f}_${m}_${u}_${b}`,y=`\n <div class="mfm-request-item ${f?"active":""}" data-id="${s}" data-rule-index="${t}" data-type="rule">\n <div class="mfm-request-header">\n <div class="mfm-flex-row">\n <span class="mfm-method rule">RULE</span>\n <span class="mfm-status rule">${String(e.type||"RULE")}</span>\n </div>\n <div class="mfm-dropdown" style="display: flex; align-items: center; gap: 8px;">\n ${u>0?`<span class="mfm-mod-pill">${u} Actions</span>`:""}\n <button class="mfm-btn-icon mfm-dots-btn">\n <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>\n </button>\n <div class="mfm-dropdown-content ${b?"show":""}">\n <button data-action="view-rule-details">View Details</button>\n </div>\n </div>\n </div>\n <div class="mfm-url">${a.map((e=>`<span class="mfm-rule-condition">${e}</span>`)).join("")}</div>\n ${l?`<div class="mfm-rule-info">${l}</div>`:""}\n </div>\n `;if(i){if(i.dataset.hash!==g){const e=document.createElement("div");e.innerHTML=y;const t=e.firstElementChild;t&&(t.dataset.hash=g,this.element.replaceChild(t,i))}}else{const e=document.createElement("div");e.innerHTML=y;const n=e.firstElementChild;if(!n)return;n.dataset.hash=g;const o=this.element.children[t];o?this.element.insertBefore(n,o):this.element.appendChild(n)}}))}}class z{constructor(e){this.unsubscribe=null,this.parent=e,this.element=document.createElement("div"),this.element.className="mfm-mapping-list-activity",this.ruleListView=new H(this.element),this.apisListView=new D(this.element),this.init()}init(){this.parent.appendChild(this.element),this.unsubscribe=h.subscribe((()=>{"MAPPINGS"===h.state.ui.selectedTab&&this.render()})),this.render()}render(){if(h.state.isMappingsLoading)return this.element.innerHTML='<div class="mfm-spinner"></div>',this.ruleListView.element.style.display="none",void(this.apisListView.element.style.display="none");const{apis:e,rules:t}=function(){const{apis:e,rules:t}=h.state.mappings,n=(h.state.ui.tabConfigs.MAPPINGS.searchText||"").toLowerCase();return{apis:e.filter((e=>(e.url||"").toLowerCase().includes(n))),rules:t.filter((e=>(e.ruleName||"").toLowerCase().includes(n)||(e.condition||"").toLowerCase().includes(n)))}}();if(0===e.length&&0===t.length)return this.element.innerHTML='<div class="mfm-empty">No mappings found</div>',this.ruleListView.element.style.display="none",void(this.apisListView.element.style.display="none");this.element.contains(this.ruleListView.element)||(this.element.innerHTML="",this.element.appendChild(this.ruleListView.element),this.element.appendChild(this.apisListView.element)),this.ruleListView.element.style.display="block",this.apisListView.element.style.display="block",this.ruleListView.render(t),this.apisListView.render(e)}destroy(){this.unsubscribe&&this.unsubscribe(),this.element.remove()}}async function U(e){if("undefined"!=typeof navigator&&navigator.clipboard&&"function"==typeof navigator.clipboard.writeText)return void await navigator.clipboard.writeText(e);if(!(null==document?void 0:document.body))throw new Error("Clipboard unavailable: document body not ready");const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly","true"),t.style.position="fixed",t.style.top="-9999px",t.style.left="-9999px",document.body.appendChild(t),t.focus(),t.select();try{if(!document.execCommand("copy"))throw new Error("Copy command failed")}finally{t.remove()}}function G(e,t){const n=e.request.method||"GET",o=e.request.url,r=e.request.headers||{},s=(i=e.request.body)?"string"==typeof i?i:JSON.stringify(i):null;var i;if("copy-curl"===t){let e=`curl '${o}' \\\n -X ${n}`;return Object.entries(r).forEach((([t,n])=>{e+=` \\\n -H '${t}: ${String(n)}'`})),s&&(e+=` \\\n --data-raw '${s.replace(/'/g,"'\\''")}'`),e}if("copy-fetch"===t){const e={method:n,headers:r};return s&&(e.body=s),`fetch('${o}', ${JSON.stringify(e,null,2)})`}let a="const xhr = new XMLHttpRequest();\n";return a+=`xhr.open('${n}', '${o}');\n`,Object.entries(r).forEach((([e,t])=>{a+=`xhr.setRequestHeader('${e}', '${String(t)}');\n`})),a+=s?`xhr.send('${s.replace(/'/g,"\\'")}');`:"xhr.send();",a}let K=class{static render(e){var t,n;const o=void 0===(null==(t=e.response)?void 0:t.statusCode),r=o?"Pending":null==(n=e.response)?void 0:n.statusCode,s=0===r?"Error":r,i=h.state.ui.tabConfigs.MOCKED.selectedRequestId===e.requestId,a=function(e,t,n){return e?"pending":t?"success":n?"error":""}(o,!o&&"number"==typeof r&&r>=200&&r<300,!o&&"number"==typeof r&&(0===r||r>=400)),{path:l,domain:d}=P(e.request.url);return`\n <div class="mfm-request-item ${i?"active":""} ${o?"pending-item":""}" data-id="${e.requestId}" data-type="request">\n <div class="mfm-request-header">\n <div class="mfm-flex-row">\n <span class="mfm-method ${(e.request.method||"").toLowerCase()}">${e.request.method}</span>\n <span class="mfm-status ${a}">\n ${o?'<span class="mfm-spinner"></span>':s}\n </span>\n </div>\n <div class="mfm-dropdown" style="display: flex; align-items: center; gap: 8px;">\n <button class="mfm-btn-icon mfm-dots-btn">\n <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>\n </button>\n <div class="mfm-dropdown-content ${h.state.ui.activeDropdownId===e.requestId?"show":""}">\n <button data-action="copy-curl">Copy as cURL</button>\n <button data-action="copy-fetch">Copy as Fetch</button>\n <button data-action="copy-xhr">Copy as XHR</button>\n </div>\n </div>\n </div>\n <div class="mfm-url-container">\n <div class="mfm-url-path" title="${e.request.url}">${l}</div>\n <div class="mfm-url-domain">${d}</div>\n </div>\n </div>\n `}};class J{static render(e){var t,n,o,r,s,i,a;const l=e.rule?{action:e.rule.action||(null==(t=e.rule.timingAction)?void 0:t.activeAction),config:e.rule.config||(null==(r=null==(n=e.rule.timingAction)?void 0:n.actions)?void 0:r[(null==(o=e.rule.timingAction)?void 0:o.activeAction)||""])}:null,d=void 0===(null==(s=e.response)?void 0:s.statusCode),c=d?"Pending":null==(i=e.response)?void 0:i.statusCode,m=0===c?"Error":c,u=h.state.ui.tabConfigs.MOCKED.selectedRequestId===e.requestId,p=function(e,t,n){return e?"pending":t?"success":n?"error":""}(d,!d&&"number"==typeof c&&c>=200&&c<300,!d&&"number"==typeof c&&(0===c||c>=400)),{path:f,domain:b}=P(e.request.url);return`\n <div class="mfm-request-item ${u?"active":""} ${d?"pending-item":""}" data-id="${e.requestId}" data-type="request">\n <div class="mfm-request-header">\n <div class="mfm-flex-row">\n <span class="mfm-method ${(e.request.method||"").toLowerCase()}">${e.request.method}</span>\n <span class="mfm-status ${p}">\n ${d?'<span class="mfm-spinner"></span>':m}\n </span>\n </div>\n <div class="mfm-dropdown" style="display: flex; align-items: center; gap: 8px;">\n <button class="mfm-btn-icon mfm-dots-btn">\n <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>\n </button>\n <div class="mfm-dropdown-content ${h.state.ui.activeDropdownId===e.requestId?"show":""}">\n <button data-action="copy-curl">Copy as cURL</button>\n <button data-action="copy-fetch">Copy as Fetch</button>\n <button data-action="copy-xhr">Copy as XHR</button>\n </div>\n </div>\n </div>\n <div class="mfm-url-container">\n <div class="mfm-url-path" title="${e.request.url}">${f}</div>\n <div class="mfm-url-domain">${b}</div>\n </div>\n ${(null==l?void 0:l.action)?`\n <div class="mfm-rule-info">\n <span class="mfm-rule-action">${String(l.action).replace(/_/g," ")}</span>\n <span class="mfm-rule-value">${(null==(a=l.config)?void 0:a.value)||0}s</span>\n </div>`:""}\n </div>\n `}}class V{constructor(e){this.unsubscribe=null,this.parent=e,this.element=document.createElement("div"),this.element.className="mfm-mocked-apis-activity",this.init()}init(){this.parent.appendChild(this.element),this.attachEvents(),this.unsubscribe=h.subscribe((()=>{"MOCKED"===h.state.ui.selectedTab&&this.render()})),this.render()}attachEvents(){this.element.onclick=e=>{var t;const n=e.target,o=n.closest(".mfm-dots-btn");if(o){e.stopPropagation();const t=o.closest(".mfm-request-item"),n=null==t?void 0:t.dataset.id;return void(n&&v.setOpenDropdown(n))}const r=n.closest("[data-action]");if(r){e.stopPropagation();const n=r.dataset.action,o=r.closest(".mfm-request-item"),s=null==o?void 0:o.dataset.id;return n&&s&&this.handleAction(n,s),void(null==(t=r.parentElement)||t.classList.remove("show"))}const s=n.closest(".mfm-request-item");if(s){if(s.classList.contains("pending-item"))return;e.stopPropagation();const t=s.dataset.id;t&&v.selectRequest(t)}}}handleAction(e,t){const n=h.state.requests.find((e=>e.requestId===t));n&&(U(G(n,e)),v.clearOpenDropdown())}render(){const e=function(){const e=(h.state.ui.tabConfigs.MOCKED.searchText||"").toLowerCase();return h.state.requests.filter((t=>{var n,o;return"MOCKED"===t.interceptionType&&(((null==(n=t.request)?void 0:n.url)||"").toLowerCase().includes(e)||((null==(o=t.rule)?void 0:o.ruleName)||"").toLowerCase().includes(e))}))}(),t=h.state.ui.tabConfigs.MOCKED.selectedRequestId,n=h.state.ui.activeDropdownId;if(!e||0===e.length)return void(this.element.querySelector(".mfm-empty")||(this.element.innerHTML='<div class="mfm-empty">No requests found</div>'));const o=this.element.querySelector(".mfm-empty");o&&o.remove();const r=e.map((e=>e.requestId));Array.from(this.element.querySelectorAll(".mfm-request-item")).forEach((e=>{r.includes(e.dataset.id||"")||e.remove()})),e.forEach(((e,o)=>{const r=this.element.querySelector(`[data-id="${e.requestId}"]`),s=e.rule?J.render(e):K.render(e),i=t===e.requestId,a=n===e.requestId,l=`${JSON.stringify(e).length}_${i}_${a}`;if(r){if(r.dataset.hash!==l){const e=document.createElement("div");e.innerHTML=s;const t=e.firstElementChild;t&&(t.dataset.hash=l,this.element.replaceChild(t,r))}}else{const e=document.createElement("div");e.innerHTML=s;const t=e.firstElementChild;if(!t)return;t.dataset.hash=l;const n=this.element.children[o];n?this.element.insertBefore(t,n):this.element.appendChild(t)}}))}destroy(){this.unsubscribe&&this.unsubscribe(),this.element.remove()}}class Q{static render(e){var t,n;const o=void 0===(null==(t=e.response)?void 0:t.statusCode),r=o?"Pending":null==(n=e.response)?void 0:n.statusCode,s=0===r?"Error":r,i=h.state.ui.tabConfigs.OTHER.selectedRequestId===e.requestId,a=function(e,t,n){return e?"pending":t?"success":n?"error":""}(o,!o&&"number"==typeof r&&r>=200&&r<300,!o&&"number"==typeof r&&(0===r||r>=400)),{path:l,domain:d}=P(e.request.url);return`\n <div class="mfm-request-item ${i?"active":""} ${o?"pending-item":""}" data-id="${e.requestId}" data-type="request">\n <div class="mfm-request-header">\n <div class="mfm-flex-row">\n <span class="mfm-method ${(e.request.method||"").toLowerCase()}">${e.request.method}</span>\n <span class="mfm-status ${a}">\n ${o?'<span class="mfm-spinner"></span>':s}\n </span>\n </div>\n <div class="mfm-dropdown" style="display: flex; align-items: center; gap: 8px;">\n <button class="mfm-btn-icon mfm-dots-btn">\n <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>\n </button>\n <div class="mfm-dropdown-content ${h.state.ui.activeDropdownId===e.requestId?"show":""}">\n <button data-action="create-mock" style="color: var(--mfm-primary); font-weight: 600;">Create Mock</button>\n <button data-action="copy-curl">Copy as cURL</button>\n <button data-action="copy-fetch">Copy as Fetch</button>\n <button data-action="copy-xhr">Copy as XHR</button>\n </div>\n </div>\n </div>\n <div class="mfm-url-container">\n <div class="mfm-url-path" title="${e.request.url}">${l}</div>\n <div class="mfm-url-domain">${d}</div>\n </div>\n </div>\n `}}function W(e,t){const n=document.createElement("div");n.className="mfm-response-editor",n.id="mfm-shared-editor",n.innerHTML=`\n <div class="mfm-editor-header">\n <div style="display: flex; align-items: center; gap: 12px;">\n <h4 style="margin: 0; font-size: 1rem;">${t.title||"Edit Mock"}</h4>\n <div class="mfm-switch-with-label">\n <span class="mfm-label">Enable</span>\n <label class="mfm-switch" style="margin-right: 0; width: 32px; height: 18px;">\n <input type="checkbox" id="mfm-editor-enabled-switch">\n <span class="mfm-slider" style="border-radius: 34px;"></span>\n </label>\n </div>\n </div>\n <button class="mfm-btn-icon" id="mfm-editor-close" style="padding: 0; min-height: auto;">${q}</button>\n </div>\n\n <div class="mfm-url-preview" style="font-size: 0.75rem; color: var(--mfm-text-dim); margin-bottom: 8px; word-break: break-all;" id="mfm-editor-url"></div>\n\n <div style="display: flex; align-items: center; gap: 12px; margin-bottom: 8px;">\n <label style="font-size: 0.75rem; color: var(--mfm-text-dim);">Status Code:</label>\n <input type="number" id="mfm-editor-status" class="mfm-input" style="width: 80px; height: 28px; font-size: 0.8rem;" value="200">\n </div>\n\n <textarea id="mfm-editor-textarea" spellcheck="false" placeholder="Enter response body..."></textarea>\n \n <div class="mfm-editor-footer">\n <button class="mfm-btn-text" id="mfm-editor-cancel">Cancel</button>\n <button class="mfm-btn mfm-btn-primary" style="padding: 6px 16px; border-radius: 4px; font-size: 0.8rem;" id="mfm-editor-save">Apply Changes</button>\n </div>\n `,e.appendChild(n);const o=n.querySelector("#mfm-editor-textarea"),r=n.querySelector("#mfm-editor-status"),s=n.querySelector("#mfm-editor-enabled-switch"),i=n.querySelector("#mfm-editor-url"),a=n.querySelector("#mfm-editor-close"),l=n.querySelector("#mfm-editor-cancel"),d=n.querySelector("#mfm-editor-save");return a.onclick=l.onclick=()=>t.onCancel(),d.onclick=()=>{t.onSave({body:o.value,status:parseInt(r.value)||200,enabled:s.checked})},{show:(e,t)=>{i.innerText=e.request.url,o.value=t.body,r.value=t.status.toString(),s.checked=t.enabled,n.classList.add("active")},hide:()=>{n.classList.remove("active")},destroy:()=>{n.remove()}}}const X="https://api.mockforme.com",Y="/mockforme",Z={async createBulkMocks(e){const t=h.state.token;if(!t)return x("Token not found","error"),!1;const n={apis:e};try{const e=await fetch(`${X}${Y}/httpRequestBulkMock/bulk_mock`,{method:"POST",headers:{"Content-Type":"application/json",mockforme:t},body:JSON.stringify(n)}),o=await e.json();return e.ok?(x(o.message||"Mocks created successfully"),!0):(x(o.message||"Mocks creation failed","error"),console.error("Mocks creation failed",o),!1)}catch(e){return x("Error during mocks creation","error"),console.error("Error during mocks creation:",e),!1}}};class ee{constructor(e){this.unsubscribe=null,this.editor=null,this.parent=e,this.element=document.createElement("div"),this.element.className="mfm-other-apis-activity",this.init()}init(){this.parent.appendChild(this.element),this.attachEvents(),this.unsubscribe=h.subscribe((()=>{"OTHER"===h.state.ui.selectedTab&&this.render()})),this.render()}attachEvents(){this.element.onclick=e=>{var t;const n=e.target,o=n.closest(".mfm-dots-btn");if(o){e.stopPropagation();const t=o.closest(".mfm-request-item"),n=null==t?void 0:t.dataset.id;return void(n&&v.setOpenDropdown(n))}const r=n.closest("[data-action]");if(r){e.stopPropagation();const n=r.dataset.action,o=r.closest(".mfm-request-item"),s=null==o?void 0:o.dataset.id;return"create-mock"===n&&s?this.openMockEditor(s):n&&s&&this.handleAction(n,s),void(null==(t=r.parentElement)||t.classList.remove("show"))}const s=n.closest(".mfm-request-item");if(s){if(s.classList.contains("pending-item"))return;e.stopPropagation();const t=s.dataset.id;t&&v.selectRequest(t)}}}handleAction(e,t){const n=h.state.requests.find((e=>e.requestId===t));n&&(U(G(n,e)),v.clearOpenDropdown())}openMockEditor(e){var t,n,o,r,s;const i=h.state.requests.find((t=>t.requestId===e));if(!i)return;this.editor||(this.editor=W(this.parent,{onSave:e=>this.handleSaveMock(i,e),onCancel:()=>this.editor.hide()}));const a={body:"string"==typeof(null==(t=i.response)?void 0:t.body)?i.response.body:JSON.stringify((null==(n=i.response)?void 0:n.body)||{},null,2),status:"Error"===(null==(o=i.response)?void 0:o.statusCode)||"error"===(null==(r=i.response)?void 0:r.statusCode)?504:Number(null==(s=i.response)?void 0:s.statusCode)||200,enabled:!0};this.editor.show(i,a),v.clearOpenDropdown()}async handleSaveMock(e,t){await Z.createBulkMocks([{url:e.request.url,method:e.request.method,body:e.request.body||{},status:t.status,response:t.body,headers:JSON.stringify(e.request.headers||{}),enabled:t.enabled}])&&(this.editor.hide(),setTimeout((()=>v.reloadMappings()),1e3))}render(){const e=function(){const e=(h.state.ui.tabConfigs.OTHER.searchText||"").toLowerCase();return h.state.requests.filter((t=>{var n;return"MOCKED"!==t.interceptionType&&((null==(n=t.request)?void 0:n.url)||"").toLowerCase().includes(e)}))}(),t=h.state.ui.tabConfigs.OTHER.selectedRequestId,n=h.state.ui.activeDropdownId;if(!e||0===e.length)return void(this.element.querySelector(".mfm-empty")||(this.element.innerHTML='<div class="mfm-empty">No requests found</div>'));const o=this.element.querySelector(".mfm-empty");o&&o.remove();const r=e.map((e=>e.requestId));Array.from(this.element.querySelectorAll(".mfm-request-item")).forEach((e=>{r.includes(e.dataset.id||"")||e.remove()})),e.forEach(((e,o)=>{const r=this.element.querySelector(`[data-id="${e.requestId}"]`),s=Q.render(e),i=t===e.requestId,a=n===e.requestId,l=`${JSON.stringify(e).length}_${i}_${a}`;if(r){if(r.dataset.hash!==l){const e=document.createElement("div");e.innerHTML=s;const t=e.firstElementChild;t&&(t.dataset.hash=l,this.element.replaceChild(t,r))}}else{const e=document.createElement("div");e.innerHTML=s;const t=e.firstElementChild;if(!t)return;t.dataset.hash=l;const n=this.element.children[o];n?this.element.insertBefore(t,n):this.element.appendChild(t)}}))}destroy(){this.unsubscribe&&this.unsubscribe(),this.editor&&this.editor.destroy(),this.element.remove()}}function te(e){const t=document.createElement("div");t.id="mfm-root";const n=document.createElement("div");n.className="mfm-widget-toggle",n.innerHTML='\n <div class="mfm-toggle-section mfm-toggle-reload" title="Reload Mappings"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><polyline points="21 3 21 8 16 8"></polyline></svg></div>\n <div class="mfm-toggle-divider"></div>\n <div class="mfm-toggle-section mfm-toggle-logo" title="MockForMe"><img src="https://ik.imagekit.io/mfm/static-collection/mfm-48x48.png" alt="Logo"></div>\n ';const o=document.createElement("div");o.className="mfm-main-container hidden",t.appendChild(n),t.appendChild(o),e.appendChild(t),function(e,t){const n=(t,n)=>{const o=e.getBoundingClientRect(),r=o.width||60,s=o.height||60,i=window.innerWidth-r,a=window.innerHeight-s,l=Math.max(0,Math.min(t,i)),d=Math.max(0,Math.min(n,a));e.style.left=`${l}px`,e.style.top=`${d}px`,e.style.bottom="auto",e.style.right="auto"},o=()=>{const e=localStorage.getItem("MFM_POSITION");if(e)try{const t=JSON.parse(e);"number"==typeof t.xPercent&&"number"==typeof t.yPercent&&n(t.xPercent*window.innerWidth,t.yPercent*window.innerHeight)}catch{}};o();let r=!1,s=0,i=0,a=0,l=0;const d=n=>{const o="touchstart"===n.type,d=o?n.touches[0].clientX:n.clientX,u=o?n.touches[0].clientY:n.clientY;r=!0,s=d,i=u;const p=e.getBoundingClientRect();a=p.left,l=p.top,t.dataset.moved="false",document.addEventListener("mousemove",c),document.addEventListener("mouseup",m),document.addEventListener("touchmove",c,{passive:!1}),document.addEventListener("touchend",m),e.style.transition="none"},c=e=>{if(!r)return;const o="touchmove"===e.type;o&&e.cancelable&&e.preventDefault();const d=o?e.touches[0].clientX:e.clientX,c=o?e.touches[0].clientY:e.clientY,m=d-s,u=c-i;(Math.abs(m)>5||Math.abs(u)>5)&&(t.dataset.moved="true"),n(a+m,l+u)},m=()=>{if(!r)return;r=!1,document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",m),document.removeEventListener("touchmove",c),document.removeEventListener("touchend",m),e.style.transition="";const t=e.getBoundingClientRect();((e,t)=>{const n=e/window.innerWidth,o=t/window.innerHeight;localStorage.setItem("MFM_POSITION",JSON.stringify({xPercent:n,yPercent:o}))})(t.left,t.top)};t.addEventListener("mousedown",d),t.addEventListener("touchstart",d,{passive:!1}),window.addEventListener("resize",o),window.addEventListener("orientationchange",o)}(t,n),function(e){const t=document.createElement("div");t.className="mfm-header",t.innerHTML=`\n <div class="mfm-logo">\n <img src="${E}" height="32" alt="MockForMe Logo">\n </div>\n <div class="mfm-header-actions">\n <label class="mfm-switch" title="Toggle Mock Interception">\n <input type="checkbox" id="mfm-intercept-toggle" ${h.state.isInterceptEnabled?"checked":""}>\n <span class="mfm-slider"></span>\n </label>\n <button class="mfm-btn-icon" id="mfm-reload-header" title="Reload Mappings">\n <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><polyline points="21 3 21 8 16 8"></polyline></svg>\n </button>\n <button class="mfm-btn-icon" id="mfm-delete-token" title="Delete Token">\n <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-trash-2"><path d="M3 6h18"></path><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"></path><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"></path><line x1="10" y1="11" x2="10" y2="17"></line><line x1="14" y1="11" x2="14" y2="17"></line></svg>\n </button>\n <button class="mfm-btn-icon" id="mfm-close-widget" title="Close Widget">\n ${q}\n </button>\n </div>\n `,e.appendChild(t);const n=t.querySelector("#mfm-intercept-toggle"),o=t.querySelector("#mfm-reload-header"),r=t.querySelector("#mfm-delete-token"),s=t.querySelector("#mfm-close-widget");n&&(n.onchange=()=>{v.toggleInterception()}),o&&(o.onclick=()=>{o.innerHTML='<div class="mfm-spinner"></div>',o.style.pointerEvents="none",v.reloadMappings()}),r&&(r.onclick=()=>{v.deleteToken()}),s&&(s.onclick=()=>{v.toggleWidget()}),h.subscribe((e=>{n&&(n.checked=e.isInterceptEnabled)}))}(o),new R(o),function(e){var t,n;const o=document.createElement("div");o.className="mfm-tabs-container";const r=document.createElement("div");r.className="mfm-tabs-nav",[{id:"MAPPINGS",label:"Mappings"},{id:"MOCKED",label:"Mocked"},{id:"OTHER",label:"Others"}].forEach((e=>{const t=document.createElement("button");t.className="mfm-tab-btn "+(h.state.ui.selectedTab===e.id?"active":""),t.innerText=e.label,t.onclick=()=>{v.setTab(e.id)},t.dataset.tabId=e.id,r.appendChild(t)}));const s=document.createElement("div");s.className="mfm-tab-toolbar",s.innerHTML=`\n <div class="mfm-toolbar-row">\n <input type="text" class="mfm-input" id="mfm-search" placeholder="Search requests..." value="${(null==(t=h.state.ui.tabConfigs[h.state.ui.selectedTab])?void 0:t.searchText)||""}">\n <label class="mfm-preserve-logs">\n <input type="checkbox" id="mfm-preserve-check" ${(null==(n=h.state.ui.tabConfigs[h.state.ui.selectedTab])?void 0:n.isPreserveLogs)?"checked":""}>\n Preserve\n </label>\n <button class="mfm-btn-outline clear-btn" id="mfm-clear-btn" title="Clear requests">\n ${M}\n </button>\n <div class="mfm-dropdown mfm-toolbar-dropdown" id="mfm-toolbar-dropdown">\n <button class="mfm-btn-outline dots-btn" id="mfm-dots-btn" title="More options">\n <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1.5"></circle><circle cx="12" cy="5" r="1.5"></circle><circle cx="12" cy="19" r="1.5"></circle></svg>\n </button>\n <div class="mfm-dropdown-menu">\n <button class="mfm-dropdown-item" id="mfm-bulk-mock-btn">Bulk Mock</button>\n </div>\n\n\n </div>\n </div>\n `;const i=document.createElement("div");i.className="mfm-tab-content",o.appendChild(r),o.appendChild(s),o.appendChild(i),e.appendChild(o);const a=new z(i),l=new V(i),d=new ee(i),c=s.querySelector("#mfm-search"),m=s.querySelector("#mfm-clear-btn"),u=s.querySelector("#mfm-preserve-check"),p=s.querySelector(".mfm-preserve-logs");c&&(c.oninput=e=>{const t=e.target;v.setSearchText(t.value)}),m&&(m.onclick=()=>{v.clearRequests()}),u&&(u.onchange=e=>{const t=e.target;v.setPreserveLogs(Boolean(t.checked))});const f=s.querySelector("#mfm-dots-btn"),b=s.querySelector("#mfm-bulk-mock-btn");f&&(f.onclick=e=>{e.stopPropagation(),v.setOpenDropdown("toolbar")}),b&&(b.onclick=()=>{v.setBulkMockOpen(!0),v.clearOpenDropdown()});const g=()=>{const e=h.state.ui.selectedTab,t=h.state.ui.tabConfigs[e];if(r.querySelectorAll(".mfm-tab-btn").forEach((t=>{t.classList.toggle("active",t.dataset.tabId===e)})),c){const e=(null==t?void 0:t.searchText)||"";c.value!==e&&(c.value=e)}const n="MAPPINGS"===e;m&&(m.style.display=n?"none":"block"),p&&(p.style.display=n?"none":"flex");const o=s.querySelector("#mfm-toolbar-dropdown");if(o){o.style.display="OTHER"===e?"block":"none",o.classList.toggle("show","toolbar"===h.state.ui.activeDropdownId);const t=o.querySelector("#mfm-bulk-mock-btn");t&&(t.style.display="block")}!n&&u&&(u.checked=Boolean(null==t?void 0:t.isPreserveLogs)),a.element&&(a.element.style.display="MAPPINGS"===e?"block":"none"),l.element&&(l.element.style.display="MOCKED"===e?"block":"none"),d.element&&(d.element.style.display="OTHER"===e?"block":"none")};g(),h.subscribe((()=>g()))}(o),function(e){const t=document.createElement("div");t.className="mfm-bottomsheet",t.id="mfm-details-sheet",t.innerHTML='\n <div class="mfm-bottomsheet-header" style="justify-content: flex-start; gap: 8px; padding-right: 12px;">\n <button class="mfm-btn-icon back-btn" id="mfm-close-sheet" title="Back"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"></polyline></svg></button>\n <div id="mfm-header-info" style="display: flex; align-items: baseline; gap: 6px; overflow: hidden; flex: 1; cursor: pointer;"></div>\n </div>\n <div class="mfm-bottomsheet-content"></div>\n ',e.appendChild(t);const n=t.querySelector("#mfm-close-sheet"),o=t.querySelector("#mfm-header-info");if(!n||!o)return;n.onclick=e=>{e.stopPropagation(),v.closeDetails()};let r=!1,s="TEXT",i={};const a=()=>{const e=j({sheet:t,infoContainer:o,isUrlExpanded:r,responseBodyMode:s,prevState:i});r=e.isUrlExpanded,s=e.responseBodyMode,i=e.prevState};o.onclick=()=>{r=!r,a()},h.subscribe(a),a()}(o),function(e){const t=document.createElement("div");t.className="mfm-bulk-mock-popup",t.id="mfm-bulk-mock-popup";let n=new Set,o=!1,r="",s=!1,i=new Map,a=new Map,l=new Map,d=null,c=null;const m=()=>{const{isBulkMockOpen:e}=h.state.ui;if(!e)return s&&k(),void t.classList.remove("active");s||(u(),s=!0),f(),p()},u=()=>{t.innerHTML=`\n <div class="mfm-bulk-mock-container">\n <div class="mfm-bulk-mock-header">\n <h3>Bulk Mock APIs</h3>\n <div class="mfm-bulk-mock-header-actions">\n <button class="mfm-btn mfm-btn-primary" id="mfm-bulk-save-btn" disabled style="padding: 6px 12px; font-size: 0.8rem; border-radius: 4px;">\n Save Mock\n </button>\n <button class="mfm-btn-icon" id="mfm-bulk-close-btn">${q}</button>\n </div>\n </div>\n <div class="mfm-bulk-mock-filters">\n <input type="text" class="mfm-input" id="mfm-bulk-search" placeholder="Search APIs..." value="">\n <div style="display: flex; align-items: center; justify-content: space-between;">\n <label class="mfm-checkbox-label" style="display: flex; align-items: center; gap: 4px; font-size: 0.75rem; color: var(--mfm-text-dim); cursor: pointer;">\n <input type="checkbox" id="mfm-bulk-domain-filter" style="margin: 0;">\n Current/Sub domain only\n </label>\n <span id="mfm-bulk-selection-stats" style="font-size: 0.75rem; color: var(--mfm-text-dim);">Selected: 0/10 - 0.0 KB</span>\n </div>\n </div>\n <div class="mfm-bulk-mock-list" id="mfm-bulk-list-container">\n </div>\n </div>\n\n <div class="mfm-bulk-mock-list" id="mfm-bulk-list-container">\n </div>\n </div>\n `,t.classList.add("active"),w()},p=()=>{const e=t.querySelector("#mfm-bulk-save-btn");e&&(e.disabled=0===n.size,e.innerText="Save Mock");const o=t.querySelector("#mfm-bulk-selection-stats");if(o){const e=(()=>{const e={apis:h.state.requests.filter((e=>n.has(e.requestId))).map((e=>{var t,n,o;const r=i.get(e.requestId)??("string"==typeof(null==(t=e.response)?void 0:t.body)?e.response.body:JSON.stringify((null==(n=e.response)?void 0:n.body)||{}));let s=a.get(e.requestId);if(void 0===s){const t=null==(o=e.response)?void 0:o.statusCode;"Error"===t||"error"===t?s=504:null!=t?(s=Number(t),isNaN(s)&&(s=504)):s=200}return{url:e.request.url,method:e.request.method,body:e.request.body||{},status:s,response:r,headers:JSON.stringify(e.request.headers||{}),enabled:l.get(e.requestId)||!1}}))};return new Blob([JSON.stringify(e)]).size})(),t=e>1048576?`${(e/1048576).toFixed(2)} MB`:`${(e/1024).toFixed(1)} KB`;o.innerText=`Selected: ${n.size}/10 - ${t}`,e>1048576?(o.style.color="var(--mfm-error, #ef4444)",o.style.fontWeight="600"):(o.style.color="var(--mfm-text-dim)",o.style.fontWeight="normal")}},f=()=>{const e=window.location.hostname,s=h.state.requests.filter((e=>"OTHER"===e.interceptionType)).filter((t=>{if(!t.request.url.toLowerCase().includes(r.toLowerCase()))return!1;if(o)try{const n=new URL(t.request.url);return n.hostname===e||n.hostname.endsWith("."+e)}catch(e){return!1}return!0})),a=t.querySelector("#mfm-bulk-list-container");a&&(a.innerHTML=`\n ${0===s.length?'<div class="mfm-empty">No APIs found</div>':""}\n ${s.map((e=>{var t,o;const r=n.has(e.requestId),s=e.request.method||"GET",a=i.has(e.requestId),l=i.get(e.requestId)??("string"==typeof(null==(t=e.response)?void 0:t.body)?e.response.body:JSON.stringify((null==(o=e.response)?void 0:o.body)||{})),d=new Blob([l]).size,c=d>1048576?`${(d/1048576).toFixed(2)} MB`:`${(d/1024).toFixed(1)} KB`,{path:m,domain:u}=P(e.request.url);return`\n <div class="mfm-bulk-item ${r?"selected":""}" data-id="${e.requestId}">\n <input type="checkbox" class="mfm-bulk-checkbox" ${r?"checked":""} ${!r&&n.size>=10?"disabled":""}>\n <span class="mfm-method ${String(s).toLowerCase()}">${s}</span>\n <div class="mfm-url-container">\n <div class="mfm-url-path" title="${e.request.url}">${m}</div>\n <div class="mfm-url-domain">${u}</div>\n </div>\n <span class="mfm-bulk-size">${c}</span>\n ${r?`\n <div class="mfm-bulk-item-actions">\n <button class="mfm-btn-text edit-response-btn" data-id="${e.requestId}">\n ${a?"Edited":"Edit Response"}\n </button>\n </div>\n `:""}\n </div>\n `})).join("")}\n `,a.querySelectorAll(".mfm-bulk-item").forEach((e=>{const t=e.dataset.id,n=e.querySelector(".mfm-bulk-checkbox"),o=e.querySelector(".edit-response-btn");n&&(n.onclick=e=>{e.stopPropagation(),b(t,n.checked)}),o&&(o.onclick=e=>{e.stopPropagation(),g(t)}),e.onclick=o=>{if((o.target===e||o.target.classList.contains("mfm-url")||o.target.classList.contains("mfm-method"))&&n&&!n.disabled){const e=!n.checked;n.checked=e,b(t,e)}}})))},b=(e,t)=>{t?n.size<10&&n.add(e):(n.delete(e),i.delete(e)),p(),f()},g=e=>{var n,o,r;const s=h.state.requests.find((t=>t.requestId===e));if(!s)return;d=e,c||(c=W(t,{onSave:e=>y(e),onCancel:()=>c.hide()}));let m=i.get(e);void 0===m&&(m="string"==typeof(null==(n=s.response)?void 0:n.body)?s.response.body:JSON.stringify((null==(o=s.response)?void 0:o.body)||{},null,2));let u=a.get(e);if(void 0===u){const e=null==(r=s.response)?void 0:r.statusCode;u="Error"===e||"error"===e?504:Number(e)||200}c.show(s,{body:m,status:u,enabled:l.get(e)||!1})},y=e=>{d&&(i.set(d,e.body),a.set(d,e.status),l.set(d,e.enabled),x("Changes updated locally"),f(),c.hide())},k=()=>{s=!1,r="",o=!1,n.clear(),i.clear(),a.clear(),l.clear(),d=null},w=()=>{const e=t.querySelector("#mfm-bulk-close-btn"),s=t.querySelector("#mfm-bulk-save-btn"),i=t.querySelector("#mfm-bulk-search"),a=t.querySelector("#mfm-bulk-domain-filter"),l=t.querySelector("#mfm-editor-close"),d=t.querySelector("#mfm-editor-cancel"),m=t.querySelector("#mfm-editor-save");e&&(e.onclick=()=>{v.setBulkMockOpen(!1)}),s&&(s.onclick=async()=>{const e=h.state.requests.filter((e=>n.has(e.requestId)));await E(e)}),i&&(i.oninput=e=>{r=e.target.value,f()}),a&&(a.onchange=e=>{o=e.target.checked,f()}),l&&(l.onclick=()=>null==c?void 0:c.hide()),d&&(d.onclick=()=>null==c?void 0:c.hide()),m&&(m.onclick=()=>y({body:t.querySelector("#mfm-editor-textarea").value,status:parseInt(t.querySelector("#mfm-editor-status").value)||200,enabled:t.querySelector("#mfm-editor-enabled-switch").checked}))},E=async e=>{const t=h.state.token;if(!t)return void x("Token not found","error");const n={apis:e.map((e=>{var t,n,o;let r=i.get(e.requestId);void 0===r&&(r="string"==typeof(null==(t=e.response)?void 0:t.body)?e.response.body:JSON.stringify((null==(n=e.response)?void 0:n.body)||{}));let s=a.get(e.requestId);if(void 0===s){let t=null==(o=e.response)?void 0:o.statusCode;s=200,"Error"===t||"error"===t?s=504:null!=t&&(s=Number(t),isNaN(s)&&(s=504))}return{url:e.request.url,method:e.request.method,body:e.request.body||{},status:s,response:r,headers:JSON.stringify(e.request.headers||{}),enabled:l.get(e.requestId)||!1}}))},o=JSON.stringify(n),r=new Blob([o]).size;if(r>1048576)x(`Payload size (${(r/1048576).toFixed(2)}MB) exceeds 1MB limit.`,"error");else try{const e=await fetch(`${X}${Y}/httpRequestBulkMock/bulk_mock`,{method:"POST",headers:{"Content-Type":"application/json",mockforme:t},body:o}),n=await e.json();e.ok?(v.setBulkMockOpen(!1),x(n.message||"Bulk mocks created successfully"),setTimeout((()=>{v.reloadMappings()}),2e3)):(x(n.message||"Bulk upload failed","error"),console.error("Bulk upload failed",n))}catch(e){x("Error during bulk upload","error"),console.error("Error during bulk upload:",e)}};e.appendChild(t),h.subscribe(m),m()}(o);const r=e=>{const t=Boolean(e.token),r=o.querySelector(".mfm-header"),s=o.querySelector(".mfm-tabs-container"),i=o.querySelector(".mfm-token-form");r&&(r.style.display=t?"flex":"none"),s&&(s.style.display=t?"block":"none"),i&&(i.style.display=t?"none":"block"),o.classList.toggle("hidden",!e.isOpen),n.classList.toggle("hidden",e.isOpen)};h.subscribe(r),r(h.state);const s=n.querySelector(".mfm-toggle-reload"),i=n.querySelector(".mfm-toggle-logo");return s&&(s.onclick=e=>{e.stopPropagation(),"true"!==n.dataset.moved&&(h.state.token?v.reloadMappings():h.update("isOpen",!0))}),i&&(i.onclick=e=>{e.stopPropagation(),"true"!==n.dataset.moved&&(h.state.token?v.toggleWidget():h.update("isOpen",!0))}),window.addEventListener("click",(e=>{const t=e.target;(null==t?void 0:t.closest(".mfm-dropdown"))||v.clearOpenDropdown()})),t}function ne(e){i.info("Initializing MockForMe Widget");let t=null;const n=e=>{e&&(t=te(e))},o=()=>e||document.body;o()?n(o()):"loading"===document.readyState?document.addEventListener("DOMContentLoaded",(()=>n(o()))):document.body&&n(document.body),m();const s={[r.MFM_RES_MAPPINGS]:e=>{if(!e)return;const t=h.state.isMappingsLoading;if(e.token&&!h.state.token&&(i.info("Setting token from incoming MFM_RES_MAPPINGS"),h.update("token",e.token),localStorage.setItem("MFM_TOKEN",e.token)),h.set("mappings",e),h.update("isMappingsLoading",!1),h.state.isTokenValidating){const e=localStorage.getItem("MFM_TOKEN_TEMP")||h.state.token;e&&(h.update("token",e),localStorage.setItem("MFM_TOKEN",e),localStorage.removeItem("MFM_TOKEN_TEMP")),h.update("isTokenValidating",!1),h.update("isTokenLoading",!1),v.flushQueue()}k(),t&&!h.state.ui.tokenError&&x("Mappings reloaded successfully")},[r.MFM_REQ]:e=>{e&&(i.info("Captured Request",e),v.addRequest(e))},[r.MFM_RES]:e=>{e&&(i.info("Captured Response",e),v.addRequest(e))},[r.MFM_TOKEN_ERROR]:e=>{w(r.MFM_TOKEN_ERROR,e)},[r.MFM_TOKEN_API_FAILED]:e=>{w(r.MFM_TOKEN_API_FAILED,e)},[r.MFM_TOGGLE_INTERCEPTION]:e=>{e&&"boolean"==typeof e.enabled&&v.toggleInterception(e.enabled)}},l=Object.keys(s).map((e=>function(e,t){m(),a.has(e)||a.set(e,new Set);const n=a.get(e);return n.add(t),()=>{n.delete(t)}}(e,(t=>{(0,s[e])(t)}))));return h.state.token&&v.fetchSavedMappings(),{destroy(){l.forEach((e=>e())),t&&t.remove()},actions:v}}const oe={run:ne,initMFM:ne,actions:v};window.MFM=oe}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};const o=()=>"undefined"!=typeof process&&null!=process.versions?.node,r=e=>{try{return e?e.toLowerCase():e}catch(e){return console.log(e),null}},s=(e,t)=>{const n=e.split("/"),o=t.split("/");if(n.length!==o.length)return!1;for(let e=0;e<n.length;e++){const t=n[e];if(t!==o[e]&&":any"!==t)return!1}return!0};let i=[];function a(e){i=e}function l(){return i}function d(e,t="get"){const n=e=>e.startsWith("/")?e:`/${e}`,o=n(e);for(const a of i)if(r(a.apiMethod)===r(t)){const r=n(a.apiEndpoint);if(r===o||s(r,o)){console.log(`[MockForMe] Match Found: ${t} ${e} -> ${a.apiEndpoint}`);const n={url:e,method:a.apiMethod,_ack:a._ack||null};return a._ri_&&(n._ri_=a._ri_),n}}return null}const c="JAVASCRIPT",m="CHROME_EXTENSION",u="mfmver",p="mockforme",f="8.2.0",h="https://api.mockforme.com",b=`${h}/mockforme`,g=`${h}/gateway/3f4eae522b`;let y=null,v=null,x=null,k=[];function w({_o:e,mk:t,_mck:n,_rules:o}){y=e,v=t,x=n,k=o}function E(){return k}function M(){return`${b}/${y}/${v}`}function q(){return x}const S=e=>{try{return new URL(e,window.location.origin).toString()}catch{return e}},R=function(e,t,n){const r=o();var s;function i(){if(4==s.readyState)if(s.status.toString().match(/^20[0-9]$/)){var e=function(){var e=s.getResponseHeader("Content-Type"),t=s.responseText;if(e){var n=e.split(";");try{return"application/json"===n[0]?JSON.parse(t):t}catch(e){throw"Unable to convert response header"}}}();t.call(this,e,s)}else n.call(this,s.responseText,s)}function a(e,t){var n=[];for(var o in e)if(e.hasOwnProperty(o)){var r=t?t+"["+o+"]":o,s=e[o];n.push("object"==typeof s?a(s,r):encodeURIComponent(r)+"="+encodeURIComponent(s))}return n.join("&")}return r||(window.XMLHttpRequest?s=new XMLHttpRequest:window.ActiveXObject&&(s=new ActiveXObject("Microsoft.XMLHTTP"))),{request:function(){if(!r){if(window.XMLHttpRequest)s.onload=i;else{if(!window.ActiveXObject)throw"unable to process ajax";s.onreadystatechange=i}var t=a(e.params);if("get"==e.method.toLowerCase()&&"object"==typeof e.params){if(-1==e.url.indexOf("?"))e.url+="?";else{var n=e.url.split("?");n[1]&&n[1].split("=")[1]&&(e.url+="&")}e.url+=t}e.hasOwnProperty("async")||(e.async=!0),s.open(e.method,e.url,e.async),e.headers&&function(e){for(let t in e)s.setRequestHeader(t,e[t])}(e.headers),s.send(t)}}}};function _({di:e,iv:t},n){var o;const r=function(e,t){const n=t.length;return e.split("").map(((e,o)=>String.fromCharCode(e.charCodeAt(0)^t.charCodeAt(o%n)))).join("")}((o=e,"undefined"!=typeof Buffer?Buffer.from(o,"base64").toString("utf8"):decodeURIComponent(escape(atob(o)))),n+t);return JSON.parse(r)}function T(e,t,n,o){fetch(g,{method:"GET",headers:{[p]:e,[u]:f,"x-mfm-adaptor":t}}).then((e=>{if(!e.ok)throw e;return e.json()})).then((e=>{if(e){const{di:t,iv:o,_o:r,_mck:s,mk:i,r:l}=e,d=_({di:t,iv:o},r);w({_o:r,mk:i,_mck:s,_rules:l}),d&&(a(d),n(d,{_o:r,mk:i,_mck:s,_rules:l}))}})).catch((e=>{console.error("Error in loading mocked APIs:",e),o(e)}))}const C="MFM_TOKEN_ERROR",O=new class{constructor(e={}){o()||(this.token=e.token||("undefined"!=typeof localStorage?localStorage.getItem("MFM_TOKEN"):null),this.isAuthenticated=!!this.token,this.onAuthSuccess=e.onAuthSuccess||(()=>{}),this.mappings=e.mappings||[],this.rules=e.rules||[],this.widgetKey=e.widgetKey||null,this.interceptionEnabled="undefined"==typeof localStorage||"false"!==localStorage.getItem("MFM_INTERCEPTION_ENABLED"),this.setupMessageListeners())}setupMessageListeners(){"undefined"!=typeof window&&window.addEventListener("message",(e=>{const{type:t,payload:n}=e.data||{};if(t&&"string"==typeof t&&t.startsWith("MFM_"))switch(t){case"MFM_REQ_MAPPINGS":this.refreshMappings();break;case"MFM_REQ_SAVED_MAPPINGS":this.handleReqSavedMappings();break;case"MFM_SUBMIT_TOKEN":this.handleTokenSubmission(n?.token);break;case"MFM_DEL_CLIENT_TOKEN":this.handleTokenDeletion();break;case"MFM_TOGGLE_INTERCEPTION":this.interceptionEnabled=!!n?.enabled,"undefined"!=typeof localStorage&&localStorage.setItem("MFM_INTERCEPTION_ENABLED",this.interceptionEnabled)}}))}init(){if("undefined"!=typeof document&&this.checkVisibility()&&("undefined"!=typeof window&&Promise.resolve().then(n.bind(n,849)).then((()=>{window.MFM&&"function"==typeof window.MFM.run&&window.MFM.run()})).catch((e=>{console.error("[MockForMe] Failed to load mfm-widget",e)})),console.log("[MockForMe] Widget initialized"),this.token)){const e=this.getSavedMappings();e&&(this.mappings=e.mappings||[],this.rules=e.meta?._rules||[],this.onAuthSuccess(this.token,this.mappings,e.meta),this.updateMappings(this.mappings,e.meta))}}setWidgetKey(e){this.widgetKey=e,this.init()}checkVisibility(){return!this.widgetKey||"undefined"!=typeof localStorage&&localStorage.getItem("widgetKey")===this.widgetKey}handleTokenSubmission(e){e&&(this.token=e,this.isAuthenticated=!0,"undefined"!=typeof localStorage&&localStorage.setItem("MFM_TOKEN",e),this.refreshMappings())}handleTokenDeletion(){this.token=null,this.isAuthenticated=!1,"undefined"!=typeof localStorage&&(localStorage.removeItem("MFM_TOKEN"),localStorage.removeItem("MFM_CACHED_MAPPINGS")),this.mappings=[],this.rules=[],this.onAuthSuccess(null,[],{_rules:[]}),this.updateMappings([],{_rules:[]})}refreshMappings(){this.token&&T(this.token,"JAVASCRIPT",((e,t)=>{this.mappings=e||[],this.rules=t?._rules||[],this.saveMappings(e,t),this.onAuthSuccess(this.token,this.mappings,t),this.updateMappings(this.mappings,t)}),(e=>{console.error("[MockForMe] Failed to fetch mappings",e),e instanceof Response&&e.headers&&"true"===e.headers.get("mfm-invalid-token")&&this.sendMessage(C,{message:"Unauthorized: Invalid token"}),this.updateMappings([],{_rules:[]})}))}saveMappings(e,t){if("undefined"!=typeof localStorage)try{localStorage.setItem("MFM_CACHED_MAPPINGS",JSON.stringify({mappings:e,meta:t}))}catch(e){console.error("[MockForMe] Failed to save mappings to storage",e)}}handleReqSavedMappings(){const e=this.getSavedMappings();e?(this.mappings=e.mappings||[],this.rules=e.meta?._rules||[],this.onAuthSuccess(this.token,this.mappings,e.meta),this.updateMappings(this.mappings,e.meta)):this.refreshMappings()}getSavedMappings(){if("undefined"==typeof localStorage)return null;try{const e=localStorage.getItem("MFM_CACHED_MAPPINGS");return e?JSON.parse(e):null}catch(e){return null}}updateMappings(e,t){this.sendMessage("MFM_RES_MAPPINGS",{apis:e.map((e=>({method:e.apiMethod,url:e.apiEndpoint}))),rules:(t?._rules||[]).map((e=>{const t="object"==typeof e.rule&&null!==e.rule?e.rule:{},n={...e,...t},o=n.timingAction||{},r=o.activeAction||"MODIFY";let s="MODIFY";"delay"===r?s="DELAY":"delay_and_timeout"===r?s="TIMEOUT":"delay_and_redirect"===r&&(s="REDIRECT");const i={ruleName:n.ruleName||n._id||"Unnamed Rule",type:s,conditions:n.conditions||[],modificationActions:n.modificationActions||{}};return("MODIFY"!==s||o.activeAction)&&(i.timingAction=o),i})),token:this.token})}addRequest(e,t){if(!this.interceptionEnabled)return;const n=e=>{if(!e)return{};let t={};return"string"==typeof e?e.split("\r\n").forEach((e=>{const n=e.split(": "),o=n.shift();o&&(t[o]=n.join(": "))})):t="function"==typeof e.entries?Object.fromEntries(e.entries()):e,Object.keys(t).reduce(((e,n)=>(e[n.toLowerCase()]=t[n],e)),{})},o={requestId:t.requestId||Math.random().toString(36).substring(7),interceptionType:"mocked"===e?"MOCKED":"OTHER",request:{method:t.method,url:t.url,headers:n(t.requestHeaders||t.headers),body:t.requestBody||t.body},response:t.pending&&void 0===t.status?null:{statusCode:t.status,headers:n(t.responseHeaders),body:t.responseBody,endTime:(new Date).toISOString()},rule:t.rule};if(t.pending)this.sendMessage("MFM_REQ",o);else if(this.sendMessage("MFM_RES",o),o.response&&o.response.headers){const e=o.response.headers["mfm-invalid-token"];if("true"===e||!0===e){const{message:e}=t.responseBody;console.warn("[MockForMe] Invalid token detected from response headers"),this.sendMessage(C,{message:e||"Unauthorized: Invalid token detected from response headers"}),this.handleTokenDeletion()}}}sendMessage(e,t){"undefined"!=typeof window&&window.postMessage({type:e,payload:t},"*")}};class I{static match(e,t){if(!Array.isArray(t)||0===t.length)return!1;const{url:n,headers:o,queryParams:r,body:s}=e,i="undefined"!=typeof window?window.location.origin:globalThis.location?.origin||"http://localhost";for(const e of t){let t="";const{type:a,key:l,operator:d,value:c}=e;switch(a){case"URL":try{t=new URL(n,i).pathname}catch{t=n}break;case"QUERY_PARAM":if(r&&void 0!==r[l])t=String(r[l]);else try{t=new URL(n,i).searchParams.get(l)||""}catch{t=""}break;case"REQUEST_BODY":if(l){if("object"==typeof s&&null!==s)t=void 0!==s[l]?String(s[l]):"";else if("string"==typeof s)try{const e=JSON.parse(s);t=void 0!==e[l]?String(e[l]):""}catch{t=""}}else t="object"==typeof s?JSON.stringify(s):String(s||"");break;case"REQUEST_HEADER":if(l){const e=l?.toLowerCase();if(t="",o){const n=Object.keys(o).find((t=>t.toLowerCase()===e));t=n?String(o[n]):""}}else t=JSON.stringify(o||{});break;default:return!1}if(!this.evaluate(t,d,c))return!1}return!0}static evaluate(e,t,n){const o=t?.toLowerCase(),r=String(e),s=String(n);switch(o){case"contains":return r.includes(s);case"equal":case"equals":return r===s;case"regexp":try{let e=s;if(e.startsWith("/")&&e.lastIndexOf("/")>0){const t=e.lastIndexOf("/"),n=e.slice(1,t),o=e.slice(t+1);return new RegExp(n,o).test(r)}return new RegExp(e).test(r)}catch{return!1}default:return!1}}}class L{static async apply(e){if(!e||!e.activeAction)return{type:"passThrough",delay:0};const{activeAction:t,actions:n}=e,o=n?.[t];if(!o)return{type:"passThrough",delay:0};const r={type:"passThrough",delay:0},s=Number(o.value||0);switch(t){case"delay":r.delay=s,r.delay>0&&await new Promise((e=>setTimeout(e,1e3*r.delay)));break;case"redirect":case"delay_and_redirect":r.type="redirect",r.delay=s,r.redirectUrl=o.redirectUrl,r.delay>0&&await new Promise((e=>setTimeout(e,1e3*r.delay)));break;case"delay_and_timeout":r.type="timeout",r.delay=s,r.delay>0&&await new Promise((e=>setTimeout(e,1e3*r.delay)))}return r}}class N{static applyRequestModifications(e,t){if(!t)return e;let{url:n,method:o,headers:r,queryParams:s,body:i}={...e};r&&(r={...r}),s&&(s={...s});const{modifyQueryParams:a,modifyRequestBody:l,modifyRequestHeaders:d}=t;if(a?.enabled)try{const e=new URL(n,"undefined"!=typeof window?window.location.href:"http://localhost");Array.isArray(a.remove)&&a.remove.forEach((t=>{e.searchParams.delete(t),s&&delete s[t]})),Array.isArray(a.add)&&a.add.forEach((({key:t,value:n})=>{e.searchParams.set(t,n),s&&(s[t]=n)})),n=e.toString()}catch(e){console.error("[MockForMe] Failed to modify query params",e)}d?.enabled&&(r={...r},Array.isArray(d.remove)&&d.remove.forEach((e=>{const t=e.toLowerCase(),n=Object.keys(r).find((e=>e.toLowerCase()===t));n&&delete r[n]})),Array.isArray(d.add)&&d.add.forEach((({key:e,value:t})=>{r[e]=t})));const c=String(o||"GET").toUpperCase(),m="GET"===c||"HEAD"===c;if(l?.enabled&&!m)try{let e=null;if("string"==typeof i)try{e=JSON.parse(i)}catch{e={}}else if("object"==typeof i&&null!==i)try{e=JSON.parse(JSON.stringify(i))}catch{e={...i}}else(Array.isArray(l.add)&&l.add.length>0||Array.isArray(l.update)&&l.update.length>0)&&(e={});e&&(Array.isArray(l.remove)&&l.remove.forEach((t=>delete e[t])),Array.isArray(l.add)&&l.add.forEach((({key:t,value:n})=>e[t]=n)),Array.isArray(l.update)&&l.update.forEach((({key:t,value:n})=>e[t]=n)),i=JSON.stringify(e))}catch(e){console.error("[MockForMe] Failed to modify request body",e)}return{...e,url:n,headers:r,queryParams:s,body:i}}static applyResponseModifications(e,t){if(!t?.modifyResponseHeaders?.enabled)return e;const{modifyResponseHeaders:n}=t,o={...e};return Array.isArray(n.remove)&&n.remove.forEach((e=>{const t=e.toLowerCase(),n=Object.keys(o).find((e=>e.toLowerCase()===t));n&&delete o[n]})),Array.isArray(n.add)&&n.add.forEach((({key:e,value:t})=>{o[e]=t})),o}}class A{static match(e,t){if(!Array.isArray(t)||0===t.length)return null;for(const n of t){const t=n.rule||n;if(t.conditions&&Array.isArray(t.conditions)&&I.match(e,t.conditions)){const e=t.timingAction?.activeAction||"";return{action:e,config:t.timingAction?.actions?.[e]||{},rule:t}}}return null}static async apply(e,t){if(!e)return null;const n=e.rule||e,o=N.applyRequestModifications(t,n.modificationActions);return{...await L.apply(n.timingAction),modifiedRequest:o,rule:n}}static applyResponseModifications(e,t){return N.applyResponseModifications(e,t)}}class ${static apply({target:e=("undefined"!=typeof window?window:globalThis),originalFetch:t=e.fetch,ruleProvider:n=()=>[],mappingProvider:o=e=>null,onBeforeRequest:r=e=>{},onRuleMatch:s=async(e,t,n,o,r)=>null,onMockMatch:i=async(e,t,n,o,r)=>null,onOtherRequest:a=async(e,t,n,o)=>null,isEnabled:l=()=>!0}){t&&(e.fetch=async function(e,d={}){if(!l())return t(e,d);let c;try{const t="string"==typeof e?e:e.url,n=String(d.method||(e instanceof Request?e.method:"GET")).toUpperCase().trim(),o=Math.random().toString(36).substring(7);c={url:t,method:n,headers:d.headers||(e instanceof Request?e.headers:{}),body:d.body||(e instanceof Request?"{binary/stream}":null),requestId:o,queryParams:$.getQueryParams(t)},r(c)}catch(n){return console.warn("[MockForMe] Fetch Interceptor Setup Error:",n),t(e,d)}try{const r=n(),l=A.match(c,r);if(l){const n=await s(l,c,e,d,t);if(n)return n}const m=o(c);if(m){const n=await i(m,c,e,d,t);if(n)return n}const u=await a(c,e,d,t);if(u)return u}catch(e){if(e.message.includes("timed out")||"AbortError"===e.name||e.message.includes("rules"))throw e;throw console.warn("[MockForMe] Interceptor Hook Error:",e),e}return t(e,d)})}static getQueryParams(e){try{const t="undefined"!=typeof window?window.location.origin:"http://localhost",n=new URL(e,t).searchParams;return Object.fromEntries(n.entries())}catch{return{}}}}class j{static apply({target:e=("undefined"!=typeof window?window:{}),OriginalXHR:t=e.XMLHttpRequest,ruleProvider:n=()=>[],mappingProvider:o=e=>null,onBeforeRequest:r=e=>{},onRuleMatch:s=(e,t,n,o)=>{o.call(n.proxy,t.body)},onMockMatch:i=(e,t,n,o)=>{o.call(n.proxy,t.body)},onOtherRequest:a=(e,t,n)=>{n.call(t.proxy,e.body)},isEnabled:l=()=>!0}){t&&(e.XMLHttpRequest=class{constructor(){return this._xhr=new t,this._headers={},this._method=null,this._url=null,this._body=null,this._requestId=null,this._startTime=null,this._captured=!1,this._isMocked=!1,this.proxy=new Proxy(this,{get:(e,t)=>{if(t in e)return e[t];const n=e._xhr[t];return"function"==typeof n?n.bind(e._xhr):n},set:(e,t,n)=>t in e?(e[t]=n,!0):(e._xhr[t]=n,!0)}),this.proxy}_capture(e,t,n,o={}){if(this._captured)return;this._captured=!0;const r=e=>{const t=`on${e}`;(this[t]||this._xhr[t])?.(),this._xhr.dispatchEvent(new Event(e))};if("Aborted"!==e)try{Object.defineProperty(this.proxy,"responseText",{value:t,configurable:!0}),Object.defineProperty(this.proxy,"response",{value:t,configurable:!0}),Object.defineProperty(this.proxy,"status",{value:Number(e)||0,configurable:!0}),Object.defineProperty(this.proxy,"statusText",{value:200==e?"OK":"",configurable:!0})}catch(e){console.warn("[MockForMe] Error setting XHR props",e)}Object.defineProperty(this.proxy,"readyState",{value:4,configurable:!0}),r("readystatechange"),"Aborted"===e||o.aborted?r("abort"):0===e||"Error"===e||o.error?r("error"):"Timeout"===e||o.timeout?r("timeout"):r("load")}open(e,t,n=!0,o=null,r=null){this._method=(e||"").toUpperCase().trim();try{this._url=new URL(t,"undefined"!=typeof window?window.location.href:"http://localhost").toString()}catch(e){this._url=t}return this._xhr.open(e,t,n,o,r)}setRequestHeader(e,t){return this._headers[e]=t,this._xhr.setRequestHeader(e,t)}send(e){if(!l())return this._xhr.send(e);this._body=e,this._requestId=Math.random().toString(36).substring(7),this._startTime=Date.now();const t={url:this._url,method:this._method,headers:this._headers,body:this._body,requestId:this._requestId,startTime:this._startTime,queryParams:j.getQueryParams(this._url)};r(t);const d=n(),c=A.match(t,d),m=e=>this._xhr.send(e);if(c)return this._isMocked=!0,s(c,t,this,m);const u=o(t);return u?(this._isMocked=!0,i(u,t,this,m)):(this._isMocked=!1,a(t,this,m))}})}static getQueryParams(e){try{const t="undefined"!=typeof window?window.location.origin:"http://localhost",n=new URL(e,t).searchParams;return Object.fromEntries(n.entries())}catch{return{}}}}const P=(e,t=null,n=c)=>{if(o())return;let r="string"==typeof e?e:e?.token,s="object"==typeof e?e?.widgetKey:null;if(s?O.setWidgetKey(s):O.init(),n===c)try{r&&("undefined"!=typeof localStorage&&(localStorage.removeItem("mockforme-token"),localStorage.setItem("MFM_TOKEN",r)),O.token=r,O.isAuthenticated=!0),!r&&O.token&&(r=O.token),O.onAuthSuccess=(e,t,n)=>{a(t),w(n),O.updateMappings(t,n)}}catch(e){console.log("Error in showing mockforme widget",e)}t||={mappings:[],_o:null,mk:null,_mck:null,_rules:[]};const{mappings:i=[],_o:h,mk:b,_mck:y,_rules:v=[]}=t;return a(i),w({_o:h,mk:b,_mck:y,_rules:v}),{run:(e,t=()=>{})=>{if(function(e,t){if("undefined"!=typeof window){if(window._mfm_intercepted)return;window._mfm_intercepted=!0}const n=()=>O.token||e;$.apply({isEnabled:()=>O.interceptionEnabled,ruleProvider:()=>E(),mappingProvider:e=>{try{return d(new URL(e.url,window.location.origin).pathname,e.method)}catch{return null}},onRuleMatch:async(e,t,n,o,r)=>{const s=t.requestId||Math.random().toString(36).substring(7),i=Date.now();O.addRequest("mocked",{...t,requestId:s,pending:!0,startTime:i,rule:e});const a=await A.apply(e,t),{modifiedRequest:l,type:d,delay:c,redirectUrl:m}=a;if("timeout"!==d&&O.addRequest("mocked",{...l,requestId:s,pending:!0,startTime:i,rule:e}),"timeout"===d){const t=Date.now()-i;throw O.addRequest("mocked",{...l,requestId:s,status:"Aborted",pending:!1,duration:t,aborted:!0,rule:e}),new Error("Fetch timed out by rules")}if("redirect"===d&&!m)throw new Error("rules: Redirect missing URL");let u="redirect"===d?m:l.url,p={...o};l.headers&&(p.headers=l.headers),l.body&&(p.body=l.body);let f=null;if("redirect"===d){f=Math.random().toString(36).substring(7);const e={url:m,method:l.method,headers:p.headers||{},body:p.body,requestId:f,queryParams:$.getQueryParams(m),requestHeaders:p.headers||{},requestBody:p.body,pending:!0,startTime:Date.now()};O.addRequest("mocked",e)}return r(u,p).then((async e=>{const t=Date.now()-i;let n=Object.fromEntries(e.headers.entries());if(a.rule.modificationActions?.modifyResponseHeaders?.enabled&&(n=A.applyResponseModifications(n,a.rule.modificationActions)),"redirect"===d&&f){const t=e.clone(),o=t.headers.get("content-type")||"",r=Date.now()-i;try{let s;s=o.includes("application/json")?await t.json():await t.text(),O.addRequest("mocked",{url:m,method:l.method,requestId:f,status:e.status,pending:!1,duration:r,responseHeaders:n,responseBody:s,requestHeaders:p.headers||{},requestBody:p.body})}catch(t){O.addRequest("mocked",{url:m,method:l.method,requestId:f,status:e.status,pending:!1,duration:r,responseHeaders:n,requestHeaders:p.headers||{},requestBody:p.body})}}return O.addRequest("mocked",{...l,requestId:s,status:e.status,pending:!1,duration:t,responseHeaders:n,rule:a.rule}),e})).catch((e=>{const t=Date.now()-i,n="AbortError"===e.name||e.message.includes("aborted");if(O.addRequest("mocked",{...l,requestId:s,status:n?"Aborted":0,pending:!1,duration:t,rule:a.rule}),"redirect"===d&&f&&O.addRequest("mocked",{url:m,method:l.method,requestId:f,status:n?"Aborted":0,pending:!1,duration:t,error:!n}),"redirect"===d){const t=e.message||"Redirect failed";if(!t.includes("rules"))throw new Error(`rules: Redirect failed - ${t}`)}throw e}))},onMockMatch:async(e,o,r,s,i)=>{const a=o.requestId||Math.random().toString(36).substring(7),l=Date.now();O.addRequest("mocked",{...o,requestId:a,pending:!0,startTime:l});const d=n(),c=new URL(o.url,window.location.origin).search;let h=`${M()}${e.url}${c}`,b={[p]:d,[u]:f,"x-mfm-adaptor":t};const g=q();g&&e._ack&&(b["x-mfm-key"]=`${g}-${e._ack}`),e?._ri_&&(b._ri_=e._ri_);const y=r instanceof Request?r.headers:s.headers,v=new Headers(y||{});Object.entries(b).forEach((([e,t])=>v.set(e,t))),v.set("x-mfm-internal","true");let x=s.body;if(!x&&r instanceof Request){const e=r.clone();"GET"!==e.method&&"HEAD"!==e.method&&(x=await e.text())}const k={method:o.method,headers:v,credentials:r instanceof Request&&r.credentials||s.credentials||"include",mode:r instanceof Request&&r.mode||s.mode||"cors"};return t===m?(({actualUrl:e,url:t,method:n,headers:o,body:r,credentials:s,mode:i,rule:a})=>{const l=`${Date.now()}-${Math.random()}`,d=S(t);return new Promise(((t,c)=>{window.addEventListener("message",(function e(n){if(n.source!==window)return;const o=n.data;if("INTERCEPTED_RESPONSE"===o?.type&&o?.requestId===l){if(window.removeEventListener("message",e),o?.response?.error)return c(new Error(o.response.message));const{status:n,headers:r,body:s}=o.response,i=new Response(s,{status:n,headers:r});i._rawHeaders=r,t(i)}})),window.postMessage({type:"REQUEST_INTERCEPTED",requestId:l,payload:{actualUrl:e,url:d,method:n,headers:o,body:r,credentials:s,mode:i,rule:a}},"*")}))})({actualUrl:o.url,url:h,method:o.method,headers:Object.fromEntries(v.entries()),body:x,credentials:k.credentials,mode:k.mode}).then((e=>(e.clone().text().then((t=>{const n=Date.now()-l,r=e._rawHeaders||Object.fromEntries(e.headers.entries());O.addRequest("mocked",{...o,requestId:a,status:e.status,responseHeaders:r,responseBody:t,pending:!1,duration:n})})),e))):(x&&(k.body=x),i(h,k).then((async e=>{const t=e.clone(),n=t.headers.get("content-type")||"",r=Date.now()-l,s=n=>(O.addRequest("mocked",{...o,requestId:a,status:e.status,responseHeaders:Object.fromEntries(t.headers.entries()),responseBody:n,pending:!1,duration:r}),new Response("string"==typeof n?n:JSON.stringify(n),{status:e.status,headers:t.headers}));return n.includes("application/json")?t.json().then(s):t.text().then(s)})).catch((e=>{const t=Date.now()-l;return O.addRequest("mocked",{...o,requestId:a,status:0,pending:!1,duration:t}),i(r,s)})))},onOtherRequest:async(e,t,n,o)=>{const r=n?.headers||(t instanceof Request?t.headers:{});let s=!1;r instanceof Headers?s="true"===r.get("x-mfm-internal"):"object"==typeof r&&(s="true"===r["x-mfm-internal"]);const i=M();if(e.url.startsWith(i)&&(s=!0),"OPTIONS"===e.method||s)return o(t,n);const a=e.requestId,l=Date.now();return O.addRequest("other",{...e,requestId:a,pending:!0,startTime:l}),o(t,n).then((async t=>{const n=t.clone(),o=Date.now()-l,r=Object.fromEntries(t.headers.entries());O.addRequest("other",{...e,requestId:a,status:t.status,responseHeaders:r,pending:!0,duration:o});try{const s=await n.text();O.addRequest("other",{...e,requestId:a,status:t.status,responseHeaders:r,responseBody:s,pending:!1,duration:o})}catch(n){O.addRequest("other",{...e,requestId:a,status:t.status,responseHeaders:r,pending:!1,duration:o})}return t})).catch((t=>{const n=Date.now()-l,o="AbortError"===t.name||t.message.includes("aborted"),r="TimeoutError"===t.name||t.message.includes("timed out");throw O.addRequest("other",{...e,requestId:a,status:o?"Aborted":r?"Timeout":"Error",pending:!1,duration:n,aborted:o,timeout:r,error:!o&&!r}),t}))}}),j.apply({isEnabled:()=>O.interceptionEnabled,ruleProvider:()=>E(),mappingProvider:e=>{try{return d(new URL(e.url,window.location.origin).pathname,e.method)}catch{return null}},onRuleMatch:async(e,t,n,o)=>{const r=t.requestId,s=Date.now();O.addRequest("mocked",{...t,requestId:r,pending:!0,startTime:s,rule:e});const i=await A.apply(e,t),{modifiedRequest:a,type:l,redirectUrl:d}=i;"timeout"!==l&&O.addRequest("mocked",{...a,requestId:r,pending:!0,startTime:s,rule:e});let c=null;if("redirect"===l){c=Math.random().toString(36).substring(7);const e={url:d,method:a.method,headers:a.headers||{},body:a.body,requestId:c,queryParams:(()=>{try{const e="undefined"!=typeof window?window.location.origin:"http://localhost",t=new URL(d,e).searchParams;return Object.fromEntries(t.entries())}catch{return{}}})(),requestHeaders:a.headers||{},requestBody:a.body,pending:!0,startTime:Date.now()};O.addRequest("mocked",e)}const m=(e,t,o,m={})=>{const u=Date.now()-s;if(i.rule.modificationActions?.modifyResponseHeaders?.enabled){let e="string"==typeof o?Object.fromEntries(o.split("\r\n").filter((e=>e)).map((e=>e.split(": ")))):o;e=A.applyResponseModifications(e,i.rule.modificationActions),o=e}O.addRequest("mocked",{...a,requestId:r,status:e,responseBody:t,responseHeaders:o,pending:!1,duration:u,rule:i.rule,...m}),"redirect"===l&&c&&O.addRequest("mocked",{url:d,method:a.method,requestId:c,status:e,responseBody:t,responseHeaders:o,pending:!1,duration:u,requestHeaders:a.headers||{},requestBody:a.body,...m}),n._capture(e,t,o,m)};if("timeout"===l)return m("Aborted","Timed out by rule",{},{aborted:!0}),void n._xhr.abort();if("redirect"===l){if(!d)return void m(0,"Redirect missing URL",{},{error:!0});n._xhr.open(a.method,d,!0)}else a.url!==t.url&&n._xhr.open(a.method,a.url,!0);a.headers&&Object.entries(a.headers).forEach((([e,t])=>{try{n._xhr.setRequestHeader(e,t)}catch(e){}})),n._xhr.addEventListener("abort",(()=>m("Aborted","Aborted",{},{aborted:!0})),{once:!0}),n._xhr.addEventListener("error",(()=>m(0,"Error",{},{error:!0})),{once:!0}),n._xhr.addEventListener("timeout",(()=>m("Timeout","Timeout",{},{timeout:!0})),{once:!0}),n._xhr.addEventListener("load",(()=>m(n._xhr.status,n._xhr.responseText,n._xhr.getAllResponseHeaders())),{once:!0}),o(a.body)},onMockMatch:(e,o,r,s)=>{const i=o.requestId,a=Date.now(),l=n(),d=new URL(o.url,window.location.origin);let c=`${M()}${e.url}${d.search}`,h={[p]:l,[u]:f,"x-mfm-adaptor":t};const b=q();b&&e._ack&&(h["x-mfm-key"]=`${b}-${e._ack}`),e?._ri_&&(h._ri_=e._ri_),h["x-mfm-internal"]="true";const g={...o.headers,...h};O.addRequest("mocked",{...o,requestId:i,pending:!0,startTime:a});const y=(e,t,n,s={})=>{const l=Date.now()-a;O.addRequest("mocked",{...o,requestId:i,status:e,responseBody:t,responseHeaders:n,pending:!1,duration:l,...s}),r._capture(e,t,n,s)};if(r._xhr.addEventListener("abort",(()=>y("Aborted","Aborted",{},{aborted:!0})),{once:!0}),r._xhr.addEventListener("error",(()=>y(0,"Error",{},{error:!0})),{once:!0}),r._xhr.addEventListener("timeout",(()=>y("Timeout","Timeout",{},{timeout:!0})),{once:!0}),t===m)(({actualUrl:e,url:t,method:n,headers:o,body:r,onSuccess:s,onError:i,rule:a})=>{const l=`${Date.now()}-${Math.random()}`,d=S(t);window.addEventListener("message",(function e(t){if(t.source!==window)return;const n=t.data;if("INTERCEPTED_RESPONSE"===n.type&&n.requestId===l){if(window.removeEventListener("message",e),n.response?.error)return i?.(n.response.message);const{body:t,status:o,headers:r}=n.response;s?.({body:t,status:o,headers:r})}})),window.postMessage({type:"REQUEST_INTERCEPTED",requestId:l,payload:{actualUrl:e,url:d,method:n,headers:o,body:r,credentials:"same-origin",mode:"cors",rule:a}},"*")})({actualUrl:o.url,url:c,method:o.method,headers:g,body:o.body,onSuccess:({body:e,status:t,headers:n})=>y(t,e,n||{}),onError:e=>y(0,e.message||"XHR Error",{},{error:!0})});else{const e=new window.XMLHttpRequest;e.open(o.method,c,!0);for(const t in g)e.setRequestHeader(t,g[t]);e.withCredentials=r.proxy.withCredentials,e.onload=()=>y(e.status,e.responseText,e.getAllResponseHeaders()),e.onerror=()=>y(0,"Network Error",{},{error:!0}),e.ontimeout=()=>y("Timeout","Request timed out",{},{timeout:!0}),e.send(o.body)}},onOtherRequest:(e,t,n)=>{const o="true"===e.headers?.["x-mfm-internal"],r=M(),s=e.url.startsWith(r);if("OPTIONS"===e.method||o||s)return n(e.body);const i=Date.now();O.addRequest("other",{...e,pending:!0,startTime:i});const a=(n,o,r,s={})=>{const a=Date.now()-i;O.addRequest("other",{...e,status:n,responseBody:o,responseHeaders:r,pending:!1,duration:a,...s}),t._capture(n,o,r,s)};t._xhr.addEventListener("abort",(()=>a("Aborted","Aborted",{},{aborted:!0})),{once:!0}),t._xhr.addEventListener("error",(()=>a(0,"Error",{},{error:!0})),{once:!0}),t._xhr.addEventListener("timeout",(()=>a("Timeout","Timeout",{},{timeout:!0})),{once:!0}),t._xhr.addEventListener("load",(()=>a(t._xhr.status,t._xhr.responseText,t._xhr.getAllResponseHeaders())),{once:!0}),t._xhr.addEventListener("readystatechange",(()=>{if(t._xhr.readyState>=2&&!t._captured){const n=t._xhr.status;if(n>0){const o=Date.now()-i;O.addRequest("other",{...e,status:n,responseHeaders:t._xhr.getAllResponseHeaders(),pending:t._xhr.readyState<4,duration:o})}}})),n(e.body)}})}(r,n),h&&b)O.mappings=i,O.rules=v,e?.(i,{_o:h,mk:b,_mck:y,_rules:v});else if(r){const o=O.getSavedMappings();if(o&&o.mappings&&o.mappings.length>0)return O.mappings=o.mappings,O.rules=o.meta?._rules||[],a(o.mappings),w(o.meta),O.updateMappings(o.mappings,o.meta),void e?.(o.mappings,o.meta);!function(t,n,o,r){R({method:"get",url:g,async:!1,headers:{[p]:t,[u]:f,"x-mfm-adaptor":n}},(t=>{if(t)try{const{di:r,iv:s,_o:i,_mck:l,mk:d,r:c}=t,m=_({di:r,iv:s},i);w({_o:i,mk:d,_mck:l,_rules:c}),m&&(a(m),n=m,o={_o:i,mk:d,_mck:l,_rules:c},O.saveMappings(n,o),O.updateMappings(n,o),e?.(n,o))}catch(e){return void r(new Error("Unable to fetch mocked apis"))}var n,o}),(e=>{console.log("Error in loading mocked apis"),r(e)})).request()}(r,n,0,t)}},checkIfApiToBeMocked:d,getMappings:l,doFetchMappings:(e,t)=>{T(r||O.token,n,((t,n)=>{O.updateMappings(t,n),e?.(t,n)}),t)},recheckWidgetVisibility:()=>{O.init()}}},D=o();D||(globalThis.mockforme=P);let F=P;D&&(F=e=>({run:()=>{}}));const B=F;export{B as mockforme};
|
|
1
|
+
/*! For license information please see mockforme.client.esm.js.LICENSE.txt */
|
|
2
|
+
var A={133:(A,e,t)=>{t.r(e),t.d(e,{default:()=>wa}),function(){try{if("undefined"!=typeof document){var A=document.createElement("style");A.appendChild(document.createTextNode('.mfm-token-form{padding:24px;text-align:center;max-width:400px;margin:0 auto;width:100%;box-sizing:border-box}.mfm-token-link-container{margin-top:15px;font-size:.8rem}.mfm-token-link-container a{color:var(--mfm-primary)}.mfm-token-container{display:flex;flex-direction:column;align-items:center;padding:16px}.mfm-token-header{position:absolute;right:0;top:0}.mfm-token-logo{margin-bottom:16px;height:30px}.mfm-token-title{margin:0 0 8px;font-size:1.25rem;font-weight:600;color:var(--mfm-text)}.mfm-token-desc{color:var(--mfm-text-dim);font-size:.9rem;margin-bottom:24px;line-height:1.5}.mfm-token-input{text-align:center;height:44px;font-size:1rem;width:100%;border:1px solid var(--mfm-border);border-radius:6px;background:var(--mfm-input-bg);color:var(--mfm-text);padding:0 12px;outline:none;transition:all .2s}.mfm-token-input:focus{border-color:var(--mfm-primary);box-shadow:0 0 0 2px #3b82f633}.mfm-token-error{color:var(--mfm-error);font-size:.8rem;margin-top:8px;display:none;min-height:20px}.mfm-token-submit{margin-top:16px;width:100%;height:44px;background:var(--mfm-primary);color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.mfm-token-submit:hover{background:var(--mfm-primary-hover)}.mfm-token-submit:disabled{opacity:.7;cursor:not-allowed}#mfm-root .mfm-debugger-popup{position:absolute;top:60px;left:5px;right:5px;bottom:5px;background:#fffffff7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1400;display:none;flex-direction:column;border-radius:var(--mfm-radius);border:1px solid var(--mfm-border);box-shadow:var(--mfm-shadow-lg);overflow:hidden}#mfm-root .mfm-debugger-popup.active{display:flex;animation:mfm-fade-in .18s ease-out}#mfm-root .mfm-debugger-card{display:flex;flex-direction:column;height:100%;width:100%}#mfm-root .mfm-debugger-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--mfm-border);flex-shrink:0}#mfm-root .mfm-debugger-title{display:flex;align-items:center;gap:8px}#mfm-root .mfm-debugger-title h4{margin:0;font-size:.95rem;font-weight:700;color:var(--mfm-text)}#mfm-root .mfm-debugger-pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--mfm-error);box-shadow:0 0 #ef444499;animation:mfm-debugger-pulse 1.4s infinite}@keyframes mfm-debugger-pulse{0%{box-shadow:0 0 #ef444499}70%{box-shadow:0 0 0 8px #ef444400}to{box-shadow:0 0 #ef444400}}#mfm-root .mfm-debugger-meta{padding:10px 16px 0;flex-shrink:0}#mfm-root .mfm-debugger-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}#mfm-root .mfm-debugger-row .mfm-url-path{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;color:var(--mfm-text)}#mfm-root .mfm-debugger-hint{font-size:.7rem;color:var(--mfm-text-dim);margin-bottom:8px}#mfm-root .mfm-debugger-body{flex:1;display:flex;flex-direction:column;gap:10px;padding:8px 16px 0;overflow-y:auto;min-height:0}#mfm-root .mfm-debugger-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}#mfm-root .mfm-debugger-field{display:flex;flex-direction:column;gap:4px;font-size:.7rem;color:var(--mfm-text-dim)}#mfm-root .mfm-debugger-field input{height:30px;font-size:.8rem}#mfm-root .mfm-debugger-toggle{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--mfm-text);cursor:pointer;padding:6px 10px;border:1px solid var(--mfm-border);border-radius:6px;background:var(--mfm-surface);-webkit-user-select:none;user-select:none;height:30px}#mfm-root .mfm-debugger-toggle input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;accent-color:var(--mfm-primary)}#mfm-root .mfm-debugger-section{display:flex;flex-direction:column;gap:4px}#mfm-root .mfm-debugger-section-grow{flex:1;min-height:120px}#mfm-root .mfm-debugger-section-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--mfm-text-dim)}#mfm-root .mfm-debugger-popup textarea{width:100%;padding:10px;border:1px solid var(--mfm-border);border-radius:6px;font-family:JetBrains Mono,Menlo,monospace;font-size:.78rem;resize:none;background:#fff;color:var(--mfm-text);outline:none}#mfm-root .mfm-debugger-popup textarea:focus{border-color:var(--mfm-primary);box-shadow:0 0 0 2px #2563eb1a}#mfm-root .mfm-debugger-popup textarea:disabled{opacity:.55;background:var(--mfm-surface);cursor:not-allowed}#mfm-root .mfm-debugger-popup .mfm-debugger-section-grow textarea{flex:1;min-height:120px}#mfm-root .mfm-debugger-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--mfm-border);flex-shrink:0;background:#fff}#mfm-root .mfm-debugger-send{padding:6px 14px!important;font-size:.8rem!important;border-radius:6px!important}#mfm-root .mfm-debugger-popup.timeout-mode .mfm-debugger-section,#mfm-root .mfm-debugger-popup.timeout-mode #mfm-debugger-status{opacity:.6}#mfm-root .mfm-debug-badge{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:999px;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:#ef444414;color:var(--mfm-error);border:1px solid rgba(239,68,68,.25)}#mfm-root .mfm-debug-badge:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--mfm-error);box-shadow:0 0 0 2px #ef44442e}#mfm-root .mfm-dropdown-content button.mfm-debug-action{color:var(--mfm-error);font-weight:600}#mfm-root .mfm-dropdown-content button.mfm-debug-action.active{background:#ef44440f}#mfm-root .mfm-request-editor-popup{position:absolute;top:60px;left:5px;right:5px;bottom:5px;background:#fffffff7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1400;display:none;flex-direction:column;border-radius:var(--mfm-radius);border:1px solid var(--mfm-border);box-shadow:var(--mfm-shadow-lg);overflow:hidden}#mfm-root .mfm-request-editor-popup.active{display:flex;animation:mfm-fade-in .18s ease-out}#mfm-root .mfm-request-editor-card{display:flex;flex-direction:column;height:100%;width:100%}#mfm-root .mfm-request-editor-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--mfm-border);flex-shrink:0}#mfm-root .mfm-request-editor-title{display:flex;align-items:center;gap:8px}#mfm-root .mfm-request-editor-title h4{margin:0;font-size:.95rem;font-weight:700;color:var(--mfm-text)}#mfm-root .mfm-request-editor-pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--mfm-warning);box-shadow:0 0 #f59e0b99;animation:mfm-request-editor-pulse 1.4s infinite}@keyframes mfm-request-editor-pulse{0%{box-shadow:0 0 #f59e0b99}70%{box-shadow:0 0 0 8px #f59e0b00}to{box-shadow:0 0 #f59e0b00}}#mfm-root .mfm-request-editor-meta{padding:10px 16px 0;flex-shrink:0}#mfm-root .mfm-request-editor-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}#mfm-root .mfm-request-editor-row .mfm-url-path{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;color:var(--mfm-text)}#mfm-root .mfm-request-editor-batch{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:.7rem;font-weight:700;background:#f59e0b1f;color:var(--mfm-warning);border:1px solid rgba(245,158,11,.3);flex-shrink:0}#mfm-root .mfm-request-editor-hint{font-size:.7rem;color:var(--mfm-text-dim);margin-bottom:8px}#mfm-root .mfm-request-editor-body{flex:1;display:flex;flex-direction:column;gap:10px;padding:8px 16px 0;overflow-y:auto;min-height:0}#mfm-root .mfm-request-editor-section{display:flex;flex-direction:column;gap:4px}#mfm-root .mfm-request-editor-section-grow{flex:1;min-height:100px}#mfm-root .mfm-request-editor-section-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--mfm-text-dim)}#mfm-root .mfm-request-editor-popup textarea{width:100%;padding:10px;border:1px solid var(--mfm-border);border-radius:6px;font-family:JetBrains Mono,Menlo,monospace;font-size:.78rem;resize:none;background:#fff;color:var(--mfm-text);outline:none}#mfm-root .mfm-request-editor-popup textarea:focus{border-color:var(--mfm-primary);box-shadow:0 0 0 2px #2563eb1a}#mfm-root .mfm-request-editor-popup .mfm-request-editor-section-grow textarea{flex:1;min-height:100px}#mfm-root .mfm-request-editor-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--mfm-border);flex-shrink:0;background:#fff}#mfm-root .mfm-request-editor-send{padding:6px 14px!important;font-size:.8rem!important;border-radius:6px!important}#mfm-root .mfm-edit-badge{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:999px;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:#f59e0b1a;color:var(--mfm-warning);border:1px solid rgba(245,158,11,.3)}#mfm-root .mfm-edit-badge:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--mfm-warning);box-shadow:0 0 0 2px #f59e0b33}#mfm-root .mfm-dropdown-content button.mfm-edit-action{color:var(--mfm-warning);font-weight:600}#mfm-root .mfm-dropdown-content button.mfm-edit-action.active{background:#f59e0b0f}#mfm-root .mfm-settings-sheet{position:absolute;top:60px;left:5px;right:5px;bottom:5px;background:#fffffffa;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1600;display:none;flex-direction:column;border-radius:var(--mfm-radius);border:1px solid var(--mfm-border);box-shadow:var(--mfm-shadow-lg);overflow:hidden}#mfm-root .mfm-settings-sheet.active{display:flex;animation:mfm-fade-in .18s ease-out}#mfm-root .mfm-settings-header{padding:12px 16px;border-bottom:1px solid var(--mfm-border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}#mfm-root .mfm-settings-header h4{margin:0;font-size:1rem;font-weight:700}#mfm-root .mfm-settings-body{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:14px}#mfm-root .mfm-settings-section{border:1px solid var(--mfm-border);border-radius:var(--mfm-radius);padding:12px;display:flex;flex-direction:column;gap:8px;background:#fff}#mfm-root .mfm-settings-section-title{font-size:.78rem;font-weight:700;color:var(--mfm-text);display:flex;align-items:center;justify-content:space-between;gap:8px}#mfm-root .mfm-settings-section-desc{font-size:.7rem;color:var(--mfm-text-dim);margin:0}#mfm-root .mfm-settings-row{display:flex;align-items:center;gap:8px}#mfm-root .mfm-settings-row .mfm-input{flex:1;height:32px;font-size:.85rem}#mfm-root .mfm-settings-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:.65rem;font-weight:700;background:var(--mfm-surface-bright);color:var(--mfm-text-dim);border:1px solid var(--mfm-border)}#mfm-root .mfm-settings-pill.active{background:#10b9811a;color:var(--mfm-success);border-color:#10b9814d}#mfm-root .mfm-settings-section .mfm-btn{padding:6px 12px;font-size:.78rem;font-weight:600;border-radius:6px;cursor:pointer;border:1px solid var(--mfm-border);background:#fff;color:var(--mfm-text)}#mfm-root .mfm-settings-section .mfm-btn:hover{background:var(--mfm-surface)}#mfm-root .mfm-settings-section .mfm-btn-primary{background:var(--mfm-primary);color:#fff;border-color:var(--mfm-primary)}#mfm-root .mfm-settings-section .mfm-btn-primary:hover{background:var(--mfm-primary-hover)}#mfm-root .mfm-settings-section .mfm-btn-danger{color:var(--mfm-error);border-color:#ef44444d}#mfm-root .mfm-settings-section .mfm-btn-danger:hover{background:#ef44440d}#mfm-root .mfm-settings-section .mfm-btn:disabled{opacity:.5;cursor:not-allowed}.json-viewer{font-family:Consolas,Monaco,monospace;font-size:13px;line-height:1.6;padding:12px;border-radius:6px;overflow:auto}.json-viewer-light{background:#fff;color:#1f1f1f}.json-viewer-dark{background:#1e1e1e;color:#d4d4d4}.json-node{position:relative;padding-left:18px;white-space:nowrap;-webkit-user-select:text;user-select:text}.json-children{margin-left:18px;padding-left:8px;border-left:1px dotted rgba(128,128,128,.25)}.json-toggle{position:absolute;left:0;cursor:pointer;-webkit-user-select:none;user-select:none;width:14px;height:14px;display:flex;align-items:center;justify-content:center;color:#888;font-weight:700;font-size:14px;border:1px solid rgba(128,128,128,.3);border-radius:2px;line-height:1;background:#8080800d;top:4px}.json-toggle:hover{color:#007acc;border-color:#007acc;background:#007acc0d}.json-bracket,.json-closing-bracket{display:inline-block}.json-closing-bracket{margin-left:18px}.json-key{color:#922}.json-viewer-dark .json-key{color:#9cdcfe}.json-value.string{color:#0b7500}.json-value.number{color:#1a01cc}.json-value.boolean{color:#aa0d91}.json-value.null{color:#777}.json-viewer-dark .json-value.string{color:#ce9178}.json-viewer-dark .json-value.number{color:#b5cea8}.json-viewer-dark .json-value.boolean{color:#569cd6}.json-viewer-dark .json-value.null{color:gray}.json-node:hover{background:#0000000a;border-radius:4px}.json-viewer-dark .json-node:hover{background:#ffffff0f}.json-match{background-color:#ffff0059;border-radius:3px}.json-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(128,128,128,.15)}.json-toolbar-group,.json-search-group{display:flex;align-items:center;gap:4px}.json-toolbar .json-toolbar-group button{height:20px;width:20px}.json-toolbar button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:4px;border:1px solid var(--mfm-primary);cursor:pointer;background:var(--mfm-bg);color:#555;transition:all .2s}.json-toolbar button:hover{background:#eee;border-color:#ccc;color:#000}.json-viewer-dark .json-toolbar button{background:#333;color:#bbb;border:1px solid #444}.json-viewer-dark .json-toolbar button:hover{background:#444;border-color:#555;color:#fff}.json-search-group{flex:1;max-width:200px}.json-toolbar input{flex:1;font-size:12px;height:28px;padding:0 8px;border-radius:4px;border:1px solid var(--mfm-primary);outline:none}.json-viewer-dark .json-toolbar input{background:#252525;color:#ddd;border:1px solid #444}.json-viewer::-webkit-scrollbar{width:8px;height:8px}.json-viewer::-webkit-scrollbar-thumb{background:#80808066;border-radius:4px}.json-viewer::-webkit-scrollbar-thumb:hover{background:#80808099}.json-viewer-fullscreen{position:fixed!important;top:0!important;left:1%!important;width:98%;height:100vh!important;z-index:1000000!important;display:flex!important;flex-direction:column!important;box-sizing:border-box!important;max-height:99%!important}body.json-viewer-body-fullscreen{overflow:hidden!important;height:100vh!important}.json-viewer-fullscreen .json-tree-container{flex:1!important;overflow:auto!important;max-height:500px!important}.json-viewer.json-is-searching .json-node{display:none!important}.json-viewer.json-is-searching .json-node.json-item-visible{display:block!important}.json-tree-container{overflow:auto;max-height:315px}pre{user-select:text;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text}.mfm-status.rule{color:var(--mfm-info)}.mfm-mod-pill{font-size:.7rem;color:var(--mfm-primary);background:#3b82f61a;padding:2px 6px;border-radius:10px;font-weight:500}.mfm-rule-info .mfm-rule-action{font-weight:700;color:var(--mfm-primary)}.mfm-rule-info .mfm-rule-value{color:var(--mfm-value)}.mfm-mapping-list-activity{padding:0;max-height:468px;overflow-y:scroll}.mfm-mapping-list-activity .mfm-spinner{display:flex;justify-content:center;margin:10px auto}.mfm-mapping-list-activity .mfm-request-item{padding:16px}.mfm-empty{padding:32px;text-align:center;color:var(--mfm-text-dim);font-size:.9rem}.mfm-spinner{width:24px;height:24px;border:2px solid var(--mfm-border);border-top-color:var(--mfm-primary);border-radius:50%;animation:mfm-spin .8s linear infinite}@keyframes mfm-spin{to{transform:rotate(360deg)}}.mfm-rule-info{font-size:.7rem;color:var(--mfm-text-dim);margin-top:4px;padding-left:4px}.mfm-mocked-apis-activity{padding:0;height:468px;overflow-y:scroll}.mfm-other-apis-activity{padding:0;max-height:468px}.mfm-request-item{display:flex;flex-direction:column;padding:12px 16px;border-bottom:1px solid var(--mfm-border);cursor:pointer;background:var(--mfm-bg);transition:background-color .2s ease}.mfm-request-item:hover{background:var(--mfm-hover)}.mfm-request-item.active{background:var(--mfm-active-bg)}.mfm-request-header{display:flex;justify-content:space-between;align-items:center}.mfm-flex-row{display:flex;align-items:center;gap:8px}.mfm-method{font-size:.75rem;font-weight:700;min-width:40px}.mfm-status{font-size:.8rem;margin-left:8px}.mfm-status.success{color:var(--mfm-success)}.mfm-status.error{color:var(--mfm-error)}.mfm-status.pending{color:var(--mfm-text-dim)}.mfm-url{font-size:.85rem;color:var(--mfm-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.mfm-dropdown{position:relative;display:inline-block}.mfm-dropdown-content{display:none;position:absolute;right:0;top:100%;background-color:var(--mfm-bg);min-width:160px;box-shadow:0 4px 12px #00000026;z-index:1000;border:1px solid var(--mfm-border);border-radius:6px;overflow:hidden;margin-top:4px}.mfm-dropdown-content button{color:var(--mfm-text);padding:10px 16px;text-decoration:none;display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;font-size:.85rem;transition:background .1s}.mfm-dropdown-content button:hover{background-color:var(--mfm-hover)}.mfm-btn-icon{background:none;border:none;padding:4px;cursor:pointer;color:var(--mfm-text-dim);border-radius:4px;display:flex;align-items:center;justify-content:center}.mfm-btn-icon:hover{background:var(--mfm-hover);color:var(--mfm-text)}:root{--mfm-primary: #2563eb;--mfm-primary-hover: #1d4ed8;--mfm-bg: #ffffff;--mfm-surface: #f8fafc;--mfm-surface-bright: #f1f5f9;--mfm-text: #0f172a;--mfm-text-dim: #64748b;--mfm-border: #e2e8f0;--mfm-success: #10b981;--mfm-error: #ef4444;--mfm-warning: #f59e0b;--mfm-radius: 8px;--mfm-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--mfm-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px 1px rgb(0 0 0 / .1);--mfm-transition: all .15s ease-in-out;--mfm-value: #9b2418}#mfm-root{all:initial;display:block;position:fixed;bottom:24px;right:24px;z-index:2147483647;font-family:Inter,-apple-system,system-ui,sans-serif;color:var(--mfm-text);-webkit-user-select:none;user-select:none;box-sizing:border-box;font-size:12px}#mfm-root svg{fill:transparent}#mfm-root *{box-sizing:border-box;font-family:inherit;font-size:inherit}.mfm-widget-toggle{display:flex;align-items:center;background:#fff;padding:6px;border-radius:9999px;box-shadow:var(--mfm-shadow-lg);border:1px solid var(--mfm-border);gap:2px;cursor:pointer;transition:var(--mfm-transition)}.mfm-widget-toggle.hidden{display:none!important}.mfm-toggle-section{padding:6px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:var(--mfm-transition)}.mfm-toggle-section:hover{background:var(--mfm-surface-bright)}.mfm-toggle-logo img{width:32px;height:32px}.mfm-toggle-divider{width:1px;height:24px;background:var(--mfm-border);margin:0 4px}.mfm-main-container{position:fixed;bottom:24px;right:24px;width:370px;height:650px;background:var(--mfm-bg);border:1px solid var(--mfm-border);border-radius:var(--mfm-radius);box-shadow:var(--mfm-shadow-lg);display:flex;flex-direction:column;overflow:hidden;transition:var(--mfm-transition);transform-origin:bottom right}.mfm-main-container.hidden{opacity:0;transform:scale(.95) translateY(20px);pointer-events:none}.mfm-header{padding:12px 16px;margin-bottom:5px;background:#fff;display:flex;align-items:center;justify-content:space-between}.mfm-logo img{height:auto;width:auto;min-height:20px}.mfm-tabs-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.mfm-tabs-nav{display:flex;padding:0 16px;background:#fff;border-bottom:1px solid var(--mfm-border);gap:4px}.mfm-tab-btn{padding:10px 16px;background:transparent;border:1px solid transparent;border-bottom:none;color:var(--mfm-text-dim);cursor:pointer;font-size:15px!important;font-weight:500;margin-bottom:-1px;border-top-left-radius:4px;border-top-right-radius:4px;transition:var(--mfm-transition)}.mfm-tab-btn:hover{color:var(--mfm-text);background:var(--mfm-surface)}.mfm-tab-btn.active{color:var(--mfm-primary);background:#fff;border-color:var(--mfm-border);border-bottom:1px solid white;font-weight:700}.mfm-tab-toolbar{padding:12px 16px;border-bottom:1px solid var(--mfm-border);display:flex;flex-direction:column;gap:8px}.mfm-toolbar-row{display:flex;gap:8px;align-items:center}.mfm-input{height:36px;width:100%;padding:0 12px;border:1px solid var(--mfm-border);border-radius:6px;font-size:.875rem;outline:none}.search-input{width:200px!important}.mfm-input:focus{border-color:var(--mfm-primary);box-shadow:0 0 0 2px #2563eb1a}.mfm-btn-outline,.mfm-btn-icon{height:26px;width:40px;padding:0 12px;background:transparent!important;border:none!important;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;color:var(--mfm-text-dim);transition:var(--mfm-transition);display:flex;align-items:center;justify-content:center}.back-btn{padding:0}.mfm-btn-outline:hover,.mfm-btn-icon:hover{background:var(--mfm-surface-bright)!important;color:var(--mfm-text)}.mfm-preserve-logs{display:flex;align-items:center;gap:1px;font-size:.75rem;color:var(--mfm-text-dim);cursor:pointer}.mfm-preserve-logs input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.mfm-tab-content{flex:1;background:#fff;height:468px;overflow-y:scroll}.mfm-list{display:flex;flex-direction:column;max-height:460px;overflow-y:scroll}.mfm-empty{padding:60px 20px;text-align:center;color:var(--mfm-text-dim);font-size:.875rem}.mfm-request-item{padding:6px 16px;border-bottom:1px solid var(--mfm-border);cursor:pointer;transition:var(--mfm-transition);position:relative}.mfm-request-item:has(.mfm-dropdown-content.show){z-index:1100}.mfm-request-item.active{background:#eff6ff;border-left:3px solid var(--mfm-primary)}.mfm-request-item:hover{background:var(--mfm-surface)}.mfm-request-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.mfm-method{font-size:.7rem;font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase}.mfm-method.get{color:#2563eb;background:#eff6ff}.mfm-method.post{color:#16a34a;background:#f0fdf4}.mfm-method.put{color:#d97706;background:#fffbeb}.mfm-method.delete{color:#dc2626;background:#fef2f2}.mfm-method.rule{color:#7c3aed;background:#f5f3ff}.mfm-status{font-size:.75rem;font-weight:600}.mfm-status.rule{color:#8b5cf6;background:#8b5cf61a}.mfm-status.success{color:#16a34a}.mfm-status.error{color:#dc2626}.mfm-status.pending{color:#64748b}.mfm-url{font-size:.8125rem;color:var(--mfm-text);white-space:nowrap;overflow-x:scroll;width:290px;max-width:290px;scrollbar-width:thin}.mfm-url .mfm-rule-condition{display:inline-block;margin-right:4px;border-radius:20px;font-size:inherit;background:#eee;padding:2px 5px}.mfm-url .mfm-rule-condition .mfm-rule-condition-type{font-weight:600;color:var(--mfm-primary)}.mfm-url .mfm-rule-condition .mfm-rule-condition-operator{font-weight:600;border-bottom:1px solid var(--mfm-primary);text-transform:capitalize}.mfm-url .mfm-rule-condition .mfm-rule-condition-key-value{color:var(--mfm-value)}.mfm-rule-list .mfm-url{white-space:auto!important;overflow-x:scroll!important;text-overflow:inherit!important;scrollbar-width:thin}.mfm-bottomsheet{position:absolute;top:60px;left:0;right:0;bottom:0;background:#fff;z-index:1100;display:flex;flex-direction:column;transform:translate(100%);transition:transform .25s ease-in-out}.mfm-bottomsheet.active{transform:translate(0)}.mfm-bottomsheet-header{padding:12px 16px;border-bottom:1px solid var(--mfm-border);display:flex;align-items:center;gap:5px}.mfm-bottomsheet-content{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column}.mfm-detail-tabs{display:flex;border-bottom:1px solid var(--mfm-border);margin:16px -16px;padding:0 16px;gap:8px}.mfm-detail-tab-btn{padding:8px 12px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--mfm-text-dim);font-size:.8rem;font-weight:600;cursor:pointer;transition:var(--mfm-transition)}.mfm-detail-tab-btn:hover{color:var(--mfm-text)}.mfm-detail-tab-btn.active{color:var(--mfm-primary);border-bottom-color:var(--mfm-primary)}.mfm-detail-body{flex:1}.mfm-tab-content::-webkit-scrollbar,.mfm-bottomsheet-content::-webkit-scrollbar{width:8px}.mfm-tab-content::-webkit-scrollbar-track,.mfm-bottomsheet-content::-webkit-scrollbar-track{background:transparent}.mfm-tab-content::-webkit-scrollbar-thumb,.mfm-bottomsheet-content::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px;border:2px solid white}.mfm-tab-content::-webkit-scrollbar-thumb:hover,.mfm-bottomsheet-content::-webkit-scrollbar-thumb:hover{background:#94a3b8}.mfm-detail-section{margin-bottom:24px}.mfm-detail-title{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--mfm-text-dim);margin-bottom:8px;display:flex;justify-content:space-between}.mfm-detail-content{background:var(--mfm-bg);padding:12px;border-radius:6px;font-family:JetBrains Mono,Menlo,monospace;font-size:.8rem;border:1px solid var(--mfm-primary);word-break:break-all;max-height:500px;overflow-y:auto}.mfm-copy-btn{background:var(--mfm-primary);border:none;color:#fff;padding:4px 8px;border-radius:4px;font-size:.7rem;cursor:pointer;font-weight:600}.mfm-dropdown{position:relative}.mfm-dropdown-content{display:none;position:absolute;top:100%;right:0;background:#fff;min-width:140px;box-shadow:var(--mfm-shadow-lg);border:1px solid var(--mfm-border);border-radius:8px;z-index:1200;overflow:hidden}.mfm-dropdown-content.show{display:block}.mfm-dropdown-content button{width:100%;padding:10px 16px;text-align:left;background:transparent;border:none;font-size:.8125rem;color:var(--mfm-text);cursor:pointer}.mfm-dropdown-content button:hover{background:var(--mfm-surface)}.mfm-btn-primary{background:var(--mfm-primary);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-weight:600;cursor:pointer;transition:var(--mfm-transition)}.mfm-btn-primary:hover{background:var(--mfm-primary-hover)}.mfm-header-actions{display:flex;align-items:center}.mfm-switch{position:relative;display:inline-block;width:32px;height:20px;margin-right:12px}.mfm-switch input{opacity:0;width:0;height:0}.mfm-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#cbd5e1;transition:.4s;border-radius:34px}.mfm-slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.mfm-slider{background-color:var(--mfm-primary)}input:checked+.mfm-slider:before{transform:translate(12px)}.mfm-spinner{width:14px;height:14px;border:2px solid #cbd5e1;border-bottom-color:var(--mfm-primary);border-radius:50%;display:inline-block;box-sizing:border-box;animation:mfm-rotation 1s linear infinite}@keyframes mfm-rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mfm-request-item.pending-item{cursor:default;opacity:.8}.mfm-snackbar{visibility:hidden;min-width:250px;background-color:#333;color:#fff;text-align:center;border-radius:8px;padding:12px;position:fixed;z-index:2000;left:50%;bottom:30px;transform:translate(-50%);font-size:.9rem;box-shadow:0 4px 6px #0000001a;opacity:0;transition:opacity .3s,bottom .3s}.mfm-snackbar.show{visibility:visible;opacity:1;bottom:50px}.clear-btn svg{color:var(--mfm-text-dim)}#mfm-root .mfm-bulk-mock-popup{position:absolute;top:5px;left:5px;right:5px;bottom:5px;background:#fff;z-index:1200;border-radius:var(--mfm-radius);box-shadow:var(--mfm-shadow-lg);display:none;flex-direction:column;border:1px solid var(--mfm-border)}#mfm-root .mfm-bulk-mock-popup.active{display:flex}#mfm-root .mfm-bulk-mock-container{display:flex;flex-direction:column;height:100%;padding:16px;overflow:hidden}#mfm-root .mfm-bulk-mock-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-shrink:0}#mfm-root .mfm-bulk-mock-header h3{margin:0;font-size:1.1rem;color:var(--mfm-text)}#mfm-root .mfm-bulk-mock-header-actions{display:flex;align-items:center;gap:8px}#mfm-root #mfm-bulk-save-btn{padding:6px 12px;font-size:.8rem;background:var(--mfm-primary);color:#fff;border:none;border-radius:4px;cursor:pointer}#mfm-root #mfm-bulk-save-btn:disabled{opacity:.5;background:var(--mfm-text-dim);cursor:not-allowed}#mfm-root .mfm-bulk-mock-filters{display:flex;flex-direction:column;gap:12px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--mfm-border);flex-shrink:0}#mfm-root .mfm-bulk-mock-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px}#mfm-root .mfm-bulk-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;transition:var(--mfm-transition)}#mfm-root .mfm-bulk-item:hover{background:var(--mfm-surface)}#mfm-root .mfm-bulk-item .mfm-url{flex:1;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:auto}#mfm-root .mfm-toolbar-dropdown{position:relative;display:flex;align-items:center}#mfm-root .mfm-toolbar-dropdown .mfm-dropdown-menu{display:none;position:absolute;top:100%;right:0;background:#fff;min-width:120px;box-shadow:var(--mfm-shadow-lg);border:1px solid var(--mfm-border);border-radius:8px;z-index:1001;margin-top:4px}#mfm-root .mfm-toolbar-dropdown.show .mfm-dropdown-menu{display:block}#mfm-root .mfm-dropdown-item{width:100%;padding:10px 16px;text-align:left;background:transparent;border:none;font-size:.85rem;color:var(--mfm-text);cursor:pointer}#mfm-root .mfm-dropdown-item:hover{background:var(--mfm-surface)}#mfm-root .mfm-bulk-mock-popup{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}#mfm-root .mfm-bulk-item.selected{background:#2563eb0d;border-color:#2563eb1a}#mfm-root .mfm-bulk-checkbox{width:16px;height:16px;accent-color:var(--mfm-primary)}#mfm-root .mfm-bulk-mock-header h3{font-weight:700;letter-spacing:-.01em}#mfm-snip-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0006;z-index:2147483646;cursor:crosshair;display:flex;align-items:center;justify-content:center}#mfm-snip-selection{position:absolute;border:2px solid var(--mfm-primary);background:#2563eb1a;box-shadow:0 0 0 9999px #0006;display:none;pointer-events:none}#mfm-snip-modal .mfm-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;z-index:2147483647;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}#mfm-snip-modal .mfm-modal-container{width:90%;max-width:500px;background:#fff;border-radius:12px;box-shadow:var(--mfm-shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:mfm-fade-in .2s ease-out}#mfm-snip-modal .mfm-modal-header{padding:16px;border-bottom:1px solid var(--mfm-border);display:flex;justify-content:space-between;align-items:center}#mfm-snip-modal .mfm-modal-header h3{margin:0;font-size:1.1rem;font-weight:700}#mfm-snip-modal #mfm-modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--mfm-text-dim)}#mfm-snip-modal .mfm-modal-body{padding:16px;display:flex;flex-direction:column;gap:16px}#mfm-snip-modal .mfm-screenshot-preview{max-height:200px;overflow-y:auto;border:1px solid var(--mfm-border);border-radius:6px;background:#f1f5f9}#mfm-snip-modal .mfm-screenshot-preview img{width:100%;display:block}#mfm-snip-modal .mfm-context-input textarea{width:100%;height:100px;padding:12px;border:1px solid var(--mfm-border);border-radius:6px;resize:none;font-size:.9rem;outline:none}#mfm-snip-modal .mfm-context-input textarea:focus{border-color:var(--mfm-primary);box-shadow:0 0 0 2px #2563eb1a}#mfm-snip-modal .mfm-char-count{text-align:right;font-size:.75rem;color:var(--mfm-text-dim);margin-top:4px}#mfm-snip-modal .mfm-modal-footer{padding:16px;border-top:1px solid var(--mfm-border);display:flex;justify-content:flex-end;gap:12px}.mfm-btn-secondary{padding:8px 16px;background:#fff;border:1px solid var(--mfm-border);border-radius:6px;cursor:pointer}@keyframes mfm-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}#mfm-root .mfm-bulk-size{font-size:.7rem;color:var(--mfm-text-dim);margin-left:auto;padding:0 8px;font-family:inherit}#mfm-root .mfm-url-container{display:flex;flex-direction:column;overflow:hidden;flex:1;gap:2px}#mfm-root .mfm-url-path{font-size:.8rem;font-weight:500;color:var(--mfm-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}#mfm-root .mfm-url-domain{font-size:.7rem;color:var(--mfm-text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.mfm-bulk-item-actions{display:flex;gap:8px;margin-left:auto}.mfm-btn-text{background:transparent;border:none;color:var(--mfm-primary);font-size:.75rem;cursor:pointer;padding:2px 6px;border-radius:4px}.mfm-btn-text:hover{background:#2563eb1a}.mfm-response-editor{position:absolute;top:0;left:0;right:0;bottom:0;background:#fff;z-index:1300;display:none;flex-direction:column;padding:16px}.mfm-response-editor.active{display:flex}.mfm-response-editor textarea{flex:1;width:100%;padding:12px;border:1px solid var(--mfm-border);border-radius:6px;font-family:JetBrains Mono,Menlo,monospace;font-size:.8rem;resize:none;margin:12px 0}.mfm-editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.mfm-editor-footer{display:flex;justify-content:flex-end;gap:12px}#mfm-root .mfm-bulk-mock-list::-webkit-scrollbar{width:6px}#mfm-root .mfm-bulk-mock-list::-webkit-scrollbar-track{background:transparent}#mfm-root .mfm-bulk-mock-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.mfm-switch-with-label{display:flex;align-items:center;gap:4px;border:1px solid var(--mfm-border);border-radius:20px;padding:2px 2px 2px 5px}.mfm-switch-with-label .mfm-label{font-weight:700}.mfm-flex-center{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.mfm-loader{width:40px;height:40px;border:4px solid var(--mfm-surface-bright);border-bottom-color:var(--mfm-primary);border-radius:50%;display:inline-block;box-sizing:border-box;animation:mfm-rotation 1s linear infinite}.mfm-results-body{max-height:450px;overflow-y:auto!important;padding:20px!important}.mfm-result-section{margin-bottom:24px}.mfm-result-section:last-child{margin-bottom:0}.mfm-result-section h4{margin:0 0 10px;font-size:.8rem;font-weight:700;color:var(--mfm-text-dim);text-transform:uppercase;letter-spacing:.05em}.mfm-result-section p{margin:0;font-size:.95rem;line-height:1.5;color:var(--mfm-text)}.mfm-weakness-list{margin:0;padding-left:18px;font-size:.9rem;color:var(--mfm-text);line-height:1.6}.mfm-weakness-list li{margin-bottom:8px}.mfm-code-preview{background:#0f172a;color:#e2e8f0;padding:16px;border-radius:8px;font-family:JetBrains Mono,Menlo,Monaco,monospace;font-size:.85rem;overflow-x:auto;max-height:250px;border:1px solid #1e293b}.mfm-code-preview pre{margin:0;white-space:pre-wrap;word-break:break-all}.mfm-code-preview code{font-family:inherit}.d-none{display:none!important}.mfm-beta{font-size:8px!important;color:#ccc!important;margin-top:-5px!important}')),document.head.appendChild(A)}}catch(A){console.error("vite-plugin-css-injected-by-js",A)}}();var r=(A=>(A[A.NONE=0]="NONE",A[A.INFO=1]="INFO",A[A.WARN=2]="WARN",A[A.ERROR=3]="ERROR",A))(r||{}),n=(A=>(A.MFM_REQ_MAPPINGS="MFM_REQ_MAPPINGS",A.MFM_REQ_SAVED_MAPPINGS="MFM_REQ_SAVED_MAPPINGS",A.MFM_DEL_CLIENT_TOKEN="MFM_DEL_CLIENT_TOKEN",A.MFM_SUBMIT_TOKEN="MFM_SUBMIT_TOKEN",A.MFM_TOGGLE_INTERCEPTION="MFM_TOGGLE_INTERCEPTION",A.MFM_DEBUG_RULES_UPDATE="MFM_DEBUG_RULES_UPDATE",A.MFM_DEBUG_INTERCEPT_RES="MFM_DEBUG_INTERCEPT_RES",A.MFM_REQUEST_EDIT_RULES_UPDATE="MFM_REQUEST_EDIT_RULES_UPDATE",A.MFM_REQUEST_EDIT_RES="MFM_REQUEST_EDIT_RES",A.MFM_GLOBAL_DELAY_UPDATE="MFM_GLOBAL_DELAY_UPDATE",A.MFM_RES_MAPPINGS="MFM_RES_MAPPINGS",A.MFM_REQ="MFM_REQ",A.MFM_RES="MFM_RES",A.MFM_TOKEN_ERROR="MFM_TOKEN_ERROR",A.MFM_TOKEN_API_FAILED="MFM_TOKEN_API_FAILED",A.MFM_DEBUG_INTERCEPT_REQ="MFM_DEBUG_INTERCEPT_REQ",A.MFM_REQUEST_EDIT_REQ="MFM_REQUEST_EDIT_REQ",A.MFM_LOG_INFO="MFM_LOG_INFO",A.MFM_LOG_WARN="MFM_LOG_WARN",A.MFM_LOG_ERROR="MFM_LOG_ERROR",A))(n||{});function s(A,e,t="*",r){window.postMessage(function(A,e,t){const r={type:A};return t&&(r.source=t),void 0!==e&&(r.payload=e),r}(A,e,r),t)}const o=new class{constructor(){this.level=r.NONE}setLevel(A){this.level=A}normalizeArgs(A){return A.map((A=>{try{return void 0===A?"undefined":"string"==typeof A||"object"==typeof A?A:String(A)}catch{return"[Unserializable]"}}))}postLog(A,e){s(A,this.normalizeArgs(e),"*","mfm-widget-logger")}info(...A){this.level<r.INFO||(console.log("[MFM Info]",...A),this.postLog(n.MFM_LOG_INFO,A))}warn(...A){this.level<r.WARN||(console.warn("[MFM Warn]",...A),this.postLog(n.MFM_LOG_WARN,A))}error(...A){this.level<r.ERROR||(console.error("[MFM Error]",...A),this.postLog(n.MFM_LOG_ERROR,A))}},i=new Map,a=new Set;let l=!1;function c(A){return A!==n.MFM_LOG_INFO&&A!==n.MFM_LOG_WARN&&A!==n.MFM_LOG_ERROR}function d(){l||"undefined"==typeof window||(window.addEventListener("message",B),l=!0)}function u(A,e){c(A)&&o.info(`[postMessage] ${A}`,e),s(A,e)}function B(A){if(!function(A){if(!A||"object"!=typeof A)return!1;if(!("type"in A))return!1;const e=A.type;return"string"==typeof e&&e.startsWith("MFM_")}(A.data))return;const e=A.data;c(e.type)&&o.info(`[onMessage] ${e.type}`,e.payload),a.forEach((A=>A(e)));const t=i.get(e.type);t&&t.forEach((A=>{A(e.payload)}))}const m=A=>u(n.MFM_DEBUG_RULES_UPDATE,A),g=A=>u(n.MFM_DEBUG_INTERCEPT_RES,A),p=A=>u(n.MFM_REQUEST_EDIT_RULES_UPDATE,A),f=A=>u(n.MFM_REQUEST_EDIT_RES,A),h=A=>u(n.MFM_GLOBAL_DELAY_UPDATE,A),w={version:8,snipping:{name:"snipping",enabled:!0,platforms:{ios:{enabled:!1,ab:{ab1:0,ab2:0}},android:{enabled:!1,ab:{ab1:0,ab2:0}},web:{enabled:!0,ab:{ab1:100,ab2:0}}}},bulk_mock:{name:"bulk_mock",enabled:!0,platforms:{ios:{enabled:!1,ab:{ab1:0,ab2:0}},android:{enabled:!1,ab:{ab1:0,ab2:0}},web:{enabled:!0,ab:{ab1:100,ab2:0}}}},network_interceptor:{name:"network_interceptor",enabled:!0,platforms:{ios:{enabled:!0,ab:{ab1:50,ab2:0}},android:{enabled:!0,ab:{ab1:50,ab2:0}},web:{enabled:!0,ab:{ab1:100,ab2:0}}}},request_editor:{name:"request_editor",enabled:!0,platforms:{ios:{enabled:!0,ab:{ab1:50,ab2:0}},android:{enabled:!0,ab:{ab1:50,ab2:0}},web:{enabled:!0,ab:{ab1:100,ab2:0}}}}},Q="mfm_feature_config",C="mfm_user_id",U=(()=>{const A=localStorage.getItem(Q);if(A)try{const e=JSON.parse(A);return!e.version||e.version<w.version?(localStorage.setItem(Q,JSON.stringify(w)),w):e}catch(A){console.error("Failed to parse stored config",A)}return localStorage.setItem(Q,JSON.stringify(w)),w})(),b=(A=>{let e=0;for(let t=0;t<A.length;t++)e=(e<<5)-e+A.charCodeAt(t),e|=0;return Math.abs(e)%100})((()=>{let A=localStorage.getItem(C);return A||(A=Math.random().toString(36).substring(2,15),localStorage.setItem(C,A)),A})()),F="https://api.mockforme.com",y="/mockforme";function v(A,e="web"){return null!==function(A,e="web"){var t;const r=U[A];if(!r||!r.enabled)return null;const n=null==(t=r.platforms)?void 0:t[e];if(!n||!n.enabled)return null;if(n.ab){let A=0;for(const[e,t]of Object.entries(n.ab)){const r=t||0;if(b>=A&&b<A+r)return e;A+=r}return null}return"enabled"}(A,e)}function E(A,e){if(!A)return e;try{return JSON.parse(A)}catch{return e}}let H=!1;function I(A){H=!!A}function x(...A){H&&console.log("[MFM]",...A)}function k(...A){H&&console.warn("[MFM]",...A)}const M="MFM_INTERCEPTOR_RULES",L="MFM_REQUEST_EDITOR_RULES",S="MFM_GLOBAL_DELAY",K="MFM_ANALYTICS",D="MFM_DEBUG_LOGS";function T(A){try{localStorage.setItem(M,JSON.stringify(A))}catch{}}function R(A){try{localStorage.setItem(L,JSON.stringify(A))}catch{}}const O={state:function(){var A,e,t,r,n,s,o,i,a,l,c,d;const u=E(sessionStorage.getItem("MFM_SAVED_REQUESTS"),[]).filter((A=>{var e;return!((null==(e=A.request)?void 0:e.url)||"").includes("/3f4eae522b")})).map((A=>A.response?A:{...A,response:{statusCode:0,statusText:"Disconnected",body:"[Request terminated due to page refresh or network interruption]",headers:{},endTime:new Date(A.timestamp||Date.now()).toISOString()}})),B=E(localStorage.getItem("MFM_CONFIG"),{}),m={enabled:!0,isInterceptEnabled:"false"!==sessionStorage.getItem("MFM_IS_INTERCEPT_ENABLED"),isOpen:B.isOpen||!1,token:localStorage.getItem("MFM_TOKEN")||null,isTokenValidating:!1,isTokenLoading:!1,mappings:{apis:[],rules:[]},isMappingsLoading:!1,requests:u.filter((A=>!A.request.url.includes("mockforme.com"))),ui:{selectedTab:B.selectedTab||"MOCKED",tokenError:null,activeDropdownId:null,detailTab:B.detailTab||"HEADERS",tabConfigs:{MAPPINGS:{searchText:"",selectedRule:(null==(e=null==(A=B.tabConfigs)?void 0:A.MAPPINGS)?void 0:e.selectedRule)||null,isDetailOpen:Boolean(null==(r=null==(t=B.tabConfigs)?void 0:t.MAPPINGS)?void 0:r.isDetailOpen)},MOCKED:{searchText:"",selectedRequestId:(null==(s=null==(n=B.tabConfigs)?void 0:n.MOCKED)?void 0:s.selectedRequestId)||null,isPreserveLogs:"true"===localStorage.getItem("MFM_PRESERVE_LOGS_MOCKED"),isDetailOpen:Boolean(null==(i=null==(o=B.tabConfigs)?void 0:o.MOCKED)?void 0:i.isDetailOpen)},OTHER:{searchText:"",selectedRequestId:(null==(l=null==(a=B.tabConfigs)?void 0:a.OTHER)?void 0:l.selectedRequestId)||null,isPreserveLogs:"true"===localStorage.getItem("MFM_PRESERVE_LOGS_OTHER"),isDetailOpen:Boolean(null==(d=null==(c=B.tabConfigs)?void 0:c.OTHER)?void 0:d.isDetailOpen)}},isBulkMockOpen:!1,isDebuggerOpen:!1,isRequestEditorOpen:!1,isSettingsOpen:!1},features:{bulk_mock:v("bulk_mock"),snipping:v("snipping"),network_interceptor:v("network_interceptor"),request_editor:v("request_editor")},interceptors:{rules:E(localStorage.getItem(M),[]),pending:null,queue:[]},requestEditors:{rules:E(localStorage.getItem(L),[]),pending:null,queue:[]},globalDelay:E(localStorage.getItem(S),{enabled:!1,seconds:0}),analytics:E(localStorage.getItem(K),{enabled:!1}),debugLogs:E(localStorage.getItem(D),{enabled:!1})};return I(m.debugLogs.enabled),function(A){const e=A.ui.selectedTab;if("MAPPINGS"===e)return;const t=A.ui.tabConfigs[e];if(!t.isDetailOpen||!t.selectedRequestId)return;A.requests.some((A=>String(A.requestId)===String(t.selectedRequestId)))||(t.isDetailOpen=!1,t.selectedRequestId=null,A.ui.selectedTab="MOCKED")}(m),m}(),listeners:[],_notifyTimer:null,subscribe(A){return this.listeners.push(A),()=>{this.listeners=this.listeners.filter((e=>e!==A))}},notify(){this._notifyTimer||(this._notifyTimer=requestAnimationFrame((()=>{this._notifyTimer=null,this.listeners.forEach((A=>A(this.state))),document.dispatchEvent(new CustomEvent("MFM_STATE_CHANGE",{detail:this.state})),function(A){localStorage.setItem("MFM_CONFIG",JSON.stringify({isOpen:A.isOpen,selectedTab:A.ui.selectedTab,detailTab:A.ui.detailTab,activeDropdownId:A.ui.activeDropdownId,tabConfigs:{MAPPINGS:{selectedRule:A.ui.tabConfigs.MAPPINGS.selectedRule,isDetailOpen:A.ui.tabConfigs.MAPPINGS.isDetailOpen},MOCKED:{selectedRequestId:A.ui.tabConfigs.MOCKED.selectedRequestId,isDetailOpen:A.ui.tabConfigs.MOCKED.isDetailOpen},OTHER:{selectedRequestId:A.ui.tabConfigs.OTHER.selectedRequestId,isDetailOpen:A.ui.tabConfigs.OTHER.isDetailOpen}}}))}(this.state)})))},update(A,e){const t=A.split(".");let r=this.state;for(let A=0;A<t.length-1;A+=1){const e=r[t[A]];if(!e||"object"!=typeof e)return;r=e}r[t[t.length-1]]=e,this.notify()},set(A,e){this.state[A]=e,this.notify()}};function q(A){var e;try{if("undefined"==typeof window||"undefined"==typeof fetch)return;if(!(null==(e=O.state.analytics)?void 0:e.enabled))return;const t=O.state.token;if(!t)return;const r={action:A,time:(new Date).toISOString()};fetch(`${F}/analytics`,{method:"POST",headers:{"Content-Type":"application/json",mockforme:t,"x-mfm-internal":"true"},body:JSON.stringify(r),credentials:"omit",keepalive:!0}).catch((A=>{o.info("[analytics] failed to send",A)}))}catch(A){o.info("[analytics] threw",A)}}function N(A){var e;if("undefined"!=typeof document)try{document.dispatchEvent(new CustomEvent("mfm:rule-sync",{detail:A})),x("rule-sync dispatched",A.kind,{rules:null==(e=A.payload.rules)?void 0:e.length,delay:A.payload.delay})}catch(A){x("rule-sync dispatch failed",A)}}let _=[];function P(A){var e,t;const r=null==(e=O.state.ui.tabConfigs.MOCKED)?void 0:e.isPreserveLogs,n=null==(t=O.state.ui.tabConfigs.OTHER)?void 0:t.isPreserveLogs,s=A.filter((A=>{const e="MOCKED"===A.interceptionType;return e&&r||!e&&n}));s.length>0?sessionStorage.setItem("MFM_SAVED_REQUESTS",JSON.stringify(s)):sessionStorage.removeItem("MFM_SAVED_REQUESTS")}function G(A){var e,t,r,n;if(!A)return!1;if(!A.response)return!0;const s=O.state.interceptors;if((null==(e=s.pending)?void 0:e.requestId)===A.requestId)return!0;const o=O.state.requestEditors;if((null==(t=o.pending)?void 0:t.requestId)===A.requestId)return!0;if(null==(r=o.pending)?void 0:r.siblingRequestIds.includes(A.requestId))return!0;if((null==(n=s.pending)?void 0:n.requestId)===A.requestId)return!0;const{method:i,url:a}=A.request;return!!o.rules.some((A=>A.enabled&&A.method===i&&A.url===a))||!!s.rules.some((A=>A.enabled&&A.method===i&&A.url===a))}function V(A){var e,t,r;const n=(null==(e=A.request)?void 0:e.url)||"";if(n.includes("/3f4eae522b")||n.includes("mockforme.com"))return void x("addRequest skipped (own-domain / health-check)",A.requestId);if(O.state.isTokenValidating)return o.info("Queuing request during token validation",A.requestId),void _.push(A);const s=function(A){const e=[...O.state.requests],t=e.findIndex((e=>e.requestId===A.requestId));if(t>-1){const r=e[t];e[t]={...r,...A,rule:A.rule||r.rule}}else e.push(A);return function(A){if(A.length<=100)return A;const e=[],t=[];for(const r of A)G(r)?e.push(r):t.push(r);const r=Math.max(0,100-e.length),n=r>0?t.slice(-r):[],s=new Set([...e,...n].map((A=>A.requestId))),o=A.filter((A=>s.has(A.requestId)));return A.length!==o.length&&x("trimRequests dropped",A.length-o.length,"request(s)",{pinnedKept:e.length,disposableKept:n.length}),o}(e)}(A);O.set("requests",s),P(s),x("addRequest",{requestId:A.requestId,method:null==(t=A.request)?void 0:t.method,url:null==(r=A.request)?void 0:r.url,isPending:!A.response,interceptionType:A.interceptionType,listSize:s.length})}function J(A,e,t){return A.enabled&&A.method===e&&A.url===t}function X(A,e,t){return A.enabled&&A.method===e&&A.url===t}const Y={toggleWidget(){const A=!O.state.isOpen;O.update("isOpen",A),q(A?"widget_open":"widget_close")},setTab(A){O.update("ui.selectedTab",A)},deleteToken(){o.warn("Deleting Client Token"),q("token_delete"),O.update("token",null),O.update("isTokenValidating",!1),O.update("isTokenLoading",!1),O.update("ui.tokenError",null),this.closeDetails(),O.set("requests",[]),this.clearQueue(),sessionStorage.removeItem("MFM_SAVED_REQUESTS"),localStorage.removeItem("MFM_TOKEN"),this.clearDebugRules(),this.clearRequestEditRules(),u(n.MFM_DEL_CLIENT_TOKEN)},submitToken(A){A?(O.update("ui.tokenError",null),O.update("isTokenValidating",!0),O.update("isTokenLoading",!0),localStorage.setItem("MFM_TOKEN_TEMP",A),(A=>{u(n.MFM_SUBMIT_TOKEN,{token:A})})(A),q("token_submit")):O.update("ui.tokenError","Token is required")},reloadMappings(){o.info("Reloading Mappings"),O.update("ui.tokenError",null),O.update("isMappingsLoading",!0),u(n.MFM_REQ_MAPPINGS),q("mappings_reload")},fetchSavedMappings(){o.info("Fetching Saved Mappings"),u(n.MFM_REQ_SAVED_MAPPINGS)},toggleInterception(A){const e=void 0!==A?A:!O.state.isInterceptEnabled;e!==O.state.isInterceptEnabled&&(o.info("Toggling Interception:",e),O.update("isInterceptEnabled",e),sessionStorage.setItem("MFM_IS_INTERCEPT_ENABLED",String(e)),(A=>{u(n.MFM_TOGGLE_INTERCEPTION,{enabled:A})})(e),q("interception_toggle"))},addRequest(A){if(A.response){const e=String(A.interceptionType||"").toUpperCase();"MOCKED"===e?q("mock_hit"):"RULE"===e&&q("rule_hit")}V(A)},clearRequests(){const A=O.state.ui.selectedTab,e=O.state.requests.filter((e=>("MOCKED"===e.interceptionType?"MOCKED":"OTHER")!==A));O.set("requests",e),sessionStorage.setItem("MFM_SAVED_REQUESTS",JSON.stringify(e))},setPreserveLogs(A){const e=O.state.ui.selectedTab;"MAPPINGS"!==e&&(O.update(`ui.tabConfigs.${e}.isPreserveLogs`,A),localStorage.setItem(`MFM_PRESERVE_LOGS_${e}`,String(A)),P(O.state.requests))},setSearchText(A){const e=O.state.ui.selectedTab;O.update(`ui.tabConfigs.${e}.searchText`,A)},selectRequest(A){const e=O.state.ui.selectedTab;"MAPPINGS"!==e&&(O.update(`ui.tabConfigs.${e}.selectedRequestId`,A),O.update(`ui.tabConfigs.${e}.isDetailOpen`,!0),O.update("ui.detailTab","HEADERS"))},selectRule(A){O.update("ui.tabConfigs.MAPPINGS.selectedRule",A),O.update("ui.tabConfigs.MAPPINGS.isDetailOpen",!0),O.update("ui.detailTab","HEADERS")},minimizeDetails(){const A=O.state.ui.selectedTab;O.update(`ui.tabConfigs.${A}.isDetailOpen`,!1)},closeDetails(){const A=O.state.ui.selectedTab;O.update(`ui.tabConfigs.${A}.isDetailOpen`,!1),"MAPPINGS"!==A?O.update(`ui.tabConfigs.${A}.selectedRequestId`,null):O.update("ui.tabConfigs.MAPPINGS.selectedRule",null)},resetUnavailableRequestDetails(A){O.update(`ui.tabConfigs.${A}.isDetailOpen`,!1),O.update(`ui.tabConfigs.${A}.selectedRequestId`,null),O.update("ui.selectedTab","MOCKED"),O.update("ui.detailTab","HEADERS")},setDetailTab(A){O.update("ui.detailTab",A)},setOpenDropdown(A){const e=O.state.ui.activeDropdownId;O.update("ui.activeDropdownId",e===A?null:A)},clearOpenDropdown(){O.state.ui.activeDropdownId&&O.update("ui.activeDropdownId",null)},setBulkMockOpen(A){O.update("ui.isBulkMockOpen",A),A&&q("bulk_mock_open")},flushQueue(){!function(){o.info("Flushing request queue",_.length);const A=[..._];_=[],A.forEach((A=>V(A)))}()},clearQueue(){o.warn("Clearing request queue"),_=[]},findDebugRuleForRequest(A){const e=O.state.requests.find((e=>e.requestId===A));return e&&O.state.interceptors.rules.find((A=>J(A,e.request.method,e.request.url)))||null},toggleDebugRuleForRequest(A){const e=O.state.requests.find((e=>e.requestId===A));if(!e)return;const{method:t,url:r}=e.request,n=O.state.interceptors.rules,s=n.find((A=>J(A,t,r)));let i;if(s)o.info("Removing Debug Rule",s),q("debugger_removed"),i=n.filter((A=>A.id!==s.id));else{const A={id:`dbg_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`,method:t,url:r,enabled:!0,createdAt:Date.now()};o.info("Adding Debug Rule",A),q("debugger_added"),i=[...n,A]}O.update("interceptors.rules",i),T(i),N({kind:"debugger",payload:{rules:i}}),m({rules:i}),x("toggleDebugRule",{count:i.length}),Y.clearOpenDropdown()},setPendingIntercept(A){var e;o.info("Pending Intercept Received",A),q("debugger_hit"),x("setPendingIntercept",{requestId:A.requestId,url:null==(e=A.request)?void 0:e.url});const t={...A,siblingRequestIds:[]},r=O.state.interceptors.pending;if(!r)return O.update("interceptors.pending",t),void O.update("ui.isDebuggerOpen",!0);if(r.request.method===t.request.method&&r.request.url===t.request.url){const A={...r,siblingRequestIds:[...r.siblingRequestIds,t.requestId]};return O.update("interceptors.pending",A),void x(`debugger batched (${A.siblingRequestIds.length+1} total)`)}const n=[...O.state.interceptors.queue,t];O.update("interceptors.queue",n),x(`debugger queued (queue size ${n.length})`)},resolvePendingIntercept(A){o.info("Resolving Pending Intercept",A);const e=O.state.interceptors.pending;g(A),e&&e.requestId===A.requestId&&e.siblingRequestIds.forEach((e=>{g({...A,requestId:e})}));const t=O.state.interceptors.queue;if(t.length>0){const[A,...e]=t;return O.update("interceptors.queue",e),void O.update("interceptors.pending",A)}O.update("interceptors.pending",null),O.update("ui.isDebuggerOpen",!1)},forwardOriginalResponse(){const A=O.state.interceptors.pending;A?Y.resolvePendingIntercept({requestId:A.requestId,simulateTimeout:!1,delayMs:0,statusCode:A.response.statusCode,headers:A.response.headers||{},body:A.response.body}):O.update("ui.isDebuggerOpen",!1)},clearDebugRules(){(0!==O.state.interceptors.rules.length||O.state.interceptors.pending||0!==O.state.interceptors.queue.length)&&(O.update("interceptors.rules",[]),O.update("interceptors.pending",null),O.update("interceptors.queue",[]),O.update("ui.isDebuggerOpen",!1),T([]),N({kind:"debugger",payload:{rules:[]}}),m({rules:[]}),x("clearDebugRules"))},findRequestEditRuleForRequest(A){const e=O.state.requests.find((e=>e.requestId===A));return e&&O.state.requestEditors.rules.find((A=>X(A,e.request.method,e.request.url)))||null},toggleRequestEditRuleForRequest(A){const e=O.state.requests.find((e=>e.requestId===A));if(!e)return;const{method:t,url:r}=e.request,n=O.state.requestEditors.rules,s=n.find((A=>X(A,t,r)));let i;if(s)o.info("Removing Request-Editor Rule",s),q("edit_removed"),i=n.filter((A=>A.id!==s.id));else{const A={id:`req_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`,method:t,url:r,enabled:!0,createdAt:Date.now()};o.info("Adding Request-Editor Rule",A),q("edit_added"),i=[...n,A]}O.update("requestEditors.rules",i),R(i),N({kind:"editor",payload:{rules:i}}),p({rules:i}),x("toggleRequestEditRule",{count:i.length}),Y.clearOpenDropdown()},setPendingRequestEdit(A){o.info("Pending Request Edit Received",A),q("edit_hit");const e={...A,siblingRequestIds:[]},t=O.state.requestEditors.pending;if(!t)return O.update("requestEditors.pending",e),void O.update("ui.isRequestEditorOpen",!0);if(t.request.method===e.request.method&&t.request.url===e.request.url){const A={...t,siblingRequestIds:[...t.siblingRequestIds,e.requestId]};return O.update("requestEditors.pending",A),void o.info(`Batched request ${e.requestId} with active popup (${A.siblingRequestIds.length+1} total)`)}const r=[...O.state.requestEditors.queue,e];O.update("requestEditors.queue",r),o.info(`Queued request ${e.requestId} behind active popup (queue size ${r.length})`)},resolvePendingRequestEdit(A){o.info("Resolving Pending Request Edit",A);const e=O.state.requestEditors.pending;f(A),e&&e.requestId===A.requestId&&e.siblingRequestIds.forEach((e=>{f({...A,requestId:e})}));const t=O.state.requestEditors.queue;if(t.length>0){const[A,...e]=t;return O.update("requestEditors.queue",e),void O.update("requestEditors.pending",A)}O.update("requestEditors.pending",null),O.update("ui.isRequestEditorOpen",!1)},forwardOriginalRequest(){const A=O.state.requestEditors.pending;if(!A)return void O.update("ui.isRequestEditorOpen",!1);const e={};Object.entries(A.request.headers||{}).forEach((([A,t])=>{e[A]=String(t??"")})),Y.resolvePendingRequestEdit({requestId:A.requestId,cancel:!1,headers:e,queryParams:A.queryParams||{},body:"string"==typeof A.request.body?A.request.body:null==A.request.body?null:JSON.stringify(A.request.body)})},setSettingsOpen(A){O.update("ui.isSettingsOpen",A)},setGlobalDelay(A){const e={enabled:!!A.enabled&&Number.isFinite(A.seconds)&&A.seconds>0,seconds:Number.isFinite(A.seconds)&&A.seconds>=0?A.seconds:0};o.info("Setting global delay",e),O.update("globalDelay",e),function(A){try{localStorage.setItem(S,JSON.stringify(A))}catch{}}(e),N({kind:"global-delay",payload:{delay:e}}),h(e),q(e.enabled?"delay_added":"delay_removed"),x("setGlobalDelay",e)},disableGlobalDelay(){const A=O.state.globalDelay;A.enabled&&Y.setGlobalDelay({enabled:!1,seconds:A.seconds})},setAnalyticsEnabled(A){const e={enabled:!!A};o.info("Setting analytics",e),O.update("analytics",e),function(A){try{localStorage.setItem(K,JSON.stringify(A))}catch{}}(e)},setDebugLogsEnabled(A){const e={enabled:!!A};O.update("debugLogs",e),function(A){try{localStorage.setItem(D,JSON.stringify(A))}catch{}}(e),I(e.enabled)},clearRequestEditRules(){(0!==O.state.requestEditors.rules.length||O.state.requestEditors.pending||0!==O.state.requestEditors.queue.length)&&(O.update("requestEditors.rules",[]),O.update("requestEditors.pending",null),O.update("requestEditors.queue",[]),O.update("ui.isRequestEditorOpen",!1),R([]),N({kind:"editor",payload:{rules:[]}}),p({rules:[]}),x("clearRequestEditRules"))}};function j(A,e="default",t=3e3){if(!document.body)return;let r=document.getElementById("mfm-snackbar");r||(r=document.createElement("div"),r.id="mfm-snackbar",r.className="mfm-snackbar",document.body.appendChild(r)),r.textContent=A,r.className=("mfm-snackbar show "+("error"===e?"mfm-snackbar-error":"")).trim(),setTimeout((()=>{r&&(r.className=r.className.replace("show","").trim())}),t)}function W(){const A=document.querySelector("#mfm-reload-header");A&&(A.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><polyline points="21 3 21 8 16 8"></polyline></svg>',A.style.pointerEvents="auto")}function $(A,e){o.error(`Token Error (${A})`,e),O.update("ui.tokenError",(null==e?void 0:e.message)||"Something went wrong"),O.update("isTokenLoading",!1),O.update("isMappingsLoading",!1),O.update("isTokenValidating",!1),A===n.MFM_TOKEN_ERROR&&(O.update("token",null),Y.clearQueue(),localStorage.removeItem("MFM_TOKEN"),localStorage.removeItem("MFM_TOKEN_TEMP")),W(),j((null==e?void 0:e.message)||"Request failed","error")}const Z="https://www.mockforme.com/assets/images/logo.png",z='<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:block;"><circle cx="12" cy="12" r="10"></circle><line x1="4.93" y1="4.93" x2="19.07" y2="19.07"></line></svg>',AA='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>',eA='<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"></path></svg>';class tA{constructor(A){this.input=null,this.submitBtn=null,this.errorDisplay=null,this.closeBtn=null,this.unsubscribe=null,this.parent=A,this.element=document.createElement("div"),this.element.className="mfm-token-form",this.unsubscribe=O.subscribe(this.render.bind(this)),this.init()}init(){this.renderStructure(),this.bindEvents(),this.render(O.state),this.parent.appendChild(this.element)}closeTokenForm(){Y.toggleWidget()}renderStructure(){this.element.innerHTML=`\n <div class="mfm-token-header">\n <button class="mfm-btn-icon" id="mfm-close-token-form" title="Close Widget">\n ${AA}\n </button>\n </div>\n <div class="mfm-token-container">\n <img src="${Z}" alt="MockForMe Logo" class="mfm-token-logo">\n <h3 class="mfm-token-title">Welcome to MockForMe</h3>\n <p class="mfm-token-desc">\n Paste your token below to start mocking and intercepting API requests.\n </p>\n <input type="text" class="mfm-input mfm-token-input" placeholder="Enter Client Token...">\n <div class="mfm-token-error"></div>\n <button class="mfm-token-submit">Continue</button>\n <div class="mfm-token-link-container">\n <a href="https://dashboard.mockforme.com/user/token" target="_blank" class="mfm-token-link">Get your access token</a>\n </div>\n </div>\n `,this.input=this.element.querySelector(".mfm-token-input"),this.submitBtn=this.element.querySelector(".mfm-token-submit"),this.errorDisplay=this.element.querySelector(".mfm-token-error"),this.closeBtn=this.element.querySelector("#mfm-close-token-form")}bindEvents(){this.input&&(this.input.oninput=()=>{O.state.ui.tokenError&&O.update("ui.tokenError",null)}),this.submitBtn&&(this.submitBtn.onclick=()=>{var A;const e=null==(A=this.input)?void 0:A.value.trim();e&&Y.submitToken(e)}),this.closeBtn&&(this.closeBtn.onclick=()=>{this.closeTokenForm()})}render(A){if(!this.input||!this.submitBtn||!this.errorDisplay)return;const{tokenError:e}=A.ui,{isTokenLoading:t}=A;e?(this.errorDisplay.textContent=e,this.errorDisplay.style.display="block",this.input.style.borderColor="var(--mfm-error)"):(this.errorDisplay.style.display="none",this.input.style.borderColor=""),t?(this.input.disabled=!0,this.submitBtn.disabled=!0,this.submitBtn.innerHTML='<div class="mfm-spinner"></div>'):(this.input.disabled=!1,this.submitBtn.disabled=!1,this.submitBtn.innerHTML="Continue")}destroy(){this.unsubscribe&&this.unsubscribe(),this.element.remove()}}function rA(){const A=O.state.requestEditors.pending,e=O.state.interceptors.pending;return A||e?A?e?A.timestamp<=e.timestamp?"editor":"debugger":"editor":"debugger":null}function nA(A){const e=A.trim();if(!e)return"";try{return JSON.parse(e)}catch{return A}}function sA(A){const e=A.trim();if(!e)return{};try{const A=JSON.parse(e);if(A&&"object"==typeof A&&!Array.isArray(A))return A}catch{}return{}}const oA=()=>!0===O.state.features.bulk_mock,iA=()=>!0===O.state.features.network_interceptor,aA=()=>!0===O.state.features.request_editor;class lA{constructor(A){this.unsubscribe=null,this.popup=null,this.currentRequestId=null,this.currentSiblingCount=0,this.parent=A,this.init()}init(){iA()&&(this.popup=function(A,e){const t=document.createElement("div");t.className="mfm-debugger-popup",t.id="mfm-debugger-popup",t.innerHTML=`\n <div class="mfm-debugger-card">\n <div class="mfm-debugger-header">\n <div class="mfm-debugger-title">\n <span class="mfm-debugger-pulse"></span>\n <h4>Live Debugger</h4>\n </div>\n <button class="mfm-btn-icon" id="mfm-debugger-close" title="Forward original">${AA}</button>\n </div>\n\n <div class="mfm-debugger-meta">\n <div class="mfm-debugger-row">\n <span class="mfm-method" id="mfm-debugger-method"></span>\n <span class="mfm-url-path" id="mfm-debugger-url" title=""></span>\n </div>\n <div class="mfm-debugger-hint">The consumer is paused. Edit the response below, then send.</div>\n </div>\n\n <div class="mfm-debugger-body">\n <div class="mfm-debugger-controls">\n <label class="mfm-debugger-field" style="width: 110px;">\n <span>Status Code</span>\n <input type="number" class="mfm-input" id="mfm-debugger-status" value="200">\n </label>\n <label class="mfm-debugger-field" style="width: 130px;">\n <span>Delay (ms)</span>\n <input type="number" class="mfm-input" id="mfm-debugger-delay" value="0" min="0" step="50">\n </label>\n <label class="mfm-debugger-toggle">\n <input type="checkbox" id="mfm-debugger-timeout">\n <span>Simulate timeout</span>\n </label>\n </div>\n\n <div class="mfm-debugger-section">\n <div class="mfm-debugger-section-title">Headers (JSON)</div>\n <textarea id="mfm-debugger-headers" spellcheck="false" rows="3"></textarea>\n </div>\n\n <div class="mfm-debugger-section mfm-debugger-section-grow">\n <div class="mfm-debugger-section-title">Response Body</div>\n <textarea id="mfm-debugger-body" spellcheck="false"></textarea>\n </div>\n </div>\n\n <div class="mfm-debugger-footer">\n <button class="mfm-btn-text" id="mfm-debugger-cancel">Forward original</button>\n <button class="mfm-btn mfm-btn-primary mfm-debugger-send" id="mfm-debugger-send">Send response</button>\n </div>\n </div>\n `,A.appendChild(t);const r=t.querySelector("#mfm-debugger-method"),n=t.querySelector("#mfm-debugger-url"),s=t.querySelector("#mfm-debugger-status"),o=t.querySelector("#mfm-debugger-delay"),i=t.querySelector("#mfm-debugger-timeout"),a=t.querySelector("#mfm-debugger-headers"),l=t.querySelector("#mfm-debugger-body"),c=t.querySelector("#mfm-debugger-close"),d=t.querySelector("#mfm-debugger-cancel"),u=t.querySelector("#mfm-debugger-send"),B=()=>e.onCancel();return c.onclick=B,d.onclick=B,i.onchange=()=>{const A=i.checked;l.disabled=A,a.disabled=A,s.disabled=A,t.classList.toggle("timeout-mode",A)},u.onclick=()=>{const A=i.checked,t=Math.max(0,Number(o.value)||0);e.onSend({simulateTimeout:A,delayMs:t,statusCode:Number(s.value)||200,headers:sA(a.value),body:nA(l.value)})},{show(A){r.className=`mfm-method ${(A.request.method||"").toLowerCase()}`,r.textContent=A.request.method,n.textContent=A.request.url,n.title=A.request.url,s.value=String(A.response.statusCode??200),o.value="0",i.checked=!1,l.disabled=!1,a.disabled=!1,s.disabled=!1,t.classList.remove("timeout-mode"),a.value=function(A){if(!A||0===Object.keys(A).length)return"{}";try{return JSON.stringify(A,null,2)}catch{return"{}"}}(A.response.headers),l.value=function(A){if(null==A)return"";if("string"==typeof A)return A;try{return JSON.stringify(A,null,2)}catch{return String(A)}}(A.response.body),t.classList.add("active")},hide(){t.classList.remove("active")},destroy(){t.remove()}}}(this.parent,{onSend:A=>this.handleSend(A),onCancel:()=>this.handleCancel()}),this.unsubscribe=O.subscribe((()=>this.render())),this.render())}render(){var A,e,t;if(!this.popup)return;const r=O.state.interceptors.pending,n=rA();if(!r||"debugger"!==n)return void(this.currentRequestId&&(this.popup.hide(),this.currentRequestId=null,this.currentSiblingCount=0));const s=(null==(A=r.siblingRequestIds)?void 0:A.length)||0;r.requestId!==this.currentRequestId&&(x("debugger activity: showing popup",{requestId:r.requestId,method:null==(e=r.request)?void 0:e.method,url:null==(t=r.request)?void 0:t.url,siblings:s}),this.popup.show(r),this.currentRequestId=r.requestId,this.currentSiblingCount=s)}handleSend(A){const e=this.getPending();e&&Y.resolvePendingIntercept(function(A,e){return{requestId:A.requestId,simulateTimeout:e.simulateTimeout,delayMs:e.delayMs,statusCode:e.statusCode,headers:e.headers,body:e.body}}(e,A))}handleCancel(){Y.forwardOriginalResponse()}getPending(){return O.state.interceptors.pending}destroy(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this.popup&&(this.popup.destroy(),this.popup=null)}}function cA(A){if(!A||0===Object.keys(A).length)return"{}";try{return JSON.stringify(A,null,2)}catch{return"{}"}}function dA(A){const e=A.trim();if(!e)return{};try{const A=JSON.parse(e);if(A&&"object"==typeof A&&!Array.isArray(A)){const e={};return Object.entries(A).forEach((([A,t])=>{e[A]=String(null==t?"":t)})),e}}catch{}return{}}class uA{constructor(A){this.unsubscribe=null,this.popup=null,this.currentRequestId=null,this.currentSiblingCount=0,this.parent=A,this.init()}init(){aA()&&(this.popup=function(A,e){const t=document.createElement("div");t.className="mfm-request-editor-popup",t.id="mfm-request-editor-popup",t.innerHTML=`\n <div class="mfm-request-editor-card">\n <div class="mfm-request-editor-header">\n <div class="mfm-request-editor-title">\n <span class="mfm-request-editor-pulse"></span>\n <h4>Edit Outgoing Request</h4>\n </div>\n <button class="mfm-btn-icon" id="mfm-request-editor-close" title="Forward original">${AA}</button>\n </div>\n\n <div class="mfm-request-editor-meta">\n <div class="mfm-request-editor-row">\n <span class="mfm-method" id="mfm-request-editor-method"></span>\n <span class="mfm-url-path" id="mfm-request-editor-url" title=""></span>\n <span class="mfm-request-editor-batch" id="mfm-request-editor-batch" style="display: none;"></span>\n </div>\n <div class="mfm-request-editor-hint" id="mfm-request-editor-hint">The request is paused. Edit headers, query params or body, then send.</div>\n </div>\n\n <div class="mfm-request-editor-body">\n <div class="mfm-request-editor-section">\n <div class="mfm-request-editor-section-title">Headers (JSON)</div>\n <textarea id="mfm-request-editor-headers" spellcheck="false" rows="3"></textarea>\n </div>\n\n <div class="mfm-request-editor-section">\n <div class="mfm-request-editor-section-title">Query Params (JSON)</div>\n <textarea id="mfm-request-editor-query" spellcheck="false" rows="3"></textarea>\n </div>\n\n <div class="mfm-request-editor-section mfm-request-editor-section-grow">\n <div class="mfm-request-editor-section-title">Request Body</div>\n <textarea id="mfm-request-editor-bodytext" spellcheck="false"></textarea>\n </div>\n </div>\n\n <div class="mfm-request-editor-footer">\n <button class="mfm-btn-text" id="mfm-request-editor-cancel">Forward original</button>\n <button class="mfm-btn mfm-btn-primary mfm-request-editor-send" id="mfm-request-editor-send"><span id="mfm-request-editor-send-label">Send request</span></button>\n </div>\n </div>\n `,A.appendChild(t);const r=t.querySelector("#mfm-request-editor-method"),n=t.querySelector("#mfm-request-editor-url"),s=t.querySelector("#mfm-request-editor-batch"),o=t.querySelector("#mfm-request-editor-hint"),i=t.querySelector("#mfm-request-editor-headers"),a=t.querySelector("#mfm-request-editor-query"),l=t.querySelector("#mfm-request-editor-bodytext"),c=t.querySelector("#mfm-request-editor-close"),d=t.querySelector("#mfm-request-editor-cancel"),u=t.querySelector("#mfm-request-editor-send"),B=t.querySelector("#mfm-request-editor-send-label"),m=()=>e.onCancel();function g(A){var e;const t=((null==(e=A.siblingRequestIds)?void 0:e.length)||0)+1;t>1?(s.style.display="inline-flex",s.textContent=`× ${t}`,o.textContent=`${t} requests are paused. Your edits will apply to all of them.`,B.textContent=`Send to ${t} requests`):(s.style.display="none",s.textContent="",o.textContent="The request is paused. Edit headers, query params or body, then send.",B.textContent="Send request")}return c.onclick=m,d.onclick=m,u.onclick=()=>{e.onSend({cancel:!1,headers:dA(i.value),queryParams:dA(a.value),body:l.value||null})},{show(A){const e=A.request||{},s=e.method||"",o=e.url||"";r.className=`mfm-method ${s.toLowerCase()}`,r.textContent=s,n.textContent=o,n.title=o,g(A);const c={};Object.entries(e.headers||{}).forEach((([A,e])=>{c[A]=String(e??"")})),i.value=cA(c),a.value=cA(A.queryParams||{}),l.value=function(A){if(null==A)return"";if("string"==typeof A)return A;try{return JSON.stringify(A,null,2)}catch{return String(A)}}(e.body),t.classList.add("active")},updateBatch(A){g(A)},hide(){t.classList.remove("active")},destroy(){t.remove()}}}(this.parent,{onSend:A=>this.handleSend(A),onCancel:()=>this.handleCancel()}),this.unsubscribe=O.subscribe((()=>this.render())),this.render())}render(){var A,e,t;if(!this.popup)return;const r=O.state.requestEditors.pending,n=rA();if(!r||"editor"!==n)return void(this.currentRequestId&&(this.popup.hide(),this.currentRequestId=null,this.currentSiblingCount=0));const s=(null==(A=r.siblingRequestIds)?void 0:A.length)||0;try{r.requestId!==this.currentRequestId?(x("editor activity: showing popup",{requestId:r.requestId,method:null==(e=r.request)?void 0:e.method,url:null==(t=r.request)?void 0:t.url,siblings:s}),this.popup.show(r),this.currentRequestId=r.requestId,this.currentSiblingCount=s):s!==this.currentSiblingCount&&(x("editor activity: updating batch",{requestId:r.requestId,siblings:s}),this.popup.updateBatch(r),this.currentSiblingCount=s)}catch(A){k("editor activity render failed",A)}}handleSend(A){const e=this.getPending();e&&Y.resolvePendingRequestEdit(function(A,e){return{requestId:A.requestId,cancel:e.cancel,headers:e.headers,queryParams:e.queryParams,body:e.body}}(e,A))}handleCancel(){Y.forwardOriginalRequest()}getPending(){return O.state.requestEditors.pending}destroy(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this.popup&&(this.popup.destroy(),this.popup=null)}}class BA{constructor(A){this.unsubscribe=null,this.parent=A,this.element=document.createElement("div"),this.element.className="mfm-settings-sheet",this.element.id="mfm-settings-sheet",this.init()}init(){this.element.innerHTML=`\n <div class="mfm-settings-header">\n <h4>Widget Settings</h4>\n <button class="mfm-btn-icon" id="mfm-settings-close" title="Close">${AA}</button>\n </div>\n <div class="mfm-settings-body">\n <div class="mfm-settings-section">\n <div class="mfm-settings-section-title">\n <span>Delay all Others requests</span>\n <span class="mfm-settings-pill" id="mfm-settings-delay-pill">Off</span>\n </div>\n <p class="mfm-settings-section-desc">\n Apply a fixed delay (in seconds) to every Others-tab-eligible request before it goes upstream. Mocked and rule-matched requests are not affected.\n </p>\n <div class="mfm-settings-row">\n <input type="number" class="mfm-input" id="mfm-settings-delay-input" placeholder="0" min="0" step="0.1">\n <button class="mfm-btn mfm-btn-primary" id="mfm-settings-delay-apply">Apply</button>\n <button class="mfm-btn mfm-btn-danger" id="mfm-settings-delay-remove">Remove</button>\n </div>\n </div>\n\n <div class="mfm-settings-section">\n <div class="mfm-settings-section-title">\n <span>Live debugger rules</span>\n <span class="mfm-settings-pill" id="mfm-settings-debug-count">0 active</span>\n </div>\n <p class="mfm-settings-section-desc">\n Per-endpoint debugger rules added from the Others tab. Use this to clear them all if you got into a tight spot.\n </p>\n <div class="mfm-settings-row">\n <button class="mfm-btn mfm-btn-danger" id="mfm-settings-debug-remove">Remove all debugger rules</button>\n </div>\n </div>\n\n <div class="mfm-settings-section d-none">\n <div class="mfm-settings-section-title">\n <span>Request-editor rules</span>\n <span class="mfm-settings-pill" id="mfm-settings-edit-count">0 active</span>\n </div>\n <p class="mfm-settings-section-desc">\n Per-endpoint outgoing-request editor rules added from the Others tab. Removing them all also discards any popup queued behind a request.\n </p>\n <div class="mfm-settings-row">\n <button class="mfm-btn mfm-btn-danger" id="mfm-settings-edit-remove">Remove all editor rules</button>\n </div>\n </div>\n\n <div class="mfm-settings-section d-none">\n <div class="mfm-settings-section-title">\n <span>Analytics</span>\n <span class="mfm-settings-pill" id="mfm-settings-analytics-pill">Off</span>\n </div>\n <p class="mfm-settings-section-desc">\n Send anonymous usage events (mock added, debugger hit, edit hit, …) to <code>api.mockforme.com/analytics</code>. Off by default so analytics traffic doesn't show up as extra rows in the Others tab.\n </p>\n <div class="mfm-settings-row" style="gap: 6px;">\n <label class="mfm-switch" style="margin: 0;">\n <input type="checkbox" id="mfm-settings-analytics-toggle">\n <span class="mfm-slider"></span>\n </label>\n <span style="font-size: 0.75rem; color: var(--mfm-text-dim);">Enable analytics POSTs</span>\n </div>\n </div>\n\n <div class="mfm-settings-section d-none">\n <div class="mfm-settings-section-title">\n <span>Debug logs</span>\n <span class="mfm-settings-pill" id="mfm-settings-debuglogs-pill">Off</span>\n </div>\n <p class="mfm-settings-section-desc">\n Print every editor / debugger / interception event to the page DevTools console with a <code>[MFM]</code> prefix. Use when you need to trace why a popup didn't appear or a request hung. Off by default.\n </p>\n <div class="mfm-settings-row" style="gap: 6px;">\n <label class="mfm-switch" style="margin: 0;">\n <input type="checkbox" id="mfm-settings-debuglogs-toggle">\n <span class="mfm-slider"></span>\n </label>\n <span style="font-size: 0.75rem; color: var(--mfm-text-dim);">Print [MFM] events to console</span>\n </div>\n </div>\n </div>\n `,this.parent.appendChild(this.element),this.delayInput=this.element.querySelector("#mfm-settings-delay-input"),this.delayPill=this.element.querySelector("#mfm-settings-delay-pill"),this.debugCountEl=this.element.querySelector("#mfm-settings-debug-count"),this.editCountEl=this.element.querySelector("#mfm-settings-edit-count"),this.debugRemoveBtn=this.element.querySelector("#mfm-settings-debug-remove"),this.editRemoveBtn=this.element.querySelector("#mfm-settings-edit-remove"),this.analyticsCheckbox=this.element.querySelector("#mfm-settings-analytics-toggle"),this.analyticsPill=this.element.querySelector("#mfm-settings-analytics-pill"),this.debugLogsCheckbox=this.element.querySelector("#mfm-settings-debuglogs-toggle"),this.debugLogsPill=this.element.querySelector("#mfm-settings-debuglogs-pill");const A=this.element.querySelector("#mfm-settings-close"),e=this.element.querySelector("#mfm-settings-delay-apply"),t=this.element.querySelector("#mfm-settings-delay-remove");A.onclick=()=>Y.setSettingsOpen(!1),e.onclick=()=>{const A=Number(this.delayInput.value),e=Number.isFinite(A)&&A>=0?A:0;Y.setGlobalDelay({enabled:e>0,seconds:e})},t.onclick=()=>{this.delayInput.value="",Y.disableGlobalDelay()},this.debugRemoveBtn.onclick=()=>Y.clearDebugRules(),this.editRemoveBtn.onclick=()=>Y.clearRequestEditRules(),this.analyticsCheckbox.onchange=()=>{Y.setAnalyticsEnabled(this.analyticsCheckbox.checked)},this.debugLogsCheckbox.onchange=()=>{Y.setDebugLogsEnabled(this.debugLogsCheckbox.checked)},this.unsubscribe=O.subscribe((()=>this.render())),this.render()}render(){var A,e;const t=O.state,r=t.ui.isSettingsOpen;if(this.element.classList.toggle("active",r),!r)return;const{enabled:n,seconds:s}=t.globalDelay;document.activeElement!==this.delayInput&&(this.delayInput.value=s>0?String(s):""),n&&s>0?(this.delayPill.textContent=`${s}s active`,this.delayPill.classList.add("active")):(this.delayPill.textContent="Off",this.delayPill.classList.remove("active"));const o=t.interceptors.rules.length;this.debugCountEl.textContent=`${o} active`,this.debugCountEl.classList.toggle("active",o>0),this.debugRemoveBtn.disabled=0===o;const i=t.requestEditors.rules.length;this.editCountEl.textContent=`${i} active`,this.editCountEl.classList.toggle("active",i>0),this.editRemoveBtn.disabled=0===i;const a=!!(null==(A=t.analytics)?void 0:A.enabled);this.analyticsCheckbox.checked!==a&&(this.analyticsCheckbox.checked=a),this.analyticsPill.textContent=a?"On":"Off",this.analyticsPill.classList.toggle("active",a);const l=!!(null==(e=t.debugLogs)?void 0:e.enabled);this.debugLogsCheckbox.checked!==l&&(this.debugLogsCheckbox.checked=l),this.debugLogsPill.textContent=l?"On":"Off",this.debugLogsPill.classList.toggle("active",l)}destroy(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this.element.remove()}}function mA(A,e){if(!document.body)return;const t=document.createElement("textarea");t.value=A,t.setAttribute("readonly","true"),t.style.position="fixed",t.style.top="-9999px",t.style.left="-9999px",document.body.appendChild(t),t.focus(),t.select();try{document.execCommand("copy")&&e()}finally{t.remove()}}function gA(A,e){if(pA(A),!e)return;A.container.classList.add("json-is-searching");const t=new RegExp(e,"i");Array.from(A.treeContainer.querySelectorAll(".json-node")).forEach((e=>{const r=e.dataset.searchKey||"",n=e.dataset.searchValue||"";(t.test(r)||t.test(n))&&(e.classList.add("json-item-visible","json-match"),function(A){const e=A.querySelector(":scope > .json-children");if(!e)return;e.querySelectorAll(".json-node").forEach((A=>{A.classList.add("json-item-visible")})),e.style.display="block";const t=A.querySelector(":scope > .json-toggle");t&&(t.textContent="-")}(e),function(A,e){let t=e.parentElement;for(;t&&t!==A.treeContainer;){if(t.classList.contains("json-node")&&t.classList.add("json-item-visible"),t.classList.contains("json-children")){t.style.display="block";const A=t.parentElement.querySelector(":scope > .json-toggle");A&&(A.textContent="-")}t=t.parentElement}}(A,e))}))}function pA(A){A.container.classList.remove("json-is-searching"),A.treeContainer.querySelectorAll(".json-match").forEach((A=>{A.classList.remove("json-match")})),A.treeContainer.querySelectorAll(".json-item-visible").forEach((A=>{A.classList.remove("json-item-visible")}))}function fA(A,e,t=null,r=0){const n=document.createElement("div");if(n.className="json-node",null!==t){const A=document.createElement("span");A.className="json-key",A.textContent=`"${t}": `,n.appendChild(A),n.dataset.searchKey=String(t).toLowerCase()}if("object"==typeof e&&null!==e)return function(A,e,t,r){const n=Array.isArray(t),s=r<A.options.expandLevel,o=document.createElement("span");o.className="json-toggle",o.textContent=s?"-":"+";const i=document.createElement("span");i.className="json-bracket",i.textContent=n?"[":"{";const a=document.createElement("div");a.className="json-children",a.style.display=s?"block":"none",o.addEventListener("click",(()=>{const A="none"===a.style.display;a.style.display=A?"block":"none",o.textContent=A?"-":"+"})),e.appendChild(o),e.appendChild(i),Object.entries(t).forEach((([e,t])=>{const n=fA(A,t,e,r+1);a.appendChild(n)})),e.appendChild(a);const l=document.createElement("div");l.className="json-closing-bracket",l.textContent=n?"]":"}",e.appendChild(l)}(A,n,e,r),n;const s=document.createElement("span");s.className="json-value "+typeof e;const o="string"==typeof e?`"${e}"`:String(e);return s.textContent=o,n.appendChild(s),n.dataset.searchValue=o.toLowerCase(),n}function hA(A,e,t){const r=document.createElement("button");return r.innerHTML=A,r.title=e,r.onclick=t,r}class wA{constructor(A,e={}){if(!A)throw new Error("Container element required");this.container=A,this.options={expandLevel:e.expandLevel??1,theme:e.theme??"light",toolbar:e.toolbar??!0,searchable:e.searchable??!0,debounceTime:e.debounceTime??300},this.data=null,this.searchTimer=null,this.container.classList.add("json-viewer",`json-viewer-${this.options.theme}`),this.options.toolbar&&function(A,e){A.toolbar=document.createElement("div"),A.toolbar.className="json-toolbar";const t=document.createElement("div");t.className="json-toolbar-group",t.appendChild(hA(e.expand,"Expand All",(()=>A.expandAll()))),t.appendChild(hA(e.collapse,"Collapse All",(()=>A.collapseAll()))),A.fullscreenBtn=hA(e.fullscreen,"Fullscreen",(()=>A.toggleFullscreen())),A.copyBtn=hA(e.copy,"Copy JSON",(()=>A.copy())),t.appendChild(A.fullscreenBtn),t.appendChild(A.copyBtn),A.toolbar.appendChild(t),A.options.searchable&&A.toolbar.appendChild(function(A,e){const t=document.createElement("div");t.className="json-search-group";const r=document.createElement("input");r.placeholder="Search...",r.oninput=e=>{clearTimeout(A.searchTimer),A.searchTimer=setTimeout((()=>{const t=e.target;gA(A,t.value)}),A.options.debounceTime)};const n=hA(e,"Clear Search",(()=>{r.value="",pA(A)}));return t.appendChild(r),t.appendChild(n),t}(A,e.clear)),A.container.appendChild(A.toolbar)}(this,{expand:'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>',collapse:'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line></svg>',fullscreen:eA,copy:'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1-2-2h9a2 2 0 0 1 2 2v1"></path></svg>',clear:z}),this.treeContainer=document.createElement("div"),this.treeContainer.className="json-tree-container",this.container.appendChild(this.treeContainer)}toggleFullscreen(){const A=this.container.classList.toggle("json-viewer-fullscreen");document.body.classList.toggle("json-viewer-body-fullscreen",A),this.fullscreenBtn&&(this.fullscreenBtn.innerHTML=A?'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3"></path></svg>':eA,this.fullscreenBtn.title=A?"Minimize":"Fullscreen")}render(A){this.data=A,this.treeContainer.innerHTML="",this.root=fA(this,A,null,0),this.treeContainer.appendChild(this.root)}copy(){!function(A){if(!A.data)return;const e=JSON.stringify(A.data,null,2),t=()=>{if(!A.copyBtn)return;const e=A.copyBtn.innerHTML;A.copyBtn.innerHTML="✓",setTimeout((()=>{A.copyBtn.innerHTML=e}),2e3)};navigator.clipboard&&"function"==typeof navigator.clipboard.writeText?navigator.clipboard.writeText(e).then(t).catch((()=>{mA(e,t)})):mA(e,t)}(this)}expandAll(){var A;(A=this).treeContainer.querySelectorAll(".json-children").forEach((A=>{A.style.display="block"})),A.treeContainer.querySelectorAll(".json-toggle").forEach((A=>{A.textContent="-"}))}collapseAll(){var A;(A=this).treeContainer.querySelectorAll(".json-children").forEach((A=>{A.style.display="none"})),A.treeContainer.querySelectorAll(".json-toggle").forEach((A=>{A.textContent="+"}))}search(A){gA(this,A)}clearSearch(){pA(this)}}function QA(A){return A.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function CA(A,e,t){const r=function(A){if("string"!=typeof A)return A;try{return JSON.parse(A)}catch{return A}}(t);if(!r||"object"!=typeof r)return;const n=A.querySelector(e);n&&(n.innerHTML="",new wA(n,{expandLevel:1,theme:"light",toolbar:!0,searchable:!0}).render(r))}function UA(A){const e={},t=A.modificationActions;return t&&Object.entries(t).forEach((([A,t])=>{(null==t?void 0:t.enabled)&&(e[A]=t)})),{requestId:`rule_${String(A.ruleName||A.condition||"unknown")}`,interceptionType:"RULE",request:{method:"RULE",url:String(A.condition||A.ruleName||""),headers:t||{},body:e},response:{statusCode:0,body:A}}}function bA(A){var e,t,r,n;const{selectedTab:s,detailTab:o,tabConfigs:i}=O.state.ui,a=i[s];if(!a||!a.isDetailOpen)return A.sheet.classList.remove("active"),A.isUrlExpanded=!1,A.responseBodyMode="TEXT",A.prevState={},A;const{req:l,isRule:c}=function(){const{selectedTab:A,tabConfigs:e}=O.state.ui,t=e[A],r=t.selectedRequestId||null,n=t.selectedRule||null;return"MAPPINGS"===A&&n?{req:UA(n),isRule:!0}:"MAPPINGS"!==A&&r?{req:O.state.requests.find((A=>String(A.requestId)===String(r)))||null,isRule:!1}:{req:null,isRule:!1}}();if(!l)return"MOCKED"!==s&&"OTHER"!==s||Y.resetUnavailableRequestDetails(s),A.sheet.classList.remove("active"),A;if(function(A,e){const{selectedTab:t,detailTab:r,tabConfigs:n}=O.state.ui,s=n[t];return A.prevState.selectedTab===t&&A.prevState.selectedRule===s.selectedRule&&A.prevState.selectedRequestId===s.selectedRequestId&&A.prevState.reqObj===e&&A.prevState.detailTab===r&&A.prevState.isUrlExpanded===A.isUrlExpanded&&A.prevState.responseBodyMode===A.responseBodyMode}(A,l))return A;!function(A,e){const{selectedTab:t,detailTab:r,tabConfigs:n}=O.state.ui,s=n[t];A.prevState={selectedTab:t,selectedRule:s.selectedRule,selectedRequestId:s.selectedRequestId,reqObj:e,detailTab:r,isUrlExpanded:A.isUrlExpanded,responseBodyMode:A.responseBodyMode}}(A,l),function(A,e,t){var r;const n=e.request.method||"REQ",s=t?"RULE":(null==(r=e.response)?void 0:r.statusCode)??"Pending",o=function(A,e,t,r){return A?"pending":e?"success":t?"error":r?"rule":""}("Pending"===s,"number"==typeof s&&s>=200&&s<300,"number"==typeof s&&(0===s||s>=400),t),i=0===s?"Error":s,a=t?"":`<span class="mfm-method ${String(n).toLowerCase()}" style="flex-shrink: 0;">${n}</span>`,l=A.isUrlExpanded?"normal":"nowrap",c=A.isUrlExpanded?"break-all":"normal",d=A.isUrlExpanded?"60px":"2em",u=A.isUrlExpanded?"auto":"hidden";A.infoContainer.innerHTML=`\n ${a}\n <span class="mfm-status ${o}" style="flex-shrink: 0;">${i}</span>\n <span class="mfm-url-small" title="Click to toggle full URL" style="font-family: monospace; color: var(--mfm-text-dim); overflow: hidden; text-overflow: ellipsis; white-space: ${l}; word-break: ${c}; max-height: ${d}; overflow-y: ${u}; flex: 1;">${e.request.url||""}</span>\n `}(A,l,c);const d=A.sheet.querySelector(".mfm-bottomsheet-content");if(!d)return A;const u={first:"Headers",second:"Request",third:"Response"};c&&(u.first="Configs",u.second="Modifications",u.third="Full Rule");const B=null==(e=l.response)?void 0:e.body,m="string"==typeof B?B:JSON.stringify(B||{},null,2),g=function(A){if(!A||"object"!=typeof A)return"";const e=A,t=e["content-type"]||e["Content-Type"]||e["CONTENT-TYPE"];return"string"==typeof t?t.toLowerCase():""}(null==(t=l.response)?void 0:t.headers),p=!c&&"string"==typeof B&&!function(A){try{return JSON.parse(A),!0}catch{return!1}}(B)&&(g.includes("text/html")||/<!doctype html|<html[\s>]|<body[\s>]|<\/?[a-z][\s\S]*>/i.test(B));p||(A.responseBodyMode="TEXT");let f="";if("HEADERS"===o&&(f=function(A,e,t){const r=t?"":`\n <div class="mfm-detail-section" style="margin-top:16px">\n <div class="mfm-detail-title">Response Headers</div>\n <div class="mfm-detail-content"><pre style="margin:0">${JSON.stringify(e||{},null,2)}</pre></div>\n </div>\n `;return`\n <div class="mfm-detail-section">\n <div class="mfm-detail-title">${t?"Rule Configuration":"Request Headers"}</div>\n <div class="mfm-detail-content"><pre style="margin:0">${JSON.stringify(A||{},null,2)}</pre></div>\n </div>\n ${r}\n `}(l.request.headers,null==(r=l.response)?void 0:r.headers,c)),"REQ_BODY"===o&&(f=function(A,e){return`\n <div class="mfm-detail-section">\n <div class="mfm-detail-title">${e?"Enabled Modifications":"Request Body"}</div>\n <div class="mfm-detail-content" id="mfm-req-viewer"><pre style="margin:0">${"string"==typeof A?QA(A):JSON.stringify(A,null,2)}</pre></div>\n </div>\n `}(l.request.body,c)),"RES_BODY"===o&&(f=function(A){const e=A.isRule?"Complete Rule Object":"Response Body";let t="";A.isHtmlNonJsonResponse&&(t=`\n <div style="display:flex; gap:8px; margin-bottom:8px;">\n <button class="mfm-btn-outline mfm-res-mode-btn ${"TEXT"===A.responseBodyMode?"active":""}" data-mode="TEXT">Text</button>\n <button class="mfm-btn-outline mfm-res-mode-btn ${"PREVIEW"===A.responseBodyMode?"active":""}" data-mode="PREVIEW">Preview</button>\n </div>\n `);let r=`<pre style="margin:0">${QA(A.responseText)}</pre>`;return A.isHtmlNonJsonResponse&&"PREVIEW"===A.responseBodyMode&&(r='<iframe id="mfm-res-preview" sandbox="" style="width:100%; min-height:280px; border:1px solid var(--mfm-border); border-radius:8px; background:#fff;"></iframe>'),`\n <div class="mfm-detail-section">\n <div class="mfm-detail-title">${e}</div>\n ${t}\n <div class="mfm-detail-content" id="mfm-res-viewer">${r}</div>\n </div>\n `}({isRule:c,isHtmlNonJsonResponse:p,responseBodyMode:A.responseBodyMode,responseText:m})),d.innerHTML=`${function(A,e){return`\n <div class="mfm-detail-tabs" style="margin-top: 0;">\n <button class="mfm-detail-tab-btn ${"HEADERS"===A?"active":""}" data-tab="HEADERS">${e.first}</button>\n <button class="mfm-detail-tab-btn ${"REQ_BODY"===A?"active":""}" data-tab="REQ_BODY">${e.second}</button>\n <button class="mfm-detail-tab-btn ${"RES_BODY"===A?"active":""}" data-tab="RES_BODY">${e.third}</button>\n </div>\n `}(o,u)}<div class="mfm-detail-body">${f}</div>`,"REQ_BODY"===o&&l.request.body&&CA(A.sheet,"#mfm-req-viewer",l.request.body),"RES_BODY"===o&&(null==(n=l.response)?void 0:n.body)&&!p&&CA(A.sheet,"#mfm-res-viewer",l.response.body),"RES_BODY"===o&&p&&"PREVIEW"===A.responseBodyMode){const e=A.sheet.querySelector("#mfm-res-preview");e&&(e.srcdoc=m)}return A.sheet.querySelectorAll(".mfm-detail-tab-btn").forEach((A=>{A.onclick=()=>{const e=A.dataset.tab;e&&Y.setDetailTab(e)}})),A.sheet.querySelectorAll(".mfm-res-mode-btn").forEach((e=>{e.onclick=()=>{const t=e.dataset.mode;t&&t!==A.responseBodyMode&&(A.responseBodyMode=t,bA(A))}})),A.sheet.classList.add("active"),A}var FA=function(A,e){return(FA=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,e){A.__proto__=e}||function(A,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(A[t]=e[t])})(A,e)};function yA(A,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function t(){this.constructor=A}FA(A,e),A.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)}var vA=function(){return vA=Object.assign||function(A){for(var e,t=1,r=arguments.length;t<r;t++)for(var n in e=arguments[t])Object.prototype.hasOwnProperty.call(e,n)&&(A[n]=e[n]);return A},vA.apply(this,arguments)};function EA(A,e,t,r){return new(t||(t=Promise))((function(e,n){function s(A){try{i(r.next(A))}catch(A){n(A)}}function o(A){try{i(r.throw(A))}catch(A){n(A)}}function i(A){var r;A.done?e(A.value):(r=A.value,r instanceof t?r:new t((function(A){A(r)}))).then(s,o)}i((r=r.apply(A,[])).next())}))}function HA(A,e){var t,r,n,s,o={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return s={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function i(s){return function(i){return function(s){if(t)throw new TypeError("Generator is already executing.");for(;o;)try{if(t=1,r&&(n=2&s[0]?r.return:s[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,s[1])).done)return n;switch(r=0,n&&(s=[2&s[0],n.value]),s[0]){case 0:case 1:n=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,r=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!((n=(n=o.trys).length>0&&n[n.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!n||s[1]>n[0]&&s[1]<n[3])){o.label=s[1];break}if(6===s[0]&&o.label<n[1]){o.label=n[1],n=s;break}if(n&&o.label<n[2]){o.label=n[2],o.ops.push(s);break}n[2]&&o.ops.pop(),o.trys.pop();continue}s=e.call(A,o)}catch(A){s=[6,A],r=0}finally{t=n=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,i])}}}function IA(A,e,t){if(2===arguments.length)for(var r,n=0,s=e.length;n<s;n++)!r&&n in e||(r||(r=Array.prototype.slice.call(e,0,n)),r[n]=e[n]);return A.concat(r||e)}for(var xA=function(){function A(A,e,t,r){this.left=A,this.top=e,this.width=t,this.height=r}return A.prototype.add=function(e,t,r,n){return new A(this.left+e,this.top+t,this.width+r,this.height+n)},A.fromClientRect=function(e,t){return new A(t.left+e.windowBounds.left,t.top+e.windowBounds.top,t.width,t.height)},A.fromDOMRectList=function(e,t){var r=Array.from(t).find((function(A){return 0!==A.width}));return r?new A(r.left+e.windowBounds.left,r.top+e.windowBounds.top,r.width,r.height):A.EMPTY},A.EMPTY=new A(0,0,0,0),A}(),kA=function(A,e){return xA.fromClientRect(A,e.getBoundingClientRect())},MA=function(A){for(var e=[],t=0,r=A.length;t<r;){var n=A.charCodeAt(t++);if(n>=55296&&n<=56319&&t<r){var s=A.charCodeAt(t++);56320==(64512&s)?e.push(((1023&n)<<10)+(1023&s)+65536):(e.push(n),t--)}else e.push(n)}return e},LA=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];if(String.fromCodePoint)return String.fromCodePoint.apply(String,A);var t=A.length;if(!t)return"";for(var r=[],n=-1,s="";++n<t;){var o=A[n];o<=65535?r.push(o):(o-=65536,r.push(55296+(o>>10),o%1024+56320)),(n+1===t||r.length>16384)&&(s+=String.fromCharCode.apply(String,r),r.length=0)}return s},SA="undefined"==typeof Uint8Array?[]:new Uint8Array(256),KA=0;KA<64;KA++)SA["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(KA)]=KA;for(var DA="undefined"==typeof Uint8Array?[]:new Uint8Array(256),TA=0;TA<64;TA++)DA["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(TA)]=TA;for(var RA=function(A,e,t){return A.slice?A.slice(e,t):new Uint16Array(Array.prototype.slice.call(A,e,t))},OA=function(){function A(A,e,t,r,n,s){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=r,this.index=n,this.data=s}return A.prototype.get=function(A){var e;if(A>=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A<this.highStart)return e=2080+(A>>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},A}(),qA="undefined"==typeof Uint8Array?[]:new Uint8Array(256),NA=0;NA<64;NA++)qA["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(NA)]=NA;var _A,PA,GA,VA,JA,XA,YA,jA,WA=10,$A=13,ZA=15,zA=17,Ae=18,ee=19,te=20,re=21,ne=22,se=24,oe=25,ie=26,ae=27,le=28,ce=30,de=32,ue=33,Be=34,me=35,ge=37,pe=38,fe=39,he=40,we=42,Qe=[9001,65288],Ce="×",Ue="÷",be=(VA=function(A){var e,t,r,n,s,o=39666,i=0;"="===A[52887]&&(o--,"="===A[52886]&&o--);var a="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(o):new Array(o),l=Array.isArray(a)?a:new Uint8Array(a);for(e=0;e<52888;e+=4)t=DA[A.charCodeAt(e)],r=DA[A.charCodeAt(e+1)],n=DA[A.charCodeAt(e+2)],s=DA[A.charCodeAt(e+3)],l[i++]=t<<2|r>>4,l[i++]=(15&r)<<4|n>>2,l[i++]=(3&n)<<6|63&s;return a}("KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA=="),JA=Array.isArray(VA)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=4)t.push(A[r+3]<<24|A[r+2]<<16|A[r+1]<<8|A[r]);return t}(VA):new Uint32Array(VA),XA=Array.isArray(VA)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=2)t.push(A[r+1]<<8|A[r]);return t}(VA):new Uint16Array(VA),YA=RA(XA,12,JA[4]/2),jA=2===JA[5]?RA(XA,(24+JA[4])/2):(_A=JA,PA=Math.ceil((24+JA[4])/4),_A.slice?_A.slice(PA,GA):new Uint32Array(Array.prototype.slice.call(_A,PA,GA))),new OA(JA[0],JA[1],JA[2],JA[3],YA,jA)),Fe=[ce,36],ye=[1,2,3,5],ve=[WA,8],Ee=[ae,ie],He=ye.concat(ve),Ie=[pe,fe,he,Be,me],xe=[ZA,$A],ke=function(A,e,t,r){var n=r[t];if(Array.isArray(A)?-1!==A.indexOf(n):A===n)for(var s=t;s<=r.length;){if((a=r[++s])===e)return!0;if(a!==WA)break}if(n===WA)for(s=t;s>0;){var o=r[--s];if(Array.isArray(A)?-1!==A.indexOf(o):A===o)for(var i=t;i<=r.length;){var a;if((a=r[++i])===e)return!0;if(a!==WA)break}if(o!==WA)break}return!1},Me=function(A,e){for(var t=A;t>=0;){var r=e[t];if(r!==WA)return r;t--}return 0},Le=function(A,e,t,r,n){if(0===t[r])return Ce;var s=r-1;if(Array.isArray(n)&&!0===n[s])return Ce;var o=s-1,i=s+1,a=e[s],l=o>=0?e[o]:0,c=e[i];if(2===a&&3===c)return Ce;if(-1!==ye.indexOf(a))return"!";if(-1!==ye.indexOf(c))return Ce;if(-1!==ve.indexOf(c))return Ce;if(8===Me(s,e))return Ue;if(11===be.get(A[s]))return Ce;if((a===de||a===ue)&&11===be.get(A[i]))return Ce;if(7===a||7===c)return Ce;if(9===a)return Ce;if(-1===[WA,$A,ZA].indexOf(a)&&9===c)return Ce;if(-1!==[zA,Ae,ee,se,le].indexOf(c))return Ce;if(Me(s,e)===ne)return Ce;if(ke(23,ne,s,e))return Ce;if(ke([zA,Ae],re,s,e))return Ce;if(ke(12,12,s,e))return Ce;if(a===WA)return Ue;if(23===a||23===c)return Ce;if(16===c||16===a)return Ue;if(-1!==[$A,ZA,re].indexOf(c)||14===a)return Ce;if(36===l&&-1!==xe.indexOf(a))return Ce;if(a===le&&36===c)return Ce;if(c===te)return Ce;if(-1!==Fe.indexOf(c)&&a===oe||-1!==Fe.indexOf(a)&&c===oe)return Ce;if(a===ae&&-1!==[ge,de,ue].indexOf(c)||-1!==[ge,de,ue].indexOf(a)&&c===ie)return Ce;if(-1!==Fe.indexOf(a)&&-1!==Ee.indexOf(c)||-1!==Ee.indexOf(a)&&-1!==Fe.indexOf(c))return Ce;if(-1!==[ae,ie].indexOf(a)&&(c===oe||-1!==[ne,ZA].indexOf(c)&&e[i+1]===oe)||-1!==[ne,ZA].indexOf(a)&&c===oe||a===oe&&-1!==[oe,le,se].indexOf(c))return Ce;if(-1!==[oe,le,se,zA,Ae].indexOf(c))for(var d=s;d>=0;){if((u=e[d])===oe)return Ce;if(-1===[le,se].indexOf(u))break;d--}if(-1!==[ae,ie].indexOf(c))for(d=-1!==[zA,Ae].indexOf(a)?o:s;d>=0;){var u;if((u=e[d])===oe)return Ce;if(-1===[le,se].indexOf(u))break;d--}if(pe===a&&-1!==[pe,fe,Be,me].indexOf(c)||-1!==[fe,Be].indexOf(a)&&-1!==[fe,he].indexOf(c)||-1!==[he,me].indexOf(a)&&c===he)return Ce;if(-1!==Ie.indexOf(a)&&-1!==[te,ie].indexOf(c)||-1!==Ie.indexOf(c)&&a===ae)return Ce;if(-1!==Fe.indexOf(a)&&-1!==Fe.indexOf(c))return Ce;if(a===se&&-1!==Fe.indexOf(c))return Ce;if(-1!==Fe.concat(oe).indexOf(a)&&c===ne&&-1===Qe.indexOf(A[i])||-1!==Fe.concat(oe).indexOf(c)&&a===Ae)return Ce;if(41===a&&41===c){for(var B=t[s],m=1;B>0&&41===e[--B];)m++;if(m%2!=0)return Ce}return a===de&&c===ue?Ce:Ue},Se=function(){function A(A,e,t,r){this.codePoints=A,this.required="!"===e,this.start=t,this.end=r}return A.prototype.slice=function(){return LA.apply(void 0,this.codePoints.slice(this.start,this.end))},A}(),Ke=45,De=43,Te=-1,Re=function(A){return A>=48&&A<=57},Oe=function(A){return Re(A)||A>=65&&A<=70||A>=97&&A<=102},qe=function(A){return 10===A||9===A||32===A},Ne=function(A){return function(A){return function(A){return A>=97&&A<=122}(A)||function(A){return A>=65&&A<=90}(A)}(A)||function(A){return A>=128}(A)||95===A},_e=function(A){return Ne(A)||Re(A)||A===Ke},Pe=function(A){return A>=0&&A<=8||11===A||A>=14&&A<=31||127===A},Ge=function(A,e){return 92===A&&10!==e},Ve=function(A,e,t){return A===Ke?Ne(e)||Ge(e,t):!!Ne(A)||!(92!==A||!Ge(A,e))},Je=function(A,e,t){return A===De||A===Ke?!!Re(e)||46===e&&Re(t):Re(46===A?e:A)},Xe=function(A){var e=0,t=1;A[e]!==De&&A[e]!==Ke||(A[e]===Ke&&(t=-1),e++);for(var r=[];Re(A[e]);)r.push(A[e++]);var n=r.length?parseInt(LA.apply(void 0,r),10):0;46===A[e]&&e++;for(var s=[];Re(A[e]);)s.push(A[e++]);var o=s.length,i=o?parseInt(LA.apply(void 0,s),10):0;69!==A[e]&&101!==A[e]||e++;var a=1;A[e]!==De&&A[e]!==Ke||(A[e]===Ke&&(a=-1),e++);for(var l=[];Re(A[e]);)l.push(A[e++]);var c=l.length?parseInt(LA.apply(void 0,l),10):0;return t*(n+i*Math.pow(10,-o))*Math.pow(10,a*c)},Ye={type:2},je={type:3},We={type:4},$e={type:13},Ze={type:8},ze={type:21},At={type:9},et={type:10},tt={type:11},rt={type:12},nt={type:14},st={type:23},ot={type:1},it={type:25},at={type:24},lt={type:26},ct={type:27},dt={type:28},ut={type:29},Bt={type:31},mt={type:32},gt=function(){function A(){this._value=[]}return A.prototype.write=function(A){this._value=this._value.concat(MA(A))},A.prototype.read=function(){for(var A=[],e=this.consumeToken();e!==mt;)A.push(e),e=this.consumeToken();return A},A.prototype.consumeToken=function(){var A=this.consumeCodePoint();switch(A){case 34:return this.consumeStringToken(34);case 35:var e=this.peekCodePoint(0),t=this.peekCodePoint(1),r=this.peekCodePoint(2);if(_e(e)||Ge(t,r)){var n=Ve(e,t,r)?2:1;return{type:5,value:this.consumeName(),flags:n}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),$e;break;case 39:return this.consumeStringToken(39);case 40:return Ye;case 41:return je;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),nt;break;case De:if(Je(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 44:return We;case Ke:var s=A,o=this.peekCodePoint(0),i=this.peekCodePoint(1);if(Je(s,o,i))return this.reconsumeCodePoint(A),this.consumeNumericToken();if(Ve(s,o,i))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();if(o===Ke&&62===i)return this.consumeCodePoint(),this.consumeCodePoint(),at;break;case 46:if(Je(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var a=this.consumeCodePoint();if(42===a&&47===(a=this.consumeCodePoint()))return this.consumeToken();if(a===Te)return this.consumeToken()}break;case 58:return lt;case 59:return ct;case 60:if(33===this.peekCodePoint(0)&&this.peekCodePoint(1)===Ke&&this.peekCodePoint(2)===Ke)return this.consumeCodePoint(),this.consumeCodePoint(),it;break;case 64:var l=this.peekCodePoint(0),c=this.peekCodePoint(1),d=this.peekCodePoint(2);if(Ve(l,c,d))return{type:7,value:this.consumeName()};break;case 91:return dt;case 92:if(Ge(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();break;case 93:return ut;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Ze;break;case 123:return tt;case 125:return rt;case 117:case 85:var u=this.peekCodePoint(0),B=this.peekCodePoint(1);return u!==De||!Oe(B)&&63!==B||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(A),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),At;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),ze;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),et;break;case Te:return mt}return qe(A)?(this.consumeWhiteSpace(),Bt):Re(A)?(this.reconsumeCodePoint(A),this.consumeNumericToken()):Ne(A)?(this.reconsumeCodePoint(A),this.consumeIdentLikeToken()):{type:6,value:LA(A)}},A.prototype.consumeCodePoint=function(){var A=this._value.shift();return void 0===A?-1:A},A.prototype.reconsumeCodePoint=function(A){this._value.unshift(A)},A.prototype.peekCodePoint=function(A){return A>=this._value.length?-1:this._value[A]},A.prototype.consumeUnicodeRangeToken=function(){for(var A=[],e=this.consumeCodePoint();Oe(e)&&A.length<6;)A.push(e),e=this.consumeCodePoint();for(var t=!1;63===e&&A.length<6;)A.push(e),e=this.consumeCodePoint(),t=!0;if(t)return{type:30,start:parseInt(LA.apply(void 0,A.map((function(A){return 63===A?48:A}))),16),end:parseInt(LA.apply(void 0,A.map((function(A){return 63===A?70:A}))),16)};var r=parseInt(LA.apply(void 0,A),16);if(this.peekCodePoint(0)===Ke&&Oe(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();for(var n=[];Oe(e)&&n.length<6;)n.push(e),e=this.consumeCodePoint();return{type:30,start:r,end:parseInt(LA.apply(void 0,n),16)}}return{type:30,start:r,end:r}},A.prototype.consumeIdentLikeToken=function(){var A=this.consumeName();return"url"===A.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:A}):{type:20,value:A}},A.prototype.consumeUrlToken=function(){var A=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===Te)return{type:22,value:""};var e=this.peekCodePoint(0);if(39===e||34===e){var t=this.consumeStringToken(this.consumeCodePoint());return 0===t.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===Te||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:t.value}):(this.consumeBadUrlRemnants(),st)}for(;;){var r=this.consumeCodePoint();if(r===Te||41===r)return{type:22,value:LA.apply(void 0,A)};if(qe(r))return this.consumeWhiteSpace(),this.peekCodePoint(0)===Te||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:LA.apply(void 0,A)}):(this.consumeBadUrlRemnants(),st);if(34===r||39===r||40===r||Pe(r))return this.consumeBadUrlRemnants(),st;if(92===r){if(!Ge(r,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),st;A.push(this.consumeEscapedCodePoint())}else A.push(r)}},A.prototype.consumeWhiteSpace=function(){for(;qe(this.peekCodePoint(0));)this.consumeCodePoint()},A.prototype.consumeBadUrlRemnants=function(){for(;;){var A=this.consumeCodePoint();if(41===A||A===Te)return;Ge(A,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},A.prototype.consumeStringSlice=function(A){for(var e="";A>0;){var t=Math.min(5e4,A);e+=LA.apply(void 0,this._value.splice(0,t)),A-=t}return this._value.shift(),e},A.prototype.consumeStringToken=function(A){for(var e="",t=0;;){var r=this._value[t];if(r===Te||void 0===r||r===A)return{type:0,value:e+=this.consumeStringSlice(t)};if(10===r)return this._value.splice(0,t),ot;if(92===r){var n=this._value[t+1];n!==Te&&void 0!==n&&(10===n?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):Ge(r,n)&&(e+=this.consumeStringSlice(t),e+=LA(this.consumeEscapedCodePoint()),t=-1))}t++}},A.prototype.consumeNumber=function(){var A=[],e=4,t=this.peekCodePoint(0);for(t!==De&&t!==Ke||A.push(this.consumeCodePoint());Re(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0);var r=this.peekCodePoint(1);if(46===t&&Re(r))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;Re(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0),r=this.peekCodePoint(1);var n=this.peekCodePoint(2);if((69===t||101===t)&&((r===De||r===Ke)&&Re(n)||Re(r)))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;Re(this.peekCodePoint(0));)A.push(this.consumeCodePoint());return[Xe(A),e]},A.prototype.consumeNumericToken=function(){var A=this.consumeNumber(),e=A[0],t=A[1],r=this.peekCodePoint(0),n=this.peekCodePoint(1),s=this.peekCodePoint(2);return Ve(r,n,s)?{type:15,number:e,flags:t,unit:this.consumeName()}:37===r?(this.consumeCodePoint(),{type:16,number:e,flags:t}):{type:17,number:e,flags:t}},A.prototype.consumeEscapedCodePoint=function(){var A=this.consumeCodePoint();if(Oe(A)){for(var e=LA(A);Oe(this.peekCodePoint(0))&&e.length<6;)e+=LA(this.consumeCodePoint());qe(this.peekCodePoint(0))&&this.consumeCodePoint();var t=parseInt(e,16);return 0===t||function(A){return A>=55296&&A<=57343}(t)||t>1114111?65533:t}return A===Te?65533:A},A.prototype.consumeName=function(){for(var A="";;){var e=this.consumeCodePoint();if(_e(e))A+=LA(e);else{if(!Ge(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),A;A+=LA(this.consumeEscapedCodePoint())}}},A}(),pt=function(){function A(A){this._tokens=A}return A.create=function(e){var t=new gt;return t.write(e),new A(t.read())},A.parseValue=function(e){return A.create(e).parseComponentValue()},A.parseValues=function(e){return A.create(e).parseComponentValues()},A.prototype.parseComponentValue=function(){for(var A=this.consumeToken();31===A.type;)A=this.consumeToken();if(32===A.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(A);var e=this.consumeComponentValue();do{A=this.consumeToken()}while(31===A.type);if(32===A.type)return e;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},A.prototype.parseComponentValues=function(){for(var A=[];;){var e=this.consumeComponentValue();if(32===e.type)return A;A.push(e),A.push()}},A.prototype.consumeComponentValue=function(){var A=this.consumeToken();switch(A.type){case 11:case 28:case 2:return this.consumeSimpleBlock(A.type);case 19:return this.consumeFunction(A)}return A},A.prototype.consumeSimpleBlock=function(A){for(var e={type:A,values:[]},t=this.consumeToken();;){if(32===t.type||yt(t,A))return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue()),t=this.consumeToken()}},A.prototype.consumeFunction=function(A){for(var e={name:A.value,values:[],type:18};;){var t=this.consumeToken();if(32===t.type||3===t.type)return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue())}},A.prototype.consumeToken=function(){var A=this._tokens.shift();return void 0===A?mt:A},A.prototype.reconsumeToken=function(A){this._tokens.unshift(A)},A}(),ft=function(A){return 15===A.type},ht=function(A){return 17===A.type},wt=function(A){return 20===A.type},Qt=function(A){return 0===A.type},Ct=function(A,e){return wt(A)&&A.value===e},Ut=function(A){return 31!==A.type},bt=function(A){return 31!==A.type&&4!==A.type},Ft=function(A){var e=[],t=[];return A.forEach((function(A){if(4===A.type){if(0===t.length)throw new Error("Error parsing function args, zero tokens for arg");return e.push(t),void(t=[])}31!==A.type&&t.push(A)})),t.length&&e.push(t),e},yt=function(A,e){return 11===e&&12===A.type||28===e&&29===A.type||2===e&&3===A.type},vt=function(A){return 17===A.type||15===A.type},Et=function(A){return 16===A.type||vt(A)},Ht=function(A){return A.length>1?[A[0],A[1]]:[A[0]]},It={type:17,number:0,flags:4},xt={type:16,number:50,flags:4},kt={type:16,number:100,flags:4},Mt=function(A,e,t){var r=A[0],n=A[1];return[Lt(r,e),Lt(void 0!==n?n:r,t)]},Lt=function(A,e){if(16===A.type)return A.number/100*e;if(ft(A))switch(A.unit){case"rem":case"em":return 16*A.number;default:return A.number}return A.number},St="grad",Kt="turn",Dt=function(A,e){if(15===e.type)switch(e.unit){case"deg":return Math.PI*e.number/180;case St:return Math.PI/200*e.number;case"rad":return e.number;case Kt:return 2*Math.PI*e.number}throw new Error("Unsupported angle type")},Tt=function(A){return 15===A.type&&("deg"===A.unit||A.unit===St||"rad"===A.unit||A.unit===Kt)},Rt=function(A){switch(A.filter(wt).map((function(A){return A.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[It,It];case"to top":case"bottom":return Ot(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[It,kt];case"to right":case"left":return Ot(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[kt,kt];case"to bottom":case"top":return Ot(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[kt,It];case"to left":case"right":return Ot(270)}return 0},Ot=function(A){return Math.PI*A/180},qt=function(A,e){if(18===e.type){var t=Wt[e.name];if(void 0===t)throw new Error('Attempting to parse an unsupported color function "'+e.name+'"');return t(A,e.values)}if(5===e.type){if(3===e.value.length){var r=e.value.substring(0,1),n=e.value.substring(1,2),s=e.value.substring(2,3);return Pt(parseInt(r+r,16),parseInt(n+n,16),parseInt(s+s,16),1)}if(4===e.value.length){r=e.value.substring(0,1),n=e.value.substring(1,2),s=e.value.substring(2,3);var o=e.value.substring(3,4);return Pt(parseInt(r+r,16),parseInt(n+n,16),parseInt(s+s,16),parseInt(o+o,16)/255)}if(6===e.value.length)return r=e.value.substring(0,2),n=e.value.substring(2,4),s=e.value.substring(4,6),Pt(parseInt(r,16),parseInt(n,16),parseInt(s,16),1);if(8===e.value.length)return r=e.value.substring(0,2),n=e.value.substring(2,4),s=e.value.substring(4,6),o=e.value.substring(6,8),Pt(parseInt(r,16),parseInt(n,16),parseInt(s,16),parseInt(o,16)/255)}if(20===e.type){var i=Zt[e.value.toUpperCase()];if(void 0!==i)return i}return Zt.TRANSPARENT},Nt=function(A){return!(255&A)},_t=function(A){var e=255&A,t=255&A>>8,r=255&A>>16,n=255&A>>24;return e<255?"rgba("+n+","+r+","+t+","+e/255+")":"rgb("+n+","+r+","+t+")"},Pt=function(A,e,t,r){return(A<<24|e<<16|t<<8|Math.round(255*r))>>>0},Gt=function(A,e){if(17===A.type)return A.number;if(16===A.type){var t=3===e?1:255;return 3===e?A.number/100*t:Math.round(A.number/100*t)}return 0},Vt=function(A,e){var t=e.filter(bt);if(3===t.length){var r=t.map(Gt),n=r[0],s=r[1],o=r[2];return Pt(n,s,o,1)}if(4===t.length){var i=t.map(Gt),a=(n=i[0],s=i[1],o=i[2],i[3]);return Pt(n,s,o,a)}return 0};function Jt(A,e,t){return t<0&&(t+=1),t>=1&&(t-=1),t<1/6?(e-A)*t*6+A:t<.5?e:t<2/3?6*(e-A)*(2/3-t)+A:A}var Xt,Yt,jt=function(A,e){var t=e.filter(bt),r=t[0],n=t[1],s=t[2],o=t[3],i=(17===r.type?Ot(r.number):Dt(0,r))/(2*Math.PI),a=Et(n)?n.number/100:0,l=Et(s)?s.number/100:0,c=void 0!==o&&Et(o)?Lt(o,1):1;if(0===a)return Pt(255*l,255*l,255*l,1);var d=l<=.5?l*(a+1):l+a-l*a,u=2*l-d,B=Jt(u,d,i+1/3),m=Jt(u,d,i),g=Jt(u,d,i-1/3);return Pt(255*B,255*m,255*g,c)},Wt={hsl:jt,hsla:jt,rgb:Vt,rgba:Vt},$t=function(A,e){return qt(A,pt.create(e).parseComponentValue())},Zt={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},zt={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(wt(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},Ar={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},er=function(A,e){var t=qt(A,e[0]),r=e[1];return r&&Et(r)?{color:t,stop:r}:{color:t,stop:null}},tr=function(A,e){var t=A[0],r=A[A.length-1];null===t.stop&&(t.stop=It),null===r.stop&&(r.stop=kt);for(var n=[],s=0,o=0;o<A.length;o++){var i=A[o].stop;if(null!==i){var a=Lt(i,e);a>s?n.push(a):n.push(s),s=a}else n.push(null)}var l=null;for(o=0;o<n.length;o++){var c=n[o];if(null===c)null===l&&(l=o);else if(null!==l){for(var d=o-l,u=(c-n[l-1])/(d+1),B=1;B<=d;B++)n[l+B-1]=u*B;l=null}}return A.map((function(A,t){return{color:A.color,stop:Math.max(Math.min(1,n[t]/e),0)}}))},rr=function(A,e){return Math.sqrt(A*A+e*e)},nr=function(A,e,t,r,n){return[[0,0],[0,e],[A,0],[A,e]].reduce((function(A,e){var s=e[0],o=e[1],i=rr(t-s,r-o);return(n?i<A.optimumDistance:i>A.optimumDistance)?{optimumCorner:e,optimumDistance:i}:A}),{optimumDistance:n?1/0:-1/0,optimumCorner:null}).optimumCorner},sr=function(A,e){var t=Ot(180),r=[];return Ft(e).forEach((function(e,n){if(0===n){var s=e[0];if(20===s.type&&-1!==["top","left","right","bottom"].indexOf(s.value))return void(t=Rt(e));if(Tt(s))return void(t=(Dt(0,s)+Ot(270))%Ot(360))}var o=er(A,e);r.push(o)})),{angle:t,stops:r,type:1}},or="closest-side",ir="farthest-side",ar="closest-corner",lr="farthest-corner",cr="circle",dr="ellipse",ur="cover",Br="contain",mr=function(A,e){var t=0,r=3,n=[],s=[];return Ft(e).forEach((function(e,o){var i=!0;if(0===o?i=e.reduce((function(A,e){if(wt(e))switch(e.value){case"center":return s.push(xt),!1;case"top":case"left":return s.push(It),!1;case"right":case"bottom":return s.push(kt),!1}else if(Et(e)||vt(e))return s.push(e),!1;return A}),i):1===o&&(i=e.reduce((function(A,e){if(wt(e))switch(e.value){case cr:return t=0,!1;case dr:return t=1,!1;case Br:case or:return r=0,!1;case ir:return r=1,!1;case ar:return r=2,!1;case ur:case lr:return r=3,!1}else if(vt(e)||Et(e))return Array.isArray(r)||(r=[]),r.push(e),!1;return A}),i)),i){var a=er(A,e);n.push(a)}})),{size:r,shape:t,stops:n,position:s,type:2}},gr=function(A,e){if(22===e.type){var t={url:e.value,type:0};return A.cache.addImage(e.value),t}if(18===e.type){var r=pr[e.name];if(void 0===r)throw new Error('Attempting to parse an unsupported image function "'+e.name+'"');return r(A,e.values)}throw new Error("Unsupported image type "+e.type)},pr={"linear-gradient":function(A,e){var t=Ot(180),r=[];return Ft(e).forEach((function(e,n){if(0===n){var s=e[0];if(20===s.type&&"to"===s.value)return void(t=Rt(e));if(Tt(s))return void(t=Dt(0,s))}var o=er(A,e);r.push(o)})),{angle:t,stops:r,type:1}},"-moz-linear-gradient":sr,"-ms-linear-gradient":sr,"-o-linear-gradient":sr,"-webkit-linear-gradient":sr,"radial-gradient":function(A,e){var t=0,r=3,n=[],s=[];return Ft(e).forEach((function(e,o){var i=!0;if(0===o){var a=!1;i=e.reduce((function(A,e){if(a)if(wt(e))switch(e.value){case"center":return s.push(xt),A;case"top":case"left":return s.push(It),A;case"right":case"bottom":return s.push(kt),A}else(Et(e)||vt(e))&&s.push(e);else if(wt(e))switch(e.value){case cr:return t=0,!1;case dr:return t=1,!1;case"at":return a=!0,!1;case or:return r=0,!1;case ur:case ir:return r=1,!1;case Br:case ar:return r=2,!1;case lr:return r=3,!1}else if(vt(e)||Et(e))return Array.isArray(r)||(r=[]),r.push(e),!1;return A}),i)}if(i){var l=er(A,e);n.push(l)}})),{size:r,shape:t,stops:n,position:s,type:2}},"-moz-radial-gradient":mr,"-ms-radial-gradient":mr,"-o-radial-gradient":mr,"-webkit-radial-gradient":mr,"-webkit-gradient":function(A,e){var t=Ot(180),r=[],n=1;return Ft(e).forEach((function(e,t){var s=e[0];if(0===t){if(wt(s)&&"linear"===s.value)return void(n=1);if(wt(s)&&"radial"===s.value)return void(n=2)}if(18===s.type)if("from"===s.name){var o=qt(A,s.values[0]);r.push({stop:It,color:o})}else if("to"===s.name)o=qt(A,s.values[0]),r.push({stop:kt,color:o});else if("color-stop"===s.name){var i=s.values.filter(bt);if(2===i.length){o=qt(A,i[1]);var a=i[0];ht(a)&&r.push({stop:{type:16,number:100*a.number,flags:a.flags},color:o})}}})),1===n?{angle:(t+Ot(180))%Ot(360),stops:r,type:n}:{size:3,shape:0,stops:r,position:[],type:n}}},fr={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(A,e){if(0===e.length)return[];var t=e[0];return 20===t.type&&"none"===t.value?[]:e.filter((function(A){return bt(A)&&function(A){return!(20===A.type&&"none"===A.value||18===A.type&&!pr[A.name])}(A)})).map((function(e){return gr(A,e)}))}},hr={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(wt(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},wr={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(A,e){return Ft(e).map((function(A){return A.filter(Et)})).map(Ht)}},Qr={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(A,e){return Ft(e).map((function(A){return A.filter(wt).map((function(A){return A.value})).join(" ")})).map(Cr)}},Cr=function(A){switch(A){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};(Yt=Xt||(Xt={})).AUTO="auto",Yt.CONTAIN="contain",Yt.COVER="cover";var Ur,br,Fr={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(A,e){return Ft(e).map((function(A){return A.filter(yr)}))}},yr=function(A){return wt(A)||Et(A)},vr=function(A){return{name:"border-"+A+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},Er=vr("top"),Hr=vr("right"),Ir=vr("bottom"),xr=vr("left"),kr=function(A){return{name:"border-radius-"+A,initialValue:"0 0",prefix:!1,type:1,parse:function(A,e){return Ht(e.filter(Et))}}},Mr=kr("top-left"),Lr=kr("top-right"),Sr=kr("bottom-right"),Kr=kr("bottom-left"),Dr=function(A){return{name:"border-"+A+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(A,e){switch(e){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},Tr=Dr("top"),Rr=Dr("right"),Or=Dr("bottom"),qr=Dr("left"),Nr=function(A){return{name:"border-"+A+"-width",initialValue:"0",type:0,prefix:!1,parse:function(A,e){return ft(e)?e.number:0}}},_r=Nr("top"),Pr=Nr("right"),Gr=Nr("bottom"),Vr=Nr("left"),Jr={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Xr={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(A,e){return"rtl"===e?1:0}},Yr={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(A,e){return e.filter(wt).reduce((function(A,e){return A|jr(e.value)}),0)}},jr=function(A){switch(A){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},Wr={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},$r={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(A,e){return 20===e.type&&"normal"===e.value?0:17===e.type||15===e.type?e.number:0}};(br=Ur||(Ur={})).NORMAL="normal",br.STRICT="strict";var Zr,zr,An={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"strict"===e?Ur.STRICT:Ur.NORMAL}},en={name:"line-height",initialValue:"normal",prefix:!1,type:4},tn=function(A,e){return wt(A)&&"normal"===A.value?1.2*e:17===A.type?e*A.number:Et(A)?Lt(A,e):e},rn={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(A,e){return 20===e.type&&"none"===e.value?null:gr(A,e)}},nn={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(A,e){return"inside"===e?0:1}},sn={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},on=function(A){return{name:"margin-"+A,initialValue:"0",prefix:!1,type:4}},an=on("top"),ln=on("right"),cn=on("bottom"),dn=on("left"),un={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(A,e){return e.filter(wt).map((function(A){switch(A.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},Bn={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"break-word"===e?"break-word":"normal"}},mn=function(A){return{name:"padding-"+A,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},gn=mn("top"),pn=mn("right"),fn=mn("bottom"),hn=mn("left"),wn={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(A,e){switch(e){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},Qn={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(A,e){switch(e){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},Cn={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return 1===e.length&&Ct(e[0],"none")?[]:Ft(e).map((function(e){for(var t={color:Zt.TRANSPARENT,offsetX:It,offsetY:It,blur:It},r=0,n=0;n<e.length;n++){var s=e[n];vt(s)?(0===r?t.offsetX=s:1===r?t.offsetY=s:t.blur=s,r++):t.color=qt(A,s)}return t}))}},Un={name:"text-transform",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"uppercase":return 2;case"lowercase":return 1;case"capitalize":return 3}return 0}},bn={name:"transform",initialValue:"none",prefix:!0,type:0,parse:function(A,e){if(20===e.type&&"none"===e.value)return null;if(18===e.type){var t=Fn[e.name];if(void 0===t)throw new Error('Attempting to parse an unsupported transform function "'+e.name+'"');return t(e.values)}return null}},Fn={matrix:function(A){var e=A.filter((function(A){return 17===A.type})).map((function(A){return A.number}));return 6===e.length?e:null},matrix3d:function(A){var e=A.filter((function(A){return 17===A.type})).map((function(A){return A.number})),t=e[0],r=e[1];e[2],e[3];var n=e[4],s=e[5];e[6],e[7],e[8],e[9],e[10],e[11];var o=e[12],i=e[13];return e[14],e[15],16===e.length?[t,r,n,s,o,i]:null}},yn={type:16,number:50,flags:4},vn=[yn,yn],En={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:1,parse:function(A,e){var t=e.filter(Et);return 2!==t.length?vn:[t[0],t[1]]}},Hn={name:"visible",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"hidden":return 1;case"collapse":return 2;default:return 0}}};(zr=Zr||(Zr={})).NORMAL="normal",zr.BREAK_ALL="break-all",zr.KEEP_ALL="keep-all";for(var In={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){switch(e){case"break-all":return Zr.BREAK_ALL;case"keep-all":return Zr.KEEP_ALL;default:return Zr.NORMAL}}},xn={name:"z-index",initialValue:"auto",prefix:!1,type:0,parse:function(A,e){if(20===e.type)return{auto:!0,order:0};if(ht(e))return{auto:!1,order:e.number};throw new Error("Invalid z-index number parsed")}},kn=function(A,e){if(15===e.type)switch(e.unit.toLowerCase()){case"s":return 1e3*e.number;case"ms":return e.number}throw new Error("Unsupported time type")},Mn={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:function(A,e){return ht(e)?e.number:1}},Ln={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Sn={name:"text-decoration-line",initialValue:"none",prefix:!1,type:1,parse:function(A,e){return e.filter(wt).map((function(A){switch(A.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0})).filter((function(A){return 0!==A}))}},Kn={name:"font-family",initialValue:"",prefix:!1,type:1,parse:function(A,e){var t=[],r=[];return e.forEach((function(A){switch(A.type){case 20:case 0:t.push(A.value);break;case 17:t.push(A.number.toString());break;case 4:r.push(t.join(" ")),t.length=0}})),t.length&&r.push(t.join(" ")),r.map((function(A){return-1===A.indexOf(" ")?A:"'"+A+"'"}))}},Dn={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},Tn={name:"font-weight",initialValue:"normal",type:0,prefix:!1,parse:function(A,e){return ht(e)?e.number:wt(e)&&"bold"===e.value?700:400}},Rn={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return e.filter(wt).map((function(A){return A.value}))}},On={name:"font-style",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){switch(e){case"oblique":return"oblique";case"italic":return"italic";default:return"normal"}}},qn=function(A,e){return 0!==(A&e)},Nn={name:"content",initialValue:"none",type:1,prefix:!1,parse:function(A,e){if(0===e.length)return[];var t=e[0];return 20===t.type&&"none"===t.value?[]:e}},_n={name:"counter-increment",initialValue:"none",prefix:!0,type:1,parse:function(A,e){if(0===e.length)return null;var t=e[0];if(20===t.type&&"none"===t.value)return null;for(var r=[],n=e.filter(Ut),s=0;s<n.length;s++){var o=n[s],i=n[s+1];if(20===o.type){var a=i&&ht(i)?i.number:1;r.push({counter:o.value,increment:a})}}return r}},Pn={name:"counter-reset",initialValue:"none",prefix:!0,type:1,parse:function(A,e){if(0===e.length)return[];for(var t=[],r=e.filter(Ut),n=0;n<r.length;n++){var s=r[n],o=r[n+1];if(wt(s)&&"none"!==s.value){var i=o&&ht(o)?o.number:0;t.push({counter:s.value,reset:i})}}return t}},Gn={name:"duration",initialValue:"0s",prefix:!1,type:1,parse:function(A,e){return e.filter(ft).map((function(A){return kn(0,A)}))}},Vn={name:"quotes",initialValue:"none",prefix:!0,type:1,parse:function(A,e){if(0===e.length)return null;var t=e[0];if(20===t.type&&"none"===t.value)return null;var r=[],n=e.filter(Qt);if(n.length%2!=0)return null;for(var s=0;s<n.length;s+=2){var o=n[s].value,i=n[s+1].value;r.push({open:o,close:i})}return r}},Jn=function(A,e,t){if(!A)return"";var r=A[Math.min(e,A.length-1)];return r?t?r.open:r.close:""},Xn={name:"box-shadow",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return 1===e.length&&Ct(e[0],"none")?[]:Ft(e).map((function(e){for(var t={color:255,offsetX:It,offsetY:It,blur:It,spread:It,inset:!1},r=0,n=0;n<e.length;n++){var s=e[n];Ct(s,"inset")?t.inset=!0:vt(s)?(0===r?t.offsetX=s:1===r?t.offsetY=s:2===r?t.blur=s:t.spread=s,r++):t.color=qt(A,s)}return t}))}},Yn={name:"paint-order",initialValue:"normal",prefix:!1,type:1,parse:function(A,e){var t=[];return e.filter(wt).forEach((function(A){switch(A.value){case"stroke":t.push(1);break;case"fill":t.push(0);break;case"markers":t.push(2)}})),[0,1,2].forEach((function(A){-1===t.indexOf(A)&&t.push(A)})),t}},jn={name:"-webkit-text-stroke-color",initialValue:"currentcolor",prefix:!1,type:3,format:"color"},Wn={name:"-webkit-text-stroke-width",initialValue:"0",type:0,prefix:!1,parse:function(A,e){return ft(e)?e.number:0}},$n=function(){function A(A,e){var t,r;this.animationDuration=As(A,Gn,e.animationDuration),this.backgroundClip=As(A,zt,e.backgroundClip),this.backgroundColor=As(A,Ar,e.backgroundColor),this.backgroundImage=As(A,fr,e.backgroundImage),this.backgroundOrigin=As(A,hr,e.backgroundOrigin),this.backgroundPosition=As(A,wr,e.backgroundPosition),this.backgroundRepeat=As(A,Qr,e.backgroundRepeat),this.backgroundSize=As(A,Fr,e.backgroundSize),this.borderTopColor=As(A,Er,e.borderTopColor),this.borderRightColor=As(A,Hr,e.borderRightColor),this.borderBottomColor=As(A,Ir,e.borderBottomColor),this.borderLeftColor=As(A,xr,e.borderLeftColor),this.borderTopLeftRadius=As(A,Mr,e.borderTopLeftRadius),this.borderTopRightRadius=As(A,Lr,e.borderTopRightRadius),this.borderBottomRightRadius=As(A,Sr,e.borderBottomRightRadius),this.borderBottomLeftRadius=As(A,Kr,e.borderBottomLeftRadius),this.borderTopStyle=As(A,Tr,e.borderTopStyle),this.borderRightStyle=As(A,Rr,e.borderRightStyle),this.borderBottomStyle=As(A,Or,e.borderBottomStyle),this.borderLeftStyle=As(A,qr,e.borderLeftStyle),this.borderTopWidth=As(A,_r,e.borderTopWidth),this.borderRightWidth=As(A,Pr,e.borderRightWidth),this.borderBottomWidth=As(A,Gr,e.borderBottomWidth),this.borderLeftWidth=As(A,Vr,e.borderLeftWidth),this.boxShadow=As(A,Xn,e.boxShadow),this.color=As(A,Jr,e.color),this.direction=As(A,Xr,e.direction),this.display=As(A,Yr,e.display),this.float=As(A,Wr,e.cssFloat),this.fontFamily=As(A,Kn,e.fontFamily),this.fontSize=As(A,Dn,e.fontSize),this.fontStyle=As(A,On,e.fontStyle),this.fontVariant=As(A,Rn,e.fontVariant),this.fontWeight=As(A,Tn,e.fontWeight),this.letterSpacing=As(A,$r,e.letterSpacing),this.lineBreak=As(A,An,e.lineBreak),this.lineHeight=As(A,en,e.lineHeight),this.listStyleImage=As(A,rn,e.listStyleImage),this.listStylePosition=As(A,nn,e.listStylePosition),this.listStyleType=As(A,sn,e.listStyleType),this.marginTop=As(A,an,e.marginTop),this.marginRight=As(A,ln,e.marginRight),this.marginBottom=As(A,cn,e.marginBottom),this.marginLeft=As(A,dn,e.marginLeft),this.opacity=As(A,Mn,e.opacity);var n=As(A,un,e.overflow);this.overflowX=n[0],this.overflowY=n[n.length>1?1:0],this.overflowWrap=As(A,Bn,e.overflowWrap),this.paddingTop=As(A,gn,e.paddingTop),this.paddingRight=As(A,pn,e.paddingRight),this.paddingBottom=As(A,fn,e.paddingBottom),this.paddingLeft=As(A,hn,e.paddingLeft),this.paintOrder=As(A,Yn,e.paintOrder),this.position=As(A,Qn,e.position),this.textAlign=As(A,wn,e.textAlign),this.textDecorationColor=As(A,Ln,null!==(t=e.textDecorationColor)&&void 0!==t?t:e.color),this.textDecorationLine=As(A,Sn,null!==(r=e.textDecorationLine)&&void 0!==r?r:e.textDecoration),this.textShadow=As(A,Cn,e.textShadow),this.textTransform=As(A,Un,e.textTransform),this.transform=As(A,bn,e.transform),this.transformOrigin=As(A,En,e.transformOrigin),this.visibility=As(A,Hn,e.visibility),this.webkitTextStrokeColor=As(A,jn,e.webkitTextStrokeColor),this.webkitTextStrokeWidth=As(A,Wn,e.webkitTextStrokeWidth),this.wordBreak=As(A,In,e.wordBreak),this.zIndex=As(A,xn,e.zIndex)}return A.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},A.prototype.isTransparent=function(){return Nt(this.backgroundColor)},A.prototype.isTransformed=function(){return null!==this.transform},A.prototype.isPositioned=function(){return 0!==this.position},A.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},A.prototype.isFloating=function(){return 0!==this.float},A.prototype.isInlineLevel=function(){return qn(this.display,4)||qn(this.display,33554432)||qn(this.display,268435456)||qn(this.display,536870912)||qn(this.display,67108864)||qn(this.display,134217728)},A}(),Zn=function(){return function(A,e){this.content=As(A,Nn,e.content),this.quotes=As(A,Vn,e.quotes)}}(),zn=function(){return function(A,e){this.counterIncrement=As(A,_n,e.counterIncrement),this.counterReset=As(A,Pn,e.counterReset)}}(),As=function(A,e,t){var r=new gt,n=null!=t?t.toString():e.initialValue;r.write(n);var s=new pt(r.read());switch(e.type){case 2:var o=s.parseComponentValue();return e.parse(A,wt(o)?o.value:e.initialValue);case 0:return e.parse(A,s.parseComponentValue());case 1:return e.parse(A,s.parseComponentValues());case 4:return s.parseComponentValue();case 3:switch(e.format){case"angle":return Dt(0,s.parseComponentValue());case"color":return qt(A,s.parseComponentValue());case"image":return gr(A,s.parseComponentValue());case"length":var i=s.parseComponentValue();return vt(i)?i:It;case"length-percentage":var a=s.parseComponentValue();return Et(a)?a:It;case"time":return kn(0,s.parseComponentValue())}}},es=function(A,e){var t=function(A){switch(A.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(A);return 1===t||e===t},ts=function(){return function(A,e){this.context=A,this.textNodes=[],this.elements=[],this.flags=0,es(e,3),this.styles=new $n(A,window.getComputedStyle(e,null)),to(e)&&(this.styles.animationDuration.some((function(A){return A>0}))&&(e.style.animationDuration="0s"),null!==this.styles.transform&&(e.style.transform="none")),this.bounds=kA(this.context,e),es(e,4)&&(this.flags|=16)}}(),rs="undefined"==typeof Uint8Array?[]:new Uint8Array(256),ns=0;ns<64;ns++)rs["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(ns)]=ns;for(var ss=function(A,e,t){return A.slice?A.slice(e,t):new Uint16Array(Array.prototype.slice.call(A,e,t))},os=function(){function A(A,e,t,r,n,s){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=r,this.index=n,this.data=s}return A.prototype.get=function(A){var e;if(A>=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A<this.highStart)return e=2080+(A>>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},A}(),is="undefined"==typeof Uint8Array?[]:new Uint8Array(256),as=0;as<64;as++)is["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(as)]=as;var ls,cs,ds=8,us=9,Bs=11,ms=12,gs=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];if(String.fromCodePoint)return String.fromCodePoint.apply(String,A);var t=A.length;if(!t)return"";for(var r=[],n=-1,s="";++n<t;){var o=A[n];o<=65535?r.push(o):(o-=65536,r.push(55296+(o>>10),o%1024+56320)),(n+1===t||r.length>16384)&&(s+=String.fromCharCode.apply(String,r),r.length=0)}return s},ps=function(){var A=function(A){var e,t,r,n,s,o=.75*A.length,i=A.length,a=0;"="===A[A.length-1]&&(o--,"="===A[A.length-2]&&o--);var l="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(o):new Array(o),c=Array.isArray(l)?l:new Uint8Array(l);for(e=0;e<i;e+=4)t=rs[A.charCodeAt(e)],r=rs[A.charCodeAt(e+1)],n=rs[A.charCodeAt(e+2)],s=rs[A.charCodeAt(e+3)],c[a++]=t<<2|r>>4,c[a++]=(15&r)<<4|n>>2,c[a++]=(3&n)<<6|63&s;return l}("AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA="),e=Array.isArray(A)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=4)t.push(A[r+3]<<24|A[r+2]<<16|A[r+1]<<8|A[r]);return t}(A):new Uint32Array(A),t=Array.isArray(A)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=2)t.push(A[r+1]<<8|A[r]);return t}(A):new Uint16Array(A),r=ss(t,12,e[4]/2),n=2===e[5]?ss(t,(24+e[4])/2):function(A,e,t){return A.slice?A.slice(e,t):new Uint32Array(Array.prototype.slice.call(A,e,t))}(e,Math.ceil((24+e[4])/4));return new os(e[0],e[1],e[2],e[3],r,n)}(),fs="×",hs=function(A){return ps.get(A)},ws=function(A,e,t){var r=t-2,n=e[r],s=e[t-1],o=e[t];if(2===s&&3===o)return fs;if(2===s||3===s||4===s)return"÷";if(2===o||3===o||4===o)return"÷";if(s===ds&&-1!==[ds,us,Bs,ms].indexOf(o))return fs;if(!(s!==Bs&&s!==us||o!==us&&10!==o))return fs;if((s===ms||10===s)&&10===o)return fs;if(13===o||5===o)return fs;if(7===o)return fs;if(1===s)return fs;if(13===s&&14===o){for(;5===n;)n=e[--r];if(14===n)return fs}if(15===s&&15===o){for(var i=0;15===n;)i++,n=e[--r];if(i%2==0)return fs}return"÷"},Qs=function(A){var e=function(A){for(var e=[],t=0,r=A.length;t<r;){var n=A.charCodeAt(t++);if(n>=55296&&n<=56319&&t<r){var s=A.charCodeAt(t++);56320==(64512&s)?e.push(((1023&n)<<10)+(1023&s)+65536):(e.push(n),t--)}else e.push(n)}return e}(A),t=e.length,r=0,n=0,s=e.map(hs);return{next:function(){if(r>=t)return{done:!0,value:null};for(var A=fs;r<t&&(A=ws(0,s,++r))===fs;);if(A!==fs||r===t){var o=gs.apply(null,e.slice(n,r));return n=r,{value:o,done:!1}}return{done:!0,value:null}}}},Cs=function(A){return 0===A[0]&&255===A[1]&&0===A[2]&&255===A[3]},Us=function(A,e,t,r,n){var s="http://www.w3.org/2000/svg",o=document.createElementNS(s,"svg"),i=document.createElementNS(s,"foreignObject");return o.setAttributeNS(null,"width",A.toString()),o.setAttributeNS(null,"height",e.toString()),i.setAttributeNS(null,"width","100%"),i.setAttributeNS(null,"height","100%"),i.setAttributeNS(null,"x",t.toString()),i.setAttributeNS(null,"y",r.toString()),i.setAttributeNS(null,"externalResourcesRequired","true"),o.appendChild(i),i.appendChild(n),o},bs=function(A){return new Promise((function(e,t){var r=new Image;r.onload=function(){return e(r)},r.onerror=t,r.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(A))}))},Fs={get SUPPORT_RANGE_BOUNDS(){var A=function(A){if(A.createRange){var e=A.createRange();if(e.getBoundingClientRect){var t=A.createElement("boundtest");t.style.height="123px",t.style.display="block",A.body.appendChild(t),e.selectNode(t);var r=e.getBoundingClientRect(),n=Math.round(r.height);if(A.body.removeChild(t),123===n)return!0}}return!1}(document);return Object.defineProperty(Fs,"SUPPORT_RANGE_BOUNDS",{value:A}),A},get SUPPORT_WORD_BREAKING(){var A=Fs.SUPPORT_RANGE_BOUNDS&&function(A){var e=A.createElement("boundtest");e.style.width="50px",e.style.display="block",e.style.fontSize="12px",e.style.letterSpacing="0px",e.style.wordSpacing="0px",A.body.appendChild(e);var t=A.createRange();e.innerHTML="function"==typeof"".repeat?"👨".repeat(10):"";var r=e.firstChild,n=MA(r.data).map((function(A){return LA(A)})),s=0,o={},i=n.every((function(A,e){t.setStart(r,s),t.setEnd(r,s+A.length);var n=t.getBoundingClientRect();s+=A.length;var i=n.x>o.x||n.y>o.y;return o=n,0===e||i}));return A.body.removeChild(e),i}(document);return Object.defineProperty(Fs,"SUPPORT_WORD_BREAKING",{value:A}),A},get SUPPORT_SVG_DRAWING(){var A=function(A){var e=new Image,t=A.createElement("canvas"),r=t.getContext("2d");if(!r)return!1;e.src="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";try{r.drawImage(e,0,0),t.toDataURL()}catch(A){return!1}return!0}(document);return Object.defineProperty(Fs,"SUPPORT_SVG_DRAWING",{value:A}),A},get SUPPORT_FOREIGNOBJECT_DRAWING(){var A="function"==typeof Array.from&&"function"==typeof window.fetch?function(A){var e=A.createElement("canvas"),t=100;e.width=t,e.height=t;var r=e.getContext("2d");if(!r)return Promise.reject(!1);r.fillStyle="rgb(0, 255, 0)",r.fillRect(0,0,t,t);var n=new Image,s=e.toDataURL();n.src=s;var o=Us(t,t,0,0,n);return r.fillStyle="red",r.fillRect(0,0,t,t),bs(o).then((function(e){r.drawImage(e,0,0);var n=r.getImageData(0,0,t,t).data;r.fillStyle="red",r.fillRect(0,0,t,t);var o=A.createElement("div");return o.style.backgroundImage="url("+s+")",o.style.height=t+"px",Cs(n)?bs(Us(t,t,0,0,o)):Promise.reject(!1)})).then((function(A){return r.drawImage(A,0,0),Cs(r.getImageData(0,0,t,t).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(Fs,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:A}),A},get SUPPORT_CORS_IMAGES(){var A=void 0!==(new Image).crossOrigin;return Object.defineProperty(Fs,"SUPPORT_CORS_IMAGES",{value:A}),A},get SUPPORT_RESPONSE_TYPE(){var A="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(Fs,"SUPPORT_RESPONSE_TYPE",{value:A}),A},get SUPPORT_CORS_XHR(){var A="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Fs,"SUPPORT_CORS_XHR",{value:A}),A},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var A=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(Fs,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:A}),A}},ys=function(){return function(A,e){this.text=A,this.bounds=e}}(),vs=function(A,e,t){var r=A.ownerDocument;if(!r)throw new Error("Node has no owner document");var n=r.createRange();return n.setStart(A,e),n.setEnd(A,e+t),n},Es=function(A){if(Fs.SUPPORT_NATIVE_TEXT_SEGMENTATION){var e=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(e.segment(A)).map((function(A){return A.segment}))}return function(A){for(var e,t=Qs(A),r=[];!(e=t.next()).done;)e.value&&r.push(e.value.slice());return r}(A)},Hs=[32,160,4961,65792,65793,4153,4241],Is=function(A,e){for(var t,r=function(A,e){var t=MA(A),r=function(A,e){e||(e={lineBreak:"normal",wordBreak:"normal"});var t=function(A,e){void 0===e&&(e="strict");var t=[],r=[],n=[];return A.forEach((function(A,s){var o=be.get(A);if(o>50?(n.push(!0),o-=50):n.push(!1),-1!==["normal","auto","loose"].indexOf(e)&&-1!==[8208,8211,12316,12448].indexOf(A))return r.push(s),t.push(16);if(4===o||11===o){if(0===s)return r.push(s),t.push(ce);var i=t[s-1];return-1===He.indexOf(i)?(r.push(r[s-1]),t.push(i)):(r.push(s),t.push(ce))}return r.push(s),31===o?t.push("strict"===e?re:ge):o===we||29===o?t.push(ce):43===o?A>=131072&&A<=196605||A>=196608&&A<=262141?t.push(ge):t.push(ce):void t.push(o)})),[r,t,n]}(A,e.lineBreak),r=t[0],n=t[1],s=t[2];"break-all"!==e.wordBreak&&"break-word"!==e.wordBreak||(n=n.map((function(A){return-1!==[oe,ce,we].indexOf(A)?ge:A})));var o="keep-all"===e.wordBreak?s.map((function(e,t){return e&&A[t]>=19968&&A[t]<=40959})):void 0;return[r,n,o]}(t,e),n=r[0],s=r[1],o=r[2],i=t.length,a=0,l=0;return{next:function(){if(l>=i)return{done:!0,value:null};for(var A=Ce;l<i&&(A=Le(t,s,n,++l,o))===Ce;);if(A!==Ce||l===i){var e=new Se(t,A,a,l);return a=l,{value:e,done:!1}}return{done:!0,value:null}}}}(A,{lineBreak:e.lineBreak,wordBreak:"break-word"===e.overflowWrap?"break-word":e.wordBreak}),n=[],s=function(){if(t.value){var A=t.value.slice(),e=MA(A),r="";e.forEach((function(A){-1===Hs.indexOf(A)?r+=LA(A):(r.length&&n.push(r),n.push(LA(A)),r="")})),r.length&&n.push(r)}};!(t=r.next()).done;)s();return n},xs=function(){return function(A,e,t){this.text=ks(e.data,t.textTransform),this.textBounds=function(A,e,t,r){var n=function(A,e){return 0!==e.letterSpacing?Es(A):function(A,e){if(Fs.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(t.segment(A)).map((function(A){return A.segment}))}return Is(A,e)}(A,e)}(e,t),s=[],o=0;return n.forEach((function(e){if(t.textDecorationLine.length||e.trim().length>0)if(Fs.SUPPORT_RANGE_BOUNDS){var n=vs(r,o,e.length).getClientRects();if(n.length>1){var i=Es(e),a=0;i.forEach((function(e){s.push(new ys(e,xA.fromDOMRectList(A,vs(r,a+o,e.length).getClientRects()))),a+=e.length}))}else s.push(new ys(e,xA.fromDOMRectList(A,n)))}else{var l=r.splitText(e.length);s.push(new ys(e,function(A,e){var t=e.ownerDocument;if(t){var r=t.createElement("html2canvaswrapper");r.appendChild(e.cloneNode(!0));var n=e.parentNode;if(n){n.replaceChild(r,e);var s=kA(A,r);return r.firstChild&&n.replaceChild(r.firstChild,r),s}}return xA.EMPTY}(A,r))),r=l}else Fs.SUPPORT_RANGE_BOUNDS||(r=r.splitText(e.length));o+=e.length})),s}(A,this.text,t,e)}}(),ks=function(A,e){switch(e){case 1:return A.toLowerCase();case 3:return A.replace(Ms,Ls);case 2:return A.toUpperCase();default:return A}},Ms=/(^|\s|:|-|\(|\))([a-z])/g,Ls=function(A,e,t){return A.length>0?e+t.toUpperCase():A},Ss=function(A){function e(e,t){var r=A.call(this,e,t)||this;return r.src=t.currentSrc||t.src,r.intrinsicWidth=t.naturalWidth,r.intrinsicHeight=t.naturalHeight,r.context.cache.addImage(r.src),r}return yA(e,A),e}(ts),Ks=function(A){function e(e,t){var r=A.call(this,e,t)||this;return r.canvas=t,r.intrinsicWidth=t.width,r.intrinsicHeight=t.height,r}return yA(e,A),e}(ts),Ds=function(A){function e(e,t){var r=A.call(this,e,t)||this,n=new XMLSerializer,s=kA(e,t);return t.setAttribute("width",s.width+"px"),t.setAttribute("height",s.height+"px"),r.svg="data:image/svg+xml,"+encodeURIComponent(n.serializeToString(t)),r.intrinsicWidth=t.width.baseVal.value,r.intrinsicHeight=t.height.baseVal.value,r.context.cache.addImage(r.svg),r}return yA(e,A),e}(ts),Ts=function(A){function e(e,t){var r=A.call(this,e,t)||this;return r.value=t.value,r}return yA(e,A),e}(ts),Rs=function(A){function e(e,t){var r=A.call(this,e,t)||this;return r.start=t.start,r.reversed="boolean"==typeof t.reversed&&!0===t.reversed,r}return yA(e,A),e}(ts),Os=[{type:15,flags:0,unit:"px",number:3}],qs=[{type:16,flags:0,number:50}],Ns="checkbox",_s="radio",Ps=707406591,Gs=function(A){function e(e,t){var r,n,s,o=A.call(this,e,t)||this;switch(o.type=t.type.toLowerCase(),o.checked=t.checked,o.value=0===(n="password"===(r=t).type?new Array(r.value.length+1).join("•"):r.value).length?r.placeholder||"":n,o.type!==Ns&&o.type!==_s||(o.styles.backgroundColor=3739148031,o.styles.borderTopColor=o.styles.borderRightColor=o.styles.borderBottomColor=o.styles.borderLeftColor=2779096575,o.styles.borderTopWidth=o.styles.borderRightWidth=o.styles.borderBottomWidth=o.styles.borderLeftWidth=1,o.styles.borderTopStyle=o.styles.borderRightStyle=o.styles.borderBottomStyle=o.styles.borderLeftStyle=1,o.styles.backgroundClip=[0],o.styles.backgroundOrigin=[0],o.bounds=(s=o.bounds).width>s.height?new xA(s.left+(s.width-s.height)/2,s.top,s.height,s.height):s.width<s.height?new xA(s.left,s.top+(s.height-s.width)/2,s.width,s.width):s),o.type){case Ns:o.styles.borderTopRightRadius=o.styles.borderTopLeftRadius=o.styles.borderBottomRightRadius=o.styles.borderBottomLeftRadius=Os;break;case _s:o.styles.borderTopRightRadius=o.styles.borderTopLeftRadius=o.styles.borderBottomRightRadius=o.styles.borderBottomLeftRadius=qs}return o}return yA(e,A),e}(ts),Vs=function(A){function e(e,t){var r=A.call(this,e,t)||this,n=t.options[t.selectedIndex||0];return r.value=n&&n.text||"",r}return yA(e,A),e}(ts),Js=function(A){function e(e,t){var r=A.call(this,e,t)||this;return r.value=t.value,r}return yA(e,A),e}(ts),Xs=function(A){function e(e,t){var r=A.call(this,e,t)||this;r.src=t.src,r.width=parseInt(t.width,10)||0,r.height=parseInt(t.height,10)||0,r.backgroundColor=r.styles.backgroundColor;try{if(t.contentWindow&&t.contentWindow.document&&t.contentWindow.document.documentElement){r.tree=$s(e,t.contentWindow.document.documentElement);var n=t.contentWindow.document.documentElement?$t(e,getComputedStyle(t.contentWindow.document.documentElement).backgroundColor):Zt.TRANSPARENT,s=t.contentWindow.document.body?$t(e,getComputedStyle(t.contentWindow.document.body).backgroundColor):Zt.TRANSPARENT;r.backgroundColor=Nt(n)?Nt(s)?r.styles.backgroundColor:s:n}}catch(A){}return r}return yA(e,A),e}(ts),Ys=["OL","UL","MENU"],js=function(A,e,t,r){for(var n=e.firstChild,s=void 0;n;n=s)if(s=n.nextSibling,Ao(n)&&n.data.trim().length>0)t.textNodes.push(new xs(A,n,t.styles));else if(eo(n))if(fo(n)&&n.assignedNodes)n.assignedNodes().forEach((function(e){return js(A,e,t,r)}));else{var o=Ws(A,n);o.styles.isVisible()&&(Zs(n,o,r)?o.flags|=4:zs(o.styles)&&(o.flags|=2),-1!==Ys.indexOf(n.tagName)&&(o.flags|=8),t.elements.push(o),n.slot,n.shadowRoot?js(A,n.shadowRoot,o,r):go(n)||io(n)||po(n)||js(A,n,o,r))}},Ws=function(A,e){return uo(e)?new Ss(A,e):lo(e)?new Ks(A,e):io(e)?new Ds(A,e):no(e)?new Ts(A,e):so(e)?new Rs(A,e):oo(e)?new Gs(A,e):po(e)?new Vs(A,e):go(e)?new Js(A,e):Bo(e)?new Xs(A,e):new ts(A,e)},$s=function(A,e){var t=Ws(A,e);return t.flags|=4,js(A,e,t,t),t},Zs=function(A,e,t){return e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||ao(A)&&t.styles.isTransparent()},zs=function(A){return A.isPositioned()||A.isFloating()},Ao=function(A){return A.nodeType===Node.TEXT_NODE},eo=function(A){return A.nodeType===Node.ELEMENT_NODE},to=function(A){return eo(A)&&void 0!==A.style&&!ro(A)},ro=function(A){return"object"==typeof A.className},no=function(A){return"LI"===A.tagName},so=function(A){return"OL"===A.tagName},oo=function(A){return"INPUT"===A.tagName},io=function(A){return"svg"===A.tagName},ao=function(A){return"BODY"===A.tagName},lo=function(A){return"CANVAS"===A.tagName},co=function(A){return"VIDEO"===A.tagName},uo=function(A){return"IMG"===A.tagName},Bo=function(A){return"IFRAME"===A.tagName},mo=function(A){return"STYLE"===A.tagName},go=function(A){return"TEXTAREA"===A.tagName},po=function(A){return"SELECT"===A.tagName},fo=function(A){return"SLOT"===A.tagName},ho=function(A){return A.tagName.indexOf("-")>0},wo=function(){function A(){this.counters={}}return A.prototype.getCounterValue=function(A){var e=this.counters[A];return e&&e.length?e[e.length-1]:1},A.prototype.getCounterValues=function(A){return this.counters[A]||[]},A.prototype.pop=function(A){var e=this;A.forEach((function(A){return e.counters[A].pop()}))},A.prototype.parse=function(A){var e=this,t=A.counterIncrement,r=A.counterReset,n=!0;null!==t&&t.forEach((function(A){var t=e.counters[A.counter];t&&0!==A.increment&&(n=!1,t.length||t.push(1),t[Math.max(0,t.length-1)]+=A.increment)}));var s=[];return n&&r.forEach((function(A){var t=e.counters[A.counter];s.push(A.counter),t||(t=e.counters[A.counter]=[]),t.push(A.reset)})),s},A}(),Qo={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},Co={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Uo={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},bo={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},Fo=function(A,e,t,r,n,s){return A<e||A>t?Lo(A,n,s.length>0):r.integers.reduce((function(e,t,n){for(;A>=t;)A-=t,e+=r.values[n];return e}),"")+s},yo=function(A,e,t,r){var n="";do{t||A--,n=r(A)+n,A/=e}while(A*e>=e);return n},vo=function(A,e,t,r,n){var s=t-e+1;return(A<0?"-":"")+(yo(Math.abs(A),s,r,(function(A){return LA(Math.floor(A%s)+e)}))+n)},Eo=function(A,e,t){void 0===t&&(t=". ");var r=e.length;return yo(Math.abs(A),r,!1,(function(A){return e[Math.floor(A%r)]}))+t},Ho=function(A,e,t,r,n,s){if(A<-9999||A>9999)return Lo(A,4,n.length>0);var o=Math.abs(A),i=n;if(0===o)return e[0]+i;for(var a=0;o>0&&a<=4;a++){var l=o%10;0===l&&qn(s,1)&&""!==i?i=e[l]+i:l>1||1===l&&0===a||1===l&&1===a&&qn(s,2)||1===l&&1===a&&qn(s,4)&&A>100||1===l&&a>1&&qn(s,8)?i=e[l]+(a>0?t[a-1]:"")+i:1===l&&a>0&&(i=t[a-1]+i),o=Math.floor(o/10)}return(A<0?r:"")+i},Io="十百千萬",xo="拾佰仟萬",ko="マイナス",Mo="마이너스",Lo=function(A,e,t){var r=t?". ":"",n=t?"、":"",s=t?", ":"",o=t?" ":"";switch(e){case 0:return"•"+o;case 1:return"◦"+o;case 2:return"◾"+o;case 5:var i=vo(A,48,57,!0,r);return i.length<4?"0"+i:i;case 4:return Eo(A,"〇一二三四五六七八九",n);case 6:return Fo(A,1,3999,Qo,3,r).toLowerCase();case 7:return Fo(A,1,3999,Qo,3,r);case 8:return vo(A,945,969,!1,r);case 9:return vo(A,97,122,!1,r);case 10:return vo(A,65,90,!1,r);case 11:return vo(A,1632,1641,!0,r);case 12:case 49:return Fo(A,1,9999,Co,3,r);case 35:return Fo(A,1,9999,Co,3,r).toLowerCase();case 13:return vo(A,2534,2543,!0,r);case 14:case 30:return vo(A,6112,6121,!0,r);case 15:return Eo(A,"子丑寅卯辰巳午未申酉戌亥",n);case 16:return Eo(A,"甲乙丙丁戊己庚辛壬癸",n);case 17:case 48:return Ho(A,"零一二三四五六七八九",Io,"負",n,14);case 47:return Ho(A,"零壹貳參肆伍陸柒捌玖",xo,"負",n,15);case 42:return Ho(A,"零一二三四五六七八九",Io,"负",n,14);case 41:return Ho(A,"零壹贰叁肆伍陆柒捌玖",xo,"负",n,15);case 26:return Ho(A,"〇一二三四五六七八九","十百千万",ko,n,0);case 25:return Ho(A,"零壱弐参四伍六七八九","拾百千万",ko,n,7);case 31:return Ho(A,"영일이삼사오육칠팔구","십백천만",Mo,s,7);case 33:return Ho(A,"零一二三四五六七八九","十百千萬",Mo,s,0);case 32:return Ho(A,"零壹貳參四五六七八九","拾百千",Mo,s,7);case 18:return vo(A,2406,2415,!0,r);case 20:return Fo(A,1,19999,bo,3,r);case 21:return vo(A,2790,2799,!0,r);case 22:return vo(A,2662,2671,!0,r);case 22:return Fo(A,1,10999,Uo,3,r);case 23:return Eo(A,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return Eo(A,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return vo(A,3302,3311,!0,r);case 28:return Eo(A,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case 29:return Eo(A,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case 34:return vo(A,3792,3801,!0,r);case 37:return vo(A,6160,6169,!0,r);case 38:return vo(A,4160,4169,!0,r);case 39:return vo(A,2918,2927,!0,r);case 40:return vo(A,1776,1785,!0,r);case 43:return vo(A,3046,3055,!0,r);case 44:return vo(A,3174,3183,!0,r);case 45:return vo(A,3664,3673,!0,r);case 46:return vo(A,3872,3881,!0,r);default:return vo(A,48,57,!0,r)}},So="data-html2canvas-ignore",Ko=function(){function A(A,e,t){if(this.context=A,this.options=t,this.scrolledElements=[],this.referenceElement=e,this.counters=new wo,this.quoteDepth=0,!e.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(e.ownerDocument.documentElement,!1)}return A.prototype.toIFrame=function(A,e){var t=this,r=Ro(A,e);if(!r.contentWindow)return Promise.reject("Unable to find iframe window");var n=A.defaultView.pageXOffset,s=A.defaultView.pageYOffset,o=r.contentWindow,i=o.document,a=No(r).then((function(){return EA(t,0,void 0,(function(){var A,t;return HA(this,(function(n){switch(n.label){case 0:return this.scrolledElements.forEach(Jo),o&&(o.scrollTo(e.left,e.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||o.scrollY===e.top&&o.scrollX===e.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(o.scrollX-e.left,o.scrollY-e.top,0,0))),A=this.options.onclone,void 0===(t=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:i.fonts&&i.fonts.ready?[4,i.fonts.ready]:[3,2];case 1:n.sent(),n.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,qo(i)]:[3,4];case 3:n.sent(),n.label=4;case 4:return"function"==typeof A?[2,Promise.resolve().then((function(){return A(i,t)})).then((function(){return r}))]:[2,r]}}))}))}));return i.open(),i.write(Go(document.doctype)+"<html></html>"),Vo(this.referenceElement.ownerDocument,n,s),i.replaceChild(i.adoptNode(this.documentElement),i.documentElement),i.close(),a},A.prototype.createElementClone=function(A){if(es(A,2),lo(A))return this.createCanvasClone(A);if(co(A))return this.createVideoClone(A);if(mo(A))return this.createStyleClone(A);var e=A.cloneNode(!1);return uo(e)&&(uo(A)&&A.currentSrc&&A.currentSrc!==A.src&&(e.src=A.currentSrc,e.srcset=""),"lazy"===e.loading&&(e.loading="eager")),ho(e)?this.createCustomElementClone(e):e},A.prototype.createCustomElementClone=function(A){var e=document.createElement("html2canvascustomelement");return Po(A.style,e),e},A.prototype.createStyleClone=function(A){try{var e=A.sheet;if(e&&e.cssRules){var t=[].slice.call(e.cssRules,0).reduce((function(A,e){return e&&"string"==typeof e.cssText?A+e.cssText:A}),""),r=A.cloneNode(!1);return r.textContent=t,r}}catch(A){if(this.context.logger.error("Unable to access cssRules property",A),"SecurityError"!==A.name)throw A}return A.cloneNode(!1)},A.prototype.createCanvasClone=function(A){var e;if(this.options.inlineImages&&A.ownerDocument){var t=A.ownerDocument.createElement("img");try{return t.src=A.toDataURL(),t}catch(e){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",A)}}var r=A.cloneNode(!1);try{r.width=A.width,r.height=A.height;var n=A.getContext("2d"),s=r.getContext("2d");if(s)if(!this.options.allowTaint&&n)s.putImageData(n.getImageData(0,0,A.width,A.height),0,0);else{var o=null!==(e=A.getContext("webgl2"))&&void 0!==e?e:A.getContext("webgl");if(o){var i=o.getContextAttributes();!1===(null==i?void 0:i.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",A)}s.drawImage(A,0,0)}return r}catch(e){this.context.logger.info("Unable to clone canvas as it is tainted",A)}return r},A.prototype.createVideoClone=function(A){var e=A.ownerDocument.createElement("canvas");e.width=A.offsetWidth,e.height=A.offsetHeight;var t=e.getContext("2d");try{return t&&(t.drawImage(A,0,0,e.width,e.height),this.options.allowTaint||t.getImageData(0,0,e.width,e.height)),e}catch(e){this.context.logger.info("Unable to clone video as it is tainted",A)}var r=A.ownerDocument.createElement("canvas");return r.width=A.offsetWidth,r.height=A.offsetHeight,r},A.prototype.appendChildNode=function(A,e,t){eo(e)&&("SCRIPT"===e.tagName||e.hasAttribute(So)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(e))||this.options.copyStyles&&eo(e)&&mo(e)||A.appendChild(this.cloneNode(e,t))},A.prototype.cloneChildNodes=function(A,e,t){for(var r=this,n=A.shadowRoot?A.shadowRoot.firstChild:A.firstChild;n;n=n.nextSibling)if(eo(n)&&fo(n)&&"function"==typeof n.assignedNodes){var s=n.assignedNodes();s.length&&s.forEach((function(A){return r.appendChildNode(e,A,t)}))}else this.appendChildNode(e,n,t)},A.prototype.cloneNode=function(A,e){if(Ao(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);var t=A.ownerDocument.defaultView;if(t&&eo(A)&&(to(A)||ro(A))){var r=this.createElementClone(A);r.style.transitionProperty="none";var n=t.getComputedStyle(A),s=t.getComputedStyle(A,":before"),o=t.getComputedStyle(A,":after");this.referenceElement===A&&to(r)&&(this.clonedReferenceElement=r),ao(r)&&Wo(r);var i=this.counters.parse(new zn(this.context,n)),a=this.resolvePseudoContent(A,r,s,ls.BEFORE);ho(A)&&(e=!0),co(A)||this.cloneChildNodes(A,r,e),a&&r.insertBefore(a,r.firstChild);var l=this.resolvePseudoContent(A,r,o,ls.AFTER);return l&&r.appendChild(l),this.counters.pop(i),(n&&(this.options.copyStyles||ro(A))&&!Bo(A)||e)&&Po(n,r),0===A.scrollTop&&0===A.scrollLeft||this.scrolledElements.push([r,A.scrollLeft,A.scrollTop]),(go(A)||po(A))&&(go(r)||po(r))&&(r.value=A.value),r}return A.cloneNode(!1)},A.prototype.resolvePseudoContent=function(A,e,t,r){var n=this;if(t){var s=t.content,o=e.ownerDocument;if(o&&s&&"none"!==s&&"-moz-alt-content"!==s&&"none"!==t.display){this.counters.parse(new zn(this.context,t));var i=new Zn(this.context,t),a=o.createElement("html2canvaspseudoelement");Po(t,a),i.content.forEach((function(e){if(0===e.type)a.appendChild(o.createTextNode(e.value));else if(22===e.type){var t=o.createElement("img");t.src=e.value,t.style.opacity="1",a.appendChild(t)}else if(18===e.type){if("attr"===e.name){var r=e.values.filter(wt);r.length&&a.appendChild(o.createTextNode(A.getAttribute(r[0].value)||""))}else if("counter"===e.name){var s=e.values.filter(bt),l=s[0],c=s[1];if(l&&wt(l)){var d=n.counters.getCounterValue(l.value),u=c&&wt(c)?sn.parse(n.context,c.value):3;a.appendChild(o.createTextNode(Lo(d,u,!1)))}}else if("counters"===e.name){var B=e.values.filter(bt),m=(l=B[0],B[1]);if(c=B[2],l&&wt(l)){var g=n.counters.getCounterValues(l.value),p=c&&wt(c)?sn.parse(n.context,c.value):3,f=m&&0===m.type?m.value:"",h=g.map((function(A){return Lo(A,p,!1)})).join(f);a.appendChild(o.createTextNode(h))}}}else if(20===e.type)switch(e.value){case"open-quote":a.appendChild(o.createTextNode(Jn(i.quotes,n.quoteDepth++,!0)));break;case"close-quote":a.appendChild(o.createTextNode(Jn(i.quotes,--n.quoteDepth,!1)));break;default:a.appendChild(o.createTextNode(e.value))}})),a.className=Xo+" "+Yo;var l=r===ls.BEFORE?" "+Xo:" "+Yo;return ro(e)?e.className.baseValue+=l:e.className+=l,a}}},A.destroy=function(A){return!!A.parentNode&&(A.parentNode.removeChild(A),!0)},A}();(cs=ls||(ls={}))[cs.BEFORE=0]="BEFORE",cs[cs.AFTER=1]="AFTER";var Do,To,Ro=function(A,e){var t=A.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=e.width.toString(),t.height=e.height.toString(),t.scrolling="no",t.setAttribute(So,"true"),A.body.appendChild(t),t},Oo=function(A){return new Promise((function(e){A.complete?e():A.src?(A.onload=e,A.onerror=e):e()}))},qo=function(A){return Promise.all([].slice.call(A.images,0).map(Oo))},No=function(A){return new Promise((function(e,t){var r=A.contentWindow;if(!r)return t("No window assigned for iframe");var n=r.document;r.onload=A.onload=function(){r.onload=A.onload=null;var t=setInterval((function(){n.body.childNodes.length>0&&"complete"===n.readyState&&(clearInterval(t),e(A))}),50)}}))},_o=["all","d","content"],Po=function(A,e){for(var t=A.length-1;t>=0;t--){var r=A.item(t);-1===_o.indexOf(r)&&e.style.setProperty(r,A.getPropertyValue(r))}return e},Go=function(A){var e="";return A&&(e+="<!DOCTYPE ",A.name&&(e+=A.name),A.internalSubset&&(e+=A.internalSubset),A.publicId&&(e+='"'+A.publicId+'"'),A.systemId&&(e+='"'+A.systemId+'"'),e+=">"),e},Vo=function(A,e,t){A&&A.defaultView&&(e!==A.defaultView.pageXOffset||t!==A.defaultView.pageYOffset)&&A.defaultView.scrollTo(e,t)},Jo=function(A){var e=A[0],t=A[1],r=A[2];e.scrollLeft=t,e.scrollTop=r},Xo="___html2canvas___pseudoelement_before",Yo="___html2canvas___pseudoelement_after",jo='{\n content: "" !important;\n display: none !important;\n}',Wo=function(A){$o(A,"."+Xo+":before"+jo+"\n ."+Yo+":after"+jo)},$o=function(A,e){var t=A.ownerDocument;if(t){var r=t.createElement("style");r.textContent=e,A.appendChild(r)}},Zo=function(){function A(){}return A.getOrigin=function(e){var t=A._link;return t?(t.href=e,t.href=t.href,t.protocol+t.hostname+t.port):"about:blank"},A.isSameOrigin=function(e){return A.getOrigin(e)===A._origin},A.setContext=function(e){A._link=e.document.createElement("a"),A._origin=A.getOrigin(e.location.href)},A._origin="about:blank",A}(),zo=function(){function A(A,e){this.context=A,this._options=e,this._cache={}}return A.prototype.addImage=function(A){var e=Promise.resolve();return this.has(A)?e:oi(A)||ri(A)?((this._cache[A]=this.loadImage(A)).catch((function(){})),e):e},A.prototype.match=function(A){return this._cache[A]},A.prototype.loadImage=function(A){return EA(this,0,void 0,(function(){var e,t,r,n,s=this;return HA(this,(function(o){switch(o.label){case 0:return e=Zo.isSameOrigin(A),t=!ni(A)&&!0===this._options.useCORS&&Fs.SUPPORT_CORS_IMAGES&&!e,r=!ni(A)&&!e&&!oi(A)&&"string"==typeof this._options.proxy&&Fs.SUPPORT_CORS_XHR&&!t,e||!1!==this._options.allowTaint||ni(A)||oi(A)||r||t?(n=A,r?[4,this.proxy(n)]:[3,2]):[2];case 1:n=o.sent(),o.label=2;case 2:return this.context.logger.debug("Added image "+A.substring(0,256)),[4,new Promise((function(A,e){var r=new Image;r.onload=function(){return A(r)},r.onerror=e,(si(n)||t)&&(r.crossOrigin="anonymous"),r.src=n,!0===r.complete&&setTimeout((function(){return A(r)}),500),s._options.imageTimeout>0&&setTimeout((function(){return e("Timed out ("+s._options.imageTimeout+"ms) loading image")}),s._options.imageTimeout)}))];case 3:return[2,o.sent()]}}))}))},A.prototype.has=function(A){return void 0!==this._cache[A]},A.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},A.prototype.proxy=function(A){var e=this,t=this._options.proxy;if(!t)throw new Error("No proxy defined");var r=A.substring(0,256);return new Promise((function(n,s){var o=Fs.SUPPORT_RESPONSE_TYPE?"blob":"text",i=new XMLHttpRequest;i.onload=function(){if(200===i.status)if("text"===o)n(i.response);else{var A=new FileReader;A.addEventListener("load",(function(){return n(A.result)}),!1),A.addEventListener("error",(function(A){return s(A)}),!1),A.readAsDataURL(i.response)}else s("Failed to proxy resource "+r+" with status code "+i.status)},i.onerror=s;var a=t.indexOf("?")>-1?"&":"?";if(i.open("GET",""+t+a+"url="+encodeURIComponent(A)+"&responseType="+o),"text"!==o&&i instanceof XMLHttpRequest&&(i.responseType=o),e._options.imageTimeout){var l=e._options.imageTimeout;i.timeout=l,i.ontimeout=function(){return s("Timed out ("+l+"ms) proxying "+r)}}i.send()}))},A}(),Ai=/^data:image\/svg\+xml/i,ei=/^data:image\/.*;base64,/i,ti=/^data:image\/.*/i,ri=function(A){return Fs.SUPPORT_SVG_DRAWING||!ii(A)},ni=function(A){return ti.test(A)},si=function(A){return ei.test(A)},oi=function(A){return"blob"===A.substr(0,4)},ii=function(A){return"svg"===A.substr(-3).toLowerCase()||Ai.test(A)},ai=function(){function A(A,e){this.type=0,this.x=A,this.y=e}return A.prototype.add=function(e,t){return new A(this.x+e,this.y+t)},A}(),li=function(A,e,t){return new ai(A.x+(e.x-A.x)*t,A.y+(e.y-A.y)*t)},ci=function(){function A(A,e,t,r){this.type=1,this.start=A,this.startControl=e,this.endControl=t,this.end=r}return A.prototype.subdivide=function(e,t){var r=li(this.start,this.startControl,e),n=li(this.startControl,this.endControl,e),s=li(this.endControl,this.end,e),o=li(r,n,e),i=li(n,s,e),a=li(o,i,e);return t?new A(this.start,r,o,a):new A(a,i,s,this.end)},A.prototype.add=function(e,t){return new A(this.start.add(e,t),this.startControl.add(e,t),this.endControl.add(e,t),this.end.add(e,t))},A.prototype.reverse=function(){return new A(this.end,this.endControl,this.startControl,this.start)},A}(),di=function(A){return 1===A.type},ui=function(){return function(A){var e=A.styles,t=A.bounds,r=Mt(e.borderTopLeftRadius,t.width,t.height),n=r[0],s=r[1],o=Mt(e.borderTopRightRadius,t.width,t.height),i=o[0],a=o[1],l=Mt(e.borderBottomRightRadius,t.width,t.height),c=l[0],d=l[1],u=Mt(e.borderBottomLeftRadius,t.width,t.height),B=u[0],m=u[1],g=[];g.push((n+i)/t.width),g.push((B+c)/t.width),g.push((s+m)/t.height),g.push((a+d)/t.height);var p=Math.max.apply(Math,g);p>1&&(n/=p,s/=p,i/=p,a/=p,c/=p,d/=p,B/=p,m/=p);var f=t.width-i,h=t.height-d,w=t.width-c,Q=t.height-m,C=e.borderTopWidth,U=e.borderRightWidth,b=e.borderBottomWidth,F=e.borderLeftWidth,y=Lt(e.paddingTop,A.bounds.width),v=Lt(e.paddingRight,A.bounds.width),E=Lt(e.paddingBottom,A.bounds.width),H=Lt(e.paddingLeft,A.bounds.width);this.topLeftBorderDoubleOuterBox=n>0||s>0?Bi(t.left+F/3,t.top+C/3,n-F/3,s-C/3,Do.TOP_LEFT):new ai(t.left+F/3,t.top+C/3),this.topRightBorderDoubleOuterBox=n>0||s>0?Bi(t.left+f,t.top+C/3,i-U/3,a-C/3,Do.TOP_RIGHT):new ai(t.left+t.width-U/3,t.top+C/3),this.bottomRightBorderDoubleOuterBox=c>0||d>0?Bi(t.left+w,t.top+h,c-U/3,d-b/3,Do.BOTTOM_RIGHT):new ai(t.left+t.width-U/3,t.top+t.height-b/3),this.bottomLeftBorderDoubleOuterBox=B>0||m>0?Bi(t.left+F/3,t.top+Q,B-F/3,m-b/3,Do.BOTTOM_LEFT):new ai(t.left+F/3,t.top+t.height-b/3),this.topLeftBorderDoubleInnerBox=n>0||s>0?Bi(t.left+2*F/3,t.top+2*C/3,n-2*F/3,s-2*C/3,Do.TOP_LEFT):new ai(t.left+2*F/3,t.top+2*C/3),this.topRightBorderDoubleInnerBox=n>0||s>0?Bi(t.left+f,t.top+2*C/3,i-2*U/3,a-2*C/3,Do.TOP_RIGHT):new ai(t.left+t.width-2*U/3,t.top+2*C/3),this.bottomRightBorderDoubleInnerBox=c>0||d>0?Bi(t.left+w,t.top+h,c-2*U/3,d-2*b/3,Do.BOTTOM_RIGHT):new ai(t.left+t.width-2*U/3,t.top+t.height-2*b/3),this.bottomLeftBorderDoubleInnerBox=B>0||m>0?Bi(t.left+2*F/3,t.top+Q,B-2*F/3,m-2*b/3,Do.BOTTOM_LEFT):new ai(t.left+2*F/3,t.top+t.height-2*b/3),this.topLeftBorderStroke=n>0||s>0?Bi(t.left+F/2,t.top+C/2,n-F/2,s-C/2,Do.TOP_LEFT):new ai(t.left+F/2,t.top+C/2),this.topRightBorderStroke=n>0||s>0?Bi(t.left+f,t.top+C/2,i-U/2,a-C/2,Do.TOP_RIGHT):new ai(t.left+t.width-U/2,t.top+C/2),this.bottomRightBorderStroke=c>0||d>0?Bi(t.left+w,t.top+h,c-U/2,d-b/2,Do.BOTTOM_RIGHT):new ai(t.left+t.width-U/2,t.top+t.height-b/2),this.bottomLeftBorderStroke=B>0||m>0?Bi(t.left+F/2,t.top+Q,B-F/2,m-b/2,Do.BOTTOM_LEFT):new ai(t.left+F/2,t.top+t.height-b/2),this.topLeftBorderBox=n>0||s>0?Bi(t.left,t.top,n,s,Do.TOP_LEFT):new ai(t.left,t.top),this.topRightBorderBox=i>0||a>0?Bi(t.left+f,t.top,i,a,Do.TOP_RIGHT):new ai(t.left+t.width,t.top),this.bottomRightBorderBox=c>0||d>0?Bi(t.left+w,t.top+h,c,d,Do.BOTTOM_RIGHT):new ai(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=B>0||m>0?Bi(t.left,t.top+Q,B,m,Do.BOTTOM_LEFT):new ai(t.left,t.top+t.height),this.topLeftPaddingBox=n>0||s>0?Bi(t.left+F,t.top+C,Math.max(0,n-F),Math.max(0,s-C),Do.TOP_LEFT):new ai(t.left+F,t.top+C),this.topRightPaddingBox=i>0||a>0?Bi(t.left+Math.min(f,t.width-U),t.top+C,f>t.width+U?0:Math.max(0,i-U),Math.max(0,a-C),Do.TOP_RIGHT):new ai(t.left+t.width-U,t.top+C),this.bottomRightPaddingBox=c>0||d>0?Bi(t.left+Math.min(w,t.width-F),t.top+Math.min(h,t.height-b),Math.max(0,c-U),Math.max(0,d-b),Do.BOTTOM_RIGHT):new ai(t.left+t.width-U,t.top+t.height-b),this.bottomLeftPaddingBox=B>0||m>0?Bi(t.left+F,t.top+Math.min(Q,t.height-b),Math.max(0,B-F),Math.max(0,m-b),Do.BOTTOM_LEFT):new ai(t.left+F,t.top+t.height-b),this.topLeftContentBox=n>0||s>0?Bi(t.left+F+H,t.top+C+y,Math.max(0,n-(F+H)),Math.max(0,s-(C+y)),Do.TOP_LEFT):new ai(t.left+F+H,t.top+C+y),this.topRightContentBox=i>0||a>0?Bi(t.left+Math.min(f,t.width+F+H),t.top+C+y,f>t.width+F+H?0:i-F+H,a-(C+y),Do.TOP_RIGHT):new ai(t.left+t.width-(U+v),t.top+C+y),this.bottomRightContentBox=c>0||d>0?Bi(t.left+Math.min(w,t.width-(F+H)),t.top+Math.min(h,t.height+C+y),Math.max(0,c-(U+v)),d-(b+E),Do.BOTTOM_RIGHT):new ai(t.left+t.width-(U+v),t.top+t.height-(b+E)),this.bottomLeftContentBox=B>0||m>0?Bi(t.left+F+H,t.top+Q,Math.max(0,B-(F+H)),m-(b+E),Do.BOTTOM_LEFT):new ai(t.left+F+H,t.top+t.height-(b+E))}}();(To=Do||(Do={}))[To.TOP_LEFT=0]="TOP_LEFT",To[To.TOP_RIGHT=1]="TOP_RIGHT",To[To.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",To[To.BOTTOM_LEFT=3]="BOTTOM_LEFT";var Bi=function(A,e,t,r,n){var s=(Math.sqrt(2)-1)/3*4,o=t*s,i=r*s,a=A+t,l=e+r;switch(n){case Do.TOP_LEFT:return new ci(new ai(A,l),new ai(A,l-i),new ai(a-o,e),new ai(a,e));case Do.TOP_RIGHT:return new ci(new ai(A,e),new ai(A+o,e),new ai(a,l-i),new ai(a,l));case Do.BOTTOM_RIGHT:return new ci(new ai(a,e),new ai(a,e+i),new ai(A+o,l),new ai(A,l));case Do.BOTTOM_LEFT:default:return new ci(new ai(a,l),new ai(a-o,l),new ai(A,e+i),new ai(A,e))}},mi=function(A){return[A.topLeftBorderBox,A.topRightBorderBox,A.bottomRightBorderBox,A.bottomLeftBorderBox]},gi=function(A){return[A.topLeftPaddingBox,A.topRightPaddingBox,A.bottomRightPaddingBox,A.bottomLeftPaddingBox]},pi=function(){return function(A,e,t){this.offsetX=A,this.offsetY=e,this.matrix=t,this.type=0,this.target=6}}(),fi=function(){return function(A,e){this.path=A,this.target=e,this.type=1}}(),hi=function(){return function(A){this.opacity=A,this.type=2,this.target=6}}(),wi=function(A){return 1===A.type},Qi=function(A,e){return A.length===e.length&&A.some((function(A,t){return A===e[t]}))},Ci=function(){return function(A){this.element=A,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}}(),Ui=function(){function A(A,e){if(this.container=A,this.parent=e,this.effects=[],this.curves=new ui(this.container),this.container.styles.opacity<1&&this.effects.push(new hi(this.container.styles.opacity)),null!==this.container.styles.transform){var t=this.container.bounds.left+this.container.styles.transformOrigin[0].number,r=this.container.bounds.top+this.container.styles.transformOrigin[1].number,n=this.container.styles.transform;this.effects.push(new pi(t,r,n))}if(0!==this.container.styles.overflowX){var s=mi(this.curves),o=gi(this.curves);Qi(s,o)?this.effects.push(new fi(s,6)):(this.effects.push(new fi(s,2)),this.effects.push(new fi(o,4)))}}return A.prototype.getEffects=function(A){for(var e=-1===[2,3].indexOf(this.container.styles.position),t=this.parent,r=this.effects.slice(0);t;){var n=t.effects.filter((function(A){return!wi(A)}));if(e||0!==t.container.styles.position||!t.parent){if(r.unshift.apply(r,n),e=-1===[2,3].indexOf(t.container.styles.position),0!==t.container.styles.overflowX){var s=mi(t.curves),o=gi(t.curves);Qi(s,o)||r.unshift(new fi(o,6))}}else r.unshift.apply(r,n);t=t.parent}return r.filter((function(e){return qn(e.target,A)}))},A}(),bi=function(A,e,t,r){A.container.elements.forEach((function(n){var s=qn(n.flags,4),o=qn(n.flags,2),i=new Ui(n,A);qn(n.styles.display,2048)&&r.push(i);var a=qn(n.flags,8)?[]:r;if(s||o){var l=s||n.styles.isPositioned()?t:e,c=new Ci(i);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){var d=n.styles.zIndex.order;if(d<0){var u=0;l.negativeZIndex.some((function(A,e){return d>A.element.container.styles.zIndex.order?(u=e,!1):u>0})),l.negativeZIndex.splice(u,0,c)}else if(d>0){var B=0;l.positiveZIndex.some((function(A,e){return d>=A.element.container.styles.zIndex.order?(B=e+1,!1):B>0})),l.positiveZIndex.splice(B,0,c)}else l.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else n.styles.isFloating()?l.nonPositionedFloats.push(c):l.nonPositionedInlineLevel.push(c);bi(i,c,s?c:t,a)}else n.styles.isInlineLevel()?e.inlineLevel.push(i):e.nonInlineLevel.push(i),bi(i,e,t,a);qn(n.flags,8)&&Fi(n,a)}))},Fi=function(A,e){for(var t=A instanceof Rs?A.start:1,r=A instanceof Rs&&A.reversed,n=0;n<e.length;n++){var s=e[n];s.container instanceof Ts&&"number"==typeof s.container.value&&0!==s.container.value&&(t=s.container.value),s.listValue=Lo(t,s.container.styles.listStyleType,!0),t+=r?-1:1}},yi=function(A,e){switch(e){case 0:return Ei(A.topLeftBorderBox,A.topLeftPaddingBox,A.topRightBorderBox,A.topRightPaddingBox);case 1:return Ei(A.topRightBorderBox,A.topRightPaddingBox,A.bottomRightBorderBox,A.bottomRightPaddingBox);case 2:return Ei(A.bottomRightBorderBox,A.bottomRightPaddingBox,A.bottomLeftBorderBox,A.bottomLeftPaddingBox);default:return Ei(A.bottomLeftBorderBox,A.bottomLeftPaddingBox,A.topLeftBorderBox,A.topLeftPaddingBox)}},vi=function(A,e){var t=[];return di(A)?t.push(A.subdivide(.5,!1)):t.push(A),di(e)?t.push(e.subdivide(.5,!0)):t.push(e),t},Ei=function(A,e,t,r){var n=[];return di(A)?n.push(A.subdivide(.5,!1)):n.push(A),di(t)?n.push(t.subdivide(.5,!0)):n.push(t),di(r)?n.push(r.subdivide(.5,!0).reverse()):n.push(r),di(e)?n.push(e.subdivide(.5,!1).reverse()):n.push(e),n},Hi=function(A){var e=A.bounds,t=A.styles;return e.add(t.borderLeftWidth,t.borderTopWidth,-(t.borderRightWidth+t.borderLeftWidth),-(t.borderTopWidth+t.borderBottomWidth))},Ii=function(A){var e=A.styles,t=A.bounds,r=Lt(e.paddingLeft,t.width),n=Lt(e.paddingRight,t.width),s=Lt(e.paddingTop,t.width),o=Lt(e.paddingBottom,t.width);return t.add(r+e.borderLeftWidth,s+e.borderTopWidth,-(e.borderRightWidth+e.borderLeftWidth+r+n),-(e.borderTopWidth+e.borderBottomWidth+s+o))},xi=function(A,e,t){var r,n,s=(n=A,0===(r=Si(A.styles.backgroundOrigin,e))?n.bounds:2===r?Ii(n):Hi(n)),o=function(A,e){return 0===A?e.bounds:2===A?Ii(e):Hi(e)}(Si(A.styles.backgroundClip,e),A),i=Li(Si(A.styles.backgroundSize,e),t,s),a=i[0],l=i[1],c=Mt(Si(A.styles.backgroundPosition,e),s.width-a,s.height-l);return[Ki(Si(A.styles.backgroundRepeat,e),c,i,s,o),Math.round(s.left+c[0]),Math.round(s.top+c[1]),a,l]},ki=function(A){return wt(A)&&A.value===Xt.AUTO},Mi=function(A){return"number"==typeof A},Li=function(A,e,t){var r=e[0],n=e[1],s=e[2],o=A[0],i=A[1];if(!o)return[0,0];if(Et(o)&&i&&Et(i))return[Lt(o,t.width),Lt(i,t.height)];var a=Mi(s);if(wt(o)&&(o.value===Xt.CONTAIN||o.value===Xt.COVER))return Mi(s)?t.width/t.height<s!=(o.value===Xt.COVER)?[t.width,t.width/s]:[t.height*s,t.height]:[t.width,t.height];var l=Mi(r),c=Mi(n),d=l||c;if(ki(o)&&(!i||ki(i)))return l&&c?[r,n]:a||d?d&&a?[l?r:n*s,c?n:r/s]:[l?r:t.width,c?n:t.height]:[t.width,t.height];if(a){var u=0,B=0;return Et(o)?u=Lt(o,t.width):Et(i)&&(B=Lt(i,t.height)),ki(o)?u=B*s:i&&!ki(i)||(B=u/s),[u,B]}var m=null,g=null;if(Et(o)?m=Lt(o,t.width):i&&Et(i)&&(g=Lt(i,t.height)),null===m||i&&!ki(i)||(g=l&&c?m/r*n:t.height),null!==g&&ki(o)&&(m=l&&c?g/n*r:t.width),null!==m&&null!==g)return[m,g];throw new Error("Unable to calculate background-size for element")},Si=function(A,e){var t=A[e];return void 0===t?A[0]:t},Ki=function(A,e,t,r,n){var s=e[0],o=e[1],i=t[0],a=t[1];switch(A){case 2:return[new ai(Math.round(r.left),Math.round(r.top+o)),new ai(Math.round(r.left+r.width),Math.round(r.top+o)),new ai(Math.round(r.left+r.width),Math.round(a+r.top+o)),new ai(Math.round(r.left),Math.round(a+r.top+o))];case 3:return[new ai(Math.round(r.left+s),Math.round(r.top)),new ai(Math.round(r.left+s+i),Math.round(r.top)),new ai(Math.round(r.left+s+i),Math.round(r.height+r.top)),new ai(Math.round(r.left+s),Math.round(r.height+r.top))];case 1:return[new ai(Math.round(r.left+s),Math.round(r.top+o)),new ai(Math.round(r.left+s+i),Math.round(r.top+o)),new ai(Math.round(r.left+s+i),Math.round(r.top+o+a)),new ai(Math.round(r.left+s),Math.round(r.top+o+a))];default:return[new ai(Math.round(n.left),Math.round(n.top)),new ai(Math.round(n.left+n.width),Math.round(n.top)),new ai(Math.round(n.left+n.width),Math.round(n.height+n.top)),new ai(Math.round(n.left),Math.round(n.height+n.top))]}},Di="Hidden Text",Ti=function(){function A(A){this._data={},this._document=A}return A.prototype.parseMetrics=function(A,e){var t=this._document.createElement("div"),r=this._document.createElement("img"),n=this._document.createElement("span"),s=this._document.body;t.style.visibility="hidden",t.style.fontFamily=A,t.style.fontSize=e,t.style.margin="0",t.style.padding="0",t.style.whiteSpace="nowrap",s.appendChild(t),r.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",r.width=1,r.height=1,r.style.margin="0",r.style.padding="0",r.style.verticalAlign="baseline",n.style.fontFamily=A,n.style.fontSize=e,n.style.margin="0",n.style.padding="0",n.appendChild(this._document.createTextNode(Di)),t.appendChild(n),t.appendChild(r);var o=r.offsetTop-n.offsetTop+2;t.removeChild(n),t.appendChild(this._document.createTextNode(Di)),t.style.lineHeight="normal",r.style.verticalAlign="super";var i=r.offsetTop-t.offsetTop+2;return s.removeChild(t),{baseline:o,middle:i}},A.prototype.getMetrics=function(A,e){var t=A+" "+e;return void 0===this._data[t]&&(this._data[t]=this.parseMetrics(A,e)),this._data[t]},A}(),Ri=function(){return function(A,e){this.context=A,this.options=e}}(),Oi=function(A){function e(e,t){var r=A.call(this,e,t)||this;return r._activeEffects=[],r.canvas=t.canvas?t.canvas:document.createElement("canvas"),r.ctx=r.canvas.getContext("2d"),t.canvas||(r.canvas.width=Math.floor(t.width*t.scale),r.canvas.height=Math.floor(t.height*t.scale),r.canvas.style.width=t.width+"px",r.canvas.style.height=t.height+"px"),r.fontMetrics=new Ti(document),r.ctx.scale(r.options.scale,r.options.scale),r.ctx.translate(-t.x,-t.y),r.ctx.textBaseline="bottom",r._activeEffects=[],r.context.logger.debug("Canvas renderer initialized ("+t.width+"x"+t.height+") with scale "+t.scale),r}return yA(e,A),e.prototype.applyEffects=function(A){for(var e=this;this._activeEffects.length;)this.popEffect();A.forEach((function(A){return e.applyEffect(A)}))},e.prototype.applyEffect=function(A){this.ctx.save(),function(A){return 2===A.type}(A)&&(this.ctx.globalAlpha=A.opacity),function(A){return 0===A.type}(A)&&(this.ctx.translate(A.offsetX,A.offsetY),this.ctx.transform(A.matrix[0],A.matrix[1],A.matrix[2],A.matrix[3],A.matrix[4],A.matrix[5]),this.ctx.translate(-A.offsetX,-A.offsetY)),wi(A)&&(this.path(A.path),this.ctx.clip()),this._activeEffects.push(A)},e.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},e.prototype.renderStack=function(A){return EA(this,0,void 0,(function(){return HA(this,(function(e){switch(e.label){case 0:return A.element.container.styles.isVisible()?[4,this.renderStackContent(A)]:[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}}))}))},e.prototype.renderNode=function(A){return EA(this,0,void 0,(function(){return HA(this,(function(e){switch(e.label){case 0:return qn(A.container.flags,16),A.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(A)]:[3,3];case 1:return e.sent(),[4,this.renderNodeContent(A)];case 2:e.sent(),e.label=3;case 3:return[2]}}))}))},e.prototype.renderTextWithLetterSpacing=function(A,e,t){var r=this;0===e?this.ctx.fillText(A.text,A.bounds.left,A.bounds.top+t):Es(A.text).reduce((function(e,n){return r.ctx.fillText(n,e,A.bounds.top+t),e+r.ctx.measureText(n).width}),A.bounds.left)},e.prototype.createFontStyle=function(A){var e=A.fontVariant.filter((function(A){return"normal"===A||"small-caps"===A})).join(""),t=Gi(A.fontFamily).join(", "),r=ft(A.fontSize)?""+A.fontSize.number+A.fontSize.unit:A.fontSize.number+"px";return[[A.fontStyle,e,A.fontWeight,r,t].join(" "),t,r]},e.prototype.renderTextNode=function(A,e){return EA(this,0,void 0,(function(){var t,r,n,s,o,i,a,l,c=this;return HA(this,(function(d){return t=this.createFontStyle(e),r=t[0],n=t[1],s=t[2],this.ctx.font=r,this.ctx.direction=1===e.direction?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic",o=this.fontMetrics.getMetrics(n,s),i=o.baseline,a=o.middle,l=e.paintOrder,A.textBounds.forEach((function(A){l.forEach((function(t){switch(t){case 0:c.ctx.fillStyle=_t(e.color),c.renderTextWithLetterSpacing(A,e.letterSpacing,i);var r=e.textShadow;r.length&&A.text.trim().length&&(r.slice(0).reverse().forEach((function(t){c.ctx.shadowColor=_t(t.color),c.ctx.shadowOffsetX=t.offsetX.number*c.options.scale,c.ctx.shadowOffsetY=t.offsetY.number*c.options.scale,c.ctx.shadowBlur=t.blur.number,c.renderTextWithLetterSpacing(A,e.letterSpacing,i)})),c.ctx.shadowColor="",c.ctx.shadowOffsetX=0,c.ctx.shadowOffsetY=0,c.ctx.shadowBlur=0),e.textDecorationLine.length&&(c.ctx.fillStyle=_t(e.textDecorationColor||e.color),e.textDecorationLine.forEach((function(e){switch(e){case 1:c.ctx.fillRect(A.bounds.left,Math.round(A.bounds.top+i),A.bounds.width,1);break;case 2:c.ctx.fillRect(A.bounds.left,Math.round(A.bounds.top),A.bounds.width,1);break;case 3:c.ctx.fillRect(A.bounds.left,Math.ceil(A.bounds.top+a),A.bounds.width,1)}})));break;case 1:e.webkitTextStrokeWidth&&A.text.trim().length&&(c.ctx.strokeStyle=_t(e.webkitTextStrokeColor),c.ctx.lineWidth=e.webkitTextStrokeWidth,c.ctx.lineJoin=window.chrome?"miter":"round",c.ctx.strokeText(A.text,A.bounds.left,A.bounds.top+i)),c.ctx.strokeStyle="",c.ctx.lineWidth=0,c.ctx.lineJoin="miter"}}))})),[2]}))}))},e.prototype.renderReplacedElement=function(A,e,t){if(t&&A.intrinsicWidth>0&&A.intrinsicHeight>0){var r=Ii(A),n=gi(e);this.path(n),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,A.intrinsicWidth,A.intrinsicHeight,r.left,r.top,r.width,r.height),this.ctx.restore()}},e.prototype.renderNodeContent=function(A){return EA(this,0,void 0,(function(){var t,r,n,s,o,i,a,l,c,d,u,B,m,g,p,f,h,w;return HA(this,(function(Q){switch(Q.label){case 0:this.applyEffects(A.getEffects(4)),t=A.container,r=A.curves,n=t.styles,s=0,o=t.textNodes,Q.label=1;case 1:return s<o.length?(i=o[s],[4,this.renderTextNode(i,n)]):[3,4];case 2:Q.sent(),Q.label=3;case 3:return s++,[3,1];case 4:if(!(t instanceof Ss))return[3,8];Q.label=5;case 5:return Q.trys.push([5,7,,8]),[4,this.context.cache.match(t.src)];case 6:return p=Q.sent(),this.renderReplacedElement(t,r,p),[3,8];case 7:return Q.sent(),this.context.logger.error("Error loading image "+t.src),[3,8];case 8:if(t instanceof Ks&&this.renderReplacedElement(t,r,t.canvas),!(t instanceof Ds))return[3,12];Q.label=9;case 9:return Q.trys.push([9,11,,12]),[4,this.context.cache.match(t.svg)];case 10:return p=Q.sent(),this.renderReplacedElement(t,r,p),[3,12];case 11:return Q.sent(),this.context.logger.error("Error loading svg "+t.svg.substring(0,255)),[3,12];case 12:return t instanceof Xs&&t.tree?[4,new e(this.context,{scale:this.options.scale,backgroundColor:t.backgroundColor,x:0,y:0,width:t.width,height:t.height}).render(t.tree)]:[3,14];case 13:a=Q.sent(),t.width&&t.height&&this.ctx.drawImage(a,0,0,t.width,t.height,t.bounds.left,t.bounds.top,t.bounds.width,t.bounds.height),Q.label=14;case 14:if(t instanceof Gs&&(l=Math.min(t.bounds.width,t.bounds.height),t.type===Ns?t.checked&&(this.ctx.save(),this.path([new ai(t.bounds.left+.39363*l,t.bounds.top+.79*l),new ai(t.bounds.left+.16*l,t.bounds.top+.5549*l),new ai(t.bounds.left+.27347*l,t.bounds.top+.44071*l),new ai(t.bounds.left+.39694*l,t.bounds.top+.5649*l),new ai(t.bounds.left+.72983*l,t.bounds.top+.23*l),new ai(t.bounds.left+.84*l,t.bounds.top+.34085*l),new ai(t.bounds.left+.39363*l,t.bounds.top+.79*l)]),this.ctx.fillStyle=_t(Ps),this.ctx.fill(),this.ctx.restore()):t.type===_s&&t.checked&&(this.ctx.save(),this.ctx.beginPath(),this.ctx.arc(t.bounds.left+l/2,t.bounds.top+l/2,l/4,0,2*Math.PI,!0),this.ctx.fillStyle=_t(Ps),this.ctx.fill(),this.ctx.restore())),qi(t)&&t.value.length){switch(c=this.createFontStyle(n),h=c[0],d=c[1],u=this.fontMetrics.getMetrics(h,d).baseline,this.ctx.font=h,this.ctx.fillStyle=_t(n.color),this.ctx.textBaseline="alphabetic",this.ctx.textAlign=_i(t.styles.textAlign),w=Ii(t),B=0,t.styles.textAlign){case 1:B+=w.width/2;break;case 2:B+=w.width}m=w.add(B,0,0,-w.height/2+1),this.ctx.save(),this.path([new ai(w.left,w.top),new ai(w.left+w.width,w.top),new ai(w.left+w.width,w.top+w.height),new ai(w.left,w.top+w.height)]),this.ctx.clip(),this.renderTextWithLetterSpacing(new ys(t.value,m),n.letterSpacing,u),this.ctx.restore(),this.ctx.textBaseline="alphabetic",this.ctx.textAlign="left"}if(!qn(t.styles.display,2048))return[3,20];if(null===t.styles.listStyleImage)return[3,19];if(0!==(g=t.styles.listStyleImage).type)return[3,18];p=void 0,f=g.url,Q.label=15;case 15:return Q.trys.push([15,17,,18]),[4,this.context.cache.match(f)];case 16:return p=Q.sent(),this.ctx.drawImage(p,t.bounds.left-(p.width+10),t.bounds.top),[3,18];case 17:return Q.sent(),this.context.logger.error("Error loading list-style-image "+f),[3,18];case 18:return[3,20];case 19:A.listValue&&-1!==t.styles.listStyleType&&(h=this.createFontStyle(n)[0],this.ctx.font=h,this.ctx.fillStyle=_t(n.color),this.ctx.textBaseline="middle",this.ctx.textAlign="right",w=new xA(t.bounds.left,t.bounds.top+Lt(t.styles.paddingTop,t.bounds.width),t.bounds.width,tn(n.lineHeight,n.fontSize.number)/2+1),this.renderTextWithLetterSpacing(new ys(A.listValue,w),n.letterSpacing,tn(n.lineHeight,n.fontSize.number)/2+2),this.ctx.textBaseline="bottom",this.ctx.textAlign="left"),Q.label=20;case 20:return[2]}}))}))},e.prototype.renderStackContent=function(A){return EA(this,0,void 0,(function(){var e,t,r,n,s,o,i,a,l,c,d,u,B,m,g;return HA(this,(function(p){switch(p.label){case 0:return qn(A.element.container.flags,16),[4,this.renderNodeBackgroundAndBorders(A.element)];case 1:p.sent(),e=0,t=A.negativeZIndex,p.label=2;case 2:return e<t.length?(g=t[e],[4,this.renderStack(g)]):[3,5];case 3:p.sent(),p.label=4;case 4:return e++,[3,2];case 5:return[4,this.renderNodeContent(A.element)];case 6:p.sent(),r=0,n=A.nonInlineLevel,p.label=7;case 7:return r<n.length?(g=n[r],[4,this.renderNode(g)]):[3,10];case 8:p.sent(),p.label=9;case 9:return r++,[3,7];case 10:s=0,o=A.nonPositionedFloats,p.label=11;case 11:return s<o.length?(g=o[s],[4,this.renderStack(g)]):[3,14];case 12:p.sent(),p.label=13;case 13:return s++,[3,11];case 14:i=0,a=A.nonPositionedInlineLevel,p.label=15;case 15:return i<a.length?(g=a[i],[4,this.renderStack(g)]):[3,18];case 16:p.sent(),p.label=17;case 17:return i++,[3,15];case 18:l=0,c=A.inlineLevel,p.label=19;case 19:return l<c.length?(g=c[l],[4,this.renderNode(g)]):[3,22];case 20:p.sent(),p.label=21;case 21:return l++,[3,19];case 22:d=0,u=A.zeroOrAutoZIndexOrTransformedOrOpacity,p.label=23;case 23:return d<u.length?(g=u[d],[4,this.renderStack(g)]):[3,26];case 24:p.sent(),p.label=25;case 25:return d++,[3,23];case 26:B=0,m=A.positiveZIndex,p.label=27;case 27:return B<m.length?(g=m[B],[4,this.renderStack(g)]):[3,30];case 28:p.sent(),p.label=29;case 29:return B++,[3,27];case 30:return[2]}}))}))},e.prototype.mask=function(A){this.ctx.beginPath(),this.ctx.moveTo(0,0),this.ctx.lineTo(this.canvas.width,0),this.ctx.lineTo(this.canvas.width,this.canvas.height),this.ctx.lineTo(0,this.canvas.height),this.ctx.lineTo(0,0),this.formatPath(A.slice(0).reverse()),this.ctx.closePath()},e.prototype.path=function(A){this.ctx.beginPath(),this.formatPath(A),this.ctx.closePath()},e.prototype.formatPath=function(A){var e=this;A.forEach((function(A,t){var r=di(A)?A.start:A;0===t?e.ctx.moveTo(r.x,r.y):e.ctx.lineTo(r.x,r.y),di(A)&&e.ctx.bezierCurveTo(A.startControl.x,A.startControl.y,A.endControl.x,A.endControl.y,A.end.x,A.end.y)}))},e.prototype.renderRepeat=function(A,e,t,r){this.path(A),this.ctx.fillStyle=e,this.ctx.translate(t,r),this.ctx.fill(),this.ctx.translate(-t,-r)},e.prototype.resizeImage=function(A,e,t){var r;if(A.width===e&&A.height===t)return A;var n=(null!==(r=this.canvas.ownerDocument)&&void 0!==r?r:document).createElement("canvas");return n.width=Math.max(1,e),n.height=Math.max(1,t),n.getContext("2d").drawImage(A,0,0,A.width,A.height,0,0,e,t),n},e.prototype.renderBackgroundImage=function(A){return EA(this,0,void 0,(function(){var e,t,r,n,s,o;return HA(this,(function(i){switch(i.label){case 0:e=A.styles.backgroundImage.length-1,t=function(t){var n,s,o,i,a,l,c,d,u,B,m,g,p,f,h,w,Q,C,U,b,F,y,v,E,H,I,x,k,M,L,S;return HA(this,(function(K){switch(K.label){case 0:if(0!==t.type)return[3,5];n=void 0,s=t.url,K.label=1;case 1:return K.trys.push([1,3,,4]),[4,r.context.cache.match(s)];case 2:return n=K.sent(),[3,4];case 3:return K.sent(),r.context.logger.error("Error loading background-image "+s),[3,4];case 4:return n&&(o=xi(A,e,[n.width,n.height,n.width/n.height]),w=o[0],y=o[1],v=o[2],U=o[3],b=o[4],f=r.ctx.createPattern(r.resizeImage(n,U,b),"repeat"),r.renderRepeat(w,f,y,v)),[3,6];case 5:1===t.type?(i=xi(A,e,[null,null,null]),w=i[0],y=i[1],v=i[2],U=i[3],b=i[4],a=function(A,e,t){var r="number"==typeof A?A:function(A,e,t){var r=e/2,n=t/2,s=Lt(A[0],e)-r,o=n-Lt(A[1],t);return(Math.atan2(o,s)+2*Math.PI)%(2*Math.PI)}(A,e,t),n=Math.abs(e*Math.sin(r))+Math.abs(t*Math.cos(r)),s=e/2,o=t/2,i=n/2,a=Math.sin(r-Math.PI/2)*i,l=Math.cos(r-Math.PI/2)*i;return[n,s-l,s+l,o-a,o+a]}(t.angle,U,b),l=a[0],c=a[1],d=a[2],u=a[3],B=a[4],(m=document.createElement("canvas")).width=U,m.height=b,g=m.getContext("2d"),p=g.createLinearGradient(c,u,d,B),tr(t.stops,l).forEach((function(A){return p.addColorStop(A.stop,_t(A.color))})),g.fillStyle=p,g.fillRect(0,0,U,b),U>0&&b>0&&(f=r.ctx.createPattern(m,"repeat"),r.renderRepeat(w,f,y,v))):2===t.type&&(h=xi(A,e,[null,null,null]),w=h[0],Q=h[1],C=h[2],U=h[3],b=h[4],F=0===t.position.length?[xt]:t.position,y=Lt(F[0],U),v=Lt(F[F.length-1],b),E=function(A,e,t,r,n){var s=0,o=0;switch(A.size){case 0:0===A.shape?s=o=Math.min(Math.abs(e),Math.abs(e-r),Math.abs(t),Math.abs(t-n)):1===A.shape&&(s=Math.min(Math.abs(e),Math.abs(e-r)),o=Math.min(Math.abs(t),Math.abs(t-n)));break;case 2:if(0===A.shape)s=o=Math.min(rr(e,t),rr(e,t-n),rr(e-r,t),rr(e-r,t-n));else if(1===A.shape){var i=Math.min(Math.abs(t),Math.abs(t-n))/Math.min(Math.abs(e),Math.abs(e-r)),a=nr(r,n,e,t,!0),l=a[0],c=a[1];o=i*(s=rr(l-e,(c-t)/i))}break;case 1:0===A.shape?s=o=Math.max(Math.abs(e),Math.abs(e-r),Math.abs(t),Math.abs(t-n)):1===A.shape&&(s=Math.max(Math.abs(e),Math.abs(e-r)),o=Math.max(Math.abs(t),Math.abs(t-n)));break;case 3:if(0===A.shape)s=o=Math.max(rr(e,t),rr(e,t-n),rr(e-r,t),rr(e-r,t-n));else if(1===A.shape){i=Math.max(Math.abs(t),Math.abs(t-n))/Math.max(Math.abs(e),Math.abs(e-r));var d=nr(r,n,e,t,!1);l=d[0],c=d[1],o=i*(s=rr(l-e,(c-t)/i))}}return Array.isArray(A.size)&&(s=Lt(A.size[0],r),o=2===A.size.length?Lt(A.size[1],n):s),[s,o]}(t,y,v,U,b),H=E[0],I=E[1],H>0&&I>0&&(x=r.ctx.createRadialGradient(Q+y,C+v,0,Q+y,C+v,H),tr(t.stops,2*H).forEach((function(A){return x.addColorStop(A.stop,_t(A.color))})),r.path(w),r.ctx.fillStyle=x,H!==I?(k=A.bounds.left+.5*A.bounds.width,M=A.bounds.top+.5*A.bounds.height,S=1/(L=I/H),r.ctx.save(),r.ctx.translate(k,M),r.ctx.transform(1,0,0,L,0,0),r.ctx.translate(-k,-M),r.ctx.fillRect(Q,S*(C-M)+M,U,b*S),r.ctx.restore()):r.ctx.fill())),K.label=6;case 6:return e--,[2]}}))},r=this,n=0,s=A.styles.backgroundImage.slice(0).reverse(),i.label=1;case 1:return n<s.length?(o=s[n],[5,t(o)]):[3,4];case 2:i.sent(),i.label=3;case 3:return n++,[3,1];case 4:return[2]}}))}))},e.prototype.renderSolidBorder=function(A,e,t){return EA(this,0,void 0,(function(){return HA(this,(function(r){return this.path(yi(t,e)),this.ctx.fillStyle=_t(A),this.ctx.fill(),[2]}))}))},e.prototype.renderDoubleBorder=function(A,e,t,r){return EA(this,0,void 0,(function(){var n,s;return HA(this,(function(o){switch(o.label){case 0:return e<3?[4,this.renderSolidBorder(A,t,r)]:[3,2];case 1:return o.sent(),[2];case 2:return n=function(A,e){switch(e){case 0:return Ei(A.topLeftBorderBox,A.topLeftBorderDoubleOuterBox,A.topRightBorderBox,A.topRightBorderDoubleOuterBox);case 1:return Ei(A.topRightBorderBox,A.topRightBorderDoubleOuterBox,A.bottomRightBorderBox,A.bottomRightBorderDoubleOuterBox);case 2:return Ei(A.bottomRightBorderBox,A.bottomRightBorderDoubleOuterBox,A.bottomLeftBorderBox,A.bottomLeftBorderDoubleOuterBox);default:return Ei(A.bottomLeftBorderBox,A.bottomLeftBorderDoubleOuterBox,A.topLeftBorderBox,A.topLeftBorderDoubleOuterBox)}}(r,t),this.path(n),this.ctx.fillStyle=_t(A),this.ctx.fill(),s=function(A,e){switch(e){case 0:return Ei(A.topLeftBorderDoubleInnerBox,A.topLeftPaddingBox,A.topRightBorderDoubleInnerBox,A.topRightPaddingBox);case 1:return Ei(A.topRightBorderDoubleInnerBox,A.topRightPaddingBox,A.bottomRightBorderDoubleInnerBox,A.bottomRightPaddingBox);case 2:return Ei(A.bottomRightBorderDoubleInnerBox,A.bottomRightPaddingBox,A.bottomLeftBorderDoubleInnerBox,A.bottomLeftPaddingBox);default:return Ei(A.bottomLeftBorderDoubleInnerBox,A.bottomLeftPaddingBox,A.topLeftBorderDoubleInnerBox,A.topLeftPaddingBox)}}(r,t),this.path(s),this.ctx.fill(),[2]}}))}))},e.prototype.renderNodeBackgroundAndBorders=function(A){return EA(this,0,void 0,(function(){var e,t,r,n,s,o,i,a,l=this;return HA(this,(function(c){switch(c.label){case 0:return this.applyEffects(A.getEffects(2)),e=A.container.styles,t=!Nt(e.backgroundColor)||e.backgroundImage.length,r=[{style:e.borderTopStyle,color:e.borderTopColor,width:e.borderTopWidth},{style:e.borderRightStyle,color:e.borderRightColor,width:e.borderRightWidth},{style:e.borderBottomStyle,color:e.borderBottomColor,width:e.borderBottomWidth},{style:e.borderLeftStyle,color:e.borderLeftColor,width:e.borderLeftWidth}],n=Ni(Si(e.backgroundClip,0),A.curves),t||e.boxShadow.length?(this.ctx.save(),this.path(n),this.ctx.clip(),Nt(e.backgroundColor)||(this.ctx.fillStyle=_t(e.backgroundColor),this.ctx.fill()),[4,this.renderBackgroundImage(A.container)]):[3,2];case 1:c.sent(),this.ctx.restore(),e.boxShadow.slice(0).reverse().forEach((function(e){l.ctx.save();var t,r,n,s,o,i=mi(A.curves),a=e.inset?0:1e4,c=(t=i,r=-a+(e.inset?1:-1)*e.spread.number,n=(e.inset?1:-1)*e.spread.number,s=e.spread.number*(e.inset?-2:2),o=e.spread.number*(e.inset?-2:2),t.map((function(A,e){switch(e){case 0:return A.add(r,n);case 1:return A.add(r+s,n);case 2:return A.add(r+s,n+o);case 3:return A.add(r,n+o)}return A})));e.inset?(l.path(i),l.ctx.clip(),l.mask(c)):(l.mask(i),l.ctx.clip(),l.path(c)),l.ctx.shadowOffsetX=e.offsetX.number+a,l.ctx.shadowOffsetY=e.offsetY.number,l.ctx.shadowColor=_t(e.color),l.ctx.shadowBlur=e.blur.number,l.ctx.fillStyle=e.inset?_t(e.color):"rgba(0,0,0,1)",l.ctx.fill(),l.ctx.restore()})),c.label=2;case 2:s=0,o=0,i=r,c.label=3;case 3:return o<i.length?0!==(a=i[o]).style&&!Nt(a.color)&&a.width>0?2!==a.style?[3,5]:[4,this.renderDashedDottedBorder(a.color,a.width,s,A.curves,2)]:[3,11]:[3,13];case 4:return c.sent(),[3,11];case 5:return 3!==a.style?[3,7]:[4,this.renderDashedDottedBorder(a.color,a.width,s,A.curves,3)];case 6:return c.sent(),[3,11];case 7:return 4!==a.style?[3,9]:[4,this.renderDoubleBorder(a.color,a.width,s,A.curves)];case 8:return c.sent(),[3,11];case 9:return[4,this.renderSolidBorder(a.color,s,A.curves)];case 10:c.sent(),c.label=11;case 11:s++,c.label=12;case 12:return o++,[3,3];case 13:return[2]}}))}))},e.prototype.renderDashedDottedBorder=function(A,e,t,r,n){return EA(this,0,void 0,(function(){var s,o,i,a,l,c,d,u,B,m,g,p,f,h,w,Q;return HA(this,(function(C){return this.ctx.save(),s=function(A,e){switch(e){case 0:return vi(A.topLeftBorderStroke,A.topRightBorderStroke);case 1:return vi(A.topRightBorderStroke,A.bottomRightBorderStroke);case 2:return vi(A.bottomRightBorderStroke,A.bottomLeftBorderStroke);default:return vi(A.bottomLeftBorderStroke,A.topLeftBorderStroke)}}(r,t),o=yi(r,t),2===n&&(this.path(o),this.ctx.clip()),di(o[0])?(i=o[0].start.x,a=o[0].start.y):(i=o[0].x,a=o[0].y),di(o[1])?(l=o[1].end.x,c=o[1].end.y):(l=o[1].x,c=o[1].y),d=0===t||2===t?Math.abs(i-l):Math.abs(a-c),this.ctx.beginPath(),3===n?this.formatPath(s):this.formatPath(o.slice(0,2)),u=e<3?3*e:2*e,B=e<3?2*e:e,3===n&&(u=e,B=e),m=!0,d<=2*u?m=!1:d<=2*u+B?(u*=g=d/(2*u+B),B*=g):(p=Math.floor((d+B)/(u+B)),f=(d-p*u)/(p-1),B=(h=(d-(p+1)*u)/p)<=0||Math.abs(B-f)<Math.abs(B-h)?f:h),m&&(3===n?this.ctx.setLineDash([0,u+B]):this.ctx.setLineDash([u,B])),3===n?(this.ctx.lineCap="round",this.ctx.lineWidth=e):this.ctx.lineWidth=2*e+1.1,this.ctx.strokeStyle=_t(A),this.ctx.stroke(),this.ctx.setLineDash([]),2===n&&(di(o[0])&&(w=o[3],Q=o[0],this.ctx.beginPath(),this.formatPath([new ai(w.end.x,w.end.y),new ai(Q.start.x,Q.start.y)]),this.ctx.stroke()),di(o[1])&&(w=o[1],Q=o[2],this.ctx.beginPath(),this.formatPath([new ai(w.end.x,w.end.y),new ai(Q.start.x,Q.start.y)]),this.ctx.stroke())),this.ctx.restore(),[2]}))}))},e.prototype.render=function(A){return EA(this,0,void 0,(function(){var e;return HA(this,(function(t){switch(t.label){case 0:return this.options.backgroundColor&&(this.ctx.fillStyle=_t(this.options.backgroundColor),this.ctx.fillRect(this.options.x,this.options.y,this.options.width,this.options.height)),r=new Ui(A,null),n=new Ci(r),bi(r,n,n,s=[]),Fi(r.container,s),e=n,[4,this.renderStack(e)];case 1:return t.sent(),this.applyEffects([]),[2,this.canvas]}var r,n,s}))}))},e}(Ri),qi=function(A){return A instanceof Js||A instanceof Vs||A instanceof Gs&&A.type!==_s&&A.type!==Ns},Ni=function(A,e){switch(A){case 0:return mi(e);case 2:return function(A){return[A.topLeftContentBox,A.topRightContentBox,A.bottomRightContentBox,A.bottomLeftContentBox]}(e);default:return gi(e)}},_i=function(A){switch(A){case 1:return"center";case 2:return"right";default:return"left"}},Pi=["-apple-system","system-ui"],Gi=function(A){return/iPhone OS 15_(0|1)/.test(window.navigator.userAgent)?A.filter((function(A){return-1===Pi.indexOf(A)})):A},Vi=function(A){function e(e,t){var r=A.call(this,e,t)||this;return r.canvas=t.canvas?t.canvas:document.createElement("canvas"),r.ctx=r.canvas.getContext("2d"),r.options=t,r.canvas.width=Math.floor(t.width*t.scale),r.canvas.height=Math.floor(t.height*t.scale),r.canvas.style.width=t.width+"px",r.canvas.style.height=t.height+"px",r.ctx.scale(r.options.scale,r.options.scale),r.ctx.translate(-t.x,-t.y),r.context.logger.debug("EXPERIMENTAL ForeignObject renderer initialized ("+t.width+"x"+t.height+" at "+t.x+","+t.y+") with scale "+t.scale),r}return yA(e,A),e.prototype.render=function(A){return EA(this,0,void 0,(function(){var e,t;return HA(this,(function(r){switch(r.label){case 0:return e=Us(this.options.width*this.options.scale,this.options.height*this.options.scale,this.options.scale,this.options.scale,A),[4,Ji(e)];case 1:return t=r.sent(),this.options.backgroundColor&&(this.ctx.fillStyle=_t(this.options.backgroundColor),this.ctx.fillRect(0,0,this.options.width*this.options.scale,this.options.height*this.options.scale)),this.ctx.drawImage(t,-this.options.x*this.options.scale,-this.options.y*this.options.scale),[2,this.canvas]}}))}))},e}(Ri),Ji=function(A){return new Promise((function(e,t){var r=new Image;r.onload=function(){e(r)},r.onerror=t,r.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(A))}))},Xi=function(){function A(A){var e=A.id,t=A.enabled;this.id=e,this.enabled=t,this.start=Date.now()}return A.prototype.debug=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&("undefined"!=typeof window&&window.console&&"function"==typeof console.debug?console.debug.apply(console,IA([this.id,this.getTime()+"ms"],A)):this.info.apply(this,A))},A.prototype.getTime=function(){return Date.now()-this.start},A.prototype.info=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&"undefined"!=typeof window&&window.console&&"function"==typeof console.info&&console.info.apply(console,IA([this.id,this.getTime()+"ms"],A))},A.prototype.warn=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&("undefined"!=typeof window&&window.console&&"function"==typeof console.warn?console.warn.apply(console,IA([this.id,this.getTime()+"ms"],A)):this.info.apply(this,A))},A.prototype.error=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&("undefined"!=typeof window&&window.console&&"function"==typeof console.error?console.error.apply(console,IA([this.id,this.getTime()+"ms"],A)):this.info.apply(this,A))},A.instances={},A}(),Yi=function(){function A(e,t){var r;this.windowBounds=t,this.instanceName="#"+A.instanceCount++,this.logger=new Xi({id:this.instanceName,enabled:e.logging}),this.cache=null!==(r=e.cache)&&void 0!==r?r:new zo(this,e)}return A.instanceCount=1,A}();"undefined"!=typeof window&&Zo.setContext(window);var ji=function(A,e,t){var r=e.ownerDocument,n=r.documentElement?$t(A,getComputedStyle(r.documentElement).backgroundColor):Zt.TRANSPARENT,s=r.body?$t(A,getComputedStyle(r.body).backgroundColor):Zt.TRANSPARENT,o="string"==typeof t?$t(A,t):null===t?Zt.TRANSPARENT:4294967295;return e===r.documentElement?Nt(n)?Nt(s)?o:s:n:o};const Wi={async createBulkMocks(A){const e=O.state.token;if(!e)return j("Token not found","error"),!1;const t={apis:A};try{const A=await fetch(`${F}${y}/httpRequestBulkMock/bulk_mock`,{method:"POST",headers:{"Content-Type":"application/json",mockforme:e},body:JSON.stringify(t)}),r=await A.json();return A.ok?(j(r.message||"Mocks created successfully"),!0):(j(r.message||"Mocks creation failed","error"),console.error("Mocks creation failed",r),!1)}catch(A){return j("Error during mocks creation","error"),console.error("Error during mocks creation:",A),!1}},async improveDesign(A){const e=O.state.token;if(!e)return j("Token not found","error"),null;try{const t=await fetch(`${F}${y}/ai/suggest`,{method:"POST",headers:{"Content-Type":"application/json",mockforme:e},body:JSON.stringify(A)});return await t.json()}catch(A){return j("Error sending request","error"),console.error("Error sending design improvement request:",A),null}},async getSignedUrl(A,e){const t=O.state.token;if(!t)return j("Token not found","error"),null;try{const r=await fetch(`${F}${y}/aws/get-signed-url`,{method:"POST",headers:{"Content-Type":"application/json",mockforme:t},body:JSON.stringify({fileName:A,contentType:e})});if(r.ok)return await r.json();{const A=await r.json();return console.error("Failed to get signed URL",A),null}}catch(A){return console.error("Error getting signed URL:",A),null}},async uploadToS3(A,e){try{return(await fetch(A,{method:"PUT",body:e,headers:{"Content-Type":e.type||"application/octet-stream"}})).ok}catch(A){return console.error("Error uploading to S3:",A),!1}}};function $i(){const A=window;return A.__NEXT_DATA__||document.querySelector("#__next")?"Next.js":A.__NUXT__?"Nuxt.js":A.React||A.__REACT_DEVTOOLS_GLOBAL_HOOK__||document.querySelector("[data-reactroot], [data-react-helmet]")||Zi(document.body)?"React":A.Vue||A.__VUE__||document.querySelector("[data-v-]")||zi(document.body)?"Vue":A.ng||document.querySelector("[ng-version], [ng-app], [ng-controller], [_ngcontent-], [_nghost-]")?"Angular":document.querySelector('[class*="svelte-"]')?"Svelte":Array.from(document.styleSheets).some((A=>{try{return Array.from(A.cssRules||[]).slice(0,50).some((A=>A.cssText.includes("--tw-")))}catch(A){return!1}}))?"Tailwind CSS (Vanilla)":"Vanilla"}function Zi(A){return!!A&&(!!Object.keys(A).some((A=>A.startsWith("__reactFiber$")||A.startsWith("__reactProps$")))||Array.from(A.children).slice(0,10).some((A=>Zi(A))))}function zi(A){return!!A&&(!(!A.__vue__&&!A.__vue_app__)||Array.from(A.children).slice(0,10).some((A=>zi(A))))}const Aa=new class{constructor(){this.overlay=null,this.selection=null,this.startX=0,this.startY=0,this.isSelecting=!1,this.handleMouseDown=this.handleMouseDown.bind(this),this.handleMouseMove=this.handleMouseMove.bind(this),this.handleMouseUp=this.handleMouseUp.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}start(){this.overlay||(Y.toggleWidget(),this.createOverlay(),document.addEventListener("mousedown",this.handleMouseDown),document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("mouseup",this.handleMouseUp),document.addEventListener("keydown",this.handleKeyDown),j("Select an area to improve design (Esc to cancel)"))}createOverlay(){this.overlay=document.createElement("div"),this.overlay.id="mfm-snip-overlay",this.selection=document.createElement("div"),this.selection.id="mfm-snip-selection",this.overlay.appendChild(this.selection),document.body.appendChild(this.overlay)}handleMouseDown(A){this.overlay&&(this.startX=A.clientX,this.startY=A.clientY,this.isSelecting=!0,this.selection&&(this.selection.style.left=`${this.startX}px`,this.selection.style.top=`${this.startY}px`,this.selection.style.width="0px",this.selection.style.height="0px",this.selection.style.display="block"))}handleMouseMove(A){if(!this.isSelecting||!this.selection)return;const e=A.clientX,t=A.clientY,r=Math.min(this.startX,e),n=Math.min(this.startY,t),s=Math.abs(this.startX-e),o=Math.abs(this.startY-t);this.selection.style.left=`${r}px`,this.selection.style.top=`${n}px`,this.selection.style.width=`${s}px`,this.selection.style.height=`${o}px`}async handleMouseUp(A){if(!this.isSelecting)return;if(this.isSelecting=!1,!this.selection)return;const e=this.selection.getBoundingClientRect();e.width<10||e.height<10?this.selection.style.display="none":await this.capture(e)}handleKeyDown(A){"Escape"===A.key&&this.stop()}async capture(A){if(this.overlay){this.overlay.style.display="none";try{j("Capturing area...");const r=(await(e=document.body,t={x:A.left+window.scrollX,y:A.top+window.scrollY,width:A.width,height:A.height,useCORS:!0,logging:!1},void 0===t&&(t={}),function(A,e){return EA(void 0,0,void 0,(function(){var t,r,n,s,o,i,a,l,c,d,u,B,m,g,p,f,h,w,Q,C,U,b,F,y,v,E,H,I,x,k,M,L,S,K,D,T,R,O;return HA(this,(function(q){switch(q.label){case 0:if(!A||"object"!=typeof A)return[2,Promise.reject("Invalid element provided as first argument")];if(!(t=A.ownerDocument))throw new Error("Element is not attached to a Document");if(!(r=t.defaultView))throw new Error("Document is not attached to a Window");return n={allowTaint:null!==(b=e.allowTaint)&&void 0!==b&&b,imageTimeout:null!==(F=e.imageTimeout)&&void 0!==F?F:15e3,proxy:e.proxy,useCORS:null!==(y=e.useCORS)&&void 0!==y&&y},s=vA({logging:null===(v=e.logging)||void 0===v||v,cache:e.cache},n),o={windowWidth:null!==(E=e.windowWidth)&&void 0!==E?E:r.innerWidth,windowHeight:null!==(H=e.windowHeight)&&void 0!==H?H:r.innerHeight,scrollX:null!==(I=e.scrollX)&&void 0!==I?I:r.pageXOffset,scrollY:null!==(x=e.scrollY)&&void 0!==x?x:r.pageYOffset},i=new xA(o.scrollX,o.scrollY,o.windowWidth,o.windowHeight),a=new Yi(s,i),l=null!==(k=e.foreignObjectRendering)&&void 0!==k&&k,c={allowTaint:null!==(M=e.allowTaint)&&void 0!==M&&M,onclone:e.onclone,ignoreElements:e.ignoreElements,inlineImages:l,copyStyles:l},a.logger.debug("Starting document clone with size "+i.width+"x"+i.height+" scrolled to "+-i.left+","+-i.top),d=new Ko(a,A,c),(u=d.clonedReferenceElement)?[4,d.toIFrame(t,i)]:[2,Promise.reject("Unable to find element in cloned iframe")];case 1:return B=q.sent(),m=ao(u)||"HTML"===u.tagName?function(A){var e=A.body,t=A.documentElement;if(!e||!t)throw new Error("Unable to get document size");var r=Math.max(Math.max(e.scrollWidth,t.scrollWidth),Math.max(e.offsetWidth,t.offsetWidth),Math.max(e.clientWidth,t.clientWidth)),n=Math.max(Math.max(e.scrollHeight,t.scrollHeight),Math.max(e.offsetHeight,t.offsetHeight),Math.max(e.clientHeight,t.clientHeight));return new xA(0,0,r,n)}(u.ownerDocument):kA(a,u),g=m.width,p=m.height,f=m.left,h=m.top,w=ji(a,u,e.backgroundColor),Q={canvas:e.canvas,backgroundColor:w,scale:null!==(S=null!==(L=e.scale)&&void 0!==L?L:r.devicePixelRatio)&&void 0!==S?S:1,x:(null!==(K=e.x)&&void 0!==K?K:0)+f,y:(null!==(D=e.y)&&void 0!==D?D:0)+h,width:null!==(T=e.width)&&void 0!==T?T:Math.ceil(g),height:null!==(R=e.height)&&void 0!==R?R:Math.ceil(p)},l?(a.logger.debug("Document cloned, using foreign object rendering"),[4,new Vi(a,Q).render(u)]):[3,3];case 2:return C=q.sent(),[3,5];case 3:return a.logger.debug("Document cloned, element located at "+f+","+h+" with size "+g+"x"+p+" using computed rendering"),a.logger.debug("Starting DOM parsing"),U=$s(a,u),w===U.styles.backgroundColor&&(U.styles.backgroundColor=Zt.TRANSPARENT),a.logger.debug("Starting renderer for element at "+Q.x+","+Q.y+" with size "+Q.width+"x"+Q.height),[4,new Oi(a,Q).render(U)];case 4:C=q.sent(),q.label=5;case 5:return(null===(O=e.removeContainer)||void 0===O||O)&&(Ko.destroy(B)||a.logger.error("Cannot detach cloned iframe as it is not in the DOM anymore")),a.logger.debug("Finished rendering"),[2,C]}}))}))}(e,t))).toDataURL("image/png"),n=(this.getHtmlAtRect(A),$i()),s=function(A,e,t){const r=document.createElement("div");return r.id="mfm-snip-modal",(()=>{r.innerHTML=`\n <div class="mfm-modal-overlay">\n <div class="mfm-modal-container">\n <div class="mfm-modal-header">\n <h3>Improve Design</h3>\n <button id="mfm-modal-close">×</button>\n </div>\n <div class="mfm-modal-body">\n <div class="mfm-screenshot-preview">\n <img src="${A}" alt="Screenshot preview">\n </div>\n <div class="mfm-context-input">\n <label for="mfm-context-text">Your requirements (optional):</label>\n <textarea id="mfm-context-text" maxlength="200" placeholder="e.g. Make this button more vibrant or change the layout to grid..."></textarea>\n <div class="mfm-char-count">0/200</div>\n </div>\n </div>\n <div class="mfm-modal-footer">\n <button id="mfm-modal-cancel" class="mfm-btn-secondary">Cancel</button>\n <button id="mfm-modal-submit" class="mfm-btn-primary">Submit to AI</button>\n </div>\n </div>\n </div>\n `;const n=r.querySelector("#mfm-context-text"),s=r.querySelector(".mfm-char-count"),o=r.querySelector("#mfm-modal-submit"),i=r.querySelector("#mfm-modal-cancel"),a=r.querySelector("#mfm-modal-close");n.oninput=()=>{const A=n.value.length;s.textContent=`${A}/200`,s.style.color=A>200?"var(--mfm-error)":"var(--mfm-text-dim)"},o.onclick=()=>{e(n.value)};const l=()=>{t(),r.remove()};i.onclick=l,a.onclick=l})(),{element:r,setLoading:A=>{const e=r.querySelector(".mfm-modal-container");e&&A&&(e.innerHTML='\n <div class="mfm-modal-header">\n <h3>AI is working...</h3>\n </div>\n <div class="mfm-modal-body mfm-flex-center" style="min-height: 200px;">\n <div class="mfm-loader"></div>\n <p style="margin-top: 16px; color: var(--mfm-text-dim);">Analyzing your design and generating improvements...</p>\n </div>\n ')},showResults:(A,e)=>{const n=r.querySelector(".mfm-modal-container");if(!n)return;let s={};try{s="string"==typeof A.result.content?JSON.parse(A.result.content):A.result.content}catch(A){console.error("Failed to parse AI content",A),s={summary:"Error parsing results",analysis:{weaknesses:[]},code:""}}const{summary:o,analysis:i,code:a}=s,l=(null==i?void 0:i.weaknesses)||[];n.innerHTML=`\n <div class="mfm-modal-header">\n <h3>AI Suggestions</h3>\n <button id="mfm-modal-close">×</button>\n </div>\n <div class="mfm-modal-body mfm-results-body">\n <div class="mfm-result-section">\n <h4>Summary</h4>\n <p>${o}</p>\n </div>\n \n ${l.length>0?`\n <div class="mfm-result-section">\n <h4>Analysis</h4>\n <ul class="mfm-weakness-list">\n ${l.map((A=>`<li>${A}</li>`)).join("")}\n </ul>\n </div>\n `:""}\n\n <div class="mfm-result-section">\n <h4>Proposed Improvement</h4>\n <div class="mfm-code-preview">\n <pre><code>${a.replace(/</g,"<").replace(/>/g,">")}</code></pre>\n </div>\n </div>\n </div>\n <div class="mfm-modal-footer">\n <button id="mfm-modal-cancel" class="mfm-btn-secondary">Discard</button>\n <button id="mfm-modal-apply" class="mfm-btn-primary">Apply Changes</button>\n </div>\n `;const c=r.querySelector("#mfm-modal-apply"),d=r.querySelector("#mfm-modal-cancel"),u=r.querySelector("#mfm-modal-close");c.onclick=()=>{e(a),r.remove()};const B=()=>{r.remove(),t()};d.onclick=B,u.onclick=B},showError:A=>{const e=r.querySelector(".mfm-modal-container");if(!e)return;e.innerHTML=`\n <div class="mfm-modal-header">\n <h3>Error</h3>\n <button id="mfm-modal-close">×</button>\n </div>\n <div class="mfm-modal-body mfm-flex-center" style="min-height: 150px;">\n <p style="color: var(--mfm-error);">${A}</p>\n </div>\n <div class="mfm-modal-footer">\n <button id="mfm-modal-close-btn" class="mfm-btn-secondary">Close</button>\n </div>\n `;const n=()=>{r.remove(),t()};r.querySelector("#mfm-modal-close").onclick=n,r.querySelector("#mfm-modal-close-btn").onclick=n}}}(r,(async A=>{s.setLoading(!0);try{const e=`snip_${Date.now()}.png`,t="image/png",a=await Wi.getSignedUrl(e,t);if(!a||0==(null==a?void 0:a.status)||!a.result)return void s.showError("Failed to get upload authorization");const{result:l}=a,c=this.dataURLToBlob(r);if(!await Wi.uploadToS3(l,c))return void s.showError("Failed to upload image");const d=await Wi.improveDesign({framework:n,html:o,imageUrl:"",prompt:A});d&&1===d.status?s.showResults(d,(A=>{i&&(i.outerHTML=A,j("Design updated successfully!"))})):s.showError((null==d?void 0:d.message)||"AI analysis failed")}catch(A){console.error("Submission failed",A),s.showError("An unexpected error occurred")}}),(()=>{this.stop()})),{html:o,element:i}=this.getHtmlAtRect(A);document.body.appendChild(s.element)}catch(A){console.error("Capture failed",A),j("Capture failed","error"),this.stop()}var e,t}}dataURLToBlob(A){const e=A.split(","),t=e[0].match(/:(.*?);/)[1],r=atob(e[1]);let n=r.length;const s=new Uint8Array(n);for(;n--;)s[n]=r.charCodeAt(n);return new Blob([s],{type:t})}getHtmlAtRect(A){const e=A.left+A.width/2,t=A.top+A.height/2,r=document.elementFromPoint(e,t);if(r){let e=r;for(;e.parentElement&&e.parentElement.getBoundingClientRect().width<=1.5*A.width&&e.parentElement.getBoundingClientRect().height<=1.5*A.height;)e=e.parentElement;return{html:e.outerHTML,element:e}}return{html:"No element found at selection",element:null}}stop(){this.overlay&&(document.body.removeChild(this.overlay),this.overlay=null,this.selection=null),document.removeEventListener("mousedown",this.handleMouseDown),document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),document.removeEventListener("keydown",this.handleKeyDown),Y.toggleWidget()}};function ea(A){try{const e=new URL(A);return{path:e.pathname+(e.search||""),domain:e.hostname}}catch(e){return{path:A,domain:""}}}class ta{constructor(A){this.parent=A,this.element=document.createElement("div"),this.element.className="mfm-apis-list",this.init()}init(){this.parent.appendChild(this.element)}render(A){(null==A?void 0:A.length)?this.element.innerHTML=A.map((A=>{const{path:e,domain:t}=ea(A.url);return`\n <div class="mfm-request-item" data-id="${A.url}" data-type="api">\n <div class="mfm-request-header">\n <div class="mfm-flex-row" style="width: 100%;">\n <span class="mfm-method ${(A.method||"").toLowerCase()}">${A.method||"REQ"}</span>\n <div class="mfm-url-container">\n <div class="mfm-url-path" title="${A.url}">${e}</div>\n <div class="mfm-url-domain" style="max-width: 250px;">${t}</div>\n </div>\n </div>\n </div>\n </div>\n `})).join(""):this.element.innerHTML=""}}function ra(A,e){const t=A.ruleName||"",r=function(A){const e=na(A);if(e.length>0){const A=e[0];if("string"==typeof A.value)return A.value}return String(A.condition||A.ruleName||"")}(A);return`${e}::${t}::${r}`}function na(A){const e=A,t=function(A){const e=A,t=e.rule;if(t&&"object"==typeof t)return t;if("string"==typeof t)try{const A=JSON.parse(t);if(A&&"object"==typeof A)return A}catch{return e}return e}(A),r=Array.isArray(e.conditions)?e.conditions:[],n=Array.isArray(t.conditions)?t.conditions:[];return r.length>0?r:n}class sa{constructor(A){this.parent=A,this.element=document.createElement("div"),this.element.className="mfm-rule-list",this.init()}init(){this.parent.appendChild(this.element),this.attachEvents()}attachEvents(){this.element.onclick=A=>{var e;const t=A.target,r=t.closest(".mfm-dots-btn");if(r){A.stopPropagation();const e=r.closest(".mfm-request-item"),t=null==e?void 0:e.dataset.id;return void(t&&Y.setOpenDropdown(t))}const n=t.closest("[data-action]");if(n){A.stopPropagation();const t=n.dataset.action,r=n.closest(".mfm-request-item"),s=this.readRuleIndex(r);return t&&null!==s&&this.handleAction(t,s),void(null==(e=n.parentElement)||e.classList.remove("show"))}const s=t.closest(".mfm-request-item");if(!s)return;A.stopPropagation();const o=this.readRuleIndex(s);if(null===o)return;const i=O.state.mappings.rules[o];i&&Y.selectRule(i)}}readRuleIndex(A){if(!(null==A?void 0:A.dataset.ruleIndex))return null;const e=Number(A.dataset.ruleIndex);return Number.isNaN(e)?null:e}handleAction(A,e){if("view-rule-details"===A){const A=O.state.mappings.rules[e];A&&Y.selectRule(A)}Y.clearOpenDropdown()}render(A){if(!(null==A?void 0:A.length))return void(this.element.innerHTML="");const e=A.map(((A,e)=>ra(A,e)));Array.from(this.element.querySelectorAll(".mfm-request-item")).forEach((A=>{e.includes(A.dataset.id||"")||A.remove()})),A.forEach(((A,e)=>{var t,r,n;const s=ra(A,e),o=this.element.querySelector(`[data-id="${s}"]`),i=function(A){const e=na(A);let t=[];return e.length>0&&(t=e.map((A=>{const e=function(A){const e="string"==typeof A.type&&A.type.trim()?A.type:"RULE",t="string"==typeof A.operator&&A.operator.trim()?A.operator:"matches",r="string"==typeof A.key&&A.key.trim()?A.key:"",n="string"==typeof A.value&&A.value.trim()?A.value:"-";return r?`\n <span class="mfm-rule-condition-type">${e}</span>\n <span class="mfm-rule-condition-operator">${t}</span>\n <span class="mfm-rule-condition-key-value">${r}=${n}</span>\n `:`\n <span class="mfm-rule-condition-type">${e}</span>\n <span class="mfm-rule-condition-operator">${t}</span>\n <span class="mfm-rule-condition-key-value">${n}</span>\n `}(A);return e}))),t}(A),a=function(A){const{action:e,config:t}=function(A){const e=A.timingAction;if(!(null==e?void 0:e.actions)||"object"!=typeof e.actions)return{action:"",config:null};const t=Object.keys(e.actions);if(0===t.length)return{action:"",config:null};const r=e.activeAction||t[0],n=e.actions[r];return{action:r,config:n&&"object"==typeof n?n:null}}(A);if(!e||!t)return"";const r="number"!=typeof(n=t.value)||Number.isNaN(n)||n<0?0:n;var n;const s="string"==typeof t.redirectUrl&&t.redirectUrl.trim()?t.redirectUrl:"";return"delay_and_timeout"===e?`\n <span class="mfm-rule-action">Delay and Timeout</span>\n <span class="mfm-rule-value">${r}s</span>`:"delay_and_redirect"===e?s?`\n <span class="mfm-rule-action">Delay and Redirect ${r}s</span>\n <span class="mfm-rule-value">${s}</span>`:`\n <span class="mfm-rule-action">Delay and Redirect ${r}s</span>\n <span class="mfm-rule-value">${s}</span>`:"delay"===e?`\n <span class="mfm-rule-action">Delay ${r}s</span>`:`\n <span class="mfm-rule-action">${function(A){if(!A)return A;const e=A.toLowerCase().replace(/_/g," ");return e.charAt(0).toUpperCase()+e.slice(1)}(e)} ${r}s</span>`}(A),l=null==(t=A.timingAction)?void 0:t.activeAction,c=null==(n=null==(r=A.timingAction)?void 0:r.actions)?void 0:n[l||""],d=c?`${c.value||0}s (${String(l).replace(/_/g," ")})`:String(A.type||"RULE");let u=0;A.modificationActions&&Object.values(A.modificationActions).forEach((A=>{A.enabled&&(u+=1)}));const B=O.state.ui.tabConfigs.MAPPINGS.selectedRule,m=Boolean(B)&&((null==B?void 0:B.ruleName)===(A.ruleName||A.condition)||(null==B?void 0:B.condition)===(A.condition||A.ruleName)),g=O.state.ui.activeDropdownId===s,p=`${m}_${d}_${u}_${g}`,f=`\n <div class="mfm-request-item ${m?"active":""}" data-id="${s}" data-rule-index="${e}" data-type="rule">\n <div class="mfm-request-header">\n <div class="mfm-flex-row">\n <span class="mfm-method rule">RULE</span>\n <span class="mfm-status rule">${String(A.type||"RULE")}</span>\n </div>\n <div class="mfm-dropdown" style="display: flex; align-items: center; gap: 8px;">\n ${u>0?`<span class="mfm-mod-pill">${u} Actions</span>`:""}\n <button class="mfm-btn-icon mfm-dots-btn">\n <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>\n </button>\n <div class="mfm-dropdown-content ${g?"show":""}">\n <button data-action="view-rule-details">View Details</button>\n </div>\n </div>\n </div>\n <div class="mfm-url">${i.map((A=>`<span class="mfm-rule-condition">${A}</span>`)).join("")}</div>\n ${a?`<div class="mfm-rule-info">${a}</div>`:""}\n </div>\n `;if(o){if(o.dataset.hash!==p){const A=document.createElement("div");A.innerHTML=f;const e=A.firstElementChild;e&&(e.dataset.hash=p,this.element.replaceChild(e,o))}}else{const A=document.createElement("div");A.innerHTML=f;const t=A.firstElementChild;if(!t)return;t.dataset.hash=p;const r=this.element.children[e];r?this.element.insertBefore(t,r):this.element.appendChild(t)}}))}}class oa{constructor(A){this.unsubscribe=null,this.parent=A,this.element=document.createElement("div"),this.element.className="mfm-mapping-list-activity",this.ruleListView=new sa(this.element),this.apisListView=new ta(this.element),this.init()}init(){this.parent.appendChild(this.element),this.unsubscribe=O.subscribe((()=>{"MAPPINGS"===O.state.ui.selectedTab&&this.render()})),this.render()}render(){if(O.state.isMappingsLoading)return this.element.innerHTML='<div class="mfm-spinner"></div>',this.ruleListView.element.style.display="none",void(this.apisListView.element.style.display="none");const{apis:A,rules:e}=function(){const{apis:A,rules:e}=O.state.mappings,t=(O.state.ui.tabConfigs.MAPPINGS.searchText||"").toLowerCase();return{apis:A.filter((A=>(A.url||"").toLowerCase().includes(t))),rules:e.filter((A=>(A.ruleName||"").toLowerCase().includes(t)||(A.condition||"").toLowerCase().includes(t)))}}();if(0===A.length&&0===e.length)return this.element.innerHTML='<div class="mfm-empty">No mappings found</div>',this.ruleListView.element.style.display="none",void(this.apisListView.element.style.display="none");this.element.contains(this.ruleListView.element)||(this.element.innerHTML="",this.element.appendChild(this.ruleListView.element),this.element.appendChild(this.apisListView.element)),this.ruleListView.element.style.display="block",this.apisListView.element.style.display="block",this.ruleListView.render(e),this.apisListView.render(A)}destroy(){this.unsubscribe&&this.unsubscribe(),this.element.remove()}}async function ia(A){if("undefined"!=typeof navigator&&navigator.clipboard&&"function"==typeof navigator.clipboard.writeText)return void await navigator.clipboard.writeText(A);if(!(null==document?void 0:document.body))throw new Error("Clipboard unavailable: document body not ready");const e=document.createElement("textarea");e.value=A,e.setAttribute("readonly","true"),e.style.position="fixed",e.style.top="-9999px",e.style.left="-9999px",document.body.appendChild(e),e.focus(),e.select();try{if(!document.execCommand("copy"))throw new Error("Copy command failed")}finally{e.remove()}}function aa(A,e){const t=A.request.method||"GET",r=A.request.url,n=A.request.headers||{},s=(o=A.request.body)?"string"==typeof o?o:JSON.stringify(o):null;var o;if("copy-curl"===e){let A=`curl '${r}' \\\n -X ${t}`;return Object.entries(n).forEach((([e,t])=>{A+=` \\\n -H '${e}: ${String(t)}'`})),s&&(A+=` \\\n --data-raw '${s.replace(/'/g,"'\\''")}'`),A}if("copy-fetch"===e){const A={method:t,headers:n};return s&&(A.body=s),`fetch('${r}', ${JSON.stringify(A,null,2)})`}let i="const xhr = new XMLHttpRequest();\n";return i+=`xhr.open('${t}', '${r}');\n`,Object.entries(n).forEach((([A,e])=>{i+=`xhr.setRequestHeader('${A}', '${String(e)}');\n`})),i+=s?`xhr.send('${s.replace(/'/g,"\\'")}');`:"xhr.send();",i}let la=class{static render(A){var e,t;const r=void 0===(null==(e=A.response)?void 0:e.statusCode),n=r?"Pending":null==(t=A.response)?void 0:t.statusCode,s=0===n?"Error":n,o=O.state.ui.tabConfigs.MOCKED.selectedRequestId===A.requestId,i=function(A,e,t){return A?"pending":e?"success":t?"error":""}(r,!r&&"number"==typeof n&&n>=200&&n<300,!r&&"number"==typeof n&&(0===n||n>=400)),{path:a,domain:l}=ea(A.request.url);return`\n <div class="mfm-request-item ${o?"active":""} ${r?"pending-item":""}" data-id="${A.requestId}" data-type="request">\n <div class="mfm-request-header">\n <div class="mfm-flex-row">\n <span class="mfm-method ${(A.request.method||"").toLowerCase()}">${A.request.method}</span>\n <span class="mfm-status ${i}">\n ${r?'<span class="mfm-spinner"></span>':s}\n </span>\n </div>\n <div class="mfm-dropdown" style="display: flex; align-items: center; gap: 8px;">\n <button class="mfm-btn-icon mfm-dots-btn">\n <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>\n </button>\n <div class="mfm-dropdown-content ${O.state.ui.activeDropdownId===A.requestId?"show":""}">\n <button data-action="copy-curl">Copy as cURL</button>\n <button data-action="copy-fetch">Copy as Fetch</button>\n <button data-action="copy-xhr">Copy as XHR</button>\n </div>\n </div>\n </div>\n <div class="mfm-url-container">\n <div class="mfm-url-path" title="${A.request.url}">${a}</div>\n <div class="mfm-url-domain">${l}</div>\n </div>\n </div>\n `}};class ca{static render(A){var e,t,r,n,s,o,i;const a=A.rule?{action:A.rule.action||(null==(e=A.rule.timingAction)?void 0:e.activeAction),config:A.rule.config||(null==(n=null==(t=A.rule.timingAction)?void 0:t.actions)?void 0:n[(null==(r=A.rule.timingAction)?void 0:r.activeAction)||""])}:null,l=void 0===(null==(s=A.response)?void 0:s.statusCode),c=l?"Pending":null==(o=A.response)?void 0:o.statusCode,d=0===c?"Error":c,u=O.state.ui.tabConfigs.MOCKED.selectedRequestId===A.requestId,B=function(A,e,t){return A?"pending":e?"success":t?"error":""}(l,!l&&"number"==typeof c&&c>=200&&c<300,!l&&"number"==typeof c&&(0===c||c>=400)),{path:m,domain:g}=ea(A.request.url);return`\n <div class="mfm-request-item ${u?"active":""} ${l?"pending-item":""}" data-id="${A.requestId}" data-type="request">\n <div class="mfm-request-header">\n <div class="mfm-flex-row">\n <span class="mfm-method ${(A.request.method||"").toLowerCase()}">${A.request.method}</span>\n <span class="mfm-status ${B}">\n ${l?'<span class="mfm-spinner"></span>':d}\n </span>\n </div>\n <div class="mfm-dropdown" style="display: flex; align-items: center; gap: 8px;">\n <button class="mfm-btn-icon mfm-dots-btn">\n <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>\n </button>\n <div class="mfm-dropdown-content ${O.state.ui.activeDropdownId===A.requestId?"show":""}">\n <button data-action="copy-curl">Copy as cURL</button>\n <button data-action="copy-fetch">Copy as Fetch</button>\n <button data-action="copy-xhr">Copy as XHR</button>\n </div>\n </div>\n </div>\n <div class="mfm-url-container">\n <div class="mfm-url-path" title="${A.request.url}">${m}</div>\n <div class="mfm-url-domain">${g}</div>\n </div>\n ${(null==a?void 0:a.action)?`\n <div class="mfm-rule-info">\n <span class="mfm-rule-action">${String(a.action).replace(/_/g," ")}</span>\n <span class="mfm-rule-value">${(null==(i=a.config)?void 0:i.value)||0}s</span>\n </div>`:""}\n </div>\n `}}class da{constructor(A){this.unsubscribe=null,this.parent=A,this.element=document.createElement("div"),this.element.className="mfm-mocked-apis-activity",this.init()}init(){this.parent.appendChild(this.element),this.attachEvents(),this.unsubscribe=O.subscribe((()=>{"MOCKED"===O.state.ui.selectedTab&&this.render()})),this.render()}attachEvents(){this.element.onclick=A=>{var e;const t=A.target,r=t.closest(".mfm-dots-btn");if(r){A.stopPropagation();const e=r.closest(".mfm-request-item"),t=null==e?void 0:e.dataset.id;return void(t&&Y.setOpenDropdown(t))}const n=t.closest("[data-action]");if(n){A.stopPropagation();const t=n.dataset.action,r=n.closest(".mfm-request-item"),s=null==r?void 0:r.dataset.id;return t&&s&&this.handleAction(t,s),void(null==(e=n.parentElement)||e.classList.remove("show"))}const s=t.closest(".mfm-request-item");if(s){if(s.classList.contains("pending-item"))return;A.stopPropagation();const e=s.dataset.id;e&&Y.selectRequest(e)}}}handleAction(A,e){const t=O.state.requests.find((A=>A.requestId===e));t&&(ia(aa(t,A)),Y.clearOpenDropdown())}render(){const A=function(){const A=(O.state.ui.tabConfigs.MOCKED.searchText||"").toLowerCase();return O.state.requests.filter((e=>{var t,r;return"MOCKED"===e.interceptionType&&(((null==(t=e.request)?void 0:t.url)||"").toLowerCase().includes(A)||((null==(r=e.rule)?void 0:r.ruleName)||"").toLowerCase().includes(A))}))}(),e=O.state.ui.tabConfigs.MOCKED.selectedRequestId,t=O.state.ui.activeDropdownId;if(!A||0===A.length)return void(this.element.querySelector(".mfm-empty")||(this.element.innerHTML='<div class="mfm-empty">No requests found</div>'));const r=this.element.querySelector(".mfm-empty");r&&r.remove();const n=A.map((A=>A.requestId));Array.from(this.element.querySelectorAll(".mfm-request-item")).forEach((A=>{n.includes(A.dataset.id||"")||A.remove()})),A.forEach(((A,r)=>{const n=this.element.querySelector(`[data-id="${A.requestId}"]`),s=A.rule?ca.render(A):la.render(A),o=e===A.requestId,i=t===A.requestId,a=`${JSON.stringify(A).length}_${o}_${i}`;if(n){if(n.dataset.hash!==a){const A=document.createElement("div");A.innerHTML=s;const e=A.firstElementChild;e&&(e.dataset.hash=a,this.element.replaceChild(e,n))}}else{const A=document.createElement("div");A.innerHTML=s;const e=A.firstElementChild;if(!e)return;e.dataset.hash=a;const t=this.element.children[r];t?this.element.insertBefore(e,t):this.element.appendChild(e)}}))}destroy(){this.unsubscribe&&this.unsubscribe(),this.element.remove()}}function ua(A,e){return null!==function(A,e){return O.state.interceptors.rules.find((t=>t.enabled&&t.method===A&&t.url===e))||null}(A,e)}function Ba(A,e){return null!==function(A,e){return O.state.requestEditors.rules.find((t=>t.enabled&&t.method===A&&t.url===e))||null}(A,e)}class ma{static render(A){var e,t;const r=void 0===(null==(e=A.response)?void 0:e.statusCode),n=r?"Pending":null==(t=A.response)?void 0:t.statusCode,s=0===n?"Error":n,o=O.state.ui.tabConfigs.OTHER.selectedRequestId===A.requestId,i=function(A,e,t){return A?"pending":e?"success":t?"error":""}(r,!r&&"number"==typeof n&&n>=200&&n<300,!r&&"number"==typeof n&&(0===n||n>=400)),{path:a,domain:l}=ea(A.request.url),c=iA(),d=c&&ua(A.request.method,A.request.url),u=d?'<span class="mfm-debug-badge" title="Live debugger active for this endpoint">Debug</span>':"",B=c?`<button class="mfm-debug-action ${d?"active":""}" data-action="toggle-debugger">${d?"Remove Debugger":"Debugger"} <sup class="mfm-beta">(Beta)</sup></button>`:"",m=aA(),g=m&&Ba(A.request.method,A.request.url),p=g?'<span class="mfm-edit-badge" title="Request editor active for this endpoint">Edit</span>':"",f=m?`<button class="mfm-edit-action ${g?"active":""} d-none" data-action="toggle-request-editor">${g?"Remove Edit Request":"Edit Request"}<sup class="mfm-beta">(Beta)</sup></button>`:"";return`\n <div class="mfm-request-item ${o?"active":""} ${r?"pending-item":""}" data-id="${A.requestId}" data-type="request">\n <div class="mfm-request-header">\n <div class="mfm-flex-row">\n <span class="mfm-method ${(A.request.method||"").toLowerCase()}">${A.request.method}</span>\n <span class="mfm-status ${i}">\n ${r?'<span class="mfm-spinner"></span>':s}\n </span>\n ${p}\n ${u}\n </div>\n <div class="mfm-dropdown" style="display: flex; align-items: center; gap: 8px;">\n <button class="mfm-btn-icon mfm-dots-btn">\n <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>\n </button>\n <div class="mfm-dropdown-content ${O.state.ui.activeDropdownId===A.requestId?"show":""}">\n <button data-action="create-mock" style="color: var(--mfm-primary); font-weight: 600;">Create Mock</button>\n ${f}\n ${B}\n <button data-action="copy-curl">Copy as cURL</button>\n <button data-action="copy-fetch">Copy as Fetch</button>\n <button data-action="copy-xhr">Copy as XHR</button>\n </div>\n </div>\n </div>\n <div class="mfm-url-container">\n <div class="mfm-url-path" title="${A.request.url}">${a}</div>\n <div class="mfm-url-domain">${l}</div>\n </div>\n </div>\n `}}function ga(A,e){const t=document.createElement("div");t.className="mfm-response-editor",t.id="mfm-shared-editor",t.innerHTML=`\n <div class="mfm-editor-header">\n <div style="display: flex; align-items: center; gap: 12px;">\n <h4 style="margin: 0; font-size: 1rem;">${e.title||"Edit Mock"}</h4>\n <div class="mfm-switch-with-label">\n <span class="mfm-label">Enable</span>\n <label class="mfm-switch" style="margin-right: 0; width: 32px; height: 18px;">\n <input type="checkbox" id="mfm-editor-enabled-switch">\n <span class="mfm-slider" style="border-radius: 34px;"></span>\n </label>\n </div>\n </div>\n <button class="mfm-btn-icon" id="mfm-editor-close" style="padding: 0; min-height: auto;">${AA}</button>\n </div>\n\n <div class="mfm-url-preview" style="font-size: 0.75rem; color: var(--mfm-text-dim); margin-bottom: 8px; word-break: break-all;" id="mfm-editor-url"></div>\n\n <div style="display: flex; align-items: center; gap: 12px; margin-bottom: 8px;">\n <label style="font-size: 0.75rem; color: var(--mfm-text-dim);">Status Code:</label>\n <input type="number" id="mfm-editor-status" class="mfm-input" style="width: 80px; height: 28px; font-size: 0.8rem;" value="200">\n </div>\n\n <textarea id="mfm-editor-textarea" spellcheck="false" placeholder="Enter response body..."></textarea>\n \n <div class="mfm-editor-footer">\n <button class="mfm-btn-text" id="mfm-editor-cancel">Cancel</button>\n <button class="mfm-btn mfm-btn-primary" style="padding: 6px 16px; border-radius: 4px; font-size: 0.8rem;" id="mfm-editor-save">Apply Changes</button>\n </div>\n `,A.appendChild(t);const r=t.querySelector("#mfm-editor-textarea"),n=t.querySelector("#mfm-editor-status"),s=t.querySelector("#mfm-editor-enabled-switch"),o=t.querySelector("#mfm-editor-url"),i=t.querySelector("#mfm-editor-close"),a=t.querySelector("#mfm-editor-cancel"),l=t.querySelector("#mfm-editor-save");return i.onclick=a.onclick=()=>e.onCancel(),l.onclick=()=>{e.onSave({body:r.value,status:parseInt(n.value)||200,enabled:s.checked})},{show:(A,e)=>{o.innerText=A.request.url,r.value=e.body,n.value=e.status.toString(),s.checked=e.enabled,t.classList.add("active")},hide:()=>{t.classList.remove("active")},destroy:()=>{t.remove()}}}class pa{constructor(A){this.unsubscribe=null,this.editor=null,this.parent=A,this.element=document.createElement("div"),this.element.className="mfm-other-apis-activity",this.init()}init(){this.parent.appendChild(this.element),this.attachEvents(),this.unsubscribe=O.subscribe((()=>{"OTHER"===O.state.ui.selectedTab&&this.render()})),this.render()}attachEvents(){this.element.onclick=A=>{var e;const t=A.target,r=t.closest(".mfm-dots-btn");if(r){A.stopPropagation();const e=r.closest(".mfm-request-item"),t=null==e?void 0:e.dataset.id;return void(t&&Y.setOpenDropdown(t))}const n=t.closest("[data-action]");if(n){A.stopPropagation();const t=n.dataset.action,r=n.closest(".mfm-request-item"),s=null==r?void 0:r.dataset.id;return"create-mock"===t&&s?this.openMockEditor(s):"toggle-debugger"===t&&s?Y.toggleDebugRuleForRequest(s):"toggle-request-editor"===t&&s?Y.toggleRequestEditRuleForRequest(s):t&&s&&this.handleAction(t,s),void(null==(e=n.parentElement)||e.classList.remove("show"))}const s=t.closest(".mfm-request-item");if(s){if(s.classList.contains("pending-item"))return;A.stopPropagation();const e=s.dataset.id;e&&Y.selectRequest(e)}}}handleAction(A,e){const t=O.state.requests.find((A=>A.requestId===e));t&&(ia(aa(t,A)),Y.clearOpenDropdown())}openMockEditor(A){var e,t,r,n,s;const o=O.state.requests.find((e=>e.requestId===A));if(!o)return;this.editor||(this.editor=ga(this.parent,{onSave:A=>this.handleSaveMock(o,A),onCancel:()=>this.editor.hide()}));const i={body:"string"==typeof(null==(e=o.response)?void 0:e.body)?o.response.body:JSON.stringify((null==(t=o.response)?void 0:t.body)||{},null,2),status:"Error"===(null==(r=o.response)?void 0:r.statusCode)||"error"===(null==(n=o.response)?void 0:n.statusCode)?504:Number(null==(s=o.response)?void 0:s.statusCode)||200,enabled:!0};this.editor.show(o,i),Y.clearOpenDropdown()}async handleSaveMock(A,e){await Wi.createBulkMocks([{url:A.request.url,method:A.request.method,body:A.request.body||{},status:e.status,response:e.body,headers:JSON.stringify(A.request.headers||{}),enabled:e.enabled}])&&(q("mock_added"),this.editor.hide(),setTimeout((()=>Y.reloadMappings()),1e3))}render(){const A=function(){const A=(O.state.ui.tabConfigs.OTHER.searchText||"").toLowerCase();return O.state.requests.filter((e=>{var t;return"MOCKED"!==e.interceptionType&&((null==(t=e.request)?void 0:t.url)||"").toLowerCase().includes(A)}))}(),e=O.state.ui.tabConfigs.OTHER.selectedRequestId,t=O.state.ui.activeDropdownId;if(!A||0===A.length)return void(this.element.querySelector(".mfm-empty")||(this.element.innerHTML='<div class="mfm-empty">No requests found</div>'));const r=this.element.querySelector(".mfm-empty");r&&r.remove();const n=A.map((A=>A.requestId));Array.from(this.element.querySelectorAll(".mfm-request-item")).forEach((A=>{n.includes(A.dataset.id||"")||A.remove()})),A.forEach(((A,r)=>{const n=this.element.querySelector(`[data-id="${A.requestId}"]`),s=ma.render(A),o=e===A.requestId,i=t===A.requestId,a=ua(A.request.method,A.request.url),l=Ba(A.request.method,A.request.url),c=`${JSON.stringify(A).length}_${o}_${i}_${a?1:0}_${l?1:0}`;if(n){if(n.dataset.hash!==c){const A=document.createElement("div");A.innerHTML=s;const e=A.firstElementChild;e&&(e.dataset.hash=c,this.element.replaceChild(e,n))}}else{const A=document.createElement("div");A.innerHTML=s;const e=A.firstElementChild;if(!e)return;e.dataset.hash=c;const t=this.element.children[r];t?this.element.insertBefore(e,t):this.element.appendChild(e)}}))}destroy(){this.unsubscribe&&this.unsubscribe(),this.editor&&this.editor.destroy(),this.element.remove()}}function fa(A){const e=document.createElement("div");e.id="mfm-root";const t=document.createElement("div");t.className="mfm-widget-toggle",t.innerHTML='\n <div class="mfm-toggle-section mfm-toggle-reload" title="Reload Mappings"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><polyline points="21 3 21 8 16 8"></polyline></svg></div>\n <div class="mfm-toggle-divider"></div>\n <div class="mfm-toggle-section mfm-toggle-logo" title="MockForMe"><img src="https://ik.imagekit.io/mfm/static-collection/mfm-48x48.png" alt="Logo"></div>\n ';const r=document.createElement("div");r.className="mfm-main-container hidden",e.appendChild(t),e.appendChild(r),A.appendChild(e),function(A,e){const t=(e,t)=>{const r=A.getBoundingClientRect(),n=r.width||60,s=r.height||60,o=window.innerWidth-n,i=window.innerHeight-s,a=Math.max(0,Math.min(e,o)),l=Math.max(0,Math.min(t,i));A.style.left=`${a}px`,A.style.top=`${l}px`,A.style.bottom="auto",A.style.right="auto"},r=()=>{const A=localStorage.getItem("MFM_POSITION");if(A)try{const e=JSON.parse(A);"number"==typeof e.xPercent&&"number"==typeof e.yPercent&&t(e.xPercent*window.innerWidth,e.yPercent*window.innerHeight)}catch{}};r();let n=!1,s=0,o=0,i=0,a=0;const l=t=>{const r="touchstart"===t.type,l=r?t.touches[0].clientX:t.clientX,u=r?t.touches[0].clientY:t.clientY;n=!0,s=l,o=u;const B=A.getBoundingClientRect();i=B.left,a=B.top,e.dataset.moved="false",document.addEventListener("mousemove",c),document.addEventListener("mouseup",d),document.addEventListener("touchmove",c,{passive:!1}),document.addEventListener("touchend",d),A.style.transition="none"},c=A=>{if(!n)return;const r="touchmove"===A.type;r&&A.cancelable&&A.preventDefault();const l=r?A.touches[0].clientX:A.clientX,c=r?A.touches[0].clientY:A.clientY,d=l-s,u=c-o;(Math.abs(d)>5||Math.abs(u)>5)&&(e.dataset.moved="true"),t(i+d,a+u)},d=()=>{if(!n)return;n=!1,document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",d),document.removeEventListener("touchmove",c),document.removeEventListener("touchend",d),A.style.transition="";const e=A.getBoundingClientRect();((A,e)=>{const t=A/window.innerWidth,r=e/window.innerHeight;localStorage.setItem("MFM_POSITION",JSON.stringify({xPercent:t,yPercent:r}))})(e.left,e.top)};e.addEventListener("mousedown",l),e.addEventListener("touchstart",l,{passive:!1}),window.addEventListener("resize",r),window.addEventListener("orientationchange",r)}(e,t),function(A){const e=document.createElement("div");e.className="mfm-header",e.innerHTML=`\n <div class="mfm-logo">\n <img src="${Z}" height="32" alt="MockForMe Logo">\n </div>\n <div class="mfm-header-actions">\n ${O.state.features.snipping?'\n <button class="mfm-btn-icon" id="mfm-snip-tool" title="Snipping Tool - Improve Design">\n <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scissors"><circle cx="6" cy="6" r="3"></circle><circle cx="6" cy="18" r="3"></circle><line x1="20" y1="4" x2="8.12" y2="15.88"></line><line x1="14.47" y1="14.48" x2="20" y2="20"></line><line x1="8.12" y1="8.12" x2="12" y2="12"></line></svg>\n </button>\n ':""}\n <button class="mfm-btn-icon" id="mfm-reload-header" title="Reload Mappings">\n <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><polyline points="21 3 21 8 16 8"></polyline></svg>\n </button>\n <button class="mfm-btn-icon" id="mfm-settings-btn" title="Settings">\n <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg>\n </button>\n <button class="mfm-btn-icon" id="mfm-delete-token" title="Delete Token">\n <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-trash-2"><path d="M3 6h18"></path><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"></path><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"></path><line x1="10" y1="11" x2="10" y2="17"></line><line x1="14" y1="11" x2="14" y2="17"></line></svg>\n </button>\n <label class="mfm-switch" title="Toggle Mock Interception">\n <input type="checkbox" id="mfm-intercept-toggle" ${O.state.isInterceptEnabled?"checked":""}>\n <span class="mfm-slider"></span>\n </label>\n <button class="mfm-btn-icon" id="mfm-close-widget" title="Close Widget">\n ${AA}\n </button>\n </div>\n `,A.appendChild(e);const t=e.querySelector("#mfm-intercept-toggle"),r=e.querySelector("#mfm-snip-tool"),n=e.querySelector("#mfm-reload-header"),s=e.querySelector("#mfm-settings-btn"),o=e.querySelector("#mfm-delete-token"),i=e.querySelector("#mfm-close-widget");t&&(t.onchange=()=>{Y.toggleInterception()}),r&&(r.onclick=()=>{q("snipping_start"),Aa.start()}),n&&(n.onclick=()=>{n.innerHTML='<div class="mfm-spinner"></div>',n.style.pointerEvents="none",Y.reloadMappings()}),s&&(s.onclick=A=>{A.stopPropagation(),Y.setSettingsOpen(!O.state.ui.isSettingsOpen)}),o&&(o.onclick=()=>{Y.deleteToken()}),i&&(i.onclick=()=>{Y.toggleWidget()}),O.subscribe((A=>{t&&(t.checked=A.isInterceptEnabled)}))}(r),new tA(r),function(A){var e,t;const r=document.createElement("div");r.className="mfm-tabs-container";const n=document.createElement("div");n.className="mfm-tabs-nav",[{id:"MAPPINGS",label:"Mappings"},{id:"MOCKED",label:"Mocked"},{id:"OTHER",label:"Others"}].forEach((A=>{const e=document.createElement("button");e.className="mfm-tab-btn "+(O.state.ui.selectedTab===A.id?"active":""),e.innerText=A.label,e.onclick=()=>{Y.setTab(A.id)},e.dataset.tabId=A.id,n.appendChild(e)}));const s=document.createElement("div");s.className="mfm-tab-toolbar",s.innerHTML=`\n <div class="mfm-toolbar-row">\n <input type="text" class="mfm-input search-input" id="mfm-search" placeholder="Search requests..." value="${(null==(e=O.state.ui.tabConfigs[O.state.ui.selectedTab])?void 0:e.searchText)||""}">\n <label class="mfm-preserve-logs">\n <input type="checkbox" id="mfm-preserve-check" ${(null==(t=O.state.ui.tabConfigs[O.state.ui.selectedTab])?void 0:t.isPreserveLogs)?"checked":""}>\n Preserve\n </label>\n <button class="mfm-btn-outline clear-btn" id="mfm-clear-btn" title="Clear requests">\n ${z}\n </button>\n <div class="mfm-dropdown mfm-toolbar-dropdown" id="mfm-toolbar-dropdown">\n <button class="mfm-btn-outline dots-btn" id="mfm-dots-btn" title="More options">\n <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1.5"></circle><circle cx="12" cy="5" r="1.5"></circle><circle cx="12" cy="19" r="1.5"></circle></svg>\n </button>\n <div class="mfm-dropdown-menu">\n <button class="mfm-dropdown-item" id="mfm-bulk-mock-btn">Bulk Mock</button>\n </div>\n\n\n </div>\n </div>\n `;const o=document.createElement("div");o.className="mfm-tab-content",r.appendChild(n),r.appendChild(s),r.appendChild(o),A.appendChild(r);const i=new oa(o),a=new da(o),l=new pa(o),c=s.querySelector("#mfm-search"),d=s.querySelector("#mfm-clear-btn"),u=s.querySelector("#mfm-preserve-check"),B=s.querySelector(".mfm-preserve-logs");c&&(c.oninput=A=>{const e=A.target;Y.setSearchText(e.value)}),d&&(d.onclick=()=>{Y.clearRequests()}),u&&(u.onchange=A=>{const e=A.target;Y.setPreserveLogs(Boolean(e.checked))});const m=s.querySelector("#mfm-dots-btn"),g=s.querySelector("#mfm-bulk-mock-btn");m&&(m.onclick=A=>{A.stopPropagation(),Y.setOpenDropdown("toolbar")}),g&&(g.onclick=()=>{oA()&&(Y.setBulkMockOpen(!0),Y.clearOpenDropdown())});const p=()=>{const A=O.state.ui.selectedTab,e=O.state.ui.tabConfigs[A];if(n.querySelectorAll(".mfm-tab-btn").forEach((e=>{e.classList.toggle("active",e.dataset.tabId===A)})),c){const A=(null==e?void 0:e.searchText)||"";c.value!==A&&(c.value=A)}const t="MAPPINGS"===A;d&&(d.style.display=t?"none":"block"),B&&(B.style.display=t?"none":"flex");const r=s.querySelector("#mfm-toolbar-dropdown");if(r){const e=oA();r.style.display="OTHER"===A&&e?"block":"none",r.classList.toggle("show","toolbar"===O.state.ui.activeDropdownId);const t=r.querySelector("#mfm-bulk-mock-btn");t&&(t.style.display=e?"block":"none")}!t&&u&&(u.checked=Boolean(null==e?void 0:e.isPreserveLogs)),i.element&&(i.element.style.display="MAPPINGS"===A?"block":"none"),a.element&&(a.element.style.display="MOCKED"===A?"block":"none"),l.element&&(l.element.style.display="OTHER"===A?"block":"none")};p(),O.subscribe((()=>p()))}(r),function(A){const e=document.createElement("div");e.className="mfm-bottomsheet",e.id="mfm-details-sheet",e.innerHTML='\n <div class="mfm-bottomsheet-header" style="justify-content: flex-start; gap: 8px; padding-right: 12px;">\n <button class="mfm-btn-icon back-btn" id="mfm-close-sheet" title="Back"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"></polyline></svg></button>\n <div id="mfm-header-info" style="display: flex; align-items: baseline; gap: 6px; overflow: hidden; flex: 1; cursor: pointer;"></div>\n </div>\n <div class="mfm-bottomsheet-content"></div>\n ',A.appendChild(e);const t=e.querySelector("#mfm-close-sheet"),r=e.querySelector("#mfm-header-info");if(!t||!r)return;t.onclick=A=>{A.stopPropagation(),Y.closeDetails()};let n=!1,s="TEXT",o={};const i=()=>{const A=bA({sheet:e,infoContainer:r,isUrlExpanded:n,responseBodyMode:s,prevState:o});n=A.isUrlExpanded,s=A.responseBodyMode,o=A.prevState};r.onclick=()=>{n=!n,i()},O.subscribe(i),i()}(r),function(A){const e=document.createElement("div");e.className="mfm-bulk-mock-popup",e.id="mfm-bulk-mock-popup";let t=new Set,r=!1,n="",s=!1,o=new Map,i=new Map,a=new Map,l=null,c=null;const d=()=>{const{isBulkMockOpen:A}=O.state.ui,{bulk_mock:t}=O.state.features;if(!A||!t)return s&&h(),void e.classList.remove("active");s||(u(),s=!0),m(),B()},u=()=>{e.innerHTML=`\n <div class="mfm-bulk-mock-container">\n <div class="mfm-bulk-mock-header">\n <h3>Bulk Mock APIs</h3>\n <div class="mfm-bulk-mock-header-actions">\n <button class="mfm-btn mfm-btn-primary" id="mfm-bulk-save-btn" disabled style="padding: 6px 12px; font-size: 0.8rem; border-radius: 4px;">\n Save Mock\n </button>\n <button class="mfm-btn-icon" id="mfm-bulk-close-btn">${AA}</button>\n </div>\n </div>\n <div class="mfm-bulk-mock-filters">\n <input type="text" class="mfm-input" id="mfm-bulk-search" placeholder="Search APIs..." value="">\n <div style="display: flex; align-items: center; justify-content: space-between;">\n <label class="mfm-checkbox-label" style="display: flex; align-items: center; gap: 4px; font-size: 0.75rem; color: var(--mfm-text-dim); cursor: pointer;">\n <input type="checkbox" id="mfm-bulk-domain-filter" style="margin: 0;">\n Current/Sub domain only\n </label>\n <span id="mfm-bulk-selection-stats" style="font-size: 0.75rem; color: var(--mfm-text-dim);">Selected: 0/10 - 0.0 KB</span>\n </div>\n </div>\n <div class="mfm-bulk-mock-list" id="mfm-bulk-list-container">\n </div>\n </div>\n\n <div class="mfm-bulk-mock-list" id="mfm-bulk-list-container">\n </div>\n </div>\n `,e.classList.add("active"),w()},B=()=>{const A=e.querySelector("#mfm-bulk-save-btn");A&&(A.disabled=0===t.size,A.innerText="Save Mock");const r=e.querySelector("#mfm-bulk-selection-stats");if(r){const A=(()=>{const A={apis:O.state.requests.filter((A=>t.has(A.requestId))).map((A=>{var e,t,r;const n=o.get(A.requestId)??("string"==typeof(null==(e=A.response)?void 0:e.body)?A.response.body:JSON.stringify((null==(t=A.response)?void 0:t.body)||{}));let s=i.get(A.requestId);if(void 0===s){const e=null==(r=A.response)?void 0:r.statusCode;"Error"===e||"error"===e?s=504:null!=e?(s=Number(e),isNaN(s)&&(s=504)):s=200}return{url:A.request.url,method:A.request.method,body:A.request.body||{},status:s,response:n,headers:JSON.stringify(A.request.headers||{}),enabled:a.get(A.requestId)||!1}}))};return new Blob([JSON.stringify(A)]).size})(),e=A>1048576?`${(A/1048576).toFixed(2)} MB`:`${(A/1024).toFixed(1)} KB`;r.innerText=`Selected: ${t.size}/10 - ${e}`,A>1048576?(r.style.color="var(--mfm-error, #ef4444)",r.style.fontWeight="600"):(r.style.color="var(--mfm-text-dim)",r.style.fontWeight="normal")}},m=()=>{const A=window.location.hostname,s=O.state.requests.filter((A=>"OTHER"===A.interceptionType)).filter((e=>{if(!e.request.url.toLowerCase().includes(n.toLowerCase()))return!1;if(r)try{const t=new URL(e.request.url);return t.hostname===A||t.hostname.endsWith("."+A)}catch(A){return!1}return!0})),i=e.querySelector("#mfm-bulk-list-container");i&&(i.innerHTML=`\n ${0===s.length?'<div class="mfm-empty">No APIs found</div>':""}\n ${s.map((A=>{var e,r;const n=t.has(A.requestId),s=A.request.method||"GET",i=o.has(A.requestId),a=o.get(A.requestId)??("string"==typeof(null==(e=A.response)?void 0:e.body)?A.response.body:JSON.stringify((null==(r=A.response)?void 0:r.body)||{})),l=new Blob([a]).size,c=l>1048576?`${(l/1048576).toFixed(2)} MB`:`${(l/1024).toFixed(1)} KB`,{path:d,domain:u}=ea(A.request.url);return`\n <div class="mfm-bulk-item ${n?"selected":""}" data-id="${A.requestId}">\n <input type="checkbox" class="mfm-bulk-checkbox" ${n?"checked":""} ${!n&&t.size>=10?"disabled":""}>\n <span class="mfm-method ${String(s).toLowerCase()}">${s}</span>\n <div class="mfm-url-container">\n <div class="mfm-url-path" title="${A.request.url}">${d}</div>\n <div class="mfm-url-domain">${u}</div>\n </div>\n <span class="mfm-bulk-size">${c}</span>\n ${n?`\n <div class="mfm-bulk-item-actions">\n <button class="mfm-btn-text edit-response-btn" data-id="${A.requestId}">\n ${i?"Edited":"Edit Response"}\n </button>\n </div>\n `:""}\n </div>\n `})).join("")}\n `,i.querySelectorAll(".mfm-bulk-item").forEach((A=>{const e=A.dataset.id,t=A.querySelector(".mfm-bulk-checkbox"),r=A.querySelector(".edit-response-btn");t&&(t.onclick=A=>{A.stopPropagation(),g(e,t.checked)}),r&&(r.onclick=A=>{A.stopPropagation(),p(e)}),A.onclick=r=>{if((r.target===A||r.target.classList.contains("mfm-url")||r.target.classList.contains("mfm-method"))&&t&&!t.disabled){const A=!t.checked;t.checked=A,g(e,A)}}})))},g=(A,e)=>{e?t.size<10&&t.add(A):(t.delete(A),o.delete(A)),B(),m()},p=A=>{var t,r,n;const s=O.state.requests.find((e=>e.requestId===A));if(!s)return;l=A,c||(c=ga(e,{onSave:A=>f(A),onCancel:()=>c.hide()}));let d=o.get(A);void 0===d&&(d="string"==typeof(null==(t=s.response)?void 0:t.body)?s.response.body:JSON.stringify((null==(r=s.response)?void 0:r.body)||{},null,2));let u=i.get(A);if(void 0===u){const A=null==(n=s.response)?void 0:n.statusCode;u="Error"===A||"error"===A?504:Number(A)||200}c.show(s,{body:d,status:u,enabled:a.get(A)||!1})},f=A=>{l&&(o.set(l,A.body),i.set(l,A.status),a.set(l,A.enabled),j("Changes updated locally"),m(),c.hide())},h=()=>{s=!1,n="",r=!1,t.clear(),o.clear(),i.clear(),a.clear(),l=null},w=()=>{const A=e.querySelector("#mfm-bulk-close-btn"),s=e.querySelector("#mfm-bulk-save-btn"),o=e.querySelector("#mfm-bulk-search"),i=e.querySelector("#mfm-bulk-domain-filter"),a=e.querySelector("#mfm-editor-close"),l=e.querySelector("#mfm-editor-cancel"),d=e.querySelector("#mfm-editor-save");A&&(A.onclick=()=>{Y.setBulkMockOpen(!1)}),s&&(s.onclick=async()=>{const A=O.state.requests.filter((A=>t.has(A.requestId)));await Q(A)}),o&&(o.oninput=A=>{n=A.target.value,m()}),i&&(i.onchange=A=>{r=A.target.checked,m()}),a&&(a.onclick=()=>null==c?void 0:c.hide()),l&&(l.onclick=()=>null==c?void 0:c.hide()),d&&(d.onclick=()=>f({body:e.querySelector("#mfm-editor-textarea").value,status:parseInt(e.querySelector("#mfm-editor-status").value)||200,enabled:e.querySelector("#mfm-editor-enabled-switch").checked}))},Q=async A=>{const e=O.state.token;if(!e)return void j("Token not found","error");const t={apis:A.map((A=>{var e,t,r;let n=o.get(A.requestId);void 0===n&&(n="string"==typeof(null==(e=A.response)?void 0:e.body)?A.response.body:JSON.stringify((null==(t=A.response)?void 0:t.body)||{}));let s=i.get(A.requestId);if(void 0===s){let e=null==(r=A.response)?void 0:r.statusCode;s=200,"Error"===e||"error"===e?s=504:null!=e&&(s=Number(e),isNaN(s)&&(s=504))}return{url:A.request.url,method:A.request.method,body:A.request.body||{},status:s,response:n,headers:JSON.stringify(A.request.headers||{}),enabled:a.get(A.requestId)||!1}}))},r=JSON.stringify(t),n=new Blob([r]).size;if(n>1048576)j(`Payload size (${(n/1048576).toFixed(2)}MB) exceeds 1MB limit.`,"error");else try{const A=await fetch(`${F}${y}/httpRequestBulkMock/bulk_mock`,{method:"POST",headers:{"Content-Type":"application/json",mockforme:e},body:r}),t=await A.json();A.ok?(Y.setBulkMockOpen(!1),j(t.message||"Bulk mocks created successfully"),setTimeout((()=>{Y.reloadMappings()}),2e3)):(j(t.message||"Bulk upload failed","error"),console.error("Bulk upload failed",t))}catch(A){j("Error during bulk upload","error"),console.error("Error during bulk upload:",A)}};A.appendChild(e),O.subscribe(d),d()}(r),new lA(r),new uA(r),new BA(r);const n=A=>{const e=Boolean(A.token),n=r.querySelector(".mfm-header"),s=r.querySelector(".mfm-tabs-container"),o=r.querySelector(".mfm-token-form");n&&(n.style.display=e?"flex":"none"),s&&(s.style.display=e?"block":"none"),o&&(o.style.display=e?"none":"block"),r.classList.toggle("hidden",!A.isOpen),t.classList.toggle("hidden",A.isOpen)};O.subscribe(n),n(O.state);const s=t.querySelector(".mfm-toggle-reload"),o=t.querySelector(".mfm-toggle-logo");return s&&(s.onclick=A=>{A.stopPropagation(),"true"!==t.dataset.moved&&(O.state.token?Y.reloadMappings():O.update("isOpen",!0))}),o&&(o.onclick=A=>{A.stopPropagation(),"true"!==t.dataset.moved&&(O.state.token?Y.toggleWidget():O.update("isOpen",!0))}),window.addEventListener("click",(A=>{const e=A.target;(null==e?void 0:e.closest(".mfm-dropdown"))||Y.clearOpenDropdown()})),e}function ha(A){o.info("Initializing MockForMe Widget");let e=null;const t=A=>{A&&(e=fa(A))},r=()=>A||document.body;r()?t(r()):"loading"===document.readyState?document.addEventListener("DOMContentLoaded",(()=>t(r()))):document.body&&t(document.body),d();const s={[n.MFM_RES_MAPPINGS]:A=>{if(!A)return;const e=O.state.isMappingsLoading;if(A.token&&!O.state.token&&(o.info("Setting token from incoming MFM_RES_MAPPINGS"),O.update("token",A.token),localStorage.setItem("MFM_TOKEN",A.token)),O.set("mappings",A),O.update("isMappingsLoading",!1),O.state.isTokenValidating){const A=localStorage.getItem("MFM_TOKEN_TEMP")||O.state.token;A&&(O.update("token",A),localStorage.setItem("MFM_TOKEN",A),localStorage.removeItem("MFM_TOKEN_TEMP")),O.update("isTokenValidating",!1),O.update("isTokenLoading",!1),Y.flushQueue()}W(),e&&!O.state.ui.tokenError&&j("Mappings reloaded successfully")},[n.MFM_REQ]:A=>{A&&(o.info("Captured Request",A),Y.addRequest(A))},[n.MFM_RES]:A=>{A&&(o.info("Captured Response",A),Y.addRequest(A))},[n.MFM_TOKEN_ERROR]:A=>{$(n.MFM_TOKEN_ERROR,A)},[n.MFM_TOKEN_API_FAILED]:A=>{$(n.MFM_TOKEN_API_FAILED,A)},[n.MFM_TOGGLE_INTERCEPTION]:A=>{A&&"boolean"==typeof A.enabled&&Y.toggleInterception(A.enabled)},[n.MFM_DEBUG_INTERCEPT_REQ]:A=>{var e,t,r,n,s;if(x("MFM_DEBUG_INTERCEPT_REQ received",{requestId:null==A?void 0:A.requestId,ruleId:null==A?void 0:A.ruleId,url:null==(e=null==A?void 0:A.request)?void 0:e.url,status:null==(t=null==A?void 0:A.response)?void 0:t.statusCode}),A&&A.requestId)return O.state.interceptors.rules.find((e=>e.id===A.ruleId&&e.enabled))?(x("MFM_DEBUG_INTERCEPT_REQ rule matched, opening popup"),void Y.setPendingIntercept({requestId:A.requestId,ruleId:A.ruleId,request:A.request,response:A.response,timestamp:A.timestamp||Date.now()})):(k("no widget-side debug rule for incoming ruleId — forwarding original"),void Y.resolvePendingIntercept({requestId:A.requestId,simulateTimeout:!1,delayMs:0,statusCode:(null==(r=A.response)?void 0:r.statusCode)??200,headers:(null==(n=A.response)?void 0:n.headers)||{},body:null==(s=A.response)?void 0:s.body}));k("MFM_DEBUG_INTERCEPT_REQ missing requestId — dropping")},[n.MFM_REQUEST_EDIT_REQ]:A=>{var e,t,r,n;if(x("MFM_REQUEST_EDIT_REQ received",{requestId:null==A?void 0:A.requestId,ruleId:null==A?void 0:A.ruleId,url:null==(e=null==A?void 0:A.request)?void 0:e.url}),A&&A.requestId){if(!O.state.requestEditors.rules.find((e=>e.id===A.ruleId&&e.enabled))){k("no widget-side rule for incoming ruleId — forwarding original",{incomingRuleId:A.ruleId,knownRuleIds:O.state.requestEditors.rules.map((A=>A.id))});const e={};return Object.entries((null==(t=A.request)?void 0:t.headers)||{}).forEach((([A,t])=>{e[A]=String(t??"")})),void Y.resolvePendingRequestEdit({requestId:A.requestId,cancel:!1,headers:e,queryParams:A.queryParams||{},body:"string"==typeof(null==(r=A.request)?void 0:r.body)?A.request.body:null==(null==(n=A.request)?void 0:n.body)?null:JSON.stringify(A.request.body)})}x("MFM_REQUEST_EDIT_REQ rule matched, opening popup",A.ruleId),Y.setPendingRequestEdit({requestId:A.requestId,ruleId:A.ruleId,request:A.request,queryParams:A.queryParams||{},timestamp:A.timestamp||Date.now()})}else k("MFM_REQUEST_EDIT_REQ missing requestId — dropping")}},a=Object.keys(s).map((A=>function(A,e){d(),i.has(A)||i.set(A,new Set);const t=i.get(A);return t.add(e),()=>{t.delete(e)}}(A,(e=>{(0,s[A])(e)}))));return O.state.token&&Y.fetchSavedMappings(),iA()&&O.state.interceptors.rules.length>0&&m({rules:O.state.interceptors.rules}),aA()&&O.state.requestEditors.rules.length>0&&p({rules:O.state.requestEditors.rules}),O.state.globalDelay.enabled&&O.state.globalDelay.seconds>0&&h(O.state.globalDelay),{destroy(){a.forEach((A=>A())),e&&e.remove()},actions:Y}}const wa={run:ha,initMFM:ha,actions:Y};window.MFM=wa}},e={};function t(r){var n=e[r];if(void 0!==n)return n.exports;var s=e[r]={exports:{}};return A[r](s,s.exports,t),s.exports}t.d=(A,e)=>{for(var r in e)t.o(e,r)&&!t.o(A,r)&&Object.defineProperty(A,r,{enumerable:!0,get:e[r]})},t.o=(A,e)=>Object.prototype.hasOwnProperty.call(A,e),t.r=A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})};const r=()=>"undefined"!=typeof process&&null!=process.versions?.node,n=A=>{try{return A?A.toLowerCase():A}catch(A){return console.log(A),null}},s=(A,e)=>{const t=A.split("/"),r=e.split("/");if(t.length!==r.length)return!1;for(let A=0;A<t.length;A++){const e=t[A];if(e!==r[A]&&":any"!==e)return!1}return!0};let o=[];function i(A){o=A}function a(){return o}function l(A,e="get"){const t=A=>A.startsWith("/")?A:`/${A}`,r=t(A);for(const i of o)if(n(i.apiMethod)===n(e)){const n=t(i.apiEndpoint);if(n===r||s(n,r)){console.log(`[MockForMe] Match Found: ${e} ${A} -> ${i.apiEndpoint}`);const t={url:A,method:i.apiMethod,_ack:i._ack||null};return i._ri_&&(t._ri_=i._ri_),t}}return null}const c="JAVASCRIPT",d="CHROME_EXTENSION",u="mfmver",B="mockforme",m="9.0.0",g="https://api.mockforme.com",p=`${g}/mockforme`,f=`${g}/gateway/3f4eae522b`;let h=null,w=null,Q=null,C=[];function U({_o:A,mk:e,_mck:t,_rules:r}){h=A,w=e,Q=t,C=r}function b(){return C}function F(){return`${p}/${h}/${w}`}function y(){return Q}const v=A=>{try{return new URL(A,window.location.origin).toString()}catch{return A}},E=function(A,e,t){const n=r();var s;function o(){if(4==s.readyState)if(s.status.toString().match(/^20[0-9]$/)){var A=function(){var A=s.getResponseHeader("Content-Type"),e=s.responseText;if(A){var t=A.split(";");try{return"application/json"===t[0]?JSON.parse(e):e}catch(A){throw"Unable to convert response header"}}}();e.call(this,A,s)}else t.call(this,s.responseText,s)}function i(A,e){var t=[];for(var r in A)if(A.hasOwnProperty(r)){var n=e?e+"["+r+"]":r,s=A[r];t.push("object"==typeof s?i(s,n):encodeURIComponent(n)+"="+encodeURIComponent(s))}return t.join("&")}return n||(window.XMLHttpRequest?s=new XMLHttpRequest:window.ActiveXObject&&(s=new ActiveXObject("Microsoft.XMLHTTP"))),{request:function(){if(!n){if(window.XMLHttpRequest)s.onload=o;else{if(!window.ActiveXObject)throw"unable to process ajax";s.onreadystatechange=o}var e=i(A.params);if("get"==A.method.toLowerCase()&&"object"==typeof A.params){if(-1==A.url.indexOf("?"))A.url+="?";else{var t=A.url.split("?");t[1]&&t[1].split("=")[1]&&(A.url+="&")}A.url+=e}A.hasOwnProperty("async")||(A.async=!0),s.open(A.method,A.url,A.async),A.headers&&function(A){for(let e in A)s.setRequestHeader(e,A[e])}(A.headers),s.send(e)}}}};function H({di:A,iv:e},t){var r;const n=function(A,e){const t=e.length;return A.split("").map(((A,r)=>String.fromCharCode(A.charCodeAt(0)^e.charCodeAt(r%t)))).join("")}((r=A,"undefined"!=typeof Buffer?Buffer.from(r,"base64").toString("utf8"):decodeURIComponent(escape(atob(r)))),t+e);return JSON.parse(n)}function I(A,e,t,r){fetch(f,{method:"GET",headers:{[B]:A,[u]:m,"x-mfm-adaptor":e}}).then((A=>{if(!A.ok)throw A;return A.json()})).then((A=>{if(A){const{di:e,iv:r,_o:n,_mck:s,mk:o,r:a}=A,l=H({di:e,iv:r},n);U({_o:n,mk:o,_mck:s,_rules:a}),l&&(i(l),t(l,{_o:n,mk:o,_mck:s,_rules:a}))}})).catch((A=>{console.error("Error in loading mocked APIs:",A),r(A)}))}const x="MFM_INTERCEPTOR_RULES";let k=[];const M=new Map;function L(){try{if("undefined"==typeof localStorage)return[];const A=localStorage.getItem(x);if(!A)return[];const e=JSON.parse(A);return Array.isArray(e)?e.filter((A=>A&&A.enabled)):[]}catch(A){return[]}}function S(A){k=Array.isArray(A)?A.filter((A=>A&&A.enabled)):[]}function K(A,e){if(!A||!e)return null;if(!k.length&&(k=L(),!k.length))return null;const t=String(A).toUpperCase();return k.find((A=>A.enabled&&String(A.method).toUpperCase()===t&&A.url===e))||null}function D({requestId:A,ruleId:e,request:t,response:r,timeoutMs:n=3e5}){return new Promise((s=>{const o=setTimeout((()=>{M.has(A)&&(M.delete(A),s({requestId:A,simulateTimeout:!1,delayMs:0,statusCode:r?.statusCode??200,headers:r?.headers||{},body:r?.body}))}),n);M.set(A,{resolve:s,timer:o});try{"undefined"!=typeof window&&window.postMessage({type:"MFM_DEBUG_INTERCEPT_REQ",payload:{requestId:A,ruleId:e,request:t,response:r,timestamp:Date.now()}},"*")}catch(e){clearTimeout(o),M.delete(A),s({requestId:A,simulateTimeout:!1,delayMs:0,statusCode:r?.statusCode??200,headers:r?.headers||{},body:r?.body})}}))}k=L(),"undefined"!=typeof document&&"function"==typeof document.addEventListener&&document.addEventListener("mfm:rule-sync",(A=>{const e=A&&A.detail;e&&"debugger"===e.kind&&S(e.payload?.rules||[])})),"undefined"!=typeof window&&"function"==typeof window.addEventListener&&window.addEventListener("storage",(A=>{A.key===x&&(k=L())}));const T="MFM_REQUEST_EDITOR_RULES";let R=[];const O=new Map;function q(){try{if("undefined"==typeof localStorage)return[];const A=localStorage.getItem(T);if(!A)return[];const e=JSON.parse(A);return Array.isArray(e)?e.filter((A=>A&&A.enabled)):[]}catch(A){return[]}}function N(A){R=Array.isArray(A)?A.filter((A=>A&&A.enabled)):[]}function _(A,e){if(!A||!e)return null;if(!R.length&&(R=q(),!R.length))return null;const t=String(A).toUpperCase();return R.find((A=>A.enabled&&String(A.method).toUpperCase()===t&&A.url===e))||null}function P(A,e,t){const r={};return Object.entries(e?.headers||{}).forEach((([A,e])=>{r[A]=String(null==e?"":e)})),{requestId:A,cancel:!1,headers:r,queryParams:t||{},body:"string"==typeof e?.body?e.body:null}}function G({requestId:A,ruleId:e,request:t,queryParams:r,timeoutMs:n=3e5}){return new Promise((s=>{const o=setTimeout((()=>{O.has(A)&&(O.delete(A),s(P(A,t,r)))}),n);O.set(A,{resolve:s,timer:o});try{"undefined"!=typeof window&&window.postMessage({type:"MFM_REQUEST_EDIT_REQ",payload:{requestId:A,ruleId:e,request:t,queryParams:r,timestamp:Date.now()}},"*")}catch(e){clearTimeout(o),O.delete(A),s(P(A,t,r))}}))}R=q(),"undefined"!=typeof document&&"function"==typeof document.addEventListener&&document.addEventListener("mfm:rule-sync",(A=>{const e=A&&A.detail;e&&"editor"===e.kind&&N(e.payload?.rules||[])})),"undefined"!=typeof window&&"function"==typeof window.addEventListener&&window.addEventListener("storage",(A=>{A.key===T&&(R=q())}));const V="MFM_GLOBAL_DELAY";let J={enabled:!1,seconds:0},X=0;function Y(){try{if("undefined"==typeof localStorage)return{enabled:!1,seconds:0};const A=localStorage.getItem(V);if(!A)return{enabled:!1,seconds:0};const e=JSON.parse(A);return e&&"object"==typeof e?{enabled:!!e.enabled&&Number.isFinite(e.seconds)&&e.seconds>0,seconds:Number.isFinite(e.seconds)?Number(e.seconds):0}:{enabled:!1,seconds:0}}catch(A){return{enabled:!1,seconds:0}}}function j(){const A=Date.now();return A-X>500&&(J=Y(),X=A),J.enabled&&J.seconds>0?Math.round(1e3*J.seconds):0}J=Y(),X=Date.now(),"undefined"!=typeof window&&"function"==typeof window.addEventListener&&window.addEventListener("storage",(A=>{A.key===V&&(J=Y(),X=Date.now())}));const W="MFM_TOKEN_ERROR",$=new class{constructor(A={}){r()||(this.token=A.token||("undefined"!=typeof localStorage?localStorage.getItem("MFM_TOKEN"):null),this.isAuthenticated=!!this.token,this.onAuthSuccess=A.onAuthSuccess||(()=>{}),this.mappings=A.mappings||[],this.rules=A.rules||[],this.widgetKey=A.widgetKey||null,this.interceptionEnabled="undefined"==typeof localStorage||"false"!==localStorage.getItem("MFM_INTERCEPTION_ENABLED"),this.setupMessageListeners())}setupMessageListeners(){"undefined"!=typeof window&&window.addEventListener("message",(A=>{const{type:e,payload:t}=A.data||{};if(e&&"string"==typeof e&&e.startsWith("MFM_"))switch(e){case"MFM_REQ_MAPPINGS":this.refreshMappings();break;case"MFM_REQ_SAVED_MAPPINGS":this.handleReqSavedMappings();break;case"MFM_SUBMIT_TOKEN":this.handleTokenSubmission(t?.token);break;case"MFM_DEL_CLIENT_TOKEN":this.handleTokenDeletion();break;case"MFM_TOGGLE_INTERCEPTION":this.interceptionEnabled=!!t?.enabled,"undefined"!=typeof localStorage&&localStorage.setItem("MFM_INTERCEPTION_ENABLED",this.interceptionEnabled);break;case"MFM_DEBUG_RULES_UPDATE":S(t?.rules||[]);break;case"MFM_DEBUG_INTERCEPT_RES":!function(A){if(!A||!A.requestId)return;const e=M.get(A.requestId);e&&(clearTimeout(e.timer),M.delete(A.requestId),e.resolve(A))}(t);break;case"MFM_REQUEST_EDIT_RULES_UPDATE":N(t?.rules||[]);break;case"MFM_REQUEST_EDIT_RES":!function(A){if(!A||!A.requestId)return;const e=O.get(A.requestId);e&&(clearTimeout(e.timer),O.delete(A.requestId),e.resolve(A))}(t);break;case"MFM_GLOBAL_DELAY_UPDATE":!function(A){if(!A||"object"!=typeof A)return J={enabled:!1,seconds:0},void(X=Date.now());J={enabled:!!A.enabled&&Number.isFinite(A.seconds)&&A.seconds>0,seconds:Number.isFinite(A.seconds)?Number(A.seconds):0},X=Date.now()}(t)}}))}init(){if("undefined"!=typeof document&&this.checkVisibility()&&("undefined"!=typeof window&&Promise.resolve().then(t.bind(t,133)).then((()=>{window.MFM&&"function"==typeof window.MFM.run&&window.MFM.run()})).catch((A=>{console.error("[MockForMe] Failed to load mfm-widget",A)})),console.log("[MockForMe] Widget initialized"),this.token)){const A=this.getSavedMappings();A&&(this.mappings=A.mappings||[],this.rules=A.meta?._rules||[],this.onAuthSuccess(this.token,this.mappings,A.meta),this.updateMappings(this.mappings,A.meta))}}setWidgetKey(A){this.widgetKey=A,this.init()}checkVisibility(){return!this.widgetKey||"undefined"!=typeof localStorage&&localStorage.getItem("widgetKey")===this.widgetKey}handleTokenSubmission(A){A&&(this.token=A,this.isAuthenticated=!0,"undefined"!=typeof localStorage&&localStorage.setItem("MFM_TOKEN",A),this.refreshMappings())}handleTokenDeletion(){this.token=null,this.isAuthenticated=!1,"undefined"!=typeof localStorage&&(localStorage.removeItem("MFM_TOKEN"),localStorage.removeItem("MFM_CACHED_MAPPINGS")),this.mappings=[],this.rules=[],this.onAuthSuccess(null,[],{_rules:[]}),this.updateMappings([],{_rules:[]})}refreshMappings(){this.token&&I(this.token,"JAVASCRIPT",((A,e)=>{this.mappings=A||[],this.rules=e?._rules||[],this.saveMappings(A,e),this.onAuthSuccess(this.token,this.mappings,e),this.updateMappings(this.mappings,e)}),(A=>{console.error("[MockForMe] Failed to fetch mappings",A),A instanceof Response&&A.headers&&"true"===A.headers.get("mfm-invalid-token")&&this.sendMessage(W,{message:"Unauthorized: Invalid token"}),this.updateMappings([],{_rules:[]})}))}saveMappings(A,e){if("undefined"!=typeof localStorage)try{localStorage.setItem("MFM_CACHED_MAPPINGS",JSON.stringify({mappings:A,meta:e}))}catch(A){console.error("[MockForMe] Failed to save mappings to storage",A)}}handleReqSavedMappings(){const A=this.getSavedMappings();A?(this.mappings=A.mappings||[],this.rules=A.meta?._rules||[],this.onAuthSuccess(this.token,this.mappings,A.meta),this.updateMappings(this.mappings,A.meta)):this.refreshMappings()}getSavedMappings(){if("undefined"==typeof localStorage)return null;try{const A=localStorage.getItem("MFM_CACHED_MAPPINGS");return A?JSON.parse(A):null}catch(A){return null}}updateMappings(A,e){this.sendMessage("MFM_RES_MAPPINGS",{apis:A.map((A=>({method:A.apiMethod,url:A.apiEndpoint}))),rules:(e?._rules||[]).map((A=>{const e="object"==typeof A.rule&&null!==A.rule?A.rule:{},t={...A,...e},r=t.timingAction||{},n=r.activeAction||"MODIFY";let s="MODIFY";"delay"===n?s="DELAY":"delay_and_timeout"===n?s="TIMEOUT":"delay_and_redirect"===n&&(s="REDIRECT");const o={ruleName:t.ruleName||t._id||"Unnamed Rule",type:s,conditions:t.conditions||[],modificationActions:t.modificationActions||{}};return("MODIFY"!==s||r.activeAction)&&(o.timingAction=r),o})),token:this.token})}addRequest(A,e){if(!this.interceptionEnabled)return;const t=A=>{if(!A)return{};let e={};return"string"==typeof A?A.split("\r\n").forEach((A=>{const t=A.split(": "),r=t.shift();r&&(e[r]=t.join(": "))})):e="function"==typeof A.entries?Object.fromEntries(A.entries()):A,Object.keys(e).reduce(((A,t)=>(A[t.toLowerCase()]=e[t],A)),{})},r={requestId:e.requestId||Math.random().toString(36).substring(7),interceptionType:"mocked"===A?"MOCKED":"OTHER",request:{method:e.method,url:e.url,headers:t(e.requestHeaders||e.headers),body:e.requestBody||e.body},response:e.pending&&void 0===e.status?null:{statusCode:e.status,headers:t(e.responseHeaders),body:e.responseBody,endTime:(new Date).toISOString()},rule:e.rule};if(e.pending)this.sendMessage("MFM_REQ",r);else if(this.sendMessage("MFM_RES",r),r.response&&r.response.headers){const A=r.response.headers["mfm-invalid-token"];if("true"===A||!0===A){const{message:A}=e.responseBody;console.warn("[MockForMe] Invalid token detected from response headers"),this.sendMessage(W,{message:A||"Unauthorized: Invalid token detected from response headers"}),this.handleTokenDeletion()}}}sendMessage(A,e){"undefined"!=typeof window&&window.postMessage({type:A,payload:e},"*")}};class Z{static match(A,e){if(!Array.isArray(e)||0===e.length)return!1;const{url:t,headers:r,queryParams:n,body:s}=A,o="undefined"!=typeof window?window.location.origin:globalThis.location?.origin||"http://localhost";for(const A of e){let e="";const{type:i,key:a,operator:l,value:c}=A;switch(i){case"URL":try{e=new URL(t,o).pathname}catch{e=t}break;case"QUERY_PARAM":if(n&&void 0!==n[a])e=String(n[a]);else try{e=new URL(t,o).searchParams.get(a)||""}catch{e=""}break;case"REQUEST_BODY":if(a){if("object"==typeof s&&null!==s)e=void 0!==s[a]?String(s[a]):"";else if("string"==typeof s)try{const A=JSON.parse(s);e=void 0!==A[a]?String(A[a]):""}catch{e=""}}else e="object"==typeof s?JSON.stringify(s):String(s||"");break;case"REQUEST_HEADER":if(a){const A=a?.toLowerCase();if(e="",r){const t=Object.keys(r).find((e=>e.toLowerCase()===A));e=t?String(r[t]):""}}else e=JSON.stringify(r||{});break;default:return!1}if(!this.evaluate(e,l,c))return!1}return!0}static evaluate(A,e,t){const r=e?.toLowerCase(),n=String(A),s=String(t);switch(r){case"contains":return n.includes(s);case"equal":case"equals":return n===s;case"regexp":try{let A=s;if(A.startsWith("/")&&A.lastIndexOf("/")>0){const e=A.lastIndexOf("/"),t=A.slice(1,e),r=A.slice(e+1);return new RegExp(t,r).test(n)}return new RegExp(A).test(n)}catch{return!1}default:return!1}}}class z{static async apply(A){if(!A||!A.activeAction)return{type:"passThrough",delay:0};const{activeAction:e,actions:t}=A,r=t?.[e];if(!r)return{type:"passThrough",delay:0};const n={type:"passThrough",delay:0},s=Number(r.value||0);switch(e){case"delay":n.delay=s,n.delay>0&&await new Promise((A=>setTimeout(A,1e3*n.delay)));break;case"redirect":case"delay_and_redirect":n.type="redirect",n.delay=s,n.redirectUrl=r.redirectUrl,n.delay>0&&await new Promise((A=>setTimeout(A,1e3*n.delay)));break;case"delay_and_timeout":n.type="timeout",n.delay=s,n.delay>0&&await new Promise((A=>setTimeout(A,1e3*n.delay)))}return n}}class AA{static applyRequestModifications(A,e){if(!e)return A;let{url:t,method:r,headers:n,queryParams:s,body:o}={...A};n&&(n={...n}),s&&(s={...s});const{modifyQueryParams:i,modifyRequestBody:a,modifyRequestHeaders:l}=e;if(i?.enabled)try{const A=new URL(t,"undefined"!=typeof window?window.location.href:"http://localhost");Array.isArray(i.remove)&&i.remove.forEach((e=>{A.searchParams.delete(e),s&&delete s[e]})),Array.isArray(i.add)&&i.add.forEach((({key:e,value:t})=>{A.searchParams.set(e,t),s&&(s[e]=t)})),t=A.toString()}catch(A){console.error("[MockForMe] Failed to modify query params",A)}l?.enabled&&(n={...n},Array.isArray(l.remove)&&l.remove.forEach((A=>{const e=A.toLowerCase(),t=Object.keys(n).find((A=>A.toLowerCase()===e));t&&delete n[t]})),Array.isArray(l.add)&&l.add.forEach((({key:A,value:e})=>{n[A]=e})));const c=String(r||"GET").toUpperCase(),d="GET"===c||"HEAD"===c;if(a?.enabled&&!d)try{let A=null;if("string"==typeof o)try{A=JSON.parse(o)}catch{A={}}else if("object"==typeof o&&null!==o)try{A=JSON.parse(JSON.stringify(o))}catch{A={...o}}else(Array.isArray(a.add)&&a.add.length>0||Array.isArray(a.update)&&a.update.length>0)&&(A={});A&&(Array.isArray(a.remove)&&a.remove.forEach((e=>delete A[e])),Array.isArray(a.add)&&a.add.forEach((({key:e,value:t})=>A[e]=t)),Array.isArray(a.update)&&a.update.forEach((({key:e,value:t})=>A[e]=t)),o=JSON.stringify(A))}catch(A){console.error("[MockForMe] Failed to modify request body",A)}return{...A,url:t,headers:n,queryParams:s,body:o}}static applyResponseModifications(A,e){if(!e?.modifyResponseHeaders?.enabled)return A;const{modifyResponseHeaders:t}=e,r={...A};return Array.isArray(t.remove)&&t.remove.forEach((A=>{const e=A.toLowerCase(),t=Object.keys(r).find((A=>A.toLowerCase()===e));t&&delete r[t]})),Array.isArray(t.add)&&t.add.forEach((({key:A,value:e})=>{r[A]=e})),r}}class eA{static match(A,e){if(!Array.isArray(e)||0===e.length)return null;for(const t of e){const e=t.rule||t;if(e.conditions&&Array.isArray(e.conditions)&&Z.match(A,e.conditions)){const A=e.timingAction?.activeAction||"";return{action:A,config:e.timingAction?.actions?.[A]||{},rule:e}}}return null}static async apply(A,e){if(!A)return null;const t=A.rule||A,r=AA.applyRequestModifications(e,t.modificationActions);return{...await z.apply(t.timingAction),modifiedRequest:r,rule:t}}static applyResponseModifications(A,e){return AA.applyResponseModifications(A,e)}}class tA{static apply({target:A=("undefined"!=typeof window?window:globalThis),originalFetch:e=A.fetch,ruleProvider:t=()=>[],mappingProvider:r=A=>null,onBeforeRequest:n=A=>{},onRuleMatch:s=async(A,e,t,r,n)=>null,onMockMatch:o=async(A,e,t,r,n)=>null,onOtherRequest:i=async(A,e,t,r)=>null,isEnabled:a=()=>!0}){e&&(A.fetch=async function(A,l={}){if(!a())return e(A,l);let c;try{const e="string"==typeof A?A:A.url,t=String(l.method||(A instanceof Request?A.method:"GET")).toUpperCase().trim(),r=Math.random().toString(36).substring(7);c={url:e,method:t,headers:l.headers||(A instanceof Request?A.headers:{}),body:l.body||(A instanceof Request?"{binary/stream}":null),requestId:r,queryParams:tA.getQueryParams(e)},n(c)}catch(t){return console.warn("[MockForMe] Fetch Interceptor Setup Error:",t),e(A,l)}try{const n=t(),a=eA.match(c,n);if(a){const t=await s(a,c,A,l,e);if(t)return t}const d=r(c);if(d){const t=await o(d,c,A,l,e);if(t)return t}const u=await i(c,A,l,e);if(u)return u}catch(A){if(A.message.includes("timed out")||"AbortError"===A.name||A.message.includes("rules"))throw A;throw console.warn("[MockForMe] Interceptor Hook Error:",A),A}return e(A,l)})}static getQueryParams(A){try{const e="undefined"!=typeof window?window.location.origin:"http://localhost",t=new URL(A,e).searchParams;return Object.fromEntries(t.entries())}catch{return{}}}}class rA{static apply({target:A=("undefined"!=typeof window?window:{}),OriginalXHR:e=A.XMLHttpRequest,ruleProvider:t=()=>[],mappingProvider:r=A=>null,onBeforeRequest:n=A=>{},onRuleMatch:s=(A,e,t,r)=>{r.call(t.proxy,e.body)},onMockMatch:o=(A,e,t,r)=>{r.call(t.proxy,e.body)},onOtherRequest:i=(A,e,t)=>{t.call(e.proxy,A.body)},isEnabled:a=()=>!0}){e&&(A.XMLHttpRequest=class{constructor(){return this._xhr=new e,this._headers={},this._method=null,this._url=null,this._body=null,this._requestId=null,this._startTime=null,this._captured=!1,this._isMocked=!1,this.proxy=new Proxy(this,{get:(A,e)=>{if(e in A)return A[e];const t=A._xhr[e];return"function"==typeof t?t.bind(A._xhr):t},set:(A,e,t)=>e in A?(A[e]=t,!0):(A._xhr[e]=t,!0)}),this.proxy}_capture(A,e,t,r={}){if(this._captured)return;this._captured=!0;const n=A=>{const e=`on${A}`;(this[e]||this._xhr[e])?.(),this._xhr.dispatchEvent(new Event(A))};if("Aborted"!==A)try{Object.defineProperty(this.proxy,"responseText",{value:e,configurable:!0}),Object.defineProperty(this.proxy,"response",{value:e,configurable:!0}),Object.defineProperty(this.proxy,"status",{value:Number(A)||0,configurable:!0}),Object.defineProperty(this.proxy,"statusText",{value:200==A?"OK":"",configurable:!0})}catch(A){console.warn("[MockForMe] Error setting XHR props",A)}Object.defineProperty(this.proxy,"readyState",{value:4,configurable:!0}),n("readystatechange"),"Aborted"===A||r.aborted?n("abort"):0===A||"Error"===A||r.error?n("error"):"Timeout"===A||r.timeout?n("timeout"):n("load")}open(A,e,t=!0,r=null,n=null){this._method=(A||"").toUpperCase().trim();try{this._url=new URL(e,"undefined"!=typeof window?window.location.href:"http://localhost").toString()}catch(A){this._url=e}return this._xhr.open(A,e,t,r,n)}setRequestHeader(A,e){return this._headers[A]=e,this._xhr.setRequestHeader(A,e)}send(A){if(!a())return this._xhr.send(A);this._body=A,this._requestId=Math.random().toString(36).substring(7),this._startTime=Date.now();const e={url:this._url,method:this._method,headers:this._headers,body:this._body,requestId:this._requestId,startTime:this._startTime,queryParams:rA.getQueryParams(this._url)};n(e);const l=t(),c=eA.match(e,l),d=A=>this._xhr.send(A);if(c)return this._isMocked=!0,s(c,e,this,d);const u=r(e);return u?(this._isMocked=!0,o(u,e,this,d)):(this._isMocked=!1,i(e,this,d))}})}static getQueryParams(A){try{const e="undefined"!=typeof window?window.location.origin:"http://localhost",t=new URL(A,e).searchParams;return Object.fromEntries(t.entries())}catch{return{}}}}const nA=(A,e=null,t=c)=>{if(r())return;let n="string"==typeof A?A:A?.token,s="object"==typeof A?A?.widgetKey:null;if(s?$.setWidgetKey(s):$.init(),t===c)try{n&&("undefined"!=typeof localStorage&&(localStorage.removeItem("mockforme-token"),localStorage.setItem("MFM_TOKEN",n)),$.token=n,$.isAuthenticated=!0),!n&&$.token&&(n=$.token),$.onAuthSuccess=(A,e,t)=>{i(e),U(t),$.updateMappings(e,t)}}catch(A){console.log("Error in showing mockforme widget",A)}e||={mappings:[],_o:null,mk:null,_mck:null,_rules:[]};const{mappings:o=[],_o:g,mk:p,_mck:h,_rules:w=[]}=e;return i(o),U({_o:g,mk:p,_mck:h,_rules:w}),{run:(A,e=()=>{})=>{if(function(A,e){if("undefined"!=typeof window){if(window._mfm_intercepted)return;window._mfm_intercepted=!0}const t=()=>$.token||A;tA.apply({isEnabled:()=>$.interceptionEnabled,ruleProvider:()=>b(),mappingProvider:A=>{try{return l(new URL(A.url,window.location.origin).pathname,A.method)}catch{return null}},onRuleMatch:async(A,e,t,r,n)=>{const s=e.requestId||Math.random().toString(36).substring(7),o=Date.now();$.addRequest("mocked",{...e,requestId:s,pending:!0,startTime:o,rule:A});const i=await eA.apply(A,e),{modifiedRequest:a,type:l,delay:c,redirectUrl:d}=i;if("timeout"!==l&&$.addRequest("mocked",{...a,requestId:s,pending:!0,startTime:o,rule:A}),"timeout"===l){const e=Date.now()-o;throw $.addRequest("mocked",{...a,requestId:s,status:"Aborted",pending:!1,duration:e,aborted:!0,rule:A}),new Error("Fetch timed out by rules")}if("redirect"===l&&!d)throw new Error("rules: Redirect missing URL");let u="redirect"===l?d:a.url,B={...r};a.headers&&(B.headers=a.headers),a.body&&(B.body=a.body);let m=null;if("redirect"===l){m=Math.random().toString(36).substring(7);const A={url:d,method:a.method,headers:B.headers||{},body:B.body,requestId:m,queryParams:tA.getQueryParams(d),requestHeaders:B.headers||{},requestBody:B.body,pending:!0,startTime:Date.now()};$.addRequest("mocked",A)}return n(u,B).then((async A=>{const e=Date.now()-o;let t=Object.fromEntries(A.headers.entries());if(i.rule.modificationActions?.modifyResponseHeaders?.enabled&&(t=eA.applyResponseModifications(t,i.rule.modificationActions)),"redirect"===l&&m){const e=A.clone(),r=e.headers.get("content-type")||"",n=Date.now()-o;try{let s;s=r.includes("application/json")?await e.json():await e.text(),$.addRequest("mocked",{url:d,method:a.method,requestId:m,status:A.status,pending:!1,duration:n,responseHeaders:t,responseBody:s,requestHeaders:B.headers||{},requestBody:B.body})}catch(e){$.addRequest("mocked",{url:d,method:a.method,requestId:m,status:A.status,pending:!1,duration:n,responseHeaders:t,requestHeaders:B.headers||{},requestBody:B.body})}}return $.addRequest("mocked",{...a,requestId:s,status:A.status,pending:!1,duration:e,responseHeaders:t,rule:i.rule}),A})).catch((A=>{const e=Date.now()-o,t="AbortError"===A.name||A.message.includes("aborted");if($.addRequest("mocked",{...a,requestId:s,status:t?"Aborted":0,pending:!1,duration:e,rule:i.rule}),"redirect"===l&&m&&$.addRequest("mocked",{url:d,method:a.method,requestId:m,status:t?"Aborted":0,pending:!1,duration:e,error:!t}),"redirect"===l){const e=A.message||"Redirect failed";if(!e.includes("rules"))throw new Error(`rules: Redirect failed - ${e}`)}throw A}))},onMockMatch:async(A,r,n,s,o)=>{const i=r.requestId||Math.random().toString(36).substring(7),a=Date.now();$.addRequest("mocked",{...r,requestId:i,pending:!0,startTime:a});const l=t(),c=new URL(r.url,window.location.origin).search;let g=`${F()}${A.url}${c}`,p={[B]:l,[u]:m,"x-mfm-adaptor":e};const f=y();f&&A._ack&&(p["x-mfm-key"]=`${f}-${A._ack}`),A?._ri_&&(p._ri_=A._ri_);const h=n instanceof Request?n.headers:s.headers,w=new Headers(h||{});Object.entries(p).forEach((([A,e])=>w.set(A,e))),w.set("x-mfm-internal","true");let Q=s.body;if(!Q&&n instanceof Request){const A=n.clone();"GET"!==A.method&&"HEAD"!==A.method&&(Q=await A.text())}const C={method:r.method,headers:w,credentials:n instanceof Request&&n.credentials||s.credentials||"include",mode:n instanceof Request&&n.mode||s.mode||"cors"};return e===d?(({actualUrl:A,url:e,method:t,headers:r,body:n,credentials:s,mode:o,rule:i})=>{const a=`${Date.now()}-${Math.random()}`,l=v(e);return new Promise(((e,c)=>{window.addEventListener("message",(function A(t){if(t.source!==window)return;const r=t.data;if("INTERCEPTED_RESPONSE"===r?.type&&r?.requestId===a){if(window.removeEventListener("message",A),r?.response?.error)return c(new Error(r.response.message));const{status:t,headers:n,body:s}=r.response,o=new Response(s,{status:t,headers:n});o._rawHeaders=n,e(o)}})),window.postMessage({type:"REQUEST_INTERCEPTED",requestId:a,payload:{actualUrl:A,url:l,method:t,headers:r,body:n,credentials:s,mode:o,rule:i}},"*")}))})({actualUrl:r.url,url:g,method:r.method,headers:Object.fromEntries(w.entries()),body:Q,credentials:C.credentials,mode:C.mode}).then((A=>(A.clone().text().then((e=>{const t=Date.now()-a,n=A._rawHeaders||Object.fromEntries(A.headers.entries());$.addRequest("mocked",{...r,requestId:i,status:A.status,responseHeaders:n,responseBody:e,pending:!1,duration:t})})),A))):(Q&&(C.body=Q),o(g,C).then((async A=>{const e=A.clone(),t=e.headers.get("content-type")||"",n=Date.now()-a,s=t=>($.addRequest("mocked",{...r,requestId:i,status:A.status,responseHeaders:Object.fromEntries(e.headers.entries()),responseBody:t,pending:!1,duration:n}),new Response("string"==typeof t?t:JSON.stringify(t),{status:A.status,headers:e.headers}));return t.includes("application/json")?e.json().then(s):e.text().then(s)})).catch((A=>{const e=Date.now()-a;return $.addRequest("mocked",{...r,requestId:i,status:0,pending:!1,duration:e}),o(n,s)})))},onOtherRequest:async(A,e,t,r)=>{const n=t?.headers||(e instanceof Request?e.headers:{});let s=!1;n instanceof Headers?s="true"===n.get("x-mfm-internal"):"object"==typeof n&&(s="true"===n["x-mfm-internal"]);const o=F();if(A.url.startsWith(o)&&(s=!0),"OPTIONS"===A.method||s)return r(e,t);const i=A.requestId,a=Date.now();$.addRequest("other",{...A,requestId:i,pending:!0,startTime:a});const l=_(A.method,A.url),c=K(A.method,A.url);let d=e,u=t,B=A;if(l){const e={};try{new URL(A.url,"undefined"!=typeof window?window.location.origin:"http://localhost").searchParams.forEach(((A,t)=>{e[t]=A}))}catch(A){}const r=await G({requestId:i,ruleId:l.id,request:{method:A.method,url:A.url,headers:A.headers,body:A.body},queryParams:e});if(r.cancel){$.addRequest("other",{...A,requestId:i,status:"Cancelled",pending:!1,duration:Date.now()-a,error:!0});const e=new Error("Request cancelled by MockForMe request editor");throw e.name="AbortError",e}let n=A.url;try{const e=new URL(A.url,"undefined"!=typeof window?window.location.origin:"http://localhost");[...e.searchParams.keys()].forEach((A=>e.searchParams.delete(A))),Object.entries(r.queryParams||{}).forEach((([A,t])=>{e.searchParams.set(A,String(t??""))})),n="string"==typeof A.url&&A.url.startsWith("/")?`${e.pathname}${e.search}`:e.href}catch(A){}const s=String(A.method||"GET").toUpperCase(),o="GET"!==s&&"HEAD"!==s;u={...t,method:A.method,headers:r.headers||{},body:o?null==r.body?void 0:r.body:void 0},d=n,B={...A,url:n,headers:r.headers||{},body:o?r.body:null}}const m=j();m>0&&await new Promise((A=>setTimeout(A,m)));let g=null,p=null;try{g=await r(d,u)}catch(A){p=A}if(c){let e="",t=0,r={};if(g){try{e=await g.clone().text()}catch(A){}t=g.status,r=Object.fromEntries(g.headers.entries())}else p&&(e=p.message||"Network error",t=0);const n=await D({requestId:i,ruleId:c.id,request:{method:B.method,url:B.url,headers:B.headers,body:B.body},response:{statusCode:t,headers:r,body:e}});if(n.simulateTimeout){$.addRequest("other",{...A,requestId:i,status:"Timeout",responseHeaders:{},pending:!1,duration:Date.now()-a,timeout:!0});const e=new Error("Network request failed (simulated by MockForMe debugger)");throw e.name="AbortError",e}n.delayMs>0&&await new Promise((A=>setTimeout(A,n.delayMs)));const s=Number(n.statusCode),o=Number.isFinite(s)&&s>=200&&s<=599?s:t>=200?t:200,l=n.headers&&"object"==typeof n.headers?n.headers:r,d="string"==typeof n.body?n.body:null==n.body?"":JSON.stringify(n.body);$.addRequest("other",{...A,requestId:i,status:o,responseHeaders:l,responseBody:d,pending:!1,duration:Date.now()-a});const u={};return Object.entries(l).forEach((([A,e])=>{const t=A.toLowerCase();"content-length"!==t&&"content-encoding"!==t&&"transfer-encoding"!==t&&(u[A]=e)})),new Response(d,{status:o,statusText:g?g.statusText:"",headers:new Headers(u)})}const f=Date.now()-a;if(p){const e="AbortError"===p.name||(p.message||"").includes("aborted"),t="TimeoutError"===p.name||(p.message||"").includes("timed out");throw $.addRequest("other",{...A,requestId:i,status:e?"Aborted":t?"Timeout":"Error",pending:!1,duration:f,aborted:e,timeout:t,error:!e&&!t}),p}const h=Object.fromEntries(g.headers.entries());$.addRequest("other",{...A,requestId:i,status:g.status,responseHeaders:h,pending:!0,duration:f});try{const e=await g.clone().text();$.addRequest("other",{...A,requestId:i,status:g.status,responseHeaders:h,responseBody:e,pending:!1,duration:f})}catch(e){$.addRequest("other",{...A,requestId:i,status:g.status,responseHeaders:h,pending:!1,duration:f})}return g}}),rA.apply({isEnabled:()=>$.interceptionEnabled,ruleProvider:()=>b(),mappingProvider:A=>{try{return l(new URL(A.url,window.location.origin).pathname,A.method)}catch{return null}},onRuleMatch:async(A,e,t,r)=>{const n=e.requestId,s=Date.now();$.addRequest("mocked",{...e,requestId:n,pending:!0,startTime:s,rule:A});const o=await eA.apply(A,e),{modifiedRequest:i,type:a,redirectUrl:l}=o;"timeout"!==a&&$.addRequest("mocked",{...i,requestId:n,pending:!0,startTime:s,rule:A});let c=null;if("redirect"===a){c=Math.random().toString(36).substring(7);const A={url:l,method:i.method,headers:i.headers||{},body:i.body,requestId:c,queryParams:(()=>{try{const A="undefined"!=typeof window?window.location.origin:"http://localhost",e=new URL(l,A).searchParams;return Object.fromEntries(e.entries())}catch{return{}}})(),requestHeaders:i.headers||{},requestBody:i.body,pending:!0,startTime:Date.now()};$.addRequest("mocked",A)}const d=(A,e,r,d={})=>{const u=Date.now()-s;if(o.rule.modificationActions?.modifyResponseHeaders?.enabled){let A="string"==typeof r?Object.fromEntries(r.split("\r\n").filter((A=>A)).map((A=>A.split(": ")))):r;A=eA.applyResponseModifications(A,o.rule.modificationActions),r=A}$.addRequest("mocked",{...i,requestId:n,status:A,responseBody:e,responseHeaders:r,pending:!1,duration:u,rule:o.rule,...d}),"redirect"===a&&c&&$.addRequest("mocked",{url:l,method:i.method,requestId:c,status:A,responseBody:e,responseHeaders:r,pending:!1,duration:u,requestHeaders:i.headers||{},requestBody:i.body,...d}),t._capture(A,e,r,d)};if("timeout"===a)return d("Aborted","Timed out by rule",{},{aborted:!0}),void t._xhr.abort();if("redirect"===a){if(!l)return void d(0,"Redirect missing URL",{},{error:!0});t._xhr.open(i.method,l,!0)}else i.url!==e.url&&t._xhr.open(i.method,i.url,!0);i.headers&&Object.entries(i.headers).forEach((([A,e])=>{try{t._xhr.setRequestHeader(A,e)}catch(A){}})),t._xhr.addEventListener("abort",(()=>d("Aborted","Aborted",{},{aborted:!0})),{once:!0}),t._xhr.addEventListener("error",(()=>d(0,"Error",{},{error:!0})),{once:!0}),t._xhr.addEventListener("timeout",(()=>d("Timeout","Timeout",{},{timeout:!0})),{once:!0}),t._xhr.addEventListener("load",(()=>d(t._xhr.status,t._xhr.responseText,t._xhr.getAllResponseHeaders())),{once:!0}),r(i.body)},onMockMatch:(A,r,n,s)=>{const o=r.requestId,i=Date.now(),a=t(),l=new URL(r.url,window.location.origin);let c=`${F()}${A.url}${l.search}`,g={[B]:a,[u]:m,"x-mfm-adaptor":e};const p=y();p&&A._ack&&(g["x-mfm-key"]=`${p}-${A._ack}`),A?._ri_&&(g._ri_=A._ri_),g["x-mfm-internal"]="true";const f={...r.headers,...g};$.addRequest("mocked",{...r,requestId:o,pending:!0,startTime:i});const h=(A,e,t,s={})=>{const a=Date.now()-i;$.addRequest("mocked",{...r,requestId:o,status:A,responseBody:e,responseHeaders:t,pending:!1,duration:a,...s}),n._capture(A,e,t,s)};if(n._xhr.addEventListener("abort",(()=>h("Aborted","Aborted",{},{aborted:!0})),{once:!0}),n._xhr.addEventListener("error",(()=>h(0,"Error",{},{error:!0})),{once:!0}),n._xhr.addEventListener("timeout",(()=>h("Timeout","Timeout",{},{timeout:!0})),{once:!0}),e===d)(({actualUrl:A,url:e,method:t,headers:r,body:n,onSuccess:s,onError:o,rule:i})=>{const a=`${Date.now()}-${Math.random()}`,l=v(e);window.addEventListener("message",(function A(e){if(e.source!==window)return;const t=e.data;if("INTERCEPTED_RESPONSE"===t.type&&t.requestId===a){if(window.removeEventListener("message",A),t.response?.error)return o?.(t.response.message);const{body:e,status:r,headers:n}=t.response;s?.({body:e,status:r,headers:n})}})),window.postMessage({type:"REQUEST_INTERCEPTED",requestId:a,payload:{actualUrl:A,url:l,method:t,headers:r,body:n,credentials:"same-origin",mode:"cors",rule:i}},"*")})({actualUrl:r.url,url:c,method:r.method,headers:f,body:r.body,onSuccess:({body:A,status:e,headers:t})=>h(e,A,t||{}),onError:A=>h(0,A.message||"XHR Error",{},{error:!0})});else{const A=new window.XMLHttpRequest;A.open(r.method,c,!0);for(const e in f)A.setRequestHeader(e,f[e]);A.withCredentials=n.proxy.withCredentials,A.onload=()=>h(A.status,A.responseText,A.getAllResponseHeaders()),A.onerror=()=>h(0,"Network Error",{},{error:!0}),A.ontimeout=()=>h("Timeout","Request timed out",{},{timeout:!0}),A.send(r.body)}},onOtherRequest:(A,e,t)=>{const r="true"===A.headers?.["x-mfm-internal"],n=F(),s=A.url.startsWith(n);if("OPTIONS"===A.method||r||s)return t(A.body);const o=Date.now();$.addRequest("other",{...A,pending:!0,startTime:o});const i=_(A.method,A.url),a=K(A.method,A.url);let l=A;const c=(t,r,n,s={})=>{const i=Date.now()-o;$.addRequest("other",{...A,status:t,responseBody:r,responseHeaders:n,pending:!1,duration:i,...s}),e._capture(t,r,n,s)};if(e._xhr.addEventListener("abort",(()=>c("Aborted","Aborted",{},{aborted:!0})),{once:!0}),e._xhr.addEventListener("error",(()=>c(0,"Error",{},{error:!0})),{once:!0}),e._xhr.addEventListener("timeout",(()=>c("Timeout","Timeout",{},{timeout:!0})),{once:!0}),e._xhr.addEventListener("load",(async()=>{const t=e._xhr.status,r=e._xhr.responseText,n=e._xhr.getAllResponseHeaders();if(a){const e={};"string"==typeof n&&n.split("\r\n").forEach((A=>{const t=A.indexOf(": ");t>0&&(e[A.slice(0,t)]=A.slice(t+2))}));const s=await D({requestId:A.requestId,ruleId:a.id,request:{method:l.method,url:l.url,headers:l.headers,body:l.body},response:{statusCode:t,headers:e,body:r}});if(s.simulateTimeout)return void c("Timeout","Timeout (Debugger)",{},{timeout:!0});s.delayMs>0&&await new Promise((A=>setTimeout(A,s.delayMs)));const o=Number(s.statusCode)||t,i=s.headers&&"object"==typeof s.headers?s.headers:e,d="string"==typeof s.body?s.body:null==s.body?"":JSON.stringify(s.body);c(o,d,i)}else c(t,r,n)}),{once:!0}),e._xhr.addEventListener("readystatechange",(()=>{if(e._xhr.readyState>=2&&!e._captured){const t=e._xhr.status;if(t>0){const r=Date.now()-o;$.addRequest("other",{...A,status:t,responseHeaders:e._xhr.getAllResponseHeaders(),pending:e._xhr.readyState<4,duration:r})}}})),i)return void(async()=>{const r={};try{new URL(A.url,"undefined"!=typeof window?window.location.origin:"http://localhost").searchParams.forEach(((A,e)=>{r[e]=A}))}catch(A){}const n=await G({requestId:A.requestId,ruleId:i.id,request:{method:A.method,url:A.url,headers:A.headers,body:A.body},queryParams:r});if(n.cancel){c("Cancelled","Cancelled by editor",{},{aborted:!0});try{e._xhr.abort()}catch(A){}return}let s=A.url;try{const e=new URL(A.url,"undefined"!=typeof window?window.location.origin:"http://localhost");[...e.searchParams.keys()].forEach((A=>e.searchParams.delete(A))),Object.entries(n.queryParams||{}).forEach((([A,t])=>{e.searchParams.set(A,String(t??""))})),s="string"==typeof A.url&&A.url.startsWith("/")?`${e.pathname}${e.search}`:e.href}catch(A){}if(s!==A.url)try{e._xhr.open(A.method,s,!0)}catch(A){}Object.entries(n.headers||{}).forEach((([A,t])=>{try{e._xhr.setRequestHeader(A,String(t??""))}catch(A){}})),l={...A,url:s,headers:n.headers||{},body:n.body};const o=String(A.method||"GET").toUpperCase(),a="GET"!==o&&"HEAD"!==o?null==n.body?null:n.body:null,d=j();d>0?setTimeout((()=>{try{t(a)}catch(A){}}),d):t(a)})();const d=j();d>0?setTimeout((()=>{try{t(A.body)}catch(A){}}),d):t(A.body)}})}(n,t),g&&p)$.mappings=o,$.rules=w,A?.(o,{_o:g,mk:p,_mck:h,_rules:w});else if(n){const r=$.getSavedMappings();if(r&&r.mappings&&r.mappings.length>0)return $.mappings=r.mappings,$.rules=r.meta?._rules||[],i(r.mappings),U(r.meta),$.updateMappings(r.mappings,r.meta),void A?.(r.mappings,r.meta);!function(e,t,r,n){E({method:"get",url:f,async:!1,headers:{[B]:e,[u]:m,"x-mfm-adaptor":t}},(e=>{if(e)try{const{di:n,iv:s,_o:o,_mck:a,mk:l,r:c}=e,d=H({di:n,iv:s},o);U({_o:o,mk:l,_mck:a,_rules:c}),d&&(i(d),t=d,r={_o:o,mk:l,_mck:a,_rules:c},$.saveMappings(t,r),$.updateMappings(t,r),A?.(t,r))}catch(A){return void n(new Error("Unable to fetch mocked apis"))}var t,r}),(A=>{console.log("Error in loading mocked apis"),n(A)})).request()}(n,t,0,e)}},checkIfApiToBeMocked:l,getMappings:a,doFetchMappings:(A,e)=>{I(n||$.token,t,((e,t)=>{$.updateMappings(e,t),A?.(e,t)}),e)},recheckWidgetVisibility:()=>{$.init()}}},sA=r();sA||(globalThis.mockforme=nA);let oA=nA;sA&&(oA=A=>({run:()=>{}}));const iA=oA;export{iA as mockforme};
|