@hprint/plugins 0.0.1-alpha.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.
Files changed (153) hide show
  1. package/dist/index.css +1 -0
  2. package/dist/index.js +478 -0
  3. package/dist/index.mjs +41731 -0
  4. package/dist/src/index.d.ts +8 -0
  5. package/dist/src/index.d.ts.map +1 -0
  6. package/dist/src/objects/Arrow.d.ts +2 -0
  7. package/dist/src/objects/Arrow.d.ts.map +1 -0
  8. package/dist/src/objects/ThinTailArrow.d.ts +2 -0
  9. package/dist/src/objects/ThinTailArrow.d.ts.map +1 -0
  10. package/dist/src/plugins/AddBaseTypePlugin.d.ts +26 -0
  11. package/dist/src/plugins/AddBaseTypePlugin.d.ts.map +1 -0
  12. package/dist/src/plugins/AlignGuidLinePlugin.d.ts +16 -0
  13. package/dist/src/plugins/AlignGuidLinePlugin.d.ts.map +1 -0
  14. package/dist/src/plugins/BarCodePlugin.d.ts +68 -0
  15. package/dist/src/plugins/BarCodePlugin.d.ts.map +1 -0
  16. package/dist/src/plugins/CenterAlignPlugin.d.ts +29 -0
  17. package/dist/src/plugins/CenterAlignPlugin.d.ts.map +1 -0
  18. package/dist/src/plugins/ControlsPlugin.d.ts +11 -0
  19. package/dist/src/plugins/ControlsPlugin.d.ts.map +1 -0
  20. package/dist/src/plugins/ControlsRotatePlugin.d.ts +11 -0
  21. package/dist/src/plugins/ControlsRotatePlugin.d.ts.map +1 -0
  22. package/dist/src/plugins/CopyPlugin.d.ts +30 -0
  23. package/dist/src/plugins/CopyPlugin.d.ts.map +1 -0
  24. package/dist/src/plugins/CreateElementPlugin.d.ts +121 -0
  25. package/dist/src/plugins/CreateElementPlugin.d.ts.map +1 -0
  26. package/dist/src/plugins/DeleteHotKeyPlugin.d.ts +25 -0
  27. package/dist/src/plugins/DeleteHotKeyPlugin.d.ts.map +1 -0
  28. package/dist/src/plugins/DrawLinePlugin.d.ts +26 -0
  29. package/dist/src/plugins/DrawLinePlugin.d.ts.map +1 -0
  30. package/dist/src/plugins/DrawPolygonPlugin.d.ts +41 -0
  31. package/dist/src/plugins/DrawPolygonPlugin.d.ts.map +1 -0
  32. package/dist/src/plugins/DringPlugin.d.ts +33 -0
  33. package/dist/src/plugins/DringPlugin.d.ts.map +1 -0
  34. package/dist/src/plugins/FlipPlugin.d.ts +26 -0
  35. package/dist/src/plugins/FlipPlugin.d.ts.map +1 -0
  36. package/dist/src/plugins/FontPlugin.d.ts +33 -0
  37. package/dist/src/plugins/FontPlugin.d.ts.map +1 -0
  38. package/dist/src/plugins/FreeDrawPlugin.d.ts +23 -0
  39. package/dist/src/plugins/FreeDrawPlugin.d.ts.map +1 -0
  40. package/dist/src/plugins/GroupAlignPlugin.d.ts +24 -0
  41. package/dist/src/plugins/GroupAlignPlugin.d.ts.map +1 -0
  42. package/dist/src/plugins/GroupPlugin.d.ts +24 -0
  43. package/dist/src/plugins/GroupPlugin.d.ts.map +1 -0
  44. package/dist/src/plugins/GroupTextEditorPlugin.d.ts +18 -0
  45. package/dist/src/plugins/GroupTextEditorPlugin.d.ts.map +1 -0
  46. package/dist/src/plugins/HistoryPlugin.d.ts +30 -0
  47. package/dist/src/plugins/HistoryPlugin.d.ts.map +1 -0
  48. package/dist/src/plugins/ImageStroke.d.ts +18 -0
  49. package/dist/src/plugins/ImageStroke.d.ts.map +1 -0
  50. package/dist/src/plugins/LayerPlugin.d.ts +31 -0
  51. package/dist/src/plugins/LayerPlugin.d.ts.map +1 -0
  52. package/dist/src/plugins/LockPlugin.d.ts +27 -0
  53. package/dist/src/plugins/LockPlugin.d.ts.map +1 -0
  54. package/dist/src/plugins/MaskPlugin.d.ts +38 -0
  55. package/dist/src/plugins/MaskPlugin.d.ts.map +1 -0
  56. package/dist/src/plugins/MaterialPlugin.d.ts +45 -0
  57. package/dist/src/plugins/MaterialPlugin.d.ts.map +1 -0
  58. package/dist/src/plugins/MiddleMousePlugin.d.ts +18 -0
  59. package/dist/src/plugins/MiddleMousePlugin.d.ts.map +1 -0
  60. package/dist/src/plugins/MoveHotKeyPlugin.d.ts +12 -0
  61. package/dist/src/plugins/MoveHotKeyPlugin.d.ts.map +1 -0
  62. package/dist/src/plugins/PathTextPlugin.d.ts +30 -0
  63. package/dist/src/plugins/PathTextPlugin.d.ts.map +1 -0
  64. package/dist/src/plugins/PolygonModifyPlugin.d.ts +28 -0
  65. package/dist/src/plugins/PolygonModifyPlugin.d.ts.map +1 -0
  66. package/dist/src/plugins/PrintPlugin.d.ts +39 -0
  67. package/dist/src/plugins/PrintPlugin.d.ts.map +1 -0
  68. package/dist/src/plugins/PsdPlugin.d.ts +17 -0
  69. package/dist/src/plugins/PsdPlugin.d.ts.map +1 -0
  70. package/dist/src/plugins/QrCodePlugin.d.ts +137 -0
  71. package/dist/src/plugins/QrCodePlugin.d.ts.map +1 -0
  72. package/dist/src/plugins/ResizePlugin.d.ts +44 -0
  73. package/dist/src/plugins/ResizePlugin.d.ts.map +1 -0
  74. package/dist/src/plugins/RulerPlugin.d.ts +24 -0
  75. package/dist/src/plugins/RulerPlugin.d.ts.map +1 -0
  76. package/dist/src/plugins/SimpleClipImagePlugin.d.ts +18 -0
  77. package/dist/src/plugins/SimpleClipImagePlugin.d.ts.map +1 -0
  78. package/dist/src/plugins/UnitPlugin.d.ts +84 -0
  79. package/dist/src/plugins/UnitPlugin.d.ts.map +1 -0
  80. package/dist/src/plugins/WaterMarkPlugin.d.ts +40 -0
  81. package/dist/src/plugins/WaterMarkPlugin.d.ts.map +1 -0
  82. package/dist/src/plugins/WorkspacePlugin.d.ts +57 -0
  83. package/dist/src/plugins/WorkspacePlugin.d.ts.map +1 -0
  84. package/dist/src/types/eventType.d.ts +11 -0
  85. package/dist/src/types/eventType.d.ts.map +1 -0
  86. package/dist/src/utils/psd.d.ts +3 -0
  87. package/dist/src/utils/psd.d.ts.map +1 -0
  88. package/dist/src/utils/ruler/guideline.d.ts +4 -0
  89. package/dist/src/utils/ruler/guideline.d.ts.map +1 -0
  90. package/dist/src/utils/ruler/index.d.ts +5 -0
  91. package/dist/src/utils/ruler/index.d.ts.map +1 -0
  92. package/dist/src/utils/ruler/ruler.d.ts +147 -0
  93. package/dist/src/utils/ruler/ruler.d.ts.map +1 -0
  94. package/dist/src/utils/ruler/utils.d.ts +50 -0
  95. package/dist/src/utils/ruler/utils.d.ts.map +1 -0
  96. package/dist/src/utils/units.d.ts +22 -0
  97. package/dist/src/utils/units.d.ts.map +1 -0
  98. package/package.json +51 -0
  99. package/src/assets/edgecontrol.svg +17 -0
  100. package/src/assets/lock.svg +7 -0
  101. package/src/assets/middlecontrol.svg +17 -0
  102. package/src/assets/middlecontrolhoz.svg +17 -0
  103. package/src/assets/rotateicon.svg +20 -0
  104. package/src/assets/style/resizePlugin.css +27 -0
  105. package/src/index.ts +121 -0
  106. package/src/objects/Arrow.js +47 -0
  107. package/src/objects/ThinTailArrow.js +50 -0
  108. package/src/plugins/AddBaseTypePlugin.ts +107 -0
  109. package/src/plugins/AlignGuidLinePlugin.ts +1141 -0
  110. package/src/plugins/BarCodePlugin.ts +860 -0
  111. package/src/plugins/CenterAlignPlugin.ts +133 -0
  112. package/src/plugins/ControlsPlugin.ts +251 -0
  113. package/src/plugins/ControlsRotatePlugin.ts +111 -0
  114. package/src/plugins/CopyPlugin.ts +255 -0
  115. package/src/plugins/CreateElementPlugin.ts +548 -0
  116. package/src/plugins/DeleteHotKeyPlugin.ts +57 -0
  117. package/src/plugins/DrawLinePlugin.ts +162 -0
  118. package/src/plugins/DrawPolygonPlugin.ts +205 -0
  119. package/src/plugins/DringPlugin.ts +125 -0
  120. package/src/plugins/FlipPlugin.ts +59 -0
  121. package/src/plugins/FontPlugin.ts +165 -0
  122. package/src/plugins/FreeDrawPlugin.ts +49 -0
  123. package/src/plugins/GroupAlignPlugin.ts +365 -0
  124. package/src/plugins/GroupPlugin.ts +82 -0
  125. package/src/plugins/GroupTextEditorPlugin.ts +198 -0
  126. package/src/plugins/HistoryPlugin.ts +181 -0
  127. package/src/plugins/ImageStroke.ts +121 -0
  128. package/src/plugins/LayerPlugin.ts +108 -0
  129. package/src/plugins/LockPlugin.ts +240 -0
  130. package/src/plugins/MaskPlugin.ts +155 -0
  131. package/src/plugins/MaterialPlugin.ts +224 -0
  132. package/src/plugins/MiddleMousePlugin.ts +45 -0
  133. package/src/plugins/MoveHotKeyPlugin.ts +46 -0
  134. package/src/plugins/PathTextPlugin.ts +89 -0
  135. package/src/plugins/PolygonModifyPlugin.ts +224 -0
  136. package/src/plugins/PrintPlugin.ts +81 -0
  137. package/src/plugins/PsdPlugin.ts +52 -0
  138. package/src/plugins/QrCodePlugin.ts +393 -0
  139. package/src/plugins/ResizePlugin.ts +274 -0
  140. package/src/plugins/RulerPlugin.ts +78 -0
  141. package/src/plugins/SimpleClipImagePlugin.ts +244 -0
  142. package/src/plugins/UnitPlugin.ts +327 -0
  143. package/src/plugins/WaterMarkPlugin.ts +257 -0
  144. package/src/plugins/WorkspacePlugin.ts +307 -0
  145. package/src/types/eventType.ts +11 -0
  146. package/src/utils/psd.js +432 -0
  147. package/src/utils/ruler/guideline.ts +145 -0
  148. package/src/utils/ruler/index.ts +91 -0
  149. package/src/utils/ruler/ruler.ts +924 -0
  150. package/src/utils/ruler/utils.ts +162 -0
  151. package/src/utils/units.ts +133 -0
  152. package/tsconfig.json +10 -0
  153. package/vite.config.ts +29 -0
package/dist/index.js ADDED
@@ -0,0 +1,478 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const V=require("@hprint/core");var _s=(e=>(e.ONE="selectOne",e.MULTI="selectMultiple",e.CANCEL="selectCancel",e))(_s||{}),ja=(e=>(e.EMPTY="",e.ONE="one",e.MULTI="multiple",e))(ja||{});const su=class{static getDeviceDPI(){if(!this._deviceDPI)try{const t=document.createElement("div");t.style.width="1in",t.style.height="0",t.style.position="absolute",t.style.visibility="hidden",document.body.appendChild(t);const n=t.offsetWidth;document.body.removeChild(t),this._deviceDPI=n*window.devicePixelRatio||this.CONSTANTS.DEFAULT_DPI}catch{console.warn("无法获取设备DPI,使用默认值:",this.CONSTANTS.DEFAULT_DPI),this._deviceDPI=this.CONSTANTS.DEFAULT_DPI}return this._deviceDPI}static mmToPx(t,n,r){const f=this.normalizeNumber(t,"毫米值"),p=this.getValidDpi(n),v=f*p/this.CONSTANTS.INCH_TO_MM;return r?.direct?v:Math.ceil(v)}static pxToMm(t,n,r){const f=this.normalizeNumber(t,"像素值"),p=this.getValidDpi(n);return f*this.CONSTANTS.INCH_TO_MM/p}static mmToPxBatch(t,n){return t.map(r=>this.mmToPx(r,n,void 0))}static pxToMmBatch(t,n){return t.map(r=>this.pxToMm(r,n,void 0))}static getValidDpi(t){if(t!=null){const r=this.normalizeNumber(t,"DPI值");if(r<=0)throw new Error("DPI值必须大于0");return r}const n=this.getDeviceDPI();if(n<=0)throw new Error("DPI值必须大于0");return n}static normalizeNumber(t,n){if(typeof t=="string"){const r=t.trim();if(r==="")throw new Error(`${n}不能为空字符串`);const f=Number(r);if(isNaN(f))throw new Error(`${n}必须是有效数字,无法转换: "${t}"`);return f}if(typeof t!="number"||isNaN(t))throw new Error(`${n}必须是有效数字`);return t}static validateNumber(t,n){this.normalizeNumber(t,n)}static resetCache(){this._deviceDPI=null}static ptToPx(t,n){const r=this.normalizeNumber(t,"磅值"),f=this.getValidDpi(void 0),p=r*f/72;return n?.direct?p:Math.ceil(p)}static pxToPt(t){const n=this.normalizeNumber(t,"像素值"),r=this.getValidDpi(void 0);return n*72/r}static ptToPxBatch(t,n){return t.map(r=>this.ptToPx(r,n))}static pxToPtBatch(t){return t.map(n=>this.pxToPt(n))}static mmToPt(t){return this.normalizeNumber(t,"毫米值")*72/25.4}};su.devicePixelRatio=window.devicePixelRatio,su.CONSTANTS={INCH_TO_MM:25.4,DEFAULT_DPI:96,STANDARD_DPI:{SCREEN:96,PRINT:300,HIGH_RES:600}};let Wt=su;const c1=(e,t)=>{const n=[],r=Math.PI*2/e;let f=-Math.PI/2;e%2===0&&(f+=r/2);for(let p=0;p<e;p++){const v=p*r+f;n.push({x:Math.cos(v)*t,y:Math.sin(v)*t})}return n},l1={getPolygonVertices:c1};var fo,u1=new Uint8Array(16);function h1(){if(!fo&&(fo=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!fo))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return fo(u1)}const f1=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function d1(e){return typeof e=="string"&&f1.test(e)}var se=[];for(var Qc=0;Qc<256;++Qc)se.push((Qc+256).toString(16).substr(1));function g1(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=(se[e[t+0]]+se[e[t+1]]+se[e[t+2]]+se[e[t+3]]+"-"+se[e[t+4]]+se[e[t+5]]+"-"+se[e[t+6]]+se[e[t+7]]+"-"+se[e[t+8]]+se[e[t+9]]+"-"+se[e[t+10]]+se[e[t+11]]+se[e[t+12]]+se[e[t+13]]+se[e[t+14]]+se[e[t+15]]).toLowerCase();if(!d1(n))throw TypeError("Stringified UUID is invalid");return n}function p1(e,t,n){e=e||{};var r=e.random||(e.rng||h1)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,g1(r)}function A1(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const Ti=process.env.NODE_ENV!=="production"?Object.freeze({}):{};process.env.NODE_ENV!=="production"&&Object.freeze([]);const _i=()=>{},v1=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Xn=Object.assign,y1=Object.prototype.hasOwnProperty,au=(e,t)=>y1.call(e,t),ne=Array.isArray,Pr=e=>Na(e)==="[object Map]",m1=e=>Na(e)==="[object Set]",de=e=>typeof e=="function",Tn=e=>typeof e=="string",zi=e=>typeof e=="symbol",Ee=e=>e!==null&&typeof e=="object",_1=e=>(Ee(e)||de(e))&&de(e.then)&&de(e.catch),b1=Object.prototype.toString,Na=e=>b1.call(e),xA=e=>Na(e).slice(8,-1),w1=e=>Na(e)==="[object Object]",Vu=e=>Tn(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,IA=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},OA=IA(e=>e.charAt(0).toUpperCase()+e.slice(1)),C1=IA(e=>e?`on${OA(e)}`:""),Wn=(e,t)=>!Object.is(e,t);let Df;const Ua=()=>Df||(Df=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ju(e){if(ne(e)){const t={};for(let n=0;n<e.length;n++){const r=e[n],f=Tn(r)?I1(r):Ju(r);if(f)for(const p in f)t[p]=f[p]}return t}else if(Tn(e)||Ee(e))return e}const E1=/;(?![^(]*\))/g,S1=/:([^]+)/,x1=/\/\*[^]*?\*\//g;function I1(e){const t={};return e.replace(x1,"").split(E1).forEach(n=>{if(n){const r=n.split(S1);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Ku(e){let t="";if(Tn(e))t=e;else if(ne(e))for(let n=0;n<e.length;n++){const r=Ku(e[n]);r&&(t+=r+" ")}else if(Ee(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}function An(e,...t){console.warn(`[Vue warn] ${e}`,...t)}let Rt;const Fc=new WeakSet;class O1{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Fc.has(this)&&(Fc.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||TA(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Rf(this),kA(this);const t=Rt,n=on;Rt=this,on=!0;try{return this.fn()}finally{process.env.NODE_ENV!=="production"&&Rt!==this&&An("Active effect was not restored correctly - this is likely a Vue internal bug."),DA(this),Rt=t,on=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)eh(t);this.deps=this.depsTail=void 0,Rf(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Fc.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){cu(this)&&this.run()}get dirty(){return cu(this)}}let BA=0,bi,wi;function TA(e,t=!1){if(e.flags|=8,t){e.next=wi,wi=e;return}e.next=bi,bi=e}function Zu(){BA++}function th(){if(--BA>0)return;if(wi){let t=wi;for(wi=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;bi;){let t=bi;for(bi=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function kA(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function DA(e){let t,n=e.depsTail,r=n;for(;r;){const f=r.prevDep;r.version===-1?(r===n&&(n=f),eh(r),B1(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=f}e.deps=t,e.depsTail=n}function cu(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(RA(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function RA(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ki)||(e.globalVersion=ki,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!cu(e))))return;e.flags|=2;const t=e.dep,n=Rt,r=on;Rt=e,on=!0;try{kA(e);const f=e.fn(e._value);(t.version===0||Wn(f,e._value))&&(e.flags|=128,e._value=f,t.version++)}catch(f){throw t.version++,f}finally{Rt=n,on=r,DA(e),e.flags&=-3}}function eh(e,t=!1){const{dep:n,prevSub:r,nextSub:f}=e;if(r&&(r.nextSub=f,e.prevSub=void 0),f&&(f.prevSub=r,e.nextSub=void 0),process.env.NODE_ENV!=="production"&&n.subsHead===e&&(n.subsHead=f),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let p=n.computed.deps;p;p=p.nextDep)eh(p,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function B1(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let on=!0;const MA=[];function Hr(){MA.push(on),on=!1}function zr(){const e=MA.pop();on=e===void 0?!0:e}function Rf(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Rt;Rt=void 0;try{t()}finally{Rt=n}}}let ki=0;class T1{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}let nh=class{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0,process.env.NODE_ENV!=="production"&&(this.subsHead=void 0)}track(t){if(!Rt||!on||Rt===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Rt)n=this.activeLink=new T1(Rt,this),Rt.deps?(n.prevDep=Rt.depsTail,Rt.depsTail.nextDep=n,Rt.depsTail=n):Rt.deps=Rt.depsTail=n,PA(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=Rt.depsTail,n.nextDep=void 0,Rt.depsTail.nextDep=n,Rt.depsTail=n,Rt.deps===n&&(Rt.deps=r)}return process.env.NODE_ENV!=="production"&&Rt.onTrack&&Rt.onTrack(Xn({effect:Rt},t)),n}trigger(t){this.version++,ki++,this.notify(t)}notify(t){Zu();try{if(process.env.NODE_ENV!=="production")for(let n=this.subsHead;n;n=n.nextSub)n.sub.onTrigger&&!(n.sub.flags&8)&&n.sub.onTrigger(Xn({effect:n.sub},t));for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{th()}}};function PA(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)PA(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),process.env.NODE_ENV!=="production"&&e.dep.subsHead===void 0&&(e.dep.subsHead=e),e.dep.subs=e}}const lu=new WeakMap,fr=Symbol(process.env.NODE_ENV!=="production"?"Object iterate":""),uu=Symbol(process.env.NODE_ENV!=="production"?"Map keys iterate":""),Di=Symbol(process.env.NODE_ENV!=="production"?"Array iterate":"");function we(e,t,n){if(on&&Rt){let r=lu.get(e);r||lu.set(e,r=new Map);let f=r.get(n);f||(r.set(n,f=new nh),f.map=r,f.key=n),process.env.NODE_ENV!=="production"?f.track({target:e,type:t,key:n}):f.track()}}function zn(e,t,n,r,f,p){const v=lu.get(e);if(!v){ki++;return}const u=o=>{o&&(process.env.NODE_ENV!=="production"?o.trigger({target:e,type:t,key:n,newValue:r,oldValue:f,oldTarget:p}):o.trigger())};if(Zu(),t==="clear")v.forEach(u);else{const o=ne(e),s=o&&Vu(n);if(o&&n==="length"){const c=Number(r);v.forEach((i,l)=>{(l==="length"||l===Di||!zi(l)&&l>=c)&&u(i)})}else switch((n!==void 0||v.has(void 0))&&u(v.get(n)),s&&u(v.get(Di)),t){case"add":o?s&&u(v.get("length")):(u(v.get(fr)),Pr(e)&&u(v.get(uu)));break;case"delete":o||(u(v.get(fr)),Pr(e)&&u(v.get(uu)));break;case"set":Pr(e)&&u(v.get(fr));break}}th()}function Sr(e){const t=Bt(e);return t===e?t:(we(t,"iterate",Di),Se(e)?t:t.map(kn))}function rh(e){return we(e=Bt(e),"iterate",Di),e}function Gn(e,t){return vn(e)?Qr(e)?Mi(kn(t)):Mi(t):kn(t)}const k1={__proto__:null,[Symbol.iterator](){return Lc(this,Symbol.iterator,e=>Gn(this,e))},concat(...e){return Sr(this).concat(...e.map(t=>ne(t)?Sr(t):t))},entries(){return Lc(this,"entries",e=>(e[1]=Gn(this,e[1]),e))},every(e,t){return En(this,"every",e,t,void 0,arguments)},filter(e,t){return En(this,"filter",e,t,n=>n.map(r=>Gn(this,r)),arguments)},find(e,t){return En(this,"find",e,t,n=>Gn(this,n),arguments)},findIndex(e,t){return En(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return En(this,"findLast",e,t,n=>Gn(this,n),arguments)},findLastIndex(e,t){return En(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return En(this,"forEach",e,t,void 0,arguments)},includes(...e){return jc(this,"includes",e)},indexOf(...e){return jc(this,"indexOf",e)},join(e){return Sr(this).join(e)},lastIndexOf(...e){return jc(this,"lastIndexOf",e)},map(e,t){return En(this,"map",e,t,void 0,arguments)},pop(){return ai(this,"pop")},push(...e){return ai(this,"push",e)},reduce(e,...t){return Mf(this,"reduce",e,t)},reduceRight(e,...t){return Mf(this,"reduceRight",e,t)},shift(){return ai(this,"shift")},some(e,t){return En(this,"some",e,t,void 0,arguments)},splice(...e){return ai(this,"splice",e)},toReversed(){return Sr(this).toReversed()},toSorted(e){return Sr(this).toSorted(e)},toSpliced(...e){return Sr(this).toSpliced(...e)},unshift(...e){return ai(this,"unshift",e)},values(){return Lc(this,"values",e=>Gn(this,e))}};function Lc(e,t,n){const r=rh(e),f=r[t]();return r!==e&&!Se(e)&&(f._next=f.next,f.next=()=>{const p=f._next();return p.done||(p.value=n(p.value)),p}),f}const D1=Array.prototype;function En(e,t,n,r,f,p){const v=rh(e),u=v!==e&&!Se(e),o=v[t];if(o!==D1[t]){const i=o.apply(e,p);return u?kn(i):i}let s=n;v!==e&&(u?s=function(i,l){return n.call(this,Gn(e,i),l,e)}:n.length>2&&(s=function(i,l){return n.call(this,i,l,e)}));const c=o.call(v,s,r);return u&&f?f(c):c}function Mf(e,t,n,r){const f=rh(e);let p=n;return f!==e&&(Se(e)?n.length>3&&(p=function(v,u,o){return n.call(this,v,u,o,e)}):p=function(v,u,o){return n.call(this,v,Gn(e,u),o,e)}),f[t](p,...r)}function jc(e,t,n){const r=Bt(e);we(r,"iterate",Di);const f=r[t](...n);return(f===-1||f===!1)&&bs(n[0])?(n[0]=Bt(n[0]),r[t](...n)):f}function ai(e,t,n=[]){Hr(),Zu();const r=Bt(e)[t].apply(e,n);return th(),zr(),r}const R1=A1("__proto__,__v_isRef,__isVue"),QA=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(zi));function M1(e){zi(e)||(e=String(e));const t=Bt(this);return we(t,"has",e),t.hasOwnProperty(e)}class FA{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const f=this._isReadonly,p=this._isShallow;if(n==="__v_isReactive")return!f;if(n==="__v_isReadonly")return f;if(n==="__v_isShallow")return p;if(n==="__v_raw")return r===(f?p?H1:NA:p?$1:jA).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const v=ne(t);if(!f){let o;if(v&&(o=k1[n]))return o;if(n==="hasOwnProperty")return M1}const u=Reflect.get(t,n,xe(t)?t:r);if((zi(n)?QA.has(n):R1(n))||(f||we(t,"get",n),p))return u;if(xe(u)){const o=v&&Vu(n)?u:u.value;return f&&Ee(o)?Ri(o):o}return Ee(u)?f?Ri(u):UA(u):u}}class P1 extends FA{constructor(t=!1){super(!1,t)}set(t,n,r,f){let p=t[n];const v=ne(t)&&Vu(n);if(!this._isShallow){const s=vn(p);if(!Se(r)&&!vn(r)&&(p=Bt(p),r=Bt(r)),!v&&xe(p)&&!xe(r))return s?(process.env.NODE_ENV!=="production"&&An(`Set operation on key "${String(n)}" failed: target is readonly.`,t[n]),!0):(p.value=r,!0)}const u=v?Number(n)<t.length:au(t,n),o=Reflect.set(t,n,r,xe(t)?t:f);return t===Bt(f)&&(u?Wn(r,p)&&zn(t,"set",n,r,p):zn(t,"add",n,r)),o}deleteProperty(t,n){const r=au(t,n),f=t[n],p=Reflect.deleteProperty(t,n);return p&&r&&zn(t,"delete",n,void 0,f),p}has(t,n){const r=Reflect.has(t,n);return(!zi(n)||!QA.has(n))&&we(t,"has",n),r}ownKeys(t){return we(t,"iterate",ne(t)?"length":fr),Reflect.ownKeys(t)}}class Q1 extends FA{constructor(t=!1){super(!0,t)}set(t,n){return process.env.NODE_ENV!=="production"&&An(`Set operation on key "${String(n)}" failed: target is readonly.`,t),!0}deleteProperty(t,n){return process.env.NODE_ENV!=="production"&&An(`Delete operation on key "${String(n)}" failed: target is readonly.`,t),!0}}const F1=new P1,L1=new Q1,go=e=>Reflect.getPrototypeOf(e);function j1(e,t,n){return function(...r){const f=this.__v_raw,p=Bt(f),v=Pr(p),u=e==="entries"||e===Symbol.iterator&&v,o=e==="keys"&&v,s=f[e](...r),c=t?Mi:kn;return!t&&we(p,"iterate",o?uu:fr),{next(){const{value:i,done:l}=s.next();return l?{value:i,done:l}:{value:u?[c(i[0]),c(i[1])]:c(i),done:l}},[Symbol.iterator](){return this}}}}function po(e){return function(...t){if(process.env.NODE_ENV!=="production"){const n=t[0]?`on key "${t[0]}" `:"";An(`${OA(e)} operation ${n}failed: target is readonly.`,Bt(this))}return e==="delete"?!1:e==="clear"?void 0:this}}function N1(e,t){const n={get(r){const f=this.__v_raw,p=Bt(f),v=Bt(r);e||(Wn(r,v)&&we(p,"get",r),we(p,"get",v));const{has:u}=go(p),o=e?Mi:kn;if(u.call(p,r))return o(f.get(r));if(u.call(p,v))return o(f.get(v));f!==p&&f.get(r)},get size(){const r=this.__v_raw;return!e&&we(Bt(r),"iterate",fr),r.size},has(r){const f=this.__v_raw,p=Bt(f),v=Bt(r);return e||(Wn(r,v)&&we(p,"has",r),we(p,"has",v)),r===v?f.has(r):f.has(r)||f.has(v)},forEach(r,f){const p=this,v=p.__v_raw,u=Bt(v),o=e?Mi:kn;return!e&&we(u,"iterate",fr),v.forEach((s,c)=>r.call(f,o(s),o(c),p))}};return Xn(n,e?{add:po("add"),set:po("set"),delete:po("delete"),clear:po("clear")}:{add(r){!Se(r)&&!vn(r)&&(r=Bt(r));const f=Bt(this);return go(f).has.call(f,r)||(f.add(r),zn(f,"add",r,r)),this},set(r,f){!Se(f)&&!vn(f)&&(f=Bt(f));const p=Bt(this),{has:v,get:u}=go(p);let o=v.call(p,r);o?process.env.NODE_ENV!=="production"&&Pf(p,v,r):(r=Bt(r),o=v.call(p,r));const s=u.call(p,r);return p.set(r,f),o?Wn(f,s)&&zn(p,"set",r,f,s):zn(p,"add",r,f),this},delete(r){const f=Bt(this),{has:p,get:v}=go(f);let u=p.call(f,r);u?process.env.NODE_ENV!=="production"&&Pf(f,p,r):(r=Bt(r),u=p.call(f,r));const o=v?v.call(f,r):void 0,s=f.delete(r);return u&&zn(f,"delete",r,void 0,o),s},clear(){const r=Bt(this),f=r.size!==0,p=process.env.NODE_ENV!=="production"?Pr(r)?new Map(r):new Set(r):void 0,v=r.clear();return f&&zn(r,"clear",void 0,void 0,p),v}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=j1(r,e)}),n}function LA(e,t){const n=N1(e);return(r,f,p)=>f==="__v_isReactive"?!e:f==="__v_isReadonly"?e:f==="__v_raw"?r:Reflect.get(au(n,f)&&f in r?n:r,f,p)}const U1={get:LA(!1)},G1={get:LA(!0)};function Pf(e,t,n){const r=Bt(n);if(r!==n&&t.call(e,r)){const f=xA(e);An(`Reactive ${f} contains both the raw and reactive versions of the same object${f==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const jA=new WeakMap,$1=new WeakMap,NA=new WeakMap,H1=new WeakMap;function z1(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Y1(e){return e.__v_skip||!Object.isExtensible(e)?0:z1(xA(e))}function UA(e){return vn(e)?e:GA(e,!1,F1,U1,jA)}function Ri(e){return GA(e,!0,L1,G1,NA)}function GA(e,t,n,r,f){if(!Ee(e))return process.env.NODE_ENV!=="production"&&An(`value cannot be made ${t?"readonly":"reactive"}: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;const p=Y1(e);if(p===0)return e;const v=f.get(e);if(v)return v;const u=new Proxy(e,p===2?r:n);return f.set(e,u),u}function Qr(e){return vn(e)?Qr(e.__v_raw):!!(e&&e.__v_isReactive)}function vn(e){return!!(e&&e.__v_isReadonly)}function Se(e){return!!(e&&e.__v_isShallow)}function bs(e){return e?!!e.__v_raw:!1}function Bt(e){const t=e&&e.__v_raw;return t?Bt(t):e}const kn=e=>Ee(e)?UA(e):e,Mi=e=>Ee(e)?Ri(e):e;function xe(e){return e?e.__v_isRef===!0:!1}function Vn(e){return W1(e,!1)}function W1(e,t){return xe(e)?e:new q1(e,t)}class q1{constructor(t,n){this.dep=new nh,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Bt(t),this._value=n?t:kn(t),this.__v_isShallow=n}get value(){return process.env.NODE_ENV!=="production"?this.dep.track({target:this,type:"get",key:"value"}):this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||Se(t)||vn(t);t=r?t:Bt(t),Wn(t,n)&&(this._rawValue=t,this._value=r?t:kn(t),process.env.NODE_ENV!=="production"?this.dep.trigger({target:this,type:"set",key:"value",newValue:t,oldValue:n}):this.dep.trigger())}}function X1(e){return xe(e)?e.value:e}class V1{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new nh(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ki-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&Rt!==this)return TA(this,!0),!0;process.env.NODE_ENV}get value(){const t=process.env.NODE_ENV!=="production"?this.dep.track({target:this,type:"get",key:"value"}):this.dep.track();return RA(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter?this.setter(t):process.env.NODE_ENV!=="production"&&An("Write operation failed: computed value is readonly")}}function J1(e,t,n=!1){let r,f;de(e)?r=e:(r=e.get,f=e.set);const p=new V1(r,f,n);return process.env.NODE_ENV,p}const Ao={},ws=new WeakMap;let lr;function K1(e,t=!1,n=lr){if(n){let r=ws.get(n);r||ws.set(n,r=[]),r.push(e)}else process.env.NODE_ENV!=="production"&&!t&&An("onWatcherCleanup() was called when there was no active watcher to associate with.")}function Z1(e,t,n=Ti){const{immediate:r,deep:f,once:p,scheduler:v,augmentJob:u,call:o}=n,s=_=>{(n.onWarn||An)("Invalid watch source: ",_,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},c=_=>f?_:Se(_)||f===!1||f===0?Yn(_,1):Yn(_);let i,l,a,h,g=!1,d=!1;if(xe(e)?(l=()=>e.value,g=Se(e)):Qr(e)?(l=()=>c(e),g=!0):ne(e)?(d=!0,g=e.some(_=>Qr(_)||Se(_)),l=()=>e.map(_=>{if(xe(_))return _.value;if(Qr(_))return c(_);if(de(_))return o?o(_,2):_();process.env.NODE_ENV!=="production"&&s(_)})):de(e)?t?l=o?()=>o(e,2):e:l=()=>{if(a){Hr();try{a()}finally{zr()}}const _=lr;lr=i;try{return o?o(e,3,[h]):e(h)}finally{lr=_}}:(l=_i,process.env.NODE_ENV!=="production"&&s(e)),t&&f){const _=l,w=f===!0?1/0:f;l=()=>Yn(_(),w)}const A=()=>{i.stop()};if(p&&t){const _=t;t=(...w)=>{_(...w),A()}}let y=d?new Array(e.length).fill(Ao):Ao;const m=_=>{if(!(!(i.flags&1)||!i.dirty&&!_))if(t){const w=i.run();if(f||g||(d?w.some((S,O)=>Wn(S,y[O])):Wn(w,y))){a&&a();const S=lr;lr=i;try{const O=[w,y===Ao?void 0:d&&y[0]===Ao?[]:y,h];y=w,o?o(t,3,O):t(...O)}finally{lr=S}}}else i.run()};return u&&u(m),i=new O1(l),i.scheduler=v?()=>v(m,!1):m,h=_=>K1(_,!1,i),a=i.onStop=()=>{const _=ws.get(i);if(_){if(o)o(_,4);else for(const w of _)w();ws.delete(i)}},process.env.NODE_ENV!=="production"&&(i.onTrack=n.onTrack,i.onTrigger=n.onTrigger),t?r?m(!0):y=i.run():v?v(m.bind(null,!0),!0):i.run(),A.pause=i.pause.bind(i),A.resume=i.resume.bind(i),A.stop=A,A}function Yn(e,t=1/0,n){if(t<=0||!Ee(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,xe(e))Yn(e.value,t,n);else if(ne(e))for(let r=0;r<e.length;r++)Yn(e[r],t,n);else if(m1(e)||Pr(e))e.forEach(r=>{Yn(r,t,n)});else if(w1(e)){for(const r in e)Yn(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Yn(e[r],t,n)}return e}const dr=[];function t_(e){dr.push(e)}function e_(){dr.pop()}let Nc=!1;function ye(e,...t){if(Nc)return;Nc=!0,Hr();const n=dr.length?dr[dr.length-1].component:null,r=n&&n.appContext.config.warnHandler,f=n_();if(r)Ga(r,n,11,[e+t.map(p=>{var v,u;return(u=(v=p.toString)==null?void 0:v.call(p))!=null?u:JSON.stringify(p)}).join(""),n&&n.proxy,f.map(({vnode:p})=>`at <${r0(n,p.type)}>`).join(`
2
+ `),f]);else{const p=[`[Vue warn]: ${e}`,...t];f.length&&p.push(`
3
+ `,...r_(f)),console.warn(...p)}zr(),Nc=!1}function n_(){let e=dr[dr.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const r=e.component&&e.component.parent;e=r&&r.vnode}return t}function r_(e){const t=[];return e.forEach((n,r)=>{t.push(...r===0?[]:[`
4
+ `],...i_(n))}),t}function i_({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",r=e.component?e.component.parent==null:!1,f=` at <${r0(e.component,e.type,r)}`,p=">"+n;return e.props?[f,...o_(e.props),p]:[f+p]}function o_(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(r=>{t.push(...$A(r,e[r]))}),n.length>3&&t.push(" ..."),t}function $A(e,t,n){return Tn(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:xe(t)?(t=$A(e,Bt(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):de(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Bt(t),n?t:[`${e}=`,t])}const ih={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function Ga(e,t,n,r){try{return r?e(...r):e()}catch(f){sh(f,t,n)}}function oh(e,t,n,r){if(de(e)){const f=Ga(e,t,n,r);return f&&_1(f)&&f.catch(p=>{sh(p,t,n)}),f}if(ne(e)){const f=[];for(let p=0;p<e.length;p++)f.push(oh(e[p],t,n,r));return f}else process.env.NODE_ENV!=="production"&&ye(`Invalid value type passed to callWithAsyncErrorHandling(): ${typeof e}`)}function sh(e,t,n,r=!0){const f=t?t.vnode:null,{errorHandler:p,throwUnhandledErrorInProduction:v}=t&&t.appContext.config||Ti;if(t){let u=t.parent;const o=t.proxy,s=process.env.NODE_ENV!=="production"?ih[n]:`https://vuejs.org/error-reference/#runtime-${n}`;for(;u;){const c=u.ec;if(c){for(let i=0;i<c.length;i++)if(c[i](e,o,s)===!1)return}u=u.parent}if(p){Hr(),Ga(p,null,10,[e,o,s]),zr();return}}s_(e,n,f,r,v)}function s_(e,t,n,r=!0,f=!1){if(process.env.NODE_ENV!=="production"){const p=ih[t];if(n&&t_(n),ye(`Unhandled error${p?` during execution of ${p}`:""}`),n&&e_(),r)throw e;console.error(e)}else{if(f)throw e;console.error(e)}}const $e=[];let xn=-1;const Fr=[];let $n=null,Br=0;const a_=Promise.resolve();let hu=null;const c_=100;function l_(e){let t=xn+1,n=$e.length;for(;t<n;){const r=t+n>>>1,f=$e[r],p=Pi(f);p<e||p===e&&f.flags&2?t=r+1:n=r}return t}function HA(e){if(!(e.flags&1)){const t=Pi(e),n=$e[$e.length-1];!n||!(e.flags&2)&&t>=Pi(n)?$e.push(e):$e.splice(l_(t),0,e),e.flags|=1,zA()}}function zA(){hu||(hu=a_.then(WA))}function YA(e){ne(e)?Fr.push(...e):$n&&e.id===-1?$n.splice(Br+1,0,e):e.flags&1||(Fr.push(e),e.flags|=1),zA()}function u_(e){if(Fr.length){const t=[...new Set(Fr)].sort((n,r)=>Pi(n)-Pi(r));if(Fr.length=0,$n){$n.push(...t);return}for($n=t,process.env.NODE_ENV!=="production"&&(e=e||new Map),Br=0;Br<$n.length;Br++){const n=$n[Br];process.env.NODE_ENV!=="production"&&qA(e,n)||(n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2)}$n=null,Br=0}}const Pi=e=>e.id==null?e.flags&2?-1:1/0:e.id;function WA(e){process.env.NODE_ENV!=="production"&&(e=e||new Map);const t=process.env.NODE_ENV!=="production"?n=>qA(e,n):_i;try{for(xn=0;xn<$e.length;xn++){const n=$e[xn];if(n&&!(n.flags&8)){if(process.env.NODE_ENV!=="production"&&t(n))continue;n.flags&4&&(n.flags&=-2),Ga(n,n.i,n.i?15:14),n.flags&4||(n.flags&=-2)}}}finally{for(;xn<$e.length;xn++){const n=$e[xn];n&&(n.flags&=-2)}xn=-1,$e.length=0,u_(e),hu=null,($e.length||Fr.length)&&WA(e)}}function qA(e,t){const n=e.get(t)||0;if(n>c_){const r=t.i,f=r&&n0(r.type);return sh(`Maximum recursive updates exceeded${f?` in component <${f}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,null,10),!0}return e.set(t,n+1),!1}const Uc=new Map;process.env.NODE_ENV!=="production"&&(Ua().__VUE_HMR_RUNTIME__={createRecord:Gc(h_),rerender:Gc(f_),reload:Gc(d_)});const Cs=new Map;function h_(e,t){return Cs.has(e)?!1:(Cs.set(e,{initialDef:Es(t),instances:new Set}),!0)}function Es(e){return i0(e)?e.__vccOpts:e}function f_(e,t){const n=Cs.get(e);n&&(n.initialDef.render=t,[...n.instances].forEach(r=>{t&&(r.render=t,Es(r.type).render=t),r.renderCache=[],r.job.flags&8||r.update()}))}function d_(e,t){const n=Cs.get(e);if(!n)return;t=Es(t),Qf(n.initialDef,t);const r=[...n.instances];for(let f=0;f<r.length;f++){const p=r[f],v=Es(p.type);let u=Uc.get(v);u||(v!==n.initialDef&&Qf(v,t),Uc.set(v,u=new Set)),u.add(p),p.appContext.propsCache.delete(p.type),p.appContext.emitsCache.delete(p.type),p.appContext.optionsCache.delete(p.type),p.ceReload?(u.add(p),p.ceReload(t.styles),u.delete(p)):p.parent?HA(()=>{p.job.flags&8||(p.parent.update(),u.delete(p))}):p.appContext.reload?p.appContext.reload():typeof window<"u"?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required."),p.root.ce&&p!==p.root&&p.root.ce._removeChildStyle(v)}YA(()=>{Uc.clear()})}function Qf(e,t){Xn(e,t);for(const n in e)n!=="__file"&&!(n in t)&&delete e[n]}function Gc(e){return(t,n)=>{try{return e(t,n)}catch(r){console.error(r),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let Qi=null,g_=null;const p_=e=>e.__isTeleport;function XA(e,t){e.shapeFlag&6&&e.component?(e.transition=t,XA(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}Ua().requestIdleCallback;Ua().cancelIdleCallback;function A_(e,t,n=Yr,r=!1){if(n){const f=n[e]||(n[e]=[]),p=t.__weh||(t.__weh=(...v)=>{Hr();const u=L_(n),o=oh(t,n,e,v);return u(),zr(),o});return r?f.unshift(p):f.push(p),p}else if(process.env.NODE_ENV!=="production"){const f=C1(ih[e].replace(/ hook$/,""));ye(`${f} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`)}}const v_=e=>(t,n=Yr)=>{(!Fi||e==="sp")&&A_(e,(...r)=>t(...r),n)},y_=v_("m"),m_=Symbol.for("v-ndc");process.env.NODE_ENV;let __=null;function b_(e,t,n=!1){const r=ch();if(r||__){let f=r?r.parent==null||r.ce?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(f&&e in f)return f[e];if(arguments.length>1)return n&&de(t)?t.call(r&&r.proxy):t;process.env.NODE_ENV!=="production"&&ye(`injection "${String(e)}" not found.`)}else process.env.NODE_ENV!=="production"&&ye("inject() can only be used inside setup() or functional components.")}const w_=Symbol.for("v-scx"),C_=()=>{{const e=b_(w_);return e||process.env.NODE_ENV!=="production"&&ye("Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build."),e}};function VA(e,t,n){return process.env.NODE_ENV!=="production"&&!de(t)&&ye("`watch(fn, options?)` signature has been moved to a separate API. Use `watchEffect(fn, options?)` instead. `watch` now only supports `watch(source, cb, options?) signature."),E_(e,t,n)}function E_(e,t,n=Ti){const{immediate:r,deep:f,flush:p,once:v}=n;process.env.NODE_ENV!=="production"&&!t&&(r!==void 0&&ye('watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.'),f!==void 0&&ye('watch() "deep" option is only respected when using the watch(source, callback, options?) signature.'),v!==void 0&&ye('watch() "once" option is only respected when using the watch(source, callback, options?) signature.'));const u=Xn({},n);process.env.NODE_ENV!=="production"&&(u.onWarn=ye);const o=t&&r||!t&&p!=="post";let s;if(Fi){if(p==="sync"){const a=C_();s=a.__watcherHandles||(a.__watcherHandles=[])}else if(!o){const a=()=>{};return a.stop=_i,a.resume=_i,a.pause=_i,a}}const c=Yr;u.call=(a,h,g)=>oh(a,c,h,g);let i=!1;p==="post"?u.scheduler=a=>{x_(a,c&&c.suspense)}:p!=="sync"&&(i=!0,u.scheduler=(a,h)=>{h?a():HA(a)}),u.augmentJob=a=>{t&&(a.flags|=4),i&&(a.flags|=2,c&&(a.id=c.uid,a.i=c))};const l=Z1(e,t,u);return Fi&&(s?s.push(l):o&&l()),l}const S_={},JA=e=>Object.getPrototypeOf(e)===S_,x_=O_,I_=e=>e.__isSuspense;function O_(e,t){t&&t.pendingBranch?ne(e)?t.effects.push(...e):t.effects.push(e):YA(e)}const KA=Symbol.for("v-fgt"),B_=Symbol.for("v-txt"),T_=Symbol.for("v-cmt");function k_(e){return e?e.__v_isVNode===!0:!1}const D_=(...e)=>t0(...e),ZA=({key:e})=>e??null,as=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Tn(e)||xe(e)||de(e)?{i:Qi,r:e,k:t,f:!!n}:e:null);function R_(e,t=null,n=null,r=0,f=null,p=e===KA?0:1,v=!1,u=!1){const o={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ZA(t),ref:t&&as(t),scopeId:g_,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:p,patchFlag:r,dynamicProps:f,dynamicChildren:null,appContext:null,ctx:Qi};return u?(ah(o,n),p&128&&e.normalize(o)):n&&(o.shapeFlag|=Tn(n)?8:16),process.env.NODE_ENV!=="production"&&o.key!==o.key&&ye("VNode created with invalid key (NaN). VNode type:",o.type),o}const M_=process.env.NODE_ENV!=="production"?D_:t0;function t0(e,t=null,n=null,r=0,f=null,p=!1){if((!e||e===m_)&&(process.env.NODE_ENV!=="production"&&!e&&ye(`Invalid vnode type when creating vnode: ${e}.`),e=T_),k_(e)){const u=Ss(e,t,!0);return n&&ah(u,n),u.patchFlag=-2,u}if(i0(e)&&(e=e.__vccOpts),t){t=P_(t);let{class:u,style:o}=t;u&&!Tn(u)&&(t.class=Ku(u)),Ee(o)&&(bs(o)&&!ne(o)&&(o=Xn({},o)),t.style=Ju(o))}const v=Tn(e)?1:I_(e)?128:p_(e)?64:Ee(e)?4:de(e)?2:0;return process.env.NODE_ENV!=="production"&&v&4&&bs(e)&&(e=Bt(e),ye("Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with `markRaw` or using `shallowRef` instead of `ref`.",`
5
+ Component that was made reactive: `,e)),R_(e,t,n,r,f,v,p,!0)}function P_(e){return e?bs(e)||JA(e)?Xn({},e):e:null}function Ss(e,t,n=!1,r=!1){const{props:f,ref:p,patchFlag:v,children:u,transition:o}=e,s=t?F_(f||{},t):f,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&ZA(s),ref:t&&t.ref?n&&p?ne(p)?p.concat(as(t)):[p,as(t)]:as(t):p,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:process.env.NODE_ENV!=="production"&&v===-1&&ne(u)?u.map(e0):u,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==KA?v===-1?16:v|16:v,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:o,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ss(e.ssContent),ssFallback:e.ssFallback&&Ss(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return o&&r&&XA(c,o.clone(c)),c}function e0(e){const t=Ss(e);return ne(e.children)&&(t.children=e.children.map(e0)),t}function Q_(e=" ",t=0){return M_(B_,null,e,t)}function ah(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(ne(t))n=16;else if(typeof t=="object")if(r&65){const f=t.default;f&&(f._c&&(f._d=!1),ah(e,f()),f._c&&(f._d=!0));return}else n=32,!t._&&!JA(t)&&(t._ctx=Qi);else de(t)?(t={default:t,_ctx:Qi},n=32):(t=String(t),r&64?(n=16,t=[Q_(t)]):n=8);e.children=t,e.shapeFlag|=n}function F_(...e){const t={};for(let n=0;n<e.length;n++){const r=e[n];for(const f in r)if(f==="class")t.class!==r.class&&(t.class=Ku([t.class,r.class]));else if(f==="style")t.style=Ju([t.style,r.style]);else if(v1(f)){const p=t[f],v=r[f];v&&p!==v&&!(ne(p)&&p.includes(v))&&(t[f]=p?[].concat(p,v):v)}else f!==""&&(t[f]=r[f])}return t}let Yr=null;const ch=()=>Yr||Qi;let fu;{const e=Ua(),t=(n,r)=>{let f;return(f=e[n])||(f=e[n]=[]),f.push(r),p=>{f.length>1?f.forEach(v=>v(p)):f[0](p)}};fu=t("__VUE_INSTANCE_SETTERS__",n=>Yr=n),t("__VUE_SSR_SETTERS__",n=>Fi=n)}const L_=e=>{const t=Yr;return fu(e),e.scope.on(),()=>{e.scope.off(),fu(t)}};let Fi=!1;process.env.NODE_ENV;const j_=/(?:^|[-_])\w/g,N_=e=>e.replace(j_,t=>t.toUpperCase()).replace(/[-_]/g,"");function n0(e,t=!0){return de(e)?e.displayName||e.name:e.name||t&&e.__name}function r0(e,t,n=!1){let r=n0(t);if(!r&&t.__file){const f=t.__file.match(/([^/\\]+)\.\w+$/);f&&(r=f[1])}if(!r&&e){const f=p=>{for(const v in p)if(p[v]===t)return v};r=f(e.components)||e.parent&&f(e.parent.type.components)||f(e.appContext.components)}return r?N_(r):n?"App":"Anonymous"}function i0(e){return de(e)&&"__vccOpts"in e}const o0=(e,t)=>{const n=J1(e,t,Fi);if(process.env.NODE_ENV!=="production"){const r=ch();r&&r.appContext.config.warnRecursiveComputed&&(n._warnRecursive=!0)}return n};function U_(){if(process.env.NODE_ENV==="production"||typeof window>"u")return;const e={style:"color:#3ba776"},t={style:"color:#1677ff"},n={style:"color:#f5222d"},r={style:"color:#eb2f96"},f={__vue_custom_formatter:!0,header(i){if(!Ee(i))return null;if(i.__isVue)return["div",e,"VueInstance"];if(xe(i)){Hr();const l=i.value;return zr(),["div",{},["span",e,c(i)],"<",u(l),">"]}else{if(Qr(i))return["div",{},["span",e,Se(i)?"ShallowReactive":"Reactive"],"<",u(i),`>${vn(i)?" (readonly)":""}`];if(vn(i))return["div",{},["span",e,Se(i)?"ShallowReadonly":"Readonly"],"<",u(i),">"]}return null},hasBody(i){return i&&i.__isVue},body(i){if(i&&i.__isVue)return["div",{},...p(i.$)]}};function p(i){const l=[];i.type.props&&i.props&&l.push(v("props",Bt(i.props))),i.setupState!==Ti&&l.push(v("setup",i.setupState)),i.data!==Ti&&l.push(v("data",Bt(i.data)));const a=o(i,"computed");a&&l.push(v("computed",a));const h=o(i,"inject");return h&&l.push(v("injected",h)),l.push(["div",{},["span",{style:r.style+";opacity:0.66"},"$ (internal): "],["object",{object:i}]]),l}function v(i,l){return l=Xn({},l),Object.keys(l).length?["div",{style:"line-height:1.25em;margin-bottom:0.6em"},["div",{style:"color:#476582"},i],["div",{style:"padding-left:1.25em"},...Object.keys(l).map(a=>["div",{},["span",r,a+": "],u(l[a],!1)])]]:["span",{}]}function u(i,l=!0){return typeof i=="number"?["span",t,i]:typeof i=="string"?["span",n,JSON.stringify(i)]:typeof i=="boolean"?["span",r,i]:Ee(i)?["object",{object:l?Bt(i):i}]:["span",n,String(i)]}function o(i,l){const a=i.type;if(de(a))return;const h={};for(const g in i.ctx)s(a,g,l)&&(h[g]=i.ctx[g]);return h}function s(i,l,a){const h=i[a];if(ne(h)&&h.includes(l)||Ee(h)&&l in h||i.extends&&s(i.extends,l,a)||i.mixins&&i.mixins.some(g=>s(g,l,a)))return!0}function c(i){return Se(i)?"ShallowRef":i.effect?"ComputedRef":"Ref"}window.devtoolsFormatters?window.devtoolsFormatters.push(f):window.devtoolsFormatters=[f]}process.env.NODE_ENV;process.env.NODE_ENV;process.env.NODE_ENV;function G_(){U_()}process.env.NODE_ENV!=="production"&&G_();function $_(){const e=new Set,t=n=>{e.delete(n)};return{on:n=>(e.add(n),{off:()=>t(n)}),off:t,trigger:(...n)=>Promise.all(Array.from(e).map(r=>r(...n)))}}function Yi(e){return typeof e=="function"?e():X1(e)}const Wi=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const H_=Object.prototype.toString,z_=e=>H_.call(e)==="[object Object]",Y_=()=>{},W_=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function q_(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const r=t;t=void 0,r&&await r},n}function X_(e,t,n={}){const{immediate:r=!0}=n,f=Vn(!1);let p=null;function v(){p&&(clearTimeout(p),p=null)}function u(){f.value=!1,v()}function o(...s){v(),f.value=!0,p=setTimeout(()=>{f.value=!1,p=null,e(...s)},Yi(t))}return r&&(f.value=!0,Wi&&o()),{isPending:Ri(f),start:o,stop:u}}function V_(e){var t;const n=Yi(e);return(t=n?.$el)!=null?t:n}const J_=Wi?window:void 0,K_=Wi?window.document:void 0,s0=Wi?window.navigator:void 0;function a0(...e){let t,n,r,f;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,f]=e,t=J_):[t,n,r,f]=e,!t)return Y_;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const p=[],v=()=>{p.forEach(s=>s()),p.length=0},u=(s,c,i,l)=>(s.addEventListener(c,i,l),()=>s.removeEventListener(c,i,l)),o=VA(()=>[V_(t),Yi(f)],([s,c])=>{if(v(),!s)return;const i=z_(c)?{...c}:c;p.push(...n.flatMap(l=>r.map(a=>u(s,l,a,i))))},{immediate:!0,flush:"post"});return()=>{o(),v()}}function Z_(){const e=Vn(!1),t=ch();return t&&y_(()=>{e.value=!0},t),e}function c0(e){const t=Z_();return o0(()=>(t.value,!!e()))}const ci={array:e=>JSON.stringify(e),object:e=>JSON.stringify(e),set:e=>JSON.stringify(Array.from(e)),map:e=>JSON.stringify(Object.fromEntries(e)),null:()=>""};function tb(e){return e?e instanceof Map?ci.map:e instanceof Set?ci.set:Array.isArray(e)?ci.array:ci.object:ci.null}function eb(e,t){const n=Vn(""),r=Vn();function f(){if(Wi)return r.value=new Promise((p,v)=>{try{const u=Yi(e);if(u==null)p("");else if(typeof u=="string")p($c(new Blob([u],{type:"text/plain"})));else if(u instanceof Blob)p($c(u));else if(u instanceof ArrayBuffer)p(window.btoa(String.fromCharCode(...new Uint8Array(u))));else if(u instanceof HTMLCanvasElement)p(u.toDataURL(t?.type,t?.quality));else if(u instanceof HTMLImageElement){const o=u.cloneNode(!1);o.crossOrigin="Anonymous",nb(o).then(()=>{const s=document.createElement("canvas"),c=s.getContext("2d");s.width=o.width,s.height=o.height,c.drawImage(o,0,0,s.width,s.height),p(s.toDataURL(t?.type,t?.quality))}).catch(v)}else if(typeof u=="object"){const o=(t?.serializer||tb(u))(u);return p($c(new Blob([o],{type:"application/json"})))}else v(new Error("target is unsupported types"))}catch(u){v(u)}}),r.value.then(p=>n.value=p),r.value}return xe(e)||typeof e=="function"?VA(e,f,{immediate:!0}):f(),{base64:n,promise:r,execute:f}}function nb(e){return new Promise((t,n)=>{e.complete?t():(e.onload=()=>{t()},e.onerror=n)})}function $c(e){return new Promise((t,n)=>{const r=new FileReader;r.onload=f=>{t(f.target.result)},r.onerror=n,r.readAsDataURL(e)})}function Ff(e,t={}){const{controls:n=!1,navigator:r=s0}=t,f=c0(()=>r&&"permissions"in r);let p;const v=typeof e=="string"?{name:e}:e,u=Vn(),o=()=>{p&&(u.value=p.state)},s=q_(async()=>{if(f.value){if(!p)try{p=await r.permissions.query(v),a0(p,"change",o),o()}catch{u.value="prompt"}return p}});return s(),n?{state:u,isSupported:f,query:s}:u}function rb(e={}){const{navigator:t=s0,read:n=!1,source:r,copiedDuring:f=1500,legacy:p=!1}=e,v=c0(()=>t&&"clipboard"in t),u=Ff("clipboard-read"),o=Ff("clipboard-write"),s=o0(()=>v.value||p),c=Vn(""),i=Vn(!1),l=X_(()=>i.value=!1,f);function a(){v.value&&A(u.value)?t.clipboard.readText().then(y=>{c.value=y}):c.value=d()}s.value&&n&&a0(["copy","cut"],a);async function h(y=Yi(r)){s.value&&y!=null&&(v.value&&A(o.value)?await t.clipboard.writeText(y):g(y),c.value=y,i.value=!0,l.start())}function g(y){const m=document.createElement("textarea");m.value=y??"",m.style.position="absolute",m.style.opacity="0",document.body.appendChild(m),m.select(),document.execCommand("copy"),m.remove()}function d(){var y,m,_;return(_=(m=(y=document?.getSelection)==null?void 0:y.call(document))==null?void 0:m.toString())!=null?_:""}function A(y){return y==="granted"||y==="prompt"}return{isSupported:s,text:c,copied:i,copy:h}}const ib={multiple:!0,accept:"*",reset:!1,directory:!1};function ob(e={}){const{document:t=K_}=e,n=Vn(null),{on:r,trigger:f}=$_();let p;t&&(p=t.createElement("input"),p.type="file",p.onchange=o=>{const s=o.target;n.value=s.files,f(n.value)});const v=()=>{n.value=null,p&&p.value&&(p.value="",f(null))},u=o=>{if(!p)return;const s={...ib,...e,...o};p.multiple=s.multiple,p.accept=s.accept,p.webkitdirectory=s.directory,W_(s,"capture")&&(p.capture=s.capture),s.reset&&v(),p.click()};return{files:Ri(n),open:u,reset:v,onChange:r}}function sb(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if(typeof t=="function"){var n=function r(){var f=!1;try{f=this instanceof r}catch{}return f?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var f=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,f.get?f:{enumerable:!0,get:function(){return e[r]}})}),n}var Lf={};const ab={},cb=Object.freeze(Object.defineProperty({__proto__:null,default:ab},Symbol.toStringTag,{value:"Module"})),Hc=sb(cb);var jf;function lb(){return jf||(jf=1,(function(e){var t=t||{version:"5.3.0"};if(e.fabric=t,typeof document<"u"&&typeof window<"u")document instanceof(typeof HTMLDocument<"u"?HTMLDocument:Document)?t.document=document:t.document=document.implementation.createHTMLDocument(""),t.window=window;else{var n=Hc,r=new n.JSDOM(decodeURIComponent("%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E"),{features:{FetchExternalResources:["img"]},resources:"usable"}).window;t.document=r.document,t.jsdomImplForWrapper=Hc.implForWrapper,t.nodeCanvas=Hc.Canvas,t.window=r,DOMParser=t.window.DOMParser}t.isTouchSupported="ontouchstart"in t.window||"ontouchstart"in t.document||t.window&&t.window.navigator&&t.window.navigator.maxTouchPoints>0,t.isLikelyNode=typeof Buffer<"u"&&typeof window>"u",t.SHARED_ATTRIBUTES=["display","transform","fill","fill-opacity","fill-rule","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-dashoffset","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","id","paint-order","vector-effect","instantiated_by_use","clip-path"],t.DPI=96,t.reNum="(?:[-+]?(?:\\d+|\\d*\\.\\d+)(?:[eE][-+]?\\d+)?)",t.commaWsp="(?:\\s+,?\\s*|,\\s*)",t.rePathCommand=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:[eE][-+]?\d+)?)/ig,t.reNonWord=/[ \n\.,;!\?\-]/,t.fontPaths={},t.iMatrix=[1,0,0,1,0,0],t.svgNS="http://www.w3.org/2000/svg",t.perfLimitSizeTotal=2097152,t.maxCacheSideLimit=4096,t.minCacheSideLimit=256,t.charWidthsCache={},t.textureSize=2048,t.disableStyleCopyPaste=!1,t.enableGLFiltering=!0,t.devicePixelRatio=t.window.devicePixelRatio||t.window.webkitDevicePixelRatio||t.window.mozDevicePixelRatio||1,t.browserShadowBlurConstant=1,t.arcToSegmentsCache={},t.boundsOfCurveCache={},t.cachesBoundsOfCurve=!0,t.forceGLPutImageData=!1,t.initFilterBackend=function(){if(t.enableGLFiltering&&t.isWebglSupported&&t.isWebglSupported(t.textureSize))return console.log("max texture size: "+t.maxTextureSize),new t.WebglFilterBackend({tileSize:t.textureSize});if(t.Canvas2dFilterBackend)return new t.Canvas2dFilterBackend},typeof document<"u"&&typeof window<"u"&&(window.fabric=t),(function(){function u(a,h){if(this.__eventListeners[a]){var g=this.__eventListeners[a];h?g[g.indexOf(h)]=!1:t.util.array.fill(g,!1)}}function o(a,h){if(this.__eventListeners||(this.__eventListeners={}),arguments.length===1)for(var g in a)this.on(g,a[g]);else this.__eventListeners[a]||(this.__eventListeners[a]=[]),this.__eventListeners[a].push(h);return this}function s(a,h){var g=(function(){h.apply(this,arguments),this.off(a,g)}).bind(this);this.on(a,g)}function c(a,h){if(arguments.length===1)for(var g in a)s.call(this,g,a[g]);else s.call(this,a,h);return this}function i(a,h){if(!this.__eventListeners)return this;if(arguments.length===0)for(a in this.__eventListeners)u.call(this,a);else if(arguments.length===1&&typeof arguments[0]=="object")for(var g in a)u.call(this,g,a[g]);else u.call(this,a,h);return this}function l(a,h){if(!this.__eventListeners)return this;var g=this.__eventListeners[a];if(!g)return this;for(var d=0,A=g.length;d<A;d++)g[d]&&g[d].call(this,h||{});return this.__eventListeners[a]=g.filter(function(y){return y!==!1}),this}t.Observable={fire:l,on:o,once:c,off:i}})(),t.Collection={_objects:[],add:function(){if(this._objects.push.apply(this._objects,arguments),this._onObjectAdded)for(var u=0,o=arguments.length;u<o;u++)this._onObjectAdded(arguments[u]);return this.renderOnAddRemove&&this.requestRenderAll(),this},insertAt:function(u,o,s){var c=this._objects;return s?c[o]=u:c.splice(o,0,u),this._onObjectAdded&&this._onObjectAdded(u),this.renderOnAddRemove&&this.requestRenderAll(),this},remove:function(){for(var u=this._objects,o,s=!1,c=0,i=arguments.length;c<i;c++)o=u.indexOf(arguments[c]),o!==-1&&(s=!0,u.splice(o,1),this._onObjectRemoved&&this._onObjectRemoved(arguments[c]));return this.renderOnAddRemove&&s&&this.requestRenderAll(),this},forEachObject:function(u,o){for(var s=this.getObjects(),c=0,i=s.length;c<i;c++)u.call(o,s[c],c,s);return this},getObjects:function(u){return typeof u>"u"?this._objects.concat():this._objects.filter(function(o){return o.type===u})},item:function(u){return this._objects[u]},isEmpty:function(){return this._objects.length===0},size:function(){return this._objects.length},contains:function(u,o){return this._objects.indexOf(u)>-1?!0:o?this._objects.some(function(s){return typeof s.contains=="function"&&s.contains(u,!0)}):!1},complexity:function(){return this._objects.reduce(function(u,o){return u+=o.complexity?o.complexity():0,u},0)}},t.CommonMethods={_setOptions:function(u){for(var o in u)this.set(o,u[o])},_initGradient:function(u,o){u&&u.colorStops&&!(u instanceof t.Gradient)&&this.set(o,new t.Gradient(u))},_initPattern:function(u,o,s){u&&u.source&&!(u instanceof t.Pattern)?this.set(o,new t.Pattern(u,s)):s&&s()},_setObject:function(u){for(var o in u)this._set(o,u[o])},set:function(u,o){return typeof u=="object"?this._setObject(u):this._set(u,o),this},_set:function(u,o){this[u]=o},toggle:function(u){var o=this.get(u);return typeof o=="boolean"&&this.set(u,!o),this},get:function(u){return this[u]}},(function(u){var o=Math.sqrt,s=Math.atan2,c=Math.pow,i=Math.PI/180,l=Math.PI/2;t.util={cos:function(a){if(a===0)return 1;a<0&&(a=-a);var h=a/l;switch(h){case 1:case 3:return 0;case 2:return-1}return Math.cos(a)},sin:function(a){if(a===0)return 0;var h=a/l,g=1;switch(a<0&&(g=-1),h){case 1:return g;case 2:return 0;case 3:return-g}return Math.sin(a)},removeFromArray:function(a,h){var g=a.indexOf(h);return g!==-1&&a.splice(g,1),a},getRandomInt:function(a,h){return Math.floor(Math.random()*(h-a+1))+a},degreesToRadians:function(a){return a*i},radiansToDegrees:function(a){return a/i},rotatePoint:function(a,h,g){var d=new t.Point(a.x-h.x,a.y-h.y),A=t.util.rotateVector(d,g);return new t.Point(A.x,A.y).addEquals(h)},rotateVector:function(a,h){var g=t.util.sin(h),d=t.util.cos(h),A=a.x*d-a.y*g,y=a.x*g+a.y*d;return{x:A,y}},createVector:function(a,h){return new t.Point(h.x-a.x,h.y-a.y)},calcAngleBetweenVectors:function(a,h){return Math.acos((a.x*h.x+a.y*h.y)/(Math.hypot(a.x,a.y)*Math.hypot(h.x,h.y)))},getHatVector:function(a){return new t.Point(a.x,a.y).multiply(1/Math.hypot(a.x,a.y))},getBisector:function(a,h,g){var d=t.util.createVector(a,h),A=t.util.createVector(a,g),y=t.util.calcAngleBetweenVectors(d,A),m=t.util.calcAngleBetweenVectors(t.util.rotateVector(d,y),A),_=y*(m===0?1:-1)/2;return{vector:t.util.getHatVector(t.util.rotateVector(d,_)),angle:y}},projectStrokeOnPoints:function(a,h,g){var d=[],A=h.strokeWidth/2,y=h.strokeUniform?new t.Point(1/h.scaleX,1/h.scaleY):new t.Point(1,1),m=function(_){var w=A/Math.hypot(_.x,_.y);return new t.Point(_.x*w*y.x,_.y*w*y.y)};return a.length<=1||a.forEach(function(_,w){var S=new t.Point(_.x,_.y),O,P;w===0?(P=a[w+1],O=g?m(t.util.createVector(P,S)).addEquals(S):a[a.length-1]):w===a.length-1?(O=a[w-1],P=g?m(t.util.createVector(O,S)).addEquals(S):a[0]):(O=a[w-1],P=a[w+1]);var N=t.util.getBisector(S,O,P),q=N.vector,Z=N.angle,K,rt;if(h.strokeLineJoin==="miter"&&(K=-A/Math.sin(Z/2),rt=new t.Point(q.x*K*y.x,q.y*K*y.y),Math.hypot(rt.x,rt.y)/A<=h.strokeMiterLimit)){d.push(S.add(rt)),d.push(S.subtract(rt));return}K=-A*Math.SQRT2,rt=new t.Point(q.x*K*y.x,q.y*K*y.y),d.push(S.add(rt)),d.push(S.subtract(rt))}),d},transformPoint:function(a,h,g){return g?new t.Point(h[0]*a.x+h[2]*a.y,h[1]*a.x+h[3]*a.y):new t.Point(h[0]*a.x+h[2]*a.y+h[4],h[1]*a.x+h[3]*a.y+h[5])},makeBoundingBoxFromPoints:function(a,h){if(h)for(var g=0;g<a.length;g++)a[g]=t.util.transformPoint(a[g],h);var d=[a[0].x,a[1].x,a[2].x,a[3].x],A=t.util.array.min(d),y=t.util.array.max(d),m=y-A,_=[a[0].y,a[1].y,a[2].y,a[3].y],w=t.util.array.min(_),S=t.util.array.max(_),O=S-w;return{left:A,top:w,width:m,height:O}},invertTransform:function(a){var h=1/(a[0]*a[3]-a[1]*a[2]),g=[h*a[3],-h*a[1],-h*a[2],h*a[0]],d=t.util.transformPoint({x:a[4],y:a[5]},g,!0);return g[4]=-d.x,g[5]=-d.y,g},toFixed:function(a,h){return parseFloat(Number(a).toFixed(h))},parseUnit:function(a,h){var g=/\D{0,2}$/.exec(a),d=parseFloat(a);switch(h||(h=t.Text.DEFAULT_SVG_FONT_SIZE),g[0]){case"mm":return d*t.DPI/25.4;case"cm":return d*t.DPI/2.54;case"in":return d*t.DPI;case"pt":return d*t.DPI/72;case"pc":return d*t.DPI/72*12;case"em":return d*h;default:return d}},falseFunction:function(){return!1},getKlass:function(a,h){return a=t.util.string.camelize(a.charAt(0).toUpperCase()+a.slice(1)),t.util.resolveNamespace(h)[a]},getSvgAttributes:function(a){var h=["instantiated_by_use","style","id","class"];switch(a){case"linearGradient":h=h.concat(["x1","y1","x2","y2","gradientUnits","gradientTransform"]);break;case"radialGradient":h=h.concat(["gradientUnits","gradientTransform","cx","cy","r","fx","fy","fr"]);break;case"stop":h=h.concat(["offset","stop-color","stop-opacity"]);break}return h},resolveNamespace:function(a){if(!a)return t;var h=a.split("."),g=h.length,d,A=u||t.window;for(d=0;d<g;++d)A=A[h[d]];return A},loadImage:function(a,h,g,d){if(!a){h&&h.call(g,a);return}var A=t.util.createImage(),y=function(){h&&h.call(g,A,!1),A=A.onload=A.onerror=null};A.onload=y,A.onerror=function(){t.log("Error loading "+A.src),h&&h.call(g,null,!0),A=A.onload=A.onerror=null},a.indexOf("data")!==0&&d!==void 0&&d!==null&&(A.crossOrigin=d),a.substring(0,14)==="data:image/svg"&&(A.onload=null,t.util.loadImageInDom(A,y)),A.src=a},loadImageInDom:function(a,h){var g=t.document.createElement("div");g.style.width=g.style.height="1px",g.style.left=g.style.top="-100%",g.style.position="absolute",g.appendChild(a),t.document.querySelector("body").appendChild(g),a.onload=function(){h(),g.parentNode.removeChild(g),g=null}},enlivenObjects:function(a,h,g,d){a=a||[];var A=[],y=0,m=a.length;function _(){++y===m&&h&&h(A.filter(function(w){return w}))}if(!m){h&&h(A);return}a.forEach(function(w,S){if(!w||!w.type){_();return}var O=t.util.getKlass(w.type,g);O.fromObject(w,function(P,N){N||(A[S]=P),d&&d(w,P,N),_()})})},enlivenObjectEnlivables:function(a,h,g){var d=t.Object.ENLIVEN_PROPS.filter(function(A){return!!a[A]});t.util.enlivenObjects(d.map(function(A){return a[A]}),function(A){var y={};d.forEach(function(m,_){y[m]=A[_],h&&(h[m]=A[_])}),g&&g(y)})},enlivenPatterns:function(a,h){a=a||[];function g(){++A===y&&h&&h(d)}var d=[],A=0,y=a.length;if(!y){h&&h(d);return}a.forEach(function(m,_){m&&m.source?new t.Pattern(m,function(w){d[_]=w,g()}):(d[_]=m,g())})},groupSVGElements:function(a,h,g){var d;return a&&a.length===1?(typeof g<"u"&&(a[0].sourcePath=g),a[0]):(h&&(h.width&&h.height?h.centerPoint={x:h.width/2,y:h.height/2}:(delete h.width,delete h.height)),d=new t.Group(a,h),typeof g<"u"&&(d.sourcePath=g),d)},populateWithProperties:function(a,h,g){if(g&&Array.isArray(g))for(var d=0,A=g.length;d<A;d++)g[d]in a&&(h[g[d]]=a[g[d]])},createCanvasElement:function(){return t.document.createElement("canvas")},copyCanvasElement:function(a){var h=t.util.createCanvasElement();return h.width=a.width,h.height=a.height,h.getContext("2d").drawImage(a,0,0),h},toDataURL:function(a,h,g){return a.toDataURL("image/"+h,g)},createImage:function(){return t.document.createElement("img")},multiplyTransformMatrices:function(a,h,g){return[a[0]*h[0]+a[2]*h[1],a[1]*h[0]+a[3]*h[1],a[0]*h[2]+a[2]*h[3],a[1]*h[2]+a[3]*h[3],g?0:a[0]*h[4]+a[2]*h[5]+a[4],g?0:a[1]*h[4]+a[3]*h[5]+a[5]]},qrDecompose:function(a){var h=s(a[1],a[0]),g=c(a[0],2)+c(a[1],2),d=o(g),A=(a[0]*a[3]-a[2]*a[1])/d,y=s(a[0]*a[2]+a[1]*a[3],g);return{angle:h/i,scaleX:d,scaleY:A,skewX:y/i,skewY:0,translateX:a[4],translateY:a[5]}},calcRotateMatrix:function(a){if(!a.angle)return t.iMatrix.concat();var h=t.util.degreesToRadians(a.angle),g=t.util.cos(h),d=t.util.sin(h);return[g,d,-d,g,0,0]},calcDimensionsMatrix:function(a){var h=typeof a.scaleX>"u"?1:a.scaleX,g=typeof a.scaleY>"u"?1:a.scaleY,d=[a.flipX?-h:h,0,0,a.flipY?-g:g,0,0],A=t.util.multiplyTransformMatrices,y=t.util.degreesToRadians;return a.skewX&&(d=A(d,[1,0,Math.tan(y(a.skewX)),1],!0)),a.skewY&&(d=A(d,[1,Math.tan(y(a.skewY)),0,1],!0)),d},composeMatrix:function(a){var h=[1,0,0,1,a.translateX||0,a.translateY||0],g=t.util.multiplyTransformMatrices;return a.angle&&(h=g(h,t.util.calcRotateMatrix(a))),(a.scaleX!==1||a.scaleY!==1||a.skewX||a.skewY||a.flipX||a.flipY)&&(h=g(h,t.util.calcDimensionsMatrix(a))),h},resetObjectTransform:function(a){a.scaleX=1,a.scaleY=1,a.skewX=0,a.skewY=0,a.flipX=!1,a.flipY=!1,a.rotate(0)},saveObjectTransform:function(a){return{scaleX:a.scaleX,scaleY:a.scaleY,skewX:a.skewX,skewY:a.skewY,angle:a.angle,left:a.left,flipX:a.flipX,flipY:a.flipY,top:a.top}},isTransparent:function(a,h,g,d){d>0&&(h>d?h-=d:h=0,g>d?g-=d:g=0);var A=!0,y,m,_=a.getImageData(h,g,d*2||1,d*2||1),w=_.data.length;for(y=3;y<w&&(m=_.data[y],A=m<=0,A!==!1);y+=4);return _=null,A},parsePreserveAspectRatioAttribute:function(a){var h="meet",g="Mid",d="Mid",A=a.split(" "),y;return A&&A.length&&(h=A.pop(),h!=="meet"&&h!=="slice"?(y=h,h="meet"):A.length&&(y=A.pop())),g=y!=="none"?y.slice(1,4):"none",d=y!=="none"?y.slice(5,8):"none",{meetOrSlice:h,alignX:g,alignY:d}},clearFabricFontCache:function(a){a=(a||"").toLowerCase(),a?t.charWidthsCache[a]&&delete t.charWidthsCache[a]:t.charWidthsCache={}},limitDimsByArea:function(a,h){var g=Math.sqrt(h*a),d=Math.floor(h/g);return{x:Math.floor(g),y:d}},capValue:function(a,h,g){return Math.max(a,Math.min(h,g))},findScaleToFit:function(a,h){return Math.min(h.width/a.width,h.height/a.height)},findScaleToCover:function(a,h){return Math.max(h.width/a.width,h.height/a.height)},matrixToSVG:function(a){return"matrix("+a.map(function(h){return t.util.toFixed(h,t.Object.NUM_FRACTION_DIGITS)}).join(" ")+")"},removeTransformFromObject:function(a,h){var g=t.util.invertTransform(h),d=t.util.multiplyTransformMatrices(g,a.calcOwnMatrix());t.util.applyTransformToObject(a,d)},addTransformToObject:function(a,h){t.util.applyTransformToObject(a,t.util.multiplyTransformMatrices(h,a.calcOwnMatrix()))},applyTransformToObject:function(a,h){var g=t.util.qrDecompose(h),d=new t.Point(g.translateX,g.translateY);a.flipX=!1,a.flipY=!1,a.set("scaleX",g.scaleX),a.set("scaleY",g.scaleY),a.skewX=g.skewX,a.skewY=g.skewY,a.angle=g.angle,a.setPositionByOrigin(d,"center","center")},sizeAfterTransform:function(a,h,g){var d=a/2,A=h/2,y=[{x:-d,y:-A},{x:d,y:-A},{x:-d,y:A},{x:d,y:A}],m=t.util.calcDimensionsMatrix(g),_=t.util.makeBoundingBoxFromPoints(y,m);return{x:_.width,y:_.height}},mergeClipPaths:function(a,h){var g=a,d=h;g.inverted&&!d.inverted&&(g=h,d=a),t.util.applyTransformToObject(d,t.util.multiplyTransformMatrices(t.util.invertTransform(g.calcTransformMatrix()),d.calcTransformMatrix()));var A=g.inverted&&d.inverted;return A&&(g.inverted=d.inverted=!1),new t.Group([g],{clipPath:d,inverted:A})},hasStyleChanged:function(a,h,g){return g=g||!1,a.fill!==h.fill||a.stroke!==h.stroke||a.strokeWidth!==h.strokeWidth||a.fontSize!==h.fontSize||a.fontFamily!==h.fontFamily||a.fontWeight!==h.fontWeight||a.fontStyle!==h.fontStyle||a.textBackgroundColor!==h.textBackgroundColor||a.deltaY!==h.deltaY||g&&(a.overline!==h.overline||a.underline!==h.underline||a.linethrough!==h.linethrough)},stylesToArray:function(a,h){for(var a=t.util.object.clone(a,!0),g=h.split(`
6
+ `),d=-1,A={},y=[],m=0;m<g.length;m++){if(!a[m]){d+=g[m].length;continue}for(var _=0;_<g[m].length;_++){d++;var w=a[m][_];if(w&&Object.keys(w).length>0){var S=t.util.hasStyleChanged(A,w,!0);S?y.push({start:d,end:d+1,style:w}):y[y.length-1].end++}A=w||{}}}return y},stylesFromArray:function(a,h){if(!Array.isArray(a))return a;for(var g=h.split(`
7
+ `),d=-1,A=0,y={},m=0;m<g.length;m++)for(var _=0;_<g[m].length;_++)d++,a[A]&&a[A].start<=d&&d<a[A].end&&(y[m]=y[m]||{},y[m][_]=Object.assign({},a[A].style),d===a[A].end-1&&A++);return y}}})(e),(function(){var u=Array.prototype.join,o={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},s={m:"l",M:"L"};function c(b,C,E,I,M,k,T,Q,H,Y,W){var J=t.util.cos(b),tt=t.util.sin(b),F=t.util.cos(C),L=t.util.sin(C),D=E*M*F-I*k*L+T,G=I*M*F+E*k*L+Q,z=Y+H*(-E*M*tt-I*k*J),X=W+H*(-I*M*tt+E*k*J),et=D+H*(E*M*L+I*k*F),at=G+H*(I*M*L-E*k*F);return["C",z,X,et,at,D,G]}function i(b,C,E,I,M,k,T){var Q=Math.PI,H=T*Q/180,Y=t.util.sin(H),W=t.util.cos(H),J=0,tt=0;E=Math.abs(E),I=Math.abs(I);var F=-W*b*.5-Y*C*.5,L=-W*C*.5+Y*b*.5,D=E*E,G=I*I,z=L*L,X=F*F,et=D*G-D*z-G*X,at=0;if(et<0){var lt=Math.sqrt(1-et/(D*G));E*=lt,I*=lt}else at=(M===k?-1:1)*Math.sqrt(et/(D*z+G*X));var ct=at*E*L/I,it=-at*I*F/E,ut=W*ct-Y*it+b*.5,ft=Y*ct+W*it+C*.5,dt=l(1,0,(F-ct)/E,(L-it)/I),pt=l((F-ct)/E,(L-it)/I,(-F-ct)/E,(-L-it)/I);k===0&&pt>0?pt-=2*Q:k===1&&pt<0&&(pt+=2*Q);for(var ht=Math.ceil(Math.abs(pt/Q*2)),Et=[],yt=pt/ht,At=8/3*Math.sin(yt/4)*Math.sin(yt/4)/Math.sin(yt/2),Yt=dt+yt,Ft=0;Ft<ht;Ft++)Et[Ft]=c(dt,Yt,W,Y,E,I,ut,ft,At,J,tt),J=Et[Ft][5],tt=Et[Ft][6],dt=Yt,Yt+=yt;return Et}function l(b,C,E,I){var M=Math.atan2(C,b),k=Math.atan2(I,E);return k>=M?k-M:2*Math.PI-(M-k)}function a(b,C,E,I,M,k,T,Q){var H;if(t.cachesBoundsOfCurve&&(H=u.call(arguments),t.boundsOfCurveCache[H]))return t.boundsOfCurveCache[H];var Y=Math.sqrt,W=Math.min,J=Math.max,tt=Math.abs,F=[],L=[[],[]],D,G,z,X,et,at,lt,ct;G=6*b-12*E+6*M,D=-3*b+9*E-9*M+3*T,z=3*E-3*b;for(var it=0;it<2;++it){if(it>0&&(G=6*C-12*I+6*k,D=-3*C+9*I-9*k+3*Q,z=3*I-3*C),tt(D)<1e-12){if(tt(G)<1e-12)continue;X=-z/G,0<X&&X<1&&F.push(X);continue}lt=G*G-4*z*D,!(lt<0)&&(ct=Y(lt),et=(-G+ct)/(2*D),0<et&&et<1&&F.push(et),at=(-G-ct)/(2*D),0<at&&at<1&&F.push(at))}for(var ut,ft,dt=F.length,pt=dt,ht;dt--;)X=F[dt],ht=1-X,ut=ht*ht*ht*b+3*ht*ht*X*E+3*ht*X*X*M+X*X*X*T,L[0][dt]=ut,ft=ht*ht*ht*C+3*ht*ht*X*I+3*ht*X*X*k+X*X*X*Q,L[1][dt]=ft;L[0][pt]=b,L[1][pt]=C,L[0][pt+1]=T,L[1][pt+1]=Q;var Et=[{x:W.apply(null,L[0]),y:W.apply(null,L[1])},{x:J.apply(null,L[0]),y:J.apply(null,L[1])}];return t.cachesBoundsOfCurve&&(t.boundsOfCurveCache[H]=Et),Et}function h(b,C,E){for(var I=E[1],M=E[2],k=E[3],T=E[4],Q=E[5],H=E[6],Y=E[7],W=i(H-b,Y-C,I,M,T,Q,k),J=0,tt=W.length;J<tt;J++)W[J][1]+=b,W[J][2]+=C,W[J][3]+=b,W[J][4]+=C,W[J][5]+=b,W[J][6]+=C;return W}function g(b){var C=0,E=0,I=b.length,M=0,k=0,T,Q,H,Y=[],W,J,tt;for(Q=0;Q<I;++Q){switch(H=!1,T=b[Q].slice(0),T[0]){case"l":T[0]="L",T[1]+=C,T[2]+=E;case"L":C=T[1],E=T[2];break;case"h":T[1]+=C;case"H":T[0]="L",T[2]=E,C=T[1];break;case"v":T[1]+=E;case"V":T[0]="L",E=T[1],T[1]=C,T[2]=E;break;case"m":T[0]="M",T[1]+=C,T[2]+=E;case"M":C=T[1],E=T[2],M=T[1],k=T[2];break;case"c":T[0]="C",T[1]+=C,T[2]+=E,T[3]+=C,T[4]+=E,T[5]+=C,T[6]+=E;case"C":J=T[3],tt=T[4],C=T[5],E=T[6];break;case"s":T[0]="S",T[1]+=C,T[2]+=E,T[3]+=C,T[4]+=E;case"S":W==="C"?(J=2*C-J,tt=2*E-tt):(J=C,tt=E),C=T[3],E=T[4],T[0]="C",T[5]=T[3],T[6]=T[4],T[3]=T[1],T[4]=T[2],T[1]=J,T[2]=tt,J=T[3],tt=T[4];break;case"q":T[0]="Q",T[1]+=C,T[2]+=E,T[3]+=C,T[4]+=E;case"Q":J=T[1],tt=T[2],C=T[3],E=T[4];break;case"t":T[0]="T",T[1]+=C,T[2]+=E;case"T":W==="Q"?(J=2*C-J,tt=2*E-tt):(J=C,tt=E),T[0]="Q",C=T[1],E=T[2],T[1]=J,T[2]=tt,T[3]=C,T[4]=E;break;case"a":T[0]="A",T[6]+=C,T[7]+=E;case"A":H=!0,Y=Y.concat(h(C,E,T)),C=T[6],E=T[7];break;case"z":case"Z":C=M,E=k;break}H||Y.push(T),W=T[0]}return Y}function d(b,C,E,I){return Math.sqrt((E-b)*(E-b)+(I-C)*(I-C))}function A(b){return b*b*b}function y(b){return 3*b*b*(1-b)}function m(b){return 3*b*(1-b)*(1-b)}function _(b){return(1-b)*(1-b)*(1-b)}function w(b,C,E,I,M,k,T,Q){return function(H){var Y=A(H),W=y(H),J=m(H),tt=_(H);return{x:T*Y+M*W+E*J+b*tt,y:Q*Y+k*W+I*J+C*tt}}}function S(b,C,E,I,M,k,T,Q){return function(H){var Y=1-H,W=3*Y*Y*(E-b)+6*Y*H*(M-E)+3*H*H*(T-M),J=3*Y*Y*(I-C)+6*Y*H*(k-I)+3*H*H*(Q-k);return Math.atan2(J,W)}}function O(b){return b*b}function P(b){return 2*b*(1-b)}function N(b){return(1-b)*(1-b)}function q(b,C,E,I,M,k){return function(T){var Q=O(T),H=P(T),Y=N(T);return{x:M*Q+E*H+b*Y,y:k*Q+I*H+C*Y}}}function Z(b,C,E,I,M,k){return function(T){var Q=1-T,H=2*Q*(E-b)+2*T*(M-E),Y=2*Q*(I-C)+2*T*(k-I);return Math.atan2(Y,H)}}function K(b,C,E){var I={x:C,y:E},M,k=0,T;for(T=1;T<=100;T+=1)M=b(T/100),k+=d(I.x,I.y,M.x,M.y),I=M;return k}function rt(b,C){for(var E=0,I=0,M=b.iterator,k={x:b.x,y:b.y},T,Q,H=.01,Y=b.angleFinder,W;I<C&&H>1e-4;)T=M(E),W=E,Q=d(k.x,k.y,T.x,T.y),Q+I>C?(E-=H,H/=2):(k=T,E+=H,I+=Q);return T.angle=Y(W),T}function $(b){for(var C=0,E=b.length,I,M=0,k=0,T=0,Q=0,H=[],Y,W,J,tt=0;tt<E;tt++){switch(I=b[tt],W={x:M,y:k,command:I[0]},I[0]){case"M":W.length=0,T=M=I[1],Q=k=I[2];break;case"L":W.length=d(M,k,I[1],I[2]),M=I[1],k=I[2];break;case"C":Y=w(M,k,I[1],I[2],I[3],I[4],I[5],I[6]),J=S(M,k,I[1],I[2],I[3],I[4],I[5],I[6]),W.iterator=Y,W.angleFinder=J,W.length=K(Y,M,k),M=I[5],k=I[6];break;case"Q":Y=q(M,k,I[1],I[2],I[3],I[4]),J=Z(M,k,I[1],I[2],I[3],I[4]),W.iterator=Y,W.angleFinder=J,W.length=K(Y,M,k),M=I[3],k=I[4];break;case"Z":case"z":W.destX=T,W.destY=Q,W.length=d(M,k,T,Q),M=T,k=Q;break}C+=W.length,H.push(W)}return H.push({length:C,x:M,y:k}),H}function U(b,C,E){E||(E=$(b));for(var I=0;C-E[I].length>0&&I<E.length-2;)C-=E[I].length,I++;var M=E[I],k=C/M.length,T=M.command,Q=b[I],H;switch(T){case"M":return{x:M.x,y:M.y,angle:0};case"Z":case"z":return H=new t.Point(M.x,M.y).lerp(new t.Point(M.destX,M.destY),k),H.angle=Math.atan2(M.destY-M.y,M.destX-M.x),H;case"L":return H=new t.Point(M.x,M.y).lerp(new t.Point(Q[1],Q[2]),k),H.angle=Math.atan2(Q[2]-M.y,Q[1]-M.x),H;case"C":return rt(M,C);case"Q":return rt(M,C)}}function j(b){var C=[],E=[],I,M,k=t.rePathCommand,T="[-+]?(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][-+]?\\d+)?\\s*",Q="("+T+")"+t.commaWsp,H="([01])"+t.commaWsp+"?",Y=Q+"?"+Q+"?"+Q+H+H+Q+"?("+T+")",W=new RegExp(Y,"g"),J,tt,F;if(!b||!b.match)return C;F=b.match(/[mzlhvcsqta][^mzlhvcsqta]*/gi);for(var L=0,D,G=F.length;L<G;L++){I=F[L],tt=I.slice(1).trim(),E.length=0;var z=I.charAt(0);if(D=[z],z.toLowerCase()==="a")for(var X;X=W.exec(tt);)for(var et=1;et<X.length;et++)E.push(X[et]);else for(;J=k.exec(tt);)E.push(J[0]);for(var et=0,at=E.length;et<at;et++)M=parseFloat(E[et]),isNaN(M)||D.push(M);var lt=o[z.toLowerCase()],ct=s[z]||z;if(D.length-1>lt)for(var it=1,ut=D.length;it<ut;it+=lt)C.push([z].concat(D.slice(it,it+lt))),z=ct;else C.push(D)}return C}function B(b,C){var E=[],I,M=new t.Point(b[0].x,b[0].y),k=new t.Point(b[1].x,b[1].y),T=b.length,Q=1,H=0,Y=T>2;for(C=C||0,Y&&(Q=b[2].x<k.x?-1:b[2].x===k.x?0:1,H=b[2].y<k.y?-1:b[2].y===k.y?0:1),E.push(["M",M.x-Q*C,M.y-H*C]),I=1;I<T;I++){if(!M.eq(k)){var W=M.midPointFrom(k);E.push(["Q",M.x,M.y,W.x,W.y])}M=b[I],I+1<b.length&&(k=b[I+1])}return Y&&(Q=M.x>b[I-2].x?1:M.x===b[I-2].x?0:-1,H=M.y>b[I-2].y?1:M.y===b[I-2].y?0:-1),E.push(["L",M.x+Q*C,M.y+H*C]),E}function x(b,C,E){return E&&(C=t.util.multiplyTransformMatrices(C,[1,0,0,1,-E.x,-E.y])),b.map(function(I){for(var M=I.slice(0),k={},T=1;T<I.length-1;T+=2)k.x=I[T],k.y=I[T+1],k=t.util.transformPoint(k,C),M[T]=k.x,M[T+1]=k.y;return M})}t.util.joinPath=function(b){return b.map(function(C){return C.join(" ")}).join(" ")},t.util.parsePath=j,t.util.makePathSimpler=g,t.util.getSmoothPathFromPoints=B,t.util.getPathSegmentsInfo=$,t.util.getBoundsOfCurve=a,t.util.getPointOnPath=U,t.util.transformPath=x})(),(function(){var u=Array.prototype.slice;function o(a,h){for(var g=u.call(arguments,2),d=[],A=0,y=a.length;A<y;A++)d[A]=g.length?a[A][h].apply(a[A],g):a[A][h].call(a[A]);return d}function s(a,h){return l(a,h,function(g,d){return g>=d})}function c(a,h){return l(a,h,function(g,d){return g<d})}function i(a,h){for(var g=a.length;g--;)a[g]=h;return a}function l(a,h,g){if(!(!a||a.length===0)){var d=a.length-1,A=h?a[d][h]:a[d];if(h)for(;d--;)g(a[d][h],A)&&(A=a[d][h]);else for(;d--;)g(a[d],A)&&(A=a[d]);return A}}t.util.array={fill:i,invoke:o,min:c,max:s}})(),(function(){function u(s,c,i){if(i)if(!t.isLikelyNode&&c instanceof Element)s=c;else if(c instanceof Array){s=[];for(var l=0,a=c.length;l<a;l++)s[l]=u({},c[l],i)}else if(c&&typeof c=="object")for(var h in c)h==="canvas"||h==="group"?s[h]=null:c.hasOwnProperty(h)&&(s[h]=u({},c[h],i));else s=c;else for(var h in c)s[h]=c[h];return s}function o(s,c){return u({},s,c)}t.util.object={extend:u,clone:o},t.util.object.extend(t.util,t.Observable)})(),(function(){function u(l){return l.replace(/-+(.)?/g,function(a,h){return h?h.toUpperCase():""})}function o(l,a){return l.charAt(0).toUpperCase()+(a?l.slice(1):l.slice(1).toLowerCase())}function s(l){return l.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function c(l){var a=0,h,g=[];for(a=0,h;a<l.length;a++)(h=i(l,a))!==!1&&g.push(h);return g}function i(l,a){var h=l.charCodeAt(a);if(isNaN(h))return"";if(h<55296||h>57343)return l.charAt(a);if(55296<=h&&h<=56319){if(l.length<=a+1)throw"High surrogate without following low surrogate";var g=l.charCodeAt(a+1);if(56320>g||g>57343)throw"High surrogate without following low surrogate";return l.charAt(a)+l.charAt(a+1)}if(a===0)throw"Low surrogate without preceding high surrogate";var d=l.charCodeAt(a-1);if(55296>d||d>56319)throw"Low surrogate without preceding high surrogate";return!1}t.util.string={camelize:u,capitalize:o,escapeXml:s,graphemeSplit:c}})(),(function(){var u=Array.prototype.slice,o=function(){},s=(function(){for(var h in{toString:1})if(h==="toString")return!1;return!0})(),c=function(h,g,d){for(var A in g)A in h.prototype&&typeof h.prototype[A]=="function"&&(g[A]+"").indexOf("callSuper")>-1?h.prototype[A]=(function(y){return function(){var m=this.constructor.superclass;this.constructor.superclass=d;var _=g[y].apply(this,arguments);if(this.constructor.superclass=m,y!=="initialize")return _}})(A):h.prototype[A]=g[A],s&&(g.toString!==Object.prototype.toString&&(h.prototype.toString=g.toString),g.valueOf!==Object.prototype.valueOf&&(h.prototype.valueOf=g.valueOf))};function i(){}function l(h){for(var g=null,d=this;d.constructor.superclass;){var A=d.constructor.superclass.prototype[h];if(d[h]!==A){g=A;break}d=d.constructor.superclass.prototype}return g?arguments.length>1?g.apply(this,u.call(arguments,1)):g.call(this):console.log("tried to callSuper "+h+", method not found in prototype chain",this)}function a(){var h=null,g=u.call(arguments,0);typeof g[0]=="function"&&(h=g.shift());function d(){this.initialize.apply(this,arguments)}d.superclass=h,d.subclasses=[],h&&(i.prototype=h.prototype,d.prototype=new i,h.subclasses.push(d));for(var A=0,y=g.length;A<y;A++)c(d,g[A],h);return d.prototype.initialize||(d.prototype.initialize=o),d.prototype.constructor=d,d.prototype.callSuper=l,d}t.util.createClass=a})(),(function(){var u=!!t.document.createElement("div").attachEvent,o=["touchstart","touchmove","touchend"];t.util.addListener=function(c,i,l,a){c&&c.addEventListener(i,l,u?!1:a)},t.util.removeListener=function(c,i,l,a){c&&c.removeEventListener(i,l,u?!1:a)};function s(c){var i=c.changedTouches;return i&&i[0]?i[0]:c}t.util.getPointer=function(c){var i=c.target,l=t.util.getScrollLeftTop(i),a=s(c);return{x:a.clientX+l.left,y:a.clientY+l.top}},t.util.isTouchEvent=function(c){return o.indexOf(c.type)>-1||c.pointerType==="touch"}})(),(function(){function u(a,h){var g=a.style;if(!g)return a;if(typeof h=="string")return a.style.cssText+=";"+h,h.indexOf("opacity")>-1?l(a,h.match(/opacity:\s*(\d?\.?\d*)/)[1]):a;for(var d in h)if(d==="opacity")l(a,h[d]);else{var A=d==="float"||d==="cssFloat"?typeof g.styleFloat>"u"?"cssFloat":"styleFloat":d;g.setProperty(A,h[d])}return a}var o=t.document.createElement("div"),s=typeof o.style.opacity=="string",c=typeof o.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,l=function(a){return a};s?l=function(a,h){return a.style.opacity=h,a}:c&&(l=function(a,h){var g=a.style;return a.currentStyle&&!a.currentStyle.hasLayout&&(g.zoom=1),i.test(g.filter)?(h=h>=.9999?"":"alpha(opacity="+h*100+")",g.filter=g.filter.replace(i,h)):g.filter+=" alpha(opacity="+h*100+")",a}),t.util.setStyle=u})(),(function(){var u=Array.prototype.slice;function o(_){return typeof _=="string"?t.document.getElementById(_):_}var s,c=function(_){return u.call(_,0)};try{s=c(t.document.childNodes)instanceof Array}catch{}s||(c=function(_){for(var w=new Array(_.length),S=_.length;S--;)w[S]=_[S];return w});function i(_,w){var S=t.document.createElement(_);for(var O in w)O==="class"?S.className=w[O]:O==="for"?S.htmlFor=w[O]:S.setAttribute(O,w[O]);return S}function l(_,w){_&&(" "+_.className+" ").indexOf(" "+w+" ")===-1&&(_.className+=(_.className?" ":"")+w)}function a(_,w,S){return typeof w=="string"&&(w=i(w,S)),_.parentNode&&_.parentNode.replaceChild(w,_),w.appendChild(_),w}function h(_){for(var w=0,S=0,O=t.document.documentElement,P=t.document.body||{scrollLeft:0,scrollTop:0};_&&(_.parentNode||_.host)&&(_=_.parentNode||_.host,_===t.document?(w=P.scrollLeft||O.scrollLeft||0,S=P.scrollTop||O.scrollTop||0):(w+=_.scrollLeft||0,S+=_.scrollTop||0),!(_.nodeType===1&&_.style.position==="fixed")););return{left:w,top:S}}function g(_){var w,S=_&&_.ownerDocument,O={left:0,top:0},P={left:0,top:0},N,q={borderLeftWidth:"left",borderTopWidth:"top",paddingLeft:"left",paddingTop:"top"};if(!S)return P;for(var Z in q)P[q[Z]]+=parseInt(d(_,Z),10)||0;return w=S.documentElement,typeof _.getBoundingClientRect<"u"&&(O=_.getBoundingClientRect()),N=h(_),{left:O.left+N.left-(w.clientLeft||0)+P.left,top:O.top+N.top-(w.clientTop||0)+P.top}}var d;t.document.defaultView&&t.document.defaultView.getComputedStyle?d=function(_,w){var S=t.document.defaultView.getComputedStyle(_,null);return S?S[w]:void 0}:d=function(_,w){var S=_.style[w];return!S&&_.currentStyle&&(S=_.currentStyle[w]),S},(function(){var _=t.document.documentElement.style,w="userSelect"in _?"userSelect":"MozUserSelect"in _?"MozUserSelect":"WebkitUserSelect"in _?"WebkitUserSelect":"KhtmlUserSelect"in _?"KhtmlUserSelect":"";function S(P){return typeof P.onselectstart<"u"&&(P.onselectstart=t.util.falseFunction),w?P.style[w]="none":typeof P.unselectable=="string"&&(P.unselectable="on"),P}function O(P){return typeof P.onselectstart<"u"&&(P.onselectstart=null),w?P.style[w]="":typeof P.unselectable=="string"&&(P.unselectable=""),P}t.util.makeElementUnselectable=S,t.util.makeElementSelectable=O})();function A(_){var w=t.jsdomImplForWrapper(_);return w._canvas||w._image}function y(_){if(t.isLikelyNode){var w=t.jsdomImplForWrapper(_);w&&(w._image=null,w._canvas=null,w._currentSrc=null,w._attributes=null,w._classList=null)}}function m(_,w){_.imageSmoothingEnabled=_.imageSmoothingEnabled||_.webkitImageSmoothingEnabled||_.mozImageSmoothingEnabled||_.msImageSmoothingEnabled||_.oImageSmoothingEnabled,_.imageSmoothingEnabled=w}t.util.setImageSmoothing=m,t.util.getById=o,t.util.toArray=c,t.util.addClass=l,t.util.makeElement=i,t.util.wrapElement=a,t.util.getScrollLeftTop=h,t.util.getElementOffset=g,t.util.getNodeCanvas=A,t.util.cleanUpJsdomNode=y})(),(function(){function u(c,i){return c+(/\?/.test(c)?"&":"?")+i}function o(){}function s(c,i){i||(i={});var l=i.method?i.method.toUpperCase():"GET",a=i.onComplete||function(){},h=new t.window.XMLHttpRequest,g=i.body||i.parameters;return h.onreadystatechange=function(){h.readyState===4&&(a(h),h.onreadystatechange=o)},l==="GET"&&(g=null,typeof i.parameters=="string"&&(c=u(c,i.parameters))),h.open(l,c,!0),(l==="POST"||l==="PUT")&&h.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),h.send(g),h}t.util.request=s})(),t.log=console.log,t.warn=console.warn,(function(){var u=t.util.object.extend,o=t.util.object.clone,s=[];t.util.object.extend(s,{cancelAll:function(){var A=this.splice(0);return A.forEach(function(y){y.cancel()}),A},cancelByCanvas:function(A){if(!A)return[];var y=this.filter(function(m){return typeof m.target=="object"&&m.target.canvas===A});return y.forEach(function(m){m.cancel()}),y},cancelByTarget:function(A){var y=this.findAnimationsByTarget(A);return y.forEach(function(m){m.cancel()}),y},findAnimationIndex:function(A){return this.indexOf(this.findAnimation(A))},findAnimation:function(A){return this.find(function(y){return y.cancel===A})},findAnimationsByTarget:function(A){return A?this.filter(function(y){return y.target===A}):[]}});function c(){return!1}function i(A,y,m,_){return-m*Math.cos(A/_*(Math.PI/2))+m+y}function l(A){A||(A={});var y=!1,m,_=function(){var w=t.runningAnimations.indexOf(m);return w>-1&&t.runningAnimations.splice(w,1)[0]};return m=u(o(A),{cancel:function(){return y=!0,_()},currentValue:"startValue"in A?A.startValue:0,completionRate:0,durationRate:0}),t.runningAnimations.push(m),g(function(w){var S=w||+new Date,O=A.duration||500,P=S+O,N,q=A.onChange||c,Z=A.abort||c,K=A.onComplete||c,rt=A.easing||i,$="startValue"in A?A.startValue.length>0:!1,U="startValue"in A?A.startValue:0,j="endValue"in A?A.endValue:100,B=A.byValue||($?U.map(function(x,b){return j[b]-U[b]}):j-U);A.onStart&&A.onStart(),(function x(b){N=b||+new Date;var C=N>P?O:N-S,E=C/O,I=$?U.map(function(k,T){return rt(C,U[T],B[T],O)}):rt(C,U,B,O),M=Math.abs($?(I[0]-U[0])/B[0]:(I-U)/B);if(m.currentValue=$?I.slice():I,m.completionRate=M,m.durationRate=E,!y){if(Z(I,M,E)){_();return}if(N>P){m.currentValue=$?j.slice():j,m.completionRate=1,m.durationRate=1,q($?j.slice():j,1,1),K(j,1,1),_();return}else q(I,M,E),g(x)}})(S)}),m.cancel}var a=t.window.requestAnimationFrame||t.window.webkitRequestAnimationFrame||t.window.mozRequestAnimationFrame||t.window.oRequestAnimationFrame||t.window.msRequestAnimationFrame||function(A){return t.window.setTimeout(A,1e3/60)},h=t.window.cancelAnimationFrame||t.window.clearTimeout;function g(){return a.apply(t.window,arguments)}function d(){return h.apply(t.window,arguments)}t.util.animate=l,t.util.requestAnimFrame=g,t.util.cancelAnimFrame=d,t.runningAnimations=s})(),(function(){function u(s,c,i){var l="rgba("+parseInt(s[0]+i*(c[0]-s[0]),10)+","+parseInt(s[1]+i*(c[1]-s[1]),10)+","+parseInt(s[2]+i*(c[2]-s[2]),10);return l+=","+(s&&c?parseFloat(s[3]+i*(c[3]-s[3])):1),l+=")",l}function o(s,c,i,l){var a=new t.Color(s).getSource(),h=new t.Color(c).getSource(),g=l.onComplete,d=l.onChange;return l=l||{},t.util.animate(t.util.object.extend(l,{duration:i||500,startValue:a,endValue:h,byValue:h,easing:function(A,y,m,_){var w=l.colorEasing?l.colorEasing(A,_):1-Math.cos(A/_*(Math.PI/2));return u(y,m,w)},onComplete:function(A,y,m){if(g)return g(u(h,h,0),y,m)},onChange:function(A,y,m){if(d){if(Array.isArray(A))return d(u(A,A,0),y,m);d(A,y,m)}}}))}t.util.animateColor=o})(),(function(){function u(b,C,E,I){return b<Math.abs(C)?(b=C,I=E/4):C===0&&b===0?I=E/(2*Math.PI)*Math.asin(1):I=E/(2*Math.PI)*Math.asin(C/b),{a:b,c:C,p:E,s:I}}function o(b,C,E){return b.a*Math.pow(2,10*(C-=1))*Math.sin((C*E-b.s)*(2*Math.PI)/b.p)}function s(b,C,E,I){return E*((b=b/I-1)*b*b+1)+C}function c(b,C,E,I){return b/=I/2,b<1?E/2*b*b*b+C:E/2*((b-=2)*b*b+2)+C}function i(b,C,E,I){return E*(b/=I)*b*b*b+C}function l(b,C,E,I){return-E*((b=b/I-1)*b*b*b-1)+C}function a(b,C,E,I){return b/=I/2,b<1?E/2*b*b*b*b+C:-E/2*((b-=2)*b*b*b-2)+C}function h(b,C,E,I){return E*(b/=I)*b*b*b*b+C}function g(b,C,E,I){return E*((b=b/I-1)*b*b*b*b+1)+C}function d(b,C,E,I){return b/=I/2,b<1?E/2*b*b*b*b*b+C:E/2*((b-=2)*b*b*b*b+2)+C}function A(b,C,E,I){return-E*Math.cos(b/I*(Math.PI/2))+E+C}function y(b,C,E,I){return E*Math.sin(b/I*(Math.PI/2))+C}function m(b,C,E,I){return-E/2*(Math.cos(Math.PI*b/I)-1)+C}function _(b,C,E,I){return b===0?C:E*Math.pow(2,10*(b/I-1))+C}function w(b,C,E,I){return b===I?C+E:E*(-Math.pow(2,-10*b/I)+1)+C}function S(b,C,E,I){return b===0?C:b===I?C+E:(b/=I/2,b<1?E/2*Math.pow(2,10*(b-1))+C:E/2*(-Math.pow(2,-10*--b)+2)+C)}function O(b,C,E,I){return-E*(Math.sqrt(1-(b/=I)*b)-1)+C}function P(b,C,E,I){return E*Math.sqrt(1-(b=b/I-1)*b)+C}function N(b,C,E,I){return b/=I/2,b<1?-E/2*(Math.sqrt(1-b*b)-1)+C:E/2*(Math.sqrt(1-(b-=2)*b)+1)+C}function q(b,C,E,I){var M=1.70158,k=0,T=E;if(b===0)return C;if(b/=I,b===1)return C+E;k||(k=I*.3);var Q=u(T,E,k,M);return-o(Q,b,I)+C}function Z(b,C,E,I){var M=1.70158,k=0,T=E;if(b===0)return C;if(b/=I,b===1)return C+E;k||(k=I*.3);var Q=u(T,E,k,M);return Q.a*Math.pow(2,-10*b)*Math.sin((b*I-Q.s)*(2*Math.PI)/Q.p)+Q.c+C}function K(b,C,E,I){var M=1.70158,k=0,T=E;if(b===0)return C;if(b/=I/2,b===2)return C+E;k||(k=I*(.3*1.5));var Q=u(T,E,k,M);return b<1?-.5*o(Q,b,I)+C:Q.a*Math.pow(2,-10*(b-=1))*Math.sin((b*I-Q.s)*(2*Math.PI)/Q.p)*.5+Q.c+C}function rt(b,C,E,I,M){return M===void 0&&(M=1.70158),E*(b/=I)*b*((M+1)*b-M)+C}function $(b,C,E,I,M){return M===void 0&&(M=1.70158),E*((b=b/I-1)*b*((M+1)*b+M)+1)+C}function U(b,C,E,I,M){return M===void 0&&(M=1.70158),b/=I/2,b<1?E/2*(b*b*(((M*=1.525)+1)*b-M))+C:E/2*((b-=2)*b*(((M*=1.525)+1)*b+M)+2)+C}function j(b,C,E,I){return E-B(I-b,0,E,I)+C}function B(b,C,E,I){return(b/=I)<1/2.75?E*(7.5625*b*b)+C:b<2/2.75?E*(7.5625*(b-=1.5/2.75)*b+.75)+C:b<2.5/2.75?E*(7.5625*(b-=2.25/2.75)*b+.9375)+C:E*(7.5625*(b-=2.625/2.75)*b+.984375)+C}function x(b,C,E,I){return b<I/2?j(b*2,0,E,I)*.5+C:B(b*2-I,0,E,I)*.5+E*.5+C}t.util.ease={easeInQuad:function(b,C,E,I){return E*(b/=I)*b+C},easeOutQuad:function(b,C,E,I){return-E*(b/=I)*(b-2)+C},easeInOutQuad:function(b,C,E,I){return b/=I/2,b<1?E/2*b*b+C:-E/2*(--b*(b-2)-1)+C},easeInCubic:function(b,C,E,I){return E*(b/=I)*b*b+C},easeOutCubic:s,easeInOutCubic:c,easeInQuart:i,easeOutQuart:l,easeInOutQuart:a,easeInQuint:h,easeOutQuint:g,easeInOutQuint:d,easeInSine:A,easeOutSine:y,easeInOutSine:m,easeInExpo:_,easeOutExpo:w,easeInOutExpo:S,easeInCirc:O,easeOutCirc:P,easeInOutCirc:N,easeInElastic:q,easeOutElastic:Z,easeInOutElastic:K,easeInBack:rt,easeOutBack:$,easeInOutBack:U,easeInBounce:j,easeOutBounce:B,easeInOutBounce:x}})(),(function(u){var o=u.fabric||(u.fabric={}),s=o.util.object.extend,c=o.util.object.clone,i=o.util.toFixed,l=o.util.parseUnit,a=o.util.multiplyTransformMatrices,h=["path","circle","polygon","polyline","ellipse","rect","line","image","text"],g=["symbol","image","marker","pattern","view","svg"],d=["pattern","defs","symbol","metadata","clipPath","mask","desc"],A=["symbol","g","a","svg","clipPath","defs"],y={cx:"left",x:"left",r:"radius",cy:"top",y:"top",display:"visible",visibility:"visible",transform:"transformMatrix","fill-opacity":"fillOpacity","fill-rule":"fillRule","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","letter-spacing":"charSpacing","paint-order":"paintFirst","stroke-dasharray":"strokeDashArray","stroke-dashoffset":"strokeDashOffset","stroke-linecap":"strokeLineCap","stroke-linejoin":"strokeLineJoin","stroke-miterlimit":"strokeMiterLimit","stroke-opacity":"strokeOpacity","stroke-width":"strokeWidth","text-decoration":"textDecoration","text-anchor":"textAnchor",opacity:"opacity","clip-path":"clipPath","clip-rule":"clipRule","vector-effect":"strokeUniform","image-rendering":"imageSmoothing"},m={stroke:"strokeOpacity",fill:"fillOpacity"},_="font-size",w="clip-path";o.svgValidTagNamesRegEx=P(h),o.svgViewBoxElementsRegEx=P(g),o.svgInvalidAncestorsRegEx=P(d),o.svgValidParentsRegEx=P(A),o.cssRules={},o.gradientDefs={},o.clipPaths={};function S(k){return k in y?y[k]:k}function O(k,T,Q,H){var Y=Array.isArray(T),W;if((k==="fill"||k==="stroke")&&T==="none")T="";else{if(k==="strokeUniform")return T==="non-scaling-stroke";if(k==="strokeDashArray")T==="none"?T=null:T=T.replace(/,/g," ").split(/\s+/).map(parseFloat);else if(k==="transformMatrix")Q&&Q.transformMatrix?T=a(Q.transformMatrix,o.parseTransformAttribute(T)):T=o.parseTransformAttribute(T);else if(k==="visible")T=T!=="none"&&T!=="hidden",Q&&Q.visible===!1&&(T=!1);else if(k==="opacity")T=parseFloat(T),Q&&typeof Q.opacity<"u"&&(T*=Q.opacity);else if(k==="textAnchor")T=T==="start"?"left":T==="end"?"right":"center";else if(k==="charSpacing")W=l(T,H)/H*1e3;else if(k==="paintFirst"){var J=T.indexOf("fill"),tt=T.indexOf("stroke"),T="fill";(J>-1&&tt>-1&&tt<J||J===-1&&tt>-1)&&(T="stroke")}else{if(k==="href"||k==="xlink:href"||k==="font")return T;if(k==="imageSmoothing")return T==="optimizeQuality";W=Y?T.map(l):l(T,H)}}return!Y&&isNaN(W)?T:W}function P(k){return new RegExp("^("+k.join("|")+")\\b","i")}function N(k){for(var T in m)if(!(typeof k[m[T]]>"u"||k[T]==="")){if(typeof k[T]>"u"){if(!o.Object.prototype[T])continue;k[T]=o.Object.prototype[T]}if(k[T].indexOf("url(")!==0){var Q=new o.Color(k[T]);k[T]=Q.setAlpha(i(Q.getAlpha()*k[m[T]],2)).toRgba()}}return k}function q(k,T){var Q,H=[],Y,W,J;for(W=0,J=T.length;W<J;W++)Q=T[W],Y=k.getElementsByTagName(Q),H=H.concat(Array.prototype.slice.call(Y));return H}o.parseTransformAttribute=(function(){function k(it,ut){var ft=o.util.cos(ut[0]),dt=o.util.sin(ut[0]),pt=0,ht=0;ut.length===3&&(pt=ut[1],ht=ut[2]),it[0]=ft,it[1]=dt,it[2]=-dt,it[3]=ft,it[4]=pt-(ft*pt-dt*ht),it[5]=ht-(dt*pt+ft*ht)}function T(it,ut){var ft=ut[0],dt=ut.length===2?ut[1]:ut[0];it[0]=ft,it[3]=dt}function Q(it,ut,ft){it[ft]=Math.tan(o.util.degreesToRadians(ut[0]))}function H(it,ut){it[4]=ut[0],ut.length===2&&(it[5]=ut[1])}var Y=o.iMatrix,W=o.reNum,J=o.commaWsp,tt="(?:(skewX)\\s*\\(\\s*("+W+")\\s*\\))",F="(?:(skewY)\\s*\\(\\s*("+W+")\\s*\\))",L="(?:(rotate)\\s*\\(\\s*("+W+")(?:"+J+"("+W+")"+J+"("+W+"))?\\s*\\))",D="(?:(scale)\\s*\\(\\s*("+W+")(?:"+J+"("+W+"))?\\s*\\))",G="(?:(translate)\\s*\\(\\s*("+W+")(?:"+J+"("+W+"))?\\s*\\))",z="(?:(matrix)\\s*\\(\\s*("+W+")"+J+"("+W+")"+J+"("+W+")"+J+"("+W+")"+J+"("+W+")"+J+"("+W+")\\s*\\))",X="(?:"+z+"|"+G+"|"+D+"|"+L+"|"+tt+"|"+F+")",et="(?:"+X+"(?:"+J+"*"+X+")*)",at="^\\s*(?:"+et+"?)\\s*$",lt=new RegExp(at),ct=new RegExp(X,"g");return function(it){var ut=Y.concat(),ft=[];if(!it||it&&!lt.test(it))return ut;it.replace(ct,function(pt){var ht=new RegExp(X).exec(pt).filter(function(At){return!!At}),Et=ht[1],yt=ht.slice(2).map(parseFloat);switch(Et){case"translate":H(ut,yt);break;case"rotate":yt[0]=o.util.degreesToRadians(yt[0]),k(ut,yt);break;case"scale":T(ut,yt);break;case"skewX":Q(ut,yt,2);break;case"skewY":Q(ut,yt,1);break;case"matrix":ut=yt;break}ft.push(ut.concat()),ut=Y.concat()});for(var dt=ft[0];ft.length>1;)ft.shift(),dt=o.util.multiplyTransformMatrices(dt,ft[0]);return dt}})();function Z(k,T){var Q,H;k.replace(/;\s*$/,"").split(";").forEach(function(Y){var W=Y.split(":");Q=W[0].trim().toLowerCase(),H=W[1].trim(),T[Q]=H})}function K(k,T){var Q,H;for(var Y in k)typeof k[Y]>"u"||(Q=Y.toLowerCase(),H=k[Y],T[Q]=H)}function rt(k,T){var Q={};for(var H in o.cssRules[T])if($(k,H.split(" ")))for(var Y in o.cssRules[T][H])Q[Y]=o.cssRules[T][H][Y];return Q}function $(k,T){var Q,H=!0;return Q=j(k,T.pop()),Q&&T.length&&(H=U(k,T)),Q&&H&&T.length===0}function U(k,T){for(var Q,H=!0;k.parentNode&&k.parentNode.nodeType===1&&T.length;)H&&(Q=T.pop()),k=k.parentNode,H=j(k,Q);return T.length===0}function j(k,T){var Q=k.nodeName,H=k.getAttribute("class"),Y=k.getAttribute("id"),W,J;if(W=new RegExp("^"+Q,"i"),T=T.replace(W,""),Y&&T.length&&(W=new RegExp("#"+Y+"(?![a-zA-Z\\-]+)","i"),T=T.replace(W,"")),H&&T.length)for(H=H.split(" "),J=H.length;J--;)W=new RegExp("\\."+H[J]+"(?![a-zA-Z\\-]+)","i"),T=T.replace(W,"");return T.length===0}function B(k,T){var Q;if(k.getElementById&&(Q=k.getElementById(T)),Q)return Q;var H,Y,W,J=k.getElementsByTagName("*");for(Y=0,W=J.length;Y<W;Y++)if(H=J[Y],T===H.getAttribute("id"))return H}function x(k){for(var T=q(k,["use","svg:use"]),Q=0;T.length&&Q<T.length;){var H=T[Q],Y=H.getAttribute("xlink:href")||H.getAttribute("href");if(Y===null)return;var W=Y.slice(1),J=H.getAttribute("x")||0,tt=H.getAttribute("y")||0,F=B(k,W).cloneNode(!0),L=(F.getAttribute("transform")||"")+" translate("+J+", "+tt+")",D,G=T.length,z,X,et,at,lt=o.svgNS;if(C(F),/^svg$/i.test(F.nodeName)){var ct=F.ownerDocument.createElementNS(lt,"g");for(X=0,et=F.attributes,at=et.length;X<at;X++)z=et.item(X),ct.setAttributeNS(lt,z.nodeName,z.nodeValue);for(;F.firstChild;)ct.appendChild(F.firstChild);F=ct}for(X=0,et=H.attributes,at=et.length;X<at;X++)z=et.item(X),!(z.nodeName==="x"||z.nodeName==="y"||z.nodeName==="xlink:href"||z.nodeName==="href")&&(z.nodeName==="transform"?L=z.nodeValue+" "+L:F.setAttribute(z.nodeName,z.nodeValue));F.setAttribute("transform",L),F.setAttribute("instantiated_by_use","1"),F.removeAttribute("id"),D=H.parentNode,D.replaceChild(F,H),T.length===G&&Q++}}var b=new RegExp("^\\s*("+o.reNum+"+)\\s*,?\\s*("+o.reNum+"+)\\s*,?\\s*("+o.reNum+"+)\\s*,?\\s*("+o.reNum+"+)\\s*$");function C(k){if(!o.svgViewBoxElementsRegEx.test(k.nodeName))return{};var T=k.getAttribute("viewBox"),Q=1,H=1,Y=0,W=0,J,tt,F,L,D=k.getAttribute("width"),G=k.getAttribute("height"),z=k.getAttribute("x")||0,X=k.getAttribute("y")||0,et=k.getAttribute("preserveAspectRatio")||"",at=!T||!(T=T.match(b)),lt=!D||!G||D==="100%"||G==="100%",ct=at&&lt,it={},ut="",ft=0,dt=0;if(it.width=0,it.height=0,it.toBeParsed=ct,at&&(z||X)&&k.parentNode&&k.parentNode.nodeName!=="#document"&&(ut=" translate("+l(z)+" "+l(X)+") ",F=(k.getAttribute("transform")||"")+ut,k.setAttribute("transform",F),k.removeAttribute("x"),k.removeAttribute("y")),ct)return it;if(at)return it.width=l(D),it.height=l(G),it;if(Y=-parseFloat(T[1]),W=-parseFloat(T[2]),J=parseFloat(T[3]),tt=parseFloat(T[4]),it.minX=Y,it.minY=W,it.viewBoxWidth=J,it.viewBoxHeight=tt,lt?(it.width=J,it.height=tt):(it.width=l(D),it.height=l(G),Q=it.width/J,H=it.height/tt),et=o.util.parsePreserveAspectRatioAttribute(et),et.alignX!=="none"&&(et.meetOrSlice==="meet"&&(H=Q=Q>H?H:Q),et.meetOrSlice==="slice"&&(H=Q=Q>H?Q:H),ft=it.width-J*Q,dt=it.height-tt*Q,et.alignX==="Mid"&&(ft/=2),et.alignY==="Mid"&&(dt/=2),et.alignX==="Min"&&(ft=0),et.alignY==="Min"&&(dt=0)),Q===1&&H===1&&Y===0&&W===0&&z===0&&X===0)return it;if((z||X)&&k.parentNode.nodeName!=="#document"&&(ut=" translate("+l(z)+" "+l(X)+") "),F=ut+" matrix("+Q+" 0 0 "+H+" "+(Y*Q+ft)+" "+(W*H+dt)+") ",k.nodeName==="svg"){for(L=k.ownerDocument.createElementNS(o.svgNS,"g");k.firstChild;)L.appendChild(k.firstChild);k.appendChild(L)}else L=k,L.removeAttribute("x"),L.removeAttribute("y"),F=L.getAttribute("transform")+F;return L.setAttribute("transform",F),it}function E(k,T){for(;k&&(k=k.parentNode);)if(k.nodeName&&T.test(k.nodeName.replace("svg:",""))&&!k.getAttribute("instantiated_by_use"))return!0;return!1}o.parseSVGDocument=function(k,T,Q,H){if(k){x(k);var Y=o.Object.__uid++,W,J,tt=C(k),F=o.util.toArray(k.getElementsByTagName("*"));if(tt.crossOrigin=H&&H.crossOrigin,tt.svgUid=Y,F.length===0&&o.isLikelyNode){F=k.selectNodes('//*[name(.)!="svg"]');var L=[];for(W=0,J=F.length;W<J;W++)L[W]=F[W];F=L}var D=F.filter(function(z){return C(z),o.svgValidTagNamesRegEx.test(z.nodeName.replace("svg:",""))&&!E(z,o.svgInvalidAncestorsRegEx)});if(!D||D&&!D.length){T&&T([],{});return}var G={};F.filter(function(z){return z.nodeName.replace("svg:","")==="clipPath"}).forEach(function(z){var X=z.getAttribute("id");G[X]=o.util.toArray(z.getElementsByTagName("*")).filter(function(et){return o.svgValidTagNamesRegEx.test(et.nodeName.replace("svg:",""))})}),o.gradientDefs[Y]=o.getGradientDefs(k),o.cssRules[Y]=o.getCSSRules(k),o.clipPaths[Y]=G,o.parseElements(D,function(z,X){T&&(T(z,tt,X,F),delete o.gradientDefs[Y],delete o.cssRules[Y],delete o.clipPaths[Y])},c(tt),Q,H)}};function I(k,T){var Q=["gradientTransform","x1","x2","y1","y2","gradientUnits","cx","cy","r","fx","fy"],H="xlink:href",Y=T.getAttribute(H).slice(1),W=B(k,Y);if(W&&W.getAttribute(H)&&I(k,W),Q.forEach(function(tt){W&&!T.hasAttribute(tt)&&W.hasAttribute(tt)&&T.setAttribute(tt,W.getAttribute(tt))}),!T.children.length)for(var J=W.cloneNode(!0);J.firstChild;)T.appendChild(J.firstChild);T.removeAttribute(H)}var M=new RegExp("(normal|italic)?\\s*(normal|small-caps)?\\s*(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\s*("+o.reNum+"(?:px|cm|mm|em|pt|pc|in)*)(?:\\/(normal|"+o.reNum+"))?\\s+(.*)");s(o,{parseFontDeclaration:function(k,T){var Q=k.match(M);if(Q){var H=Q[1],Y=Q[3],W=Q[4],J=Q[5],tt=Q[6];H&&(T.fontStyle=H),Y&&(T.fontWeight=isNaN(parseFloat(Y))?Y:parseFloat(Y)),W&&(T.fontSize=l(W)),tt&&(T.fontFamily=tt),J&&(T.lineHeight=J==="normal"?1:J)}},getGradientDefs:function(k){var T=["linearGradient","radialGradient","svg:linearGradient","svg:radialGradient"],Q=q(k,T),H,Y=0,W={};for(Y=Q.length;Y--;)H=Q[Y],H.getAttribute("xlink:href")&&I(k,H),W[H.getAttribute("id")]=H;return W},parseAttributes:function(k,T,Q){if(k){var H,Y={},W,J;typeof Q>"u"&&(Q=k.getAttribute("svgUid")),k.parentNode&&o.svgValidParentsRegEx.test(k.parentNode.nodeName)&&(Y=o.parseAttributes(k.parentNode,T,Q));var tt=T.reduce(function(et,at){return H=k.getAttribute(at),H&&(et[at]=H),et},{}),F=s(rt(k,Q),o.parseStyleAttribute(k));tt=s(tt,F),F[w]&&k.setAttribute(w,F[w]),W=J=Y.fontSize||o.Text.DEFAULT_SVG_FONT_SIZE,tt[_]&&(tt[_]=W=l(tt[_],J));var L,D,G={};for(var z in tt)L=S(z),D=O(L,tt[z],Y,W),G[L]=D;G&&G.font&&o.parseFontDeclaration(G.font,G);var X=s(Y,G);return o.svgValidParentsRegEx.test(k.nodeName)?X:N(X)}},parseElements:function(k,T,Q,H,Y){new o.ElementsParser(k,T,Q,H,Y).parse()},parseStyleAttribute:function(k){var T={},Q=k.getAttribute("style");return Q&&(typeof Q=="string"?Z(Q,T):K(Q,T)),T},parsePointsAttribute:function(k){if(!k)return null;k=k.replace(/,/g," ").trim(),k=k.split(/\s+/);var T=[],Q,H;for(Q=0,H=k.length;Q<H;Q+=2)T.push({x:parseFloat(k[Q]),y:parseFloat(k[Q+1])});return T},getCSSRules:function(k){var T=k.getElementsByTagName("style"),Q,H,Y={},W;for(Q=0,H=T.length;Q<H;Q++){var J=T[Q].textContent;J=J.replace(/\/\*[\s\S]*?\*\//g,""),J.trim()!==""&&(W=J.split("}"),W=W.filter(function(tt){return tt.trim()}),W.forEach(function(tt){var F=tt.split("{"),L={},D=F[1].trim(),G=D.split(";").filter(function(at){return at.trim()});for(Q=0,H=G.length;Q<H;Q++){var z=G[Q].split(":"),X=z[0].trim(),et=z[1].trim();L[X]=et}tt=F[0].trim(),tt.split(",").forEach(function(at){at=at.replace(/^svg/i,"").trim(),at!==""&&(Y[at]?o.util.object.extend(Y[at],L):Y[at]=o.util.object.clone(L))})}))}return Y},loadSVGFromURL:function(k,T,Q,H){k=k.replace(/^\n\s*/,"").trim(),new o.util.request(k,{method:"get",onComplete:Y});function Y(W){var J=W.responseXML;if(!J||!J.documentElement)return T&&T(null),!1;o.parseSVGDocument(J.documentElement,function(tt,F,L,D){T&&T(tt,F,L,D)},Q,H)}},loadSVGFromString:function(k,T,Q,H){var Y=new o.window.DOMParser,W=Y.parseFromString(k.trim(),"text/xml");o.parseSVGDocument(W.documentElement,function(J,tt,F,L){T(J,tt,F,L)},Q,H)}})})(e),t.ElementsParser=function(u,o,s,c,i,l){this.elements=u,this.callback=o,this.options=s,this.reviver=c,this.svgUid=s&&s.svgUid||0,this.parsingOptions=i,this.regexUrl=/^url\(['"]?#([^'"]+)['"]?\)/g,this.doc=l},(function(u){u.parse=function(){this.instances=new Array(this.elements.length),this.numElements=this.elements.length,this.createObjects()},u.createObjects=function(){var o=this;this.elements.forEach(function(s,c){s.setAttribute("svgUid",o.svgUid),o.createObject(s,c)})},u.findTag=function(o){return t[t.util.string.capitalize(o.tagName.replace("svg:",""))]},u.createObject=function(o,s){var c=this.findTag(o);if(c&&c.fromElement)try{c.fromElement(o,this.createCallback(s,o),this.options)}catch(i){t.log(i)}else this.checkIfDone()},u.createCallback=function(o,s){var c=this;return function(i){var l;c.resolveGradient(i,s,"fill"),c.resolveGradient(i,s,"stroke"),i instanceof t.Image&&i._originalElement&&(l=i.parsePreserveAspectRatioAttribute(s)),i._removeTransformMatrix(l),c.resolveClipPath(i,s),c.reviver&&c.reviver(s,i),c.instances[o]=i,c.checkIfDone()}},u.extractPropertyDefinition=function(o,s,c){var i=o[s],l=this.regexUrl;if(l.test(i)){l.lastIndex=0;var a=l.exec(i)[1];return l.lastIndex=0,t[c][this.svgUid][a]}},u.resolveGradient=function(o,s,c){var i=this.extractPropertyDefinition(o,c,"gradientDefs");if(i){var l=s.getAttribute(c+"-opacity"),a=t.Gradient.fromElement(i,o,l,this.options);o.set(c,a)}},u.createClipPathCallback=function(o,s){return function(c){c._removeTransformMatrix(),c.fillRule=c.clipRule,s.push(c)}},u.resolveClipPath=function(o,s){var c=this.extractPropertyDefinition(o,"clipPath","clipPaths"),i,l,a,h,g,d;if(c){h=[],a=t.util.invertTransform(o.calcTransformMatrix());for(var A=c[0].parentNode,y=s;y.parentNode&&y.getAttribute("clip-path")!==o.clipPath;)y=y.parentNode;y.parentNode.appendChild(A);for(var m=0;m<c.length;m++)i=c[m],l=this.findTag(i),l.fromElement(i,this.createClipPathCallback(o,h),this.options);h.length===1?c=h[0]:c=new t.Group(h),g=t.util.multiplyTransformMatrices(a,c.calcTransformMatrix()),c.clipPath&&this.resolveClipPath(c,y);var d=t.util.qrDecompose(g);c.flipX=!1,c.flipY=!1,c.set("scaleX",d.scaleX),c.set("scaleY",d.scaleY),c.angle=d.angle,c.skewX=d.skewX,c.skewY=0,c.setPositionByOrigin({x:d.translateX,y:d.translateY},"center","center"),o.clipPath=c}else delete o.clipPath},u.checkIfDone=function(){--this.numElements===0&&(this.instances=this.instances.filter(function(o){return o!=null}),this.callback(this.instances,this.elements))}})(t.ElementsParser.prototype),(function(u){var o=u.fabric||(u.fabric={});if(o.Point){o.warn("fabric.Point is already defined");return}o.Point=s;function s(c,i){this.x=c,this.y=i}s.prototype={type:"point",constructor:s,add:function(c){return new s(this.x+c.x,this.y+c.y)},addEquals:function(c){return this.x+=c.x,this.y+=c.y,this},scalarAdd:function(c){return new s(this.x+c,this.y+c)},scalarAddEquals:function(c){return this.x+=c,this.y+=c,this},subtract:function(c){return new s(this.x-c.x,this.y-c.y)},subtractEquals:function(c){return this.x-=c.x,this.y-=c.y,this},scalarSubtract:function(c){return new s(this.x-c,this.y-c)},scalarSubtractEquals:function(c){return this.x-=c,this.y-=c,this},multiply:function(c){return new s(this.x*c,this.y*c)},multiplyEquals:function(c){return this.x*=c,this.y*=c,this},divide:function(c){return new s(this.x/c,this.y/c)},divideEquals:function(c){return this.x/=c,this.y/=c,this},eq:function(c){return this.x===c.x&&this.y===c.y},lt:function(c){return this.x<c.x&&this.y<c.y},lte:function(c){return this.x<=c.x&&this.y<=c.y},gt:function(c){return this.x>c.x&&this.y>c.y},gte:function(c){return this.x>=c.x&&this.y>=c.y},lerp:function(c,i){return typeof i>"u"&&(i=.5),i=Math.max(Math.min(1,i),0),new s(this.x+(c.x-this.x)*i,this.y+(c.y-this.y)*i)},distanceFrom:function(c){var i=this.x-c.x,l=this.y-c.y;return Math.sqrt(i*i+l*l)},midPointFrom:function(c){return this.lerp(c)},min:function(c){return new s(Math.min(this.x,c.x),Math.min(this.y,c.y))},max:function(c){return new s(Math.max(this.x,c.x),Math.max(this.y,c.y))},toString:function(){return this.x+","+this.y},setXY:function(c,i){return this.x=c,this.y=i,this},setX:function(c){return this.x=c,this},setY:function(c){return this.y=c,this},setFromPoint:function(c){return this.x=c.x,this.y=c.y,this},swap:function(c){var i=this.x,l=this.y;this.x=c.x,this.y=c.y,c.x=i,c.y=l},clone:function(){return new s(this.x,this.y)}}})(e),(function(u){var o=u.fabric||(u.fabric={});if(o.Intersection){o.warn("fabric.Intersection is already defined");return}function s(c){this.status=c,this.points=[]}o.Intersection=s,o.Intersection.prototype={constructor:s,appendPoint:function(c){return this.points.push(c),this},appendPoints:function(c){return this.points=this.points.concat(c),this}},o.Intersection.intersectLineLine=function(c,i,l,a){var h,g=(a.x-l.x)*(c.y-l.y)-(a.y-l.y)*(c.x-l.x),d=(i.x-c.x)*(c.y-l.y)-(i.y-c.y)*(c.x-l.x),A=(a.y-l.y)*(i.x-c.x)-(a.x-l.x)*(i.y-c.y);if(A!==0){var y=g/A,m=d/A;0<=y&&y<=1&&0<=m&&m<=1?(h=new s("Intersection"),h.appendPoint(new o.Point(c.x+y*(i.x-c.x),c.y+y*(i.y-c.y)))):h=new s}else g===0||d===0?h=new s("Coincident"):h=new s("Parallel");return h},o.Intersection.intersectLinePolygon=function(c,i,l){var a=new s,h=l.length,g,d,A,y;for(y=0;y<h;y++)g=l[y],d=l[(y+1)%h],A=s.intersectLineLine(c,i,g,d),a.appendPoints(A.points);return a.points.length>0&&(a.status="Intersection"),a},o.Intersection.intersectPolygonPolygon=function(c,i){var l=new s,a=c.length,h;for(h=0;h<a;h++){var g=c[h],d=c[(h+1)%a],A=s.intersectLinePolygon(g,d,i);l.appendPoints(A.points)}return l.points.length>0&&(l.status="Intersection"),l},o.Intersection.intersectPolygonRectangle=function(c,i,l){var a=i.min(l),h=i.max(l),g=new o.Point(h.x,a.y),d=new o.Point(a.x,h.y),A=s.intersectLinePolygon(a,g,c),y=s.intersectLinePolygon(g,h,c),m=s.intersectLinePolygon(h,d,c),_=s.intersectLinePolygon(d,a,c),w=new s;return w.appendPoints(A.points),w.appendPoints(y.points),w.appendPoints(m.points),w.appendPoints(_.points),w.points.length>0&&(w.status="Intersection"),w}})(e),(function(u){var o=u.fabric||(u.fabric={});if(o.Color){o.warn("fabric.Color is already defined.");return}function s(i){i?this._tryParsingColor(i):this.setSource([0,0,0,1])}o.Color=s,o.Color.prototype={_tryParsingColor:function(i){var l;i in s.colorNameMap&&(i=s.colorNameMap[i]),i==="transparent"&&(l=[255,255,255,0]),l||(l=s.sourceFromHex(i)),l||(l=s.sourceFromRgb(i)),l||(l=s.sourceFromHsl(i)),l||(l=[0,0,0,1]),l&&this.setSource(l)},_rgbToHsl:function(i,l,a){i/=255,l/=255,a/=255;var h,g,d,A=o.util.array.max([i,l,a]),y=o.util.array.min([i,l,a]);if(d=(A+y)/2,A===y)h=g=0;else{var m=A-y;switch(g=d>.5?m/(2-A-y):m/(A+y),A){case i:h=(l-a)/m+(l<a?6:0);break;case l:h=(a-i)/m+2;break;case a:h=(i-l)/m+4;break}h/=6}return[Math.round(h*360),Math.round(g*100),Math.round(d*100)]},getSource:function(){return this._source},setSource:function(i){this._source=i},toRgb:function(){var i=this.getSource();return"rgb("+i[0]+","+i[1]+","+i[2]+")"},toRgba:function(){var i=this.getSource();return"rgba("+i[0]+","+i[1]+","+i[2]+","+i[3]+")"},toHsl:function(){var i=this.getSource(),l=this._rgbToHsl(i[0],i[1],i[2]);return"hsl("+l[0]+","+l[1]+"%,"+l[2]+"%)"},toHsla:function(){var i=this.getSource(),l=this._rgbToHsl(i[0],i[1],i[2]);return"hsla("+l[0]+","+l[1]+"%,"+l[2]+"%,"+i[3]+")"},toHex:function(){var i=this.getSource(),l,a,h;return l=i[0].toString(16),l=l.length===1?"0"+l:l,a=i[1].toString(16),a=a.length===1?"0"+a:a,h=i[2].toString(16),h=h.length===1?"0"+h:h,l.toUpperCase()+a.toUpperCase()+h.toUpperCase()},toHexa:function(){var i=this.getSource(),l;return l=Math.round(i[3]*255),l=l.toString(16),l=l.length===1?"0"+l:l,this.toHex()+l.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(i){var l=this.getSource();return l[3]=i,this.setSource(l),this},toGrayscale:function(){var i=this.getSource(),l=parseInt((i[0]*.3+i[1]*.59+i[2]*.11).toFixed(0),10),a=i[3];return this.setSource([l,l,l,a]),this},toBlackWhite:function(i){var l=this.getSource(),a=(l[0]*.3+l[1]*.59+l[2]*.11).toFixed(0),h=l[3];return i=i||127,a=Number(a)<Number(i)?0:255,this.setSource([a,a,a,h]),this},overlayWith:function(i){i instanceof s||(i=new s(i));var l=[],a=this.getAlpha(),h=.5,g=this.getSource(),d=i.getSource(),A;for(A=0;A<3;A++)l.push(Math.round(g[A]*(1-h)+d[A]*h));return l[3]=a,this.setSource(l),this}},o.Color.reRGBa=/^rgba?\(\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*(?:\s*,\s*((?:\d*\.?\d+)?)\s*)?\)$/i,o.Color.reHSLa=/^hsla?\(\s*(\d{1,3})\s*,\s*(\d{1,3}\%)\s*,\s*(\d{1,3}\%)\s*(?:\s*,\s*(\d+(?:\.\d+)?)\s*)?\)$/i,o.Color.reHex=/^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i,o.Color.colorNameMap={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#00FFFF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgrey:"#A9A9A9",darkgreen:"#006400",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",fuchsia:"#FF00FF",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgray:"#D3D3D3",lightgrey:"#D3D3D3",lightgreen:"#90EE90",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#00FF00",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",maroon:"#800000",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navy:"#000080",oldlace:"#FDF5E6",olive:"#808000",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",purple:"#800080",rebeccapurple:"#663399",red:"#FF0000",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",silver:"#C0C0C0",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",teal:"#008080",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",white:"#FFFFFF",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellowgreen:"#9ACD32"};function c(i,l,a){return a<0&&(a+=1),a>1&&(a-=1),a<1/6?i+(l-i)*6*a:a<1/2?l:a<2/3?i+(l-i)*(2/3-a)*6:i}o.Color.fromRgb=function(i){return s.fromSource(s.sourceFromRgb(i))},o.Color.sourceFromRgb=function(i){var l=i.match(s.reRGBa);if(l){var a=parseInt(l[1],10)/(/%$/.test(l[1])?100:1)*(/%$/.test(l[1])?255:1),h=parseInt(l[2],10)/(/%$/.test(l[2])?100:1)*(/%$/.test(l[2])?255:1),g=parseInt(l[3],10)/(/%$/.test(l[3])?100:1)*(/%$/.test(l[3])?255:1);return[parseInt(a,10),parseInt(h,10),parseInt(g,10),l[4]?parseFloat(l[4]):1]}},o.Color.fromRgba=s.fromRgb,o.Color.fromHsl=function(i){return s.fromSource(s.sourceFromHsl(i))},o.Color.sourceFromHsl=function(i){var l=i.match(s.reHSLa);if(l){var a=(parseFloat(l[1])%360+360)%360/360,h=parseFloat(l[2])/(/%$/.test(l[2])?100:1),g=parseFloat(l[3])/(/%$/.test(l[3])?100:1),d,A,y;if(h===0)d=A=y=g;else{var m=g<=.5?g*(h+1):g+h-g*h,_=g*2-m;d=c(_,m,a+1/3),A=c(_,m,a),y=c(_,m,a-1/3)}return[Math.round(d*255),Math.round(A*255),Math.round(y*255),l[4]?parseFloat(l[4]):1]}},o.Color.fromHsla=s.fromHsl,o.Color.fromHex=function(i){return s.fromSource(s.sourceFromHex(i))},o.Color.sourceFromHex=function(i){if(i.match(s.reHex)){var l=i.slice(i.indexOf("#")+1),a=l.length===3||l.length===4,h=l.length===8||l.length===4,g=a?l.charAt(0)+l.charAt(0):l.substring(0,2),d=a?l.charAt(1)+l.charAt(1):l.substring(2,4),A=a?l.charAt(2)+l.charAt(2):l.substring(4,6),y=h?a?l.charAt(3)+l.charAt(3):l.substring(6,8):"FF";return[parseInt(g,16),parseInt(d,16),parseInt(A,16),parseFloat((parseInt(y,16)/255).toFixed(2))]}},o.Color.fromSource=function(i){var l=new s;return l.setSource(i),l}})(e),(function(u){var o=u.fabric||(u.fabric={}),s=["e","se","s","sw","w","nw","n","ne","e"],c=["ns","nesw","ew","nwse"],i={},l="left",a="top",h="right",g="bottom",d="center",A={top:g,bottom:a,left:h,right:l,center:d},y=o.util.radiansToDegrees,m=Math.sign||function(L){return(L>0)-(L<0)||+L};function _(L,D){var G=L.angle+y(Math.atan2(D.y,D.x))+360;return Math.round(G%360/45)}function w(L,D){var G=D.transform.target,z=G.canvas,X=o.util.object.clone(D);X.target=G,z&&z.fire("object:"+L,X),G.fire(L,D)}function S(L,D){var G=D.canvas,z=G.uniScaleKey,X=L[z];return G.uniformScaling&&!X||!G.uniformScaling&&X}function O(L){return L.originX===d&&L.originY===d}function P(L,D,G){var z=L.lockScalingX,X=L.lockScalingY;return!!(z&&X||!D&&(z||X)&&G||z&&D==="x"||X&&D==="y")}function N(L,D,G){var z="not-allowed",X=S(L,G),et="";if(D.x!==0&&D.y===0?et="x":D.x===0&&D.y!==0&&(et="y"),P(G,et,X))return z;var at=_(G,D);return s[at]+"-resize"}function q(L,D,G){var z="not-allowed";if(D.x!==0&&G.lockSkewingY||D.y!==0&&G.lockSkewingX)return z;var X=_(G,D)%4;return c[X]+"-resize"}function Z(L,D,G){return L[G.canvas.altActionKey]?i.skewCursorStyleHandler(L,D,G):i.scaleCursorStyleHandler(L,D,G)}function K(L,D,G){var z=L[G.canvas.altActionKey];if(D.x===0)return z?"skewX":"scaleY";if(D.y===0)return z?"skewY":"scaleX"}function rt(L,D,G){return G.lockRotation?"not-allowed":D.cursorStyle}function $(L,D,G,z){return{e:L,transform:D,pointer:{x:G,y:z}}}function U(L){return function(D,G,z,X){var et=G.target,at=et.getCenterPoint(),lt=et.translateToOriginPoint(at,G.originX,G.originY),ct=L(D,G,z,X);return et.setPositionByOrigin(lt,G.originX,G.originY),ct}}function j(L,D){return function(G,z,X,et){var at=D(G,z,X,et);return at&&w(L,$(G,z,X,et)),at}}function B(L,D,G,z,X){var et=L.target,at=et.controls[L.corner],lt=et.canvas.getZoom(),ct=et.padding/lt,it=et.toLocalPoint(new o.Point(z,X),D,G);return it.x>=ct&&(it.x-=ct),it.x<=-ct&&(it.x+=ct),it.y>=ct&&(it.y-=ct),it.y<=ct&&(it.y+=ct),it.x-=at.offsetX,it.y-=at.offsetY,it}function x(L){return L.flipX!==L.flipY}function b(L,D,G,z,X){if(L[D]!==0){var et=L._getTransformedDimensions()[z],at=X/et*L[G];L.set(G,at)}}function C(L,D,G,z){var X=D.target,et=X._getTransformedDimensions(0,X.skewY),at=B(D,D.originX,D.originY,G,z),lt=Math.abs(at.x*2)-et.x,ct=X.skewX,it;lt<2?it=0:(it=y(Math.atan2(lt/X.scaleX,et.y/X.scaleY)),D.originX===l&&D.originY===g&&(it=-it),D.originX===h&&D.originY===a&&(it=-it),x(X)&&(it=-it));var ut=ct!==it;if(ut){var ft=X._getTransformedDimensions().y;X.set("skewX",it),b(X,"skewY","scaleY","y",ft)}return ut}function E(L,D,G,z){var X=D.target,et=X._getTransformedDimensions(X.skewX,0),at=B(D,D.originX,D.originY,G,z),lt=Math.abs(at.y*2)-et.y,ct=X.skewY,it;lt<2?it=0:(it=y(Math.atan2(lt/X.scaleY,et.x/X.scaleX)),D.originX===l&&D.originY===g&&(it=-it),D.originX===h&&D.originY===a&&(it=-it),x(X)&&(it=-it));var ut=ct!==it;if(ut){var ft=X._getTransformedDimensions().x;X.set("skewY",it),b(X,"skewX","scaleX","x",ft)}return ut}function I(L,D,G,z){var X=D.target,et=X.skewX,at,lt=D.originY;if(X.lockSkewingX)return!1;if(et===0){var ct=B(D,d,d,G,z);ct.x>0?at=l:at=h}else et>0&&(at=lt===a?l:h),et<0&&(at=lt===a?h:l),x(X)&&(at=at===l?h:l);D.originX=at;var it=j("skewing",U(C));return it(L,D,G,z)}function M(L,D,G,z){var X=D.target,et=X.skewY,at,lt=D.originX;if(X.lockSkewingY)return!1;if(et===0){var ct=B(D,d,d,G,z);ct.y>0?at=a:at=g}else et>0&&(at=lt===l?a:g),et<0&&(at=lt===l?g:a),x(X)&&(at=at===a?g:a);D.originY=at;var it=j("skewing",U(E));return it(L,D,G,z)}function k(L,D,G,z){var X=D,et=X.target,at=et.translateToOriginPoint(et.getCenterPoint(),X.originX,X.originY);if(et.lockRotation)return!1;var lt=Math.atan2(X.ey-at.y,X.ex-at.x),ct=Math.atan2(z-at.y,G-at.x),it=y(ct-lt+X.theta),ut=!0;if(et.snapAngle>0){var ft=et.snapAngle,dt=et.snapThreshold||ft,pt=Math.ceil(it/ft)*ft,ht=Math.floor(it/ft)*ft;Math.abs(it-ht)<dt?it=ht:Math.abs(it-pt)<dt&&(it=pt)}return it<0&&(it=360+it),it%=360,ut=et.angle!==it,et.angle=it,ut}function T(L,D,G,z,X){X=X||{};var et=D.target,at=et.lockScalingX,lt=et.lockScalingY,ct=X.by,it,ut,ft,dt,pt=S(L,et),ht=P(et,ct,pt),Et,yt,At=D.gestureScale;if(ht)return!1;if(At)ut=D.scaleX*At,ft=D.scaleY*At;else{if(it=B(D,D.originX,D.originY,G,z),Et=ct!=="y"?m(it.x):1,yt=ct!=="x"?m(it.y):1,D.signX||(D.signX=Et),D.signY||(D.signY=yt),et.lockScalingFlip&&(D.signX!==Et||D.signY!==yt))return!1;if(dt=et._getTransformedDimensions(),pt&&!ct){var Yt=Math.abs(it.x)+Math.abs(it.y),Ft=D.original,te=Math.abs(dt.x*Ft.scaleX/et.scaleX)+Math.abs(dt.y*Ft.scaleY/et.scaleY),Ze=Yt/te;ut=Ft.scaleX*Ze,ft=Ft.scaleY*Ze}else ut=Math.abs(it.x*et.scaleX/dt.x),ft=Math.abs(it.y*et.scaleY/dt.y);O(D)&&(ut*=2,ft*=2),D.signX!==Et&&ct!=="y"&&(D.originX=A[D.originX],ut*=-1,D.signX=Et),D.signY!==yt&&ct!=="x"&&(D.originY=A[D.originY],ft*=-1,D.signY=yt)}var Ge=et.scaleX,nt=et.scaleY;return ct?(ct==="x"&&et.set("scaleX",ut),ct==="y"&&et.set("scaleY",ft)):(!at&&et.set("scaleX",ut),!lt&&et.set("scaleY",ft)),Ge!==et.scaleX||nt!==et.scaleY}function Q(L,D,G,z){return T(L,D,G,z)}function H(L,D,G,z){return T(L,D,G,z,{by:"x"})}function Y(L,D,G,z){return T(L,D,G,z,{by:"y"})}function W(L,D,G,z){return L[D.target.canvas.altActionKey]?i.skewHandlerX(L,D,G,z):i.scalingY(L,D,G,z)}function J(L,D,G,z){return L[D.target.canvas.altActionKey]?i.skewHandlerY(L,D,G,z):i.scalingX(L,D,G,z)}function tt(L,D,G,z){var X=D.target,et=B(D,D.originX,D.originY,G,z),at=X.strokeWidth/(X.strokeUniform?X.scaleX:1),lt=O(D)?2:1,ct=X.width,it=Math.abs(et.x*lt/X.scaleX)-at;return X.set("width",Math.max(it,0)),ct!==it}function F(L,D,G,z){var X=D.target,et=G-D.offsetX,at=z-D.offsetY,lt=!X.get("lockMovementX")&&X.left!==et,ct=!X.get("lockMovementY")&&X.top!==at;return lt&&X.set("left",et),ct&&X.set("top",at),(lt||ct)&&w("moving",$(L,D,G,z)),lt||ct}i.scaleCursorStyleHandler=N,i.skewCursorStyleHandler=q,i.scaleSkewCursorStyleHandler=Z,i.rotationWithSnapping=j("rotating",U(k)),i.scalingEqually=j("scaling",U(Q)),i.scalingX=j("scaling",U(H)),i.scalingY=j("scaling",U(Y)),i.scalingYOrSkewingX=W,i.scalingXOrSkewingY=J,i.changeWidth=j("resizing",U(tt)),i.skewHandlerX=I,i.skewHandlerY=M,i.dragHandler=F,i.scaleOrSkewActionName=K,i.rotationStyleHandler=rt,i.fireEvent=w,i.wrapWithFixedAnchor=U,i.wrapWithFireEvent=j,i.getLocalPoint=B,o.controlsUtils=i})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.util.degreesToRadians,c=o.controlsUtils;function i(a,h,g,d,A){d=d||{};var y=this.sizeX||d.cornerSize||A.cornerSize,m=this.sizeY||d.cornerSize||A.cornerSize,_=typeof d.transparentCorners<"u"?d.transparentCorners:A.transparentCorners,w=_?"stroke":"fill",S=!_&&(d.cornerStrokeColor||A.cornerStrokeColor),O=h,P=g,N;a.save(),a.fillStyle=d.cornerColor||A.cornerColor,a.strokeStyle=d.cornerStrokeColor||A.cornerStrokeColor,y>m?(N=y,a.scale(1,m/y),P=g*y/m):m>y?(N=m,a.scale(y/m,1),O=h*m/y):N=y,a.lineWidth=1,a.beginPath(),a.arc(O,P,N/2,0,2*Math.PI,!1),a[w](),S&&a.stroke(),a.restore()}function l(a,h,g,d,A){d=d||{};var y=this.sizeX||d.cornerSize||A.cornerSize,m=this.sizeY||d.cornerSize||A.cornerSize,_=typeof d.transparentCorners<"u"?d.transparentCorners:A.transparentCorners,w=_?"stroke":"fill",S=!_&&(d.cornerStrokeColor||A.cornerStrokeColor),O=y/2,P=m/2;a.save(),a.fillStyle=d.cornerColor||A.cornerColor,a.strokeStyle=d.cornerStrokeColor||A.cornerStrokeColor,a.lineWidth=1,a.translate(h,g),a.rotate(s(A.angle)),a[w+"Rect"](-O,-P,y,m),S&&a.strokeRect(-O,-P,y,m),a.restore()}c.renderCircleControl=i,c.renderSquareControl=l})(e),(function(u){var o=u.fabric||(u.fabric={});function s(c){for(var i in c)this[i]=c[i]}o.Control=s,o.Control.prototype={visible:!0,actionName:"scale",angle:0,x:0,y:0,offsetX:0,offsetY:0,sizeX:null,sizeY:null,touchSizeX:null,touchSizeY:null,cursorStyle:"crosshair",withConnection:!1,actionHandler:function(){},mouseDownHandler:function(){},mouseUpHandler:function(){},getActionHandler:function(){return this.actionHandler},getMouseDownHandler:function(){return this.mouseDownHandler},getMouseUpHandler:function(){return this.mouseUpHandler},cursorStyleHandler:function(c,i){return i.cursorStyle},getActionName:function(c,i){return i.actionName},getVisibility:function(c,i){var l=c._controlsVisibility;return l&&typeof l[i]<"u"?l[i]:this.visible},setVisibility:function(c){this.visible=c},positionHandler:function(c,i){var l=o.util.transformPoint({x:this.x*c.x+this.offsetX,y:this.y*c.y+this.offsetY},i);return l},calcCornerCoords:function(c,i,l,a,h){var g,d,A,y,m=h?this.touchSizeX:this.sizeX,_=h?this.touchSizeY:this.sizeY;if(m&&_&&m!==_){var w=Math.atan2(_,m),S=Math.sqrt(m*m+_*_)/2,O=w-o.util.degreesToRadians(c),P=Math.PI/2-w-o.util.degreesToRadians(c);g=S*o.util.cos(O),d=S*o.util.sin(O),A=S*o.util.cos(P),y=S*o.util.sin(P)}else{var N=m&&_?m:i;S=N*.7071067812;var O=o.util.degreesToRadians(45-c);g=A=S*o.util.cos(O),d=y=S*o.util.sin(O)}return{tl:{x:l-y,y:a-A},tr:{x:l+g,y:a-d},bl:{x:l-g,y:a+d},br:{x:l+y,y:a+A}}},render:function(c,i,l,a,h){switch(a=a||{},a.cornerStyle||h.cornerStyle){case"circle":o.controlsUtils.renderCircleControl.call(this,c,i,l,a,h);break;default:o.controlsUtils.renderSquareControl.call(this,c,i,l,a,h)}}}})(e),(function(){function u(l,a){var h=l.getAttribute("style"),g=l.getAttribute("offset")||0,d,A,y,m;if(g=parseFloat(g)/(/%$/.test(g)?100:1),g=g<0?0:g>1?1:g,h){var _=h.split(/\s*;\s*/);for(_[_.length-1]===""&&_.pop(),m=_.length;m--;){var w=_[m].split(/\s*:\s*/),S=w[0].trim(),O=w[1].trim();S==="stop-color"?d=O:S==="stop-opacity"&&(y=O)}}return d||(d=l.getAttribute("stop-color")||"rgb(0,0,0)"),y||(y=l.getAttribute("stop-opacity")),d=new t.Color(d),A=d.getAlpha(),y=isNaN(parseFloat(y))?1:parseFloat(y),y*=A*a,{offset:g,color:d.toRgb(),opacity:y}}function o(l){return{x1:l.getAttribute("x1")||0,y1:l.getAttribute("y1")||0,x2:l.getAttribute("x2")||"100%",y2:l.getAttribute("y2")||0}}function s(l){return{x1:l.getAttribute("fx")||l.getAttribute("cx")||"50%",y1:l.getAttribute("fy")||l.getAttribute("cy")||"50%",r1:0,x2:l.getAttribute("cx")||"50%",y2:l.getAttribute("cy")||"50%",r2:l.getAttribute("r")||"50%"}}var c=t.util.object.clone;t.Gradient=t.util.createClass({offsetX:0,offsetY:0,gradientTransform:null,gradientUnits:"pixels",type:"linear",initialize:function(l){l||(l={}),l.coords||(l.coords={});var a,h=this;Object.keys(l).forEach(function(g){h[g]=l[g]}),this.id?this.id+="_"+t.Object.__uid++:this.id=t.Object.__uid++,a={x1:l.coords.x1||0,y1:l.coords.y1||0,x2:l.coords.x2||0,y2:l.coords.y2||0},this.type==="radial"&&(a.r1=l.coords.r1||0,a.r2=l.coords.r2||0),this.coords=a,this.colorStops=l.colorStops.slice()},addColorStop:function(l){for(var a in l){var h=new t.Color(l[a]);this.colorStops.push({offset:parseFloat(a),color:h.toRgb(),opacity:h.getAlpha()})}return this},toObject:function(l){var a={type:this.type,coords:this.coords,colorStops:this.colorStops,offsetX:this.offsetX,offsetY:this.offsetY,gradientUnits:this.gradientUnits,gradientTransform:this.gradientTransform?this.gradientTransform.concat():this.gradientTransform};return t.util.populateWithProperties(this,a,l),a},toSVG:function(l,A){var h=c(this.coords,!0),g,d,A=A||{},y,m,_=c(this.colorStops,!0),w=h.r1>h.r2,S=this.gradientTransform?this.gradientTransform.concat():t.iMatrix.concat(),O=-this.offsetX,P=-this.offsetY,N=!!A.additionalTransform,q=this.gradientUnits==="pixels"?"userSpaceOnUse":"objectBoundingBox";if(_.sort(function(U,j){return U.offset-j.offset}),q==="objectBoundingBox"?(O/=l.width,P/=l.height):(O+=l.width/2,P+=l.height/2),l.type==="path"&&this.gradientUnits!=="percentage"&&(O-=l.pathOffset.x,P-=l.pathOffset.y),S[4]-=O,S[5]-=P,m='id="SVGID_'+this.id+'" gradientUnits="'+q+'"',m+=' gradientTransform="'+(N?A.additionalTransform+" ":"")+t.util.matrixToSVG(S)+'" ',this.type==="linear"?y=["<linearGradient ",m,' x1="',h.x1,'" y1="',h.y1,'" x2="',h.x2,'" y2="',h.y2,`">
8
+ `]:this.type==="radial"&&(y=["<radialGradient ",m,' cx="',w?h.x1:h.x2,'" cy="',w?h.y1:h.y2,'" r="',w?h.r1:h.r2,'" fx="',w?h.x2:h.x1,'" fy="',w?h.y2:h.y1,`">
9
+ `]),this.type==="radial"){if(w)for(_=_.concat(),_.reverse(),g=0,d=_.length;g<d;g++)_[g].offset=1-_[g].offset;var Z=Math.min(h.r1,h.r2);if(Z>0){var K=Math.max(h.r1,h.r2),rt=Z/K;for(g=0,d=_.length;g<d;g++)_[g].offset+=rt*(1-_[g].offset)}}for(g=0,d=_.length;g<d;g++){var $=_[g];y.push("<stop ",'offset="',$.offset*100+"%",'" style="stop-color:',$.color,typeof $.opacity<"u"?";stop-opacity: "+$.opacity:";",`"/>
10
+ `)}return y.push(this.type==="linear"?`</linearGradient>
11
+ `:`</radialGradient>
12
+ `),y.join("")},toLive:function(l){var a,h=t.util.object.clone(this.coords),g,d;if(this.type){for(this.type==="linear"?a=l.createLinearGradient(h.x1,h.y1,h.x2,h.y2):this.type==="radial"&&(a=l.createRadialGradient(h.x1,h.y1,h.r1,h.x2,h.y2,h.r2)),g=0,d=this.colorStops.length;g<d;g++){var A=this.colorStops[g].color,y=this.colorStops[g].opacity,m=this.colorStops[g].offset;typeof y<"u"&&(A=new t.Color(A).setAlpha(y).toRgba()),a.addColorStop(m,A)}return a}}}),t.util.object.extend(t.Gradient,{fromElement:function(l,a,h,g){var d=parseFloat(h)/(/%$/.test(h)?100:1);d=d<0?0:d>1?1:d,isNaN(d)&&(d=1);var A=l.getElementsByTagName("stop"),y,m=l.getAttribute("gradientUnits")==="userSpaceOnUse"?"pixels":"percentage",_=l.getAttribute("gradientTransform")||"",w=[],S,O,P=0,N=0,q;for(l.nodeName==="linearGradient"||l.nodeName==="LINEARGRADIENT"?(y="linear",S=o(l)):(y="radial",S=s(l)),O=A.length;O--;)w.push(u(A[O],d));q=t.parseTransformAttribute(_),i(a,S,g,m),m==="pixels"&&(P=-a.left,N=-a.top);var Z=new t.Gradient({id:l.getAttribute("id"),type:y,coords:S,colorStops:w,gradientUnits:m,gradientTransform:q,offsetX:P,offsetY:N});return Z}});function i(l,a,h,g){var d,A;Object.keys(a).forEach(function(y){d=a[y],d==="Infinity"?A=1:d==="-Infinity"?A=0:(A=parseFloat(a[y],10),typeof d=="string"&&/^(\d+\.\d+)%|(\d+)%$/.test(d)&&(A*=.01,g==="pixels"&&((y==="x1"||y==="x2"||y==="r2")&&(A*=h.viewBoxWidth||h.width),(y==="y1"||y==="y2")&&(A*=h.viewBoxHeight||h.height)))),a[y]=A})}})(),(function(){var u=t.util.toFixed;t.Pattern=t.util.createClass({repeat:"repeat",offsetX:0,offsetY:0,crossOrigin:"",patternTransform:null,initialize:function(o,s){if(o||(o={}),this.id=t.Object.__uid++,this.setOptions(o),!o.source||o.source&&typeof o.source!="string"){s&&s(this);return}else{var c=this;this.source=t.util.createImage(),t.util.loadImage(o.source,function(i,l){c.source=i,s&&s(c,l)},null,this.crossOrigin)}},toObject:function(o){var s=t.Object.NUM_FRACTION_DIGITS,c,i;return typeof this.source.src=="string"?c=this.source.src:typeof this.source=="object"&&this.source.toDataURL&&(c=this.source.toDataURL()),i={type:"pattern",source:c,repeat:this.repeat,crossOrigin:this.crossOrigin,offsetX:u(this.offsetX,s),offsetY:u(this.offsetY,s),patternTransform:this.patternTransform?this.patternTransform.concat():null},t.util.populateWithProperties(this,i,o),i},toSVG:function(o){var s=typeof this.source=="function"?this.source():this.source,c=s.width/o.width,i=s.height/o.height,l=this.offsetX/o.width,a=this.offsetY/o.height,h="";return(this.repeat==="repeat-x"||this.repeat==="no-repeat")&&(i=1,a&&(i+=Math.abs(a))),(this.repeat==="repeat-y"||this.repeat==="no-repeat")&&(c=1,l&&(c+=Math.abs(l))),s.src?h=s.src:s.toDataURL&&(h=s.toDataURL()),'<pattern id="SVGID_'+this.id+'" x="'+l+'" y="'+a+'" width="'+c+'" height="'+i+`">
13
+ <image x="0" y="0" width="`+s.width+'" height="'+s.height+'" xlink:href="'+h+`"></image>
14
+ </pattern>
15
+ `},setOptions:function(o){for(var s in o)this[s]=o[s]},toLive:function(o){var s=this.source;return!s||typeof s.src<"u"&&(!s.complete||s.naturalWidth===0||s.naturalHeight===0)?"":o.createPattern(s,this.repeat)}})})(),(function(u){var o=u.fabric||(u.fabric={}),s=o.util.toFixed;if(o.Shadow){o.warn("fabric.Shadow is already defined.");return}o.Shadow=o.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,affectStroke:!1,includeDefaultValues:!0,nonScaling:!1,initialize:function(c){typeof c=="string"&&(c=this._parseShadow(c));for(var i in c)this[i]=c[i];this.id=o.Object.__uid++},_parseShadow:function(c){var i=c.trim(),l=o.Shadow.reOffsetsAndBlur.exec(i)||[],a=i.replace(o.Shadow.reOffsetsAndBlur,"")||"rgb(0,0,0)";return{color:a.trim(),offsetX:parseFloat(l[1],10)||0,offsetY:parseFloat(l[2],10)||0,blur:parseFloat(l[3],10)||0}},toString:function(){return[this.offsetX,this.offsetY,this.blur,this.color].join("px ")},toSVG:function(c){var i=40,l=40,a=o.Object.NUM_FRACTION_DIGITS,h=o.util.rotateVector({x:this.offsetX,y:this.offsetY},o.util.degreesToRadians(-c.angle)),g=20,d=new o.Color(this.color);return c.width&&c.height&&(i=s((Math.abs(h.x)+this.blur)/c.width,a)*100+g,l=s((Math.abs(h.y)+this.blur)/c.height,a)*100+g),c.flipX&&(h.x*=-1),c.flipY&&(h.y*=-1),'<filter id="SVGID_'+this.id+'" y="-'+l+'%" height="'+(100+2*l)+'%" x="-'+i+'%" width="'+(100+2*i)+`%" >
16
+ <feGaussianBlur in="SourceAlpha" stdDeviation="`+s(this.blur?this.blur/2:0,a)+`"></feGaussianBlur>
17
+ <feOffset dx="`+s(h.x,a)+'" dy="'+s(h.y,a)+`" result="oBlur" ></feOffset>
18
+ <feFlood flood-color="`+d.toRgb()+'" flood-opacity="'+d.getAlpha()+`"/>
19
+ <feComposite in2="oBlur" operator="in" />
20
+ <feMerge>
21
+ <feMergeNode></feMergeNode>
22
+ <feMergeNode in="SourceGraphic"></feMergeNode>
23
+ </feMerge>
24
+ </filter>
25
+ `},toObject:function(){if(this.includeDefaultValues)return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY,affectStroke:this.affectStroke,nonScaling:this.nonScaling};var c={},i=o.Shadow.prototype;return["color","blur","offsetX","offsetY","affectStroke","nonScaling"].forEach(function(l){this[l]!==i[l]&&(c[l]=this[l])},this),c}}),o.Shadow.reOffsetsAndBlur=/(?:\s|^)(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(\d+(?:\.\d*)?(?:px)?)?(?:\s?|$)(?:$|\s)/})(e),(function(){if(t.StaticCanvas){t.warn("fabric.StaticCanvas is already defined.");return}var u=t.util.object.extend,o=t.util.getElementOffset,s=t.util.removeFromArray,c=t.util.toFixed,i=t.util.transformPoint,l=t.util.invertTransform,a=t.util.getNodeCanvas,h=t.util.createCanvasElement,g=new Error("Could not initialize `canvas` element");t.StaticCanvas=t.util.createClass(t.CommonMethods,{initialize:function(d,A){A||(A={}),this.renderAndResetBound=this.renderAndReset.bind(this),this.requestRenderAllBound=this.requestRenderAll.bind(this),this._initStatic(d,A)},backgroundColor:"",backgroundImage:null,overlayColor:"",overlayImage:null,includeDefaultValues:!0,stateful:!1,renderOnAddRemove:!0,controlsAboveOverlay:!1,allowTouchScrolling:!1,imageSmoothingEnabled:!0,viewportTransform:t.iMatrix.concat(),backgroundVpt:!0,overlayVpt:!0,enableRetinaScaling:!0,vptCoords:{},skipOffscreen:!0,clipPath:void 0,_initStatic:function(d,A){var y=this.requestRenderAllBound;this._objects=[],this._createLowerCanvas(d),this._initOptions(A),this.interactive||this._initRetinaScaling(),A.overlayImage&&this.setOverlayImage(A.overlayImage,y),A.backgroundImage&&this.setBackgroundImage(A.backgroundImage,y),A.backgroundColor&&this.setBackgroundColor(A.backgroundColor,y),A.overlayColor&&this.setOverlayColor(A.overlayColor,y),this.calcOffset()},_isRetinaScaling:function(){return t.devicePixelRatio>1&&this.enableRetinaScaling},getRetinaScaling:function(){return this._isRetinaScaling()?Math.max(1,t.devicePixelRatio):1},_initRetinaScaling:function(){if(this._isRetinaScaling()){var d=t.devicePixelRatio;this.__initRetinaScaling(d,this.lowerCanvasEl,this.contextContainer),this.upperCanvasEl&&this.__initRetinaScaling(d,this.upperCanvasEl,this.contextTop)}},__initRetinaScaling:function(d,A,y){A.setAttribute("width",this.width*d),A.setAttribute("height",this.height*d),y.scale(d,d)},calcOffset:function(){return this._offset=o(this.lowerCanvasEl),this},setOverlayImage:function(d,A,y){return this.__setBgOverlayImage("overlayImage",d,A,y)},setBackgroundImage:function(d,A,y){return this.__setBgOverlayImage("backgroundImage",d,A,y)},setOverlayColor:function(d,A){return this.__setBgOverlayColor("overlayColor",d,A)},setBackgroundColor:function(d,A){return this.__setBgOverlayColor("backgroundColor",d,A)},__setBgOverlayImage:function(d,A,y,m){return typeof A=="string"?t.util.loadImage(A,function(_,w){if(_){var S=new t.Image(_,m);this[d]=S,S.canvas=this}y&&y(_,w)},this,m&&m.crossOrigin):(m&&A.setOptions(m),this[d]=A,A&&(A.canvas=this),y&&y(A,!1)),this},__setBgOverlayColor:function(d,A,y){return this[d]=A,this._initGradient(A,d),this._initPattern(A,d,y),this},_createCanvasElement:function(){var d=h();if(!d||(d.style||(d.style={}),typeof d.getContext>"u"))throw g;return d},_initOptions:function(d){var A=this.lowerCanvasEl;this._setOptions(d),this.width=this.width||parseInt(A.width,10)||0,this.height=this.height||parseInt(A.height,10)||0,this.lowerCanvasEl.style&&(A.width=this.width,A.height=this.height,A.style.width=this.width+"px",A.style.height=this.height+"px",this.viewportTransform=this.viewportTransform.slice())},_createLowerCanvas:function(d){d&&d.getContext?this.lowerCanvasEl=d:this.lowerCanvasEl=t.util.getById(d)||this._createCanvasElement(),t.util.addClass(this.lowerCanvasEl,"lower-canvas"),this._originalCanvasStyle=this.lowerCanvasEl.style,this.interactive&&this._applyCanvasStyle(this.lowerCanvasEl),this.contextContainer=this.lowerCanvasEl.getContext("2d")},getWidth:function(){return this.width},getHeight:function(){return this.height},setWidth:function(d,A){return this.setDimensions({width:d},A)},setHeight:function(d,A){return this.setDimensions({height:d},A)},setDimensions:function(d,A){var y;A=A||{};for(var m in d)y=d[m],A.cssOnly||(this._setBackstoreDimension(m,d[m]),y+="px",this.hasLostContext=!0),A.backstoreOnly||this._setCssDimension(m,y);return this._isCurrentlyDrawing&&this.freeDrawingBrush&&this.freeDrawingBrush._setBrushStyles(this.contextTop),this._initRetinaScaling(),this.calcOffset(),A.cssOnly||this.requestRenderAll(),this},_setBackstoreDimension:function(d,A){return this.lowerCanvasEl[d]=A,this.upperCanvasEl&&(this.upperCanvasEl[d]=A),this.cacheCanvasEl&&(this.cacheCanvasEl[d]=A),this[d]=A,this},_setCssDimension:function(d,A){return this.lowerCanvasEl.style[d]=A,this.upperCanvasEl&&(this.upperCanvasEl.style[d]=A),this.wrapperEl&&(this.wrapperEl.style[d]=A),this},getZoom:function(){return this.viewportTransform[0]},setViewportTransform:function(d){var A=this._activeObject,y=this.backgroundImage,m=this.overlayImage,_,w,S;for(this.viewportTransform=d,w=0,S=this._objects.length;w<S;w++)_=this._objects[w],_.group||_.setCoords(!0);return A&&A.setCoords(),y&&y.setCoords(!0),m&&m.setCoords(!0),this.calcViewportBoundaries(),this.renderOnAddRemove&&this.requestRenderAll(),this},zoomToPoint:function(d,A){var y=d,m=this.viewportTransform.slice(0);d=i(d,l(this.viewportTransform)),m[0]=A,m[3]=A;var _=i(d,m);return m[4]+=y.x-_.x,m[5]+=y.y-_.y,this.setViewportTransform(m)},setZoom:function(d){return this.zoomToPoint(new t.Point(0,0),d),this},absolutePan:function(d){var A=this.viewportTransform.slice(0);return A[4]=-d.x,A[5]=-d.y,this.setViewportTransform(A)},relativePan:function(d){return this.absolutePan(new t.Point(-d.x-this.viewportTransform[4],-d.y-this.viewportTransform[5]))},getElement:function(){return this.lowerCanvasEl},_onObjectAdded:function(d){this.stateful&&d.setupState(),d._set("canvas",this),d.setCoords(),this.fire("object:added",{target:d}),d.fire("added")},_onObjectRemoved:function(d){this.fire("object:removed",{target:d}),d.fire("removed"),delete d.canvas},clearContext:function(d){return d.clearRect(0,0,this.width,this.height),this},getContext:function(){return this.contextContainer},clear:function(){return this.remove.apply(this,this.getObjects()),this.backgroundImage=null,this.overlayImage=null,this.backgroundColor="",this.overlayColor="",this._hasITextHandlers&&(this.off("mouse:up",this._mouseUpITextHandler),this._iTextInstances=null,this._hasITextHandlers=!1),this.clearContext(this.contextContainer),this.fire("canvas:cleared"),this.renderOnAddRemove&&this.requestRenderAll(),this},renderAll:function(){var d=this.contextContainer;return this.renderCanvas(d,this._objects),this},renderAndReset:function(){this.isRendering=0,this.renderAll()},requestRenderAll:function(){return this.isRendering||(this.isRendering=t.util.requestAnimFrame(this.renderAndResetBound)),this},calcViewportBoundaries:function(){var d={},A=this.width,y=this.height,m=l(this.viewportTransform);return d.tl=i({x:0,y:0},m),d.br=i({x:A,y},m),d.tr=new t.Point(d.br.x,d.tl.y),d.bl=new t.Point(d.tl.x,d.br.y),this.vptCoords=d,d},cancelRequestedRender:function(){this.isRendering&&(t.util.cancelAnimFrame(this.isRendering),this.isRendering=0)},renderCanvas:function(d,A){var y=this.viewportTransform,m=this.clipPath;this.cancelRequestedRender(),this.calcViewportBoundaries(),this.clearContext(d),t.util.setImageSmoothing(d,this.imageSmoothingEnabled),this.fire("before:render",{ctx:d}),this._renderBackground(d),d.save(),d.transform(y[0],y[1],y[2],y[3],y[4],y[5]),this._renderObjects(d,A),d.restore(),!this.controlsAboveOverlay&&this.interactive&&this.drawControls(d),m&&(m.canvas=this,m.shouldCache(),m._transformDone=!0,m.renderCache({forClipping:!0}),this.drawClipPathOnCanvas(d)),this._renderOverlay(d),this.controlsAboveOverlay&&this.interactive&&this.drawControls(d),this.fire("after:render",{ctx:d})},drawClipPathOnCanvas:function(d){var A=this.viewportTransform,y=this.clipPath;d.save(),d.transform(A[0],A[1],A[2],A[3],A[4],A[5]),d.globalCompositeOperation="destination-in",y.transform(d),d.scale(1/y.zoomX,1/y.zoomY),d.drawImage(y._cacheCanvas,-y.cacheTranslationX,-y.cacheTranslationY),d.restore()},_renderObjects:function(d,A){var y,m;for(y=0,m=A.length;y<m;++y)A[y]&&A[y].render(d)},_renderBackgroundOrOverlay:function(d,A){var y=this[A+"Color"],m=this[A+"Image"],_=this.viewportTransform,w=this[A+"Vpt"];if(!(!y&&!m)){if(y){d.save(),d.beginPath(),d.moveTo(0,0),d.lineTo(this.width,0),d.lineTo(this.width,this.height),d.lineTo(0,this.height),d.closePath(),d.fillStyle=y.toLive?y.toLive(d,this):y,w&&d.transform(_[0],_[1],_[2],_[3],_[4],_[5]),d.transform(1,0,0,1,y.offsetX||0,y.offsetY||0);var S=y.gradientTransform||y.patternTransform;S&&d.transform(S[0],S[1],S[2],S[3],S[4],S[5]),d.fill(),d.restore()}m&&(d.save(),w&&d.transform(_[0],_[1],_[2],_[3],_[4],_[5]),m.render(d),d.restore())}},_renderBackground:function(d){this._renderBackgroundOrOverlay(d,"background")},_renderOverlay:function(d){this._renderBackgroundOrOverlay(d,"overlay")},getCenter:function(){return{top:this.height/2,left:this.width/2}},getCenterPoint:function(){return new t.Point(this.width/2,this.height/2)},centerObjectH:function(d){return this._centerObject(d,new t.Point(this.getCenterPoint().x,d.getCenterPoint().y))},centerObjectV:function(d){return this._centerObject(d,new t.Point(d.getCenterPoint().x,this.getCenterPoint().y))},centerObject:function(d){var A=this.getCenterPoint();return this._centerObject(d,A)},viewportCenterObject:function(d){var A=this.getVpCenter();return this._centerObject(d,A)},viewportCenterObjectH:function(d){var A=this.getVpCenter();return this._centerObject(d,new t.Point(A.x,d.getCenterPoint().y)),this},viewportCenterObjectV:function(d){var A=this.getVpCenter();return this._centerObject(d,new t.Point(d.getCenterPoint().x,A.y))},getVpCenter:function(){var d=this.getCenterPoint(),A=l(this.viewportTransform);return i(d,A)},_centerObject:function(d,A){return d.setPositionByOrigin(A,"center","center"),d.setCoords(),this.renderOnAddRemove&&this.requestRenderAll(),this},toDatalessJSON:function(d){return this.toDatalessObject(d)},toObject:function(d){return this._toObjectMethod("toObject",d)},toDatalessObject:function(d){return this._toObjectMethod("toDatalessObject",d)},_toObjectMethod:function(d,A){var y=this.clipPath,m={version:t.version,objects:this._toObjects(d,A)};return y&&!y.excludeFromExport&&(m.clipPath=this._toObject(this.clipPath,d,A)),u(m,this.__serializeBgOverlay(d,A)),t.util.populateWithProperties(this,m,A),m},_toObjects:function(d,A){return this._objects.filter(function(y){return!y.excludeFromExport}).map(function(y){return this._toObject(y,d,A)},this)},_toObject:function(d,A,y){var m;this.includeDefaultValues||(m=d.includeDefaultValues,d.includeDefaultValues=!1);var _=d[A](y);return this.includeDefaultValues||(d.includeDefaultValues=m),_},__serializeBgOverlay:function(d,A){var y={},m=this.backgroundImage,_=this.overlayImage,w=this.backgroundColor,S=this.overlayColor;return w&&w.toObject?w.excludeFromExport||(y.background=w.toObject(A)):w&&(y.background=w),S&&S.toObject?S.excludeFromExport||(y.overlay=S.toObject(A)):S&&(y.overlay=S),m&&!m.excludeFromExport&&(y.backgroundImage=this._toObject(m,d,A)),_&&!_.excludeFromExport&&(y.overlayImage=this._toObject(_,d,A)),y},svgViewportTransformation:!0,toSVG:function(d,A){d||(d={}),d.reviver=A;var y=[];return this._setSVGPreamble(y,d),this._setSVGHeader(y,d),this.clipPath&&y.push('<g clip-path="url(#'+this.clipPath.clipPathId+`)" >
26
+ `),this._setSVGBgOverlayColor(y,"background"),this._setSVGBgOverlayImage(y,"backgroundImage",A),this._setSVGObjects(y,A),this.clipPath&&y.push(`</g>
27
+ `),this._setSVGBgOverlayColor(y,"overlay"),this._setSVGBgOverlayImage(y,"overlayImage",A),y.push("</svg>"),y.join("")},_setSVGPreamble:function(d,A){A.suppressPreamble||d.push('<?xml version="1.0" encoding="',A.encoding||"UTF-8",`" standalone="no" ?>
28
+ `,'<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" ',`"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
29
+ `)},_setSVGHeader:function(d,A){var y=A.width||this.width,m=A.height||this.height,_,w='viewBox="0 0 '+this.width+" "+this.height+'" ',S=t.Object.NUM_FRACTION_DIGITS;A.viewBox?w='viewBox="'+A.viewBox.x+" "+A.viewBox.y+" "+A.viewBox.width+" "+A.viewBox.height+'" ':this.svgViewportTransformation&&(_=this.viewportTransform,w='viewBox="'+c(-_[4]/_[0],S)+" "+c(-_[5]/_[3],S)+" "+c(this.width/_[0],S)+" "+c(this.height/_[3],S)+'" '),d.push("<svg ",'xmlns="http://www.w3.org/2000/svg" ','xmlns:xlink="http://www.w3.org/1999/xlink" ','version="1.1" ','width="',y,'" ','height="',m,'" ',w,`xml:space="preserve">
30
+ `,"<desc>Created with Fabric.js ",t.version,`</desc>
31
+ `,`<defs>
32
+ `,this.createSVGFontFacesMarkup(),this.createSVGRefElementsMarkup(),this.createSVGClipPathMarkup(A),`</defs>
33
+ `)},createSVGClipPathMarkup:function(d){var A=this.clipPath;return A?(A.clipPathId="CLIPPATH_"+t.Object.__uid++,'<clipPath id="'+A.clipPathId+`" >
34
+ `+this.clipPath.toClipPathSVG(d.reviver)+`</clipPath>
35
+ `):""},createSVGRefElementsMarkup:function(){var d=this,A=["background","overlay"].map(function(y){var m=d[y+"Color"];if(m&&m.toLive){var _=d[y+"Vpt"],w=d.viewportTransform,S={width:d.width/(_?w[0]:1),height:d.height/(_?w[3]:1)};return m.toSVG(S,{additionalTransform:_?t.util.matrixToSVG(w):""})}});return A.join("")},createSVGFontFacesMarkup:function(){var d="",A={},y,m,_,w,S,O,P,N,q,Z=t.fontPaths,K=[];for(this._objects.forEach(function $(U){K.push(U),U._objects&&U._objects.forEach($)}),N=0,q=K.length;N<q;N++)if(y=K[N],m=y.fontFamily,!(y.type.indexOf("text")===-1||A[m]||!Z[m])&&(A[m]=!0,!!y.styles)){_=y.styles;for(S in _){w=_[S];for(P in w)O=w[P],m=O.fontFamily,!A[m]&&Z[m]&&(A[m]=!0)}}for(var rt in A)d+=[` @font-face {
36
+ `," font-family: '",rt,`';
37
+ `," src: url('",Z[rt],`');
38
+ `,` }
39
+ `].join("");return d&&(d=[' <style type="text/css">',`<![CDATA[
40
+ `,d,"]]>",`</style>
41
+ `].join("")),d},_setSVGObjects:function(d,A){var y,m,_,w=this._objects;for(m=0,_=w.length;m<_;m++)y=w[m],!y.excludeFromExport&&this._setSVGObject(d,y,A)},_setSVGObject:function(d,A,y){d.push(A.toSVG(y))},_setSVGBgOverlayImage:function(d,A,y){this[A]&&!this[A].excludeFromExport&&this[A].toSVG&&d.push(this[A].toSVG(y))},_setSVGBgOverlayColor:function(d,A){var y=this[A+"Color"],m=this.viewportTransform,_=this.width,w=this.height;if(y)if(y.toLive){var S=y.repeat,O=t.util.invertTransform(m),P=this[A+"Vpt"],N=P?t.util.matrixToSVG(O):"";d.push('<rect transform="'+N+" translate(",_/2,",",w/2,')"',' x="',y.offsetX-_/2,'" y="',y.offsetY-w/2,'" ','width="',S==="repeat-y"||S==="no-repeat"?y.source.width:_,'" height="',S==="repeat-x"||S==="no-repeat"?y.source.height:w,'" fill="url(#SVGID_'+y.id+')"',`></rect>
42
+ `)}else d.push('<rect x="0" y="0" width="100%" height="100%" ','fill="',y,'"',`></rect>
43
+ `)},sendToBack:function(d){if(!d)return this;var A=this._activeObject,y,m,_;if(d===A&&d.type==="activeSelection")for(_=A._objects,y=_.length;y--;)m=_[y],s(this._objects,m),this._objects.unshift(m);else s(this._objects,d),this._objects.unshift(d);return this.renderOnAddRemove&&this.requestRenderAll(),this},bringToFront:function(d){if(!d)return this;var A=this._activeObject,y,m,_;if(d===A&&d.type==="activeSelection")for(_=A._objects,y=0;y<_.length;y++)m=_[y],s(this._objects,m),this._objects.push(m);else s(this._objects,d),this._objects.push(d);return this.renderOnAddRemove&&this.requestRenderAll(),this},sendBackwards:function(d,A){if(!d)return this;var y=this._activeObject,m,_,w,S,O,P=0;if(d===y&&d.type==="activeSelection")for(O=y._objects,m=0;m<O.length;m++)_=O[m],w=this._objects.indexOf(_),w>0+P&&(S=w-1,s(this._objects,_),this._objects.splice(S,0,_)),P++;else w=this._objects.indexOf(d),w!==0&&(S=this._findNewLowerIndex(d,w,A),s(this._objects,d),this._objects.splice(S,0,d));return this.renderOnAddRemove&&this.requestRenderAll(),this},_findNewLowerIndex:function(d,A,y){var m,_;if(y)for(m=A,_=A-1;_>=0;--_){var w=d.intersectsWithObject(this._objects[_])||d.isContainedWithinObject(this._objects[_])||this._objects[_].isContainedWithinObject(d);if(w){m=_;break}}else m=A-1;return m},bringForward:function(d,A){if(!d)return this;var y=this._activeObject,m,_,w,S,O,P=0;if(d===y&&d.type==="activeSelection")for(O=y._objects,m=O.length;m--;)_=O[m],w=this._objects.indexOf(_),w<this._objects.length-1-P&&(S=w+1,s(this._objects,_),this._objects.splice(S,0,_)),P++;else w=this._objects.indexOf(d),w!==this._objects.length-1&&(S=this._findNewUpperIndex(d,w,A),s(this._objects,d),this._objects.splice(S,0,d));return this.renderOnAddRemove&&this.requestRenderAll(),this},_findNewUpperIndex:function(d,A,y){var m,_,w;if(y)for(m=A,_=A+1,w=this._objects.length;_<w;++_){var S=d.intersectsWithObject(this._objects[_])||d.isContainedWithinObject(this._objects[_])||this._objects[_].isContainedWithinObject(d);if(S){m=_;break}}else m=A+1;return m},moveTo:function(d,A){return s(this._objects,d),this._objects.splice(A,0,d),this.renderOnAddRemove&&this.requestRenderAll()},dispose:function(){return this.isRendering&&(t.util.cancelAnimFrame(this.isRendering),this.isRendering=0),this.forEachObject(function(d){d.dispose&&d.dispose()}),this._objects=[],this.backgroundImage&&this.backgroundImage.dispose&&this.backgroundImage.dispose(),this.backgroundImage=null,this.overlayImage&&this.overlayImage.dispose&&this.overlayImage.dispose(),this.overlayImage=null,this._iTextInstances=null,this.contextContainer=null,this.lowerCanvasEl.classList.remove("lower-canvas"),t.util.setStyle(this.lowerCanvasEl,this._originalCanvasStyle),delete this._originalCanvasStyle,this.lowerCanvasEl.setAttribute("width",this.width),this.lowerCanvasEl.setAttribute("height",this.height),t.util.cleanUpJsdomNode(this.lowerCanvasEl),this.lowerCanvasEl=void 0,this},toString:function(){return"#<fabric.Canvas ("+this.complexity()+"): { objects: "+this._objects.length+" }>"}}),u(t.StaticCanvas.prototype,t.Observable),u(t.StaticCanvas.prototype,t.Collection),u(t.StaticCanvas.prototype,t.DataURLExporter),u(t.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',supports:function(d){var A=h();if(!A||!A.getContext)return null;var y=A.getContext("2d");if(!y)return null;switch(d){case"setLineDash":return typeof y.setLineDash<"u";default:return null}}}),t.StaticCanvas.prototype.toJSON=t.StaticCanvas.prototype.toObject,t.isLikelyNode&&(t.StaticCanvas.prototype.createPNGStream=function(){var d=a(this.lowerCanvasEl);return d&&d.createPNGStream()},t.StaticCanvas.prototype.createJPEGStream=function(d){var A=a(this.lowerCanvasEl);return A&&A.createJPEGStream(d)})})(),t.BaseBrush=t.util.createClass({color:"rgb(0, 0, 0)",width:1,shadow:null,strokeLineCap:"round",strokeLineJoin:"round",strokeMiterLimit:10,strokeDashArray:null,limitedToCanvasSize:!1,_setBrushStyles:function(u){u.strokeStyle=this.color,u.lineWidth=this.width,u.lineCap=this.strokeLineCap,u.miterLimit=this.strokeMiterLimit,u.lineJoin=this.strokeLineJoin,u.setLineDash(this.strokeDashArray||[])},_saveAndTransform:function(u){var o=this.canvas.viewportTransform;u.save(),u.transform(o[0],o[1],o[2],o[3],o[4],o[5])},_setShadow:function(){if(this.shadow){var u=this.canvas,o=this.shadow,s=u.contextTop,c=u.getZoom();u&&u._isRetinaScaling()&&(c*=t.devicePixelRatio),s.shadowColor=o.color,s.shadowBlur=o.blur*c,s.shadowOffsetX=o.offsetX*c,s.shadowOffsetY=o.offsetY*c}},needsFullRender:function(){var u=new t.Color(this.color);return u.getAlpha()<1||!!this.shadow},_resetShadow:function(){var u=this.canvas.contextTop;u.shadowColor="",u.shadowBlur=u.shadowOffsetX=u.shadowOffsetY=0},_isOutSideCanvas:function(u){return u.x<0||u.x>this.canvas.getWidth()||u.y<0||u.y>this.canvas.getHeight()}}),(function(){t.PencilBrush=t.util.createClass(t.BaseBrush,{decimate:.4,drawStraightLine:!1,straightLineKey:"shiftKey",initialize:function(u){this.canvas=u,this._points=[]},needsFullRender:function(){return this.callSuper("needsFullRender")||this._hasStraightLine},_drawSegment:function(u,o,s){var c=o.midPointFrom(s);return u.quadraticCurveTo(o.x,o.y,c.x,c.y),c},onMouseDown:function(u,o){this.canvas._isMainEvent(o.e)&&(this.drawStraightLine=o.e[this.straightLineKey],this._prepareForDrawing(u),this._captureDrawingPath(u),this._render())},onMouseMove:function(u,o){if(this.canvas._isMainEvent(o.e)&&(this.drawStraightLine=o.e[this.straightLineKey],!(this.limitedToCanvasSize===!0&&this._isOutSideCanvas(u))&&this._captureDrawingPath(u)&&this._points.length>1))if(this.needsFullRender())this.canvas.clearContext(this.canvas.contextTop),this._render();else{var s=this._points,c=s.length,i=this.canvas.contextTop;this._saveAndTransform(i),this.oldEnd&&(i.beginPath(),i.moveTo(this.oldEnd.x,this.oldEnd.y)),this.oldEnd=this._drawSegment(i,s[c-2],s[c-1],!0),i.stroke(),i.restore()}},onMouseUp:function(u){return this.canvas._isMainEvent(u.e)?(this.drawStraightLine=!1,this.oldEnd=void 0,this._finalizeAndAddPath(),!1):!0},_prepareForDrawing:function(u){var o=new t.Point(u.x,u.y);this._reset(),this._addPoint(o),this.canvas.contextTop.moveTo(o.x,o.y)},_addPoint:function(u){return this._points.length>1&&u.eq(this._points[this._points.length-1])?!1:(this.drawStraightLine&&this._points.length>1&&(this._hasStraightLine=!0,this._points.pop()),this._points.push(u),!0)},_reset:function(){this._points=[],this._setBrushStyles(this.canvas.contextTop),this._setShadow(),this._hasStraightLine=!1},_captureDrawingPath:function(u){var o=new t.Point(u.x,u.y);return this._addPoint(o)},_render:function(u){var o,s,c=this._points[0],i=this._points[1];if(u=u||this.canvas.contextTop,this._saveAndTransform(u),u.beginPath(),this._points.length===2&&c.x===i.x&&c.y===i.y){var l=this.width/1e3;c=new t.Point(c.x,c.y),i=new t.Point(i.x,i.y),c.x-=l,i.x+=l}for(u.moveTo(c.x,c.y),o=1,s=this._points.length;o<s;o++)this._drawSegment(u,c,i),c=this._points[o],i=this._points[o+1];u.lineTo(c.x,c.y),u.stroke(),u.restore()},convertPointsToSVGPath:function(u){var o=this.width/1e3;return t.util.getSmoothPathFromPoints(u,o)},_isEmptySVGPath:function(u){var o=t.util.joinPath(u);return o==="M 0 0 Q 0 0 0 0 L 0 0"},createPath:function(u){var o=new t.Path(u,{fill:null,stroke:this.color,strokeWidth:this.width,strokeLineCap:this.strokeLineCap,strokeMiterLimit:this.strokeMiterLimit,strokeLineJoin:this.strokeLineJoin,strokeDashArray:this.strokeDashArray});return this.shadow&&(this.shadow.affectStroke=!0,o.shadow=new t.Shadow(this.shadow)),o},decimatePoints:function(u,o){if(u.length<=2)return u;var s=this.canvas.getZoom(),c=Math.pow(o/s,2),i,l=u.length-1,a=u[0],h=[a],g;for(i=1;i<l-1;i++)g=Math.pow(a.x-u[i].x,2)+Math.pow(a.y-u[i].y,2),g>=c&&(a=u[i],h.push(a));return h.push(u[l]),h},_finalizeAndAddPath:function(){var u=this.canvas.contextTop;u.closePath(),this.decimate&&(this._points=this.decimatePoints(this._points,this.decimate));var o=this.convertPointsToSVGPath(this._points);if(this._isEmptySVGPath(o)){this.canvas.requestRenderAll();return}var s=this.createPath(o);this.canvas.clearContext(this.canvas.contextTop),this.canvas.fire("before:path:created",{path:s}),this.canvas.add(s),this.canvas.requestRenderAll(),s.setCoords(),this._resetShadow(),this.canvas.fire("path:created",{path:s})}})})(),t.CircleBrush=t.util.createClass(t.BaseBrush,{width:10,initialize:function(u){this.canvas=u,this.points=[]},drawDot:function(u){var o=this.addPoint(u),s=this.canvas.contextTop;this._saveAndTransform(s),this.dot(s,o),s.restore()},dot:function(u,o){u.fillStyle=o.fill,u.beginPath(),u.arc(o.x,o.y,o.radius,0,Math.PI*2,!1),u.closePath(),u.fill()},onMouseDown:function(u){this.points.length=0,this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.drawDot(u)},_render:function(){var u=this.canvas.contextTop,o,s,c=this.points;for(this._saveAndTransform(u),o=0,s=c.length;o<s;o++)this.dot(u,c[o]);u.restore()},onMouseMove:function(u){this.limitedToCanvasSize===!0&&this._isOutSideCanvas(u)||(this.needsFullRender()?(this.canvas.clearContext(this.canvas.contextTop),this.addPoint(u),this._render()):this.drawDot(u))},onMouseUp:function(){var u=this.canvas.renderOnAddRemove,o,s;this.canvas.renderOnAddRemove=!1;var c=[];for(o=0,s=this.points.length;o<s;o++){var i=this.points[o],l=new t.Circle({radius:i.radius,left:i.x,top:i.y,originX:"center",originY:"center",fill:i.fill});this.shadow&&(l.shadow=new t.Shadow(this.shadow)),c.push(l)}var a=new t.Group(c);a.canvas=this.canvas,this.canvas.fire("before:path:created",{path:a}),this.canvas.add(a),this.canvas.fire("path:created",{path:a}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=u,this.canvas.requestRenderAll()},addPoint:function(u){var o=new t.Point(u.x,u.y),s=t.util.getRandomInt(Math.max(0,this.width-20),this.width+20)/2,c=new t.Color(this.color).setAlpha(t.util.getRandomInt(0,100)/100).toRgba();return o.radius=s,o.fill=c,this.points.push(o),o}}),t.SprayBrush=t.util.createClass(t.BaseBrush,{width:10,density:20,dotWidth:1,dotWidthVariance:1,randomOpacity:!1,optimizeOverlapping:!0,initialize:function(u){this.canvas=u,this.sprayChunks=[]},onMouseDown:function(u){this.sprayChunks.length=0,this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.addSprayChunk(u),this.render(this.sprayChunkPoints)},onMouseMove:function(u){this.limitedToCanvasSize===!0&&this._isOutSideCanvas(u)||(this.addSprayChunk(u),this.render(this.sprayChunkPoints))},onMouseUp:function(){var u=this.canvas.renderOnAddRemove;this.canvas.renderOnAddRemove=!1;for(var o=[],s=0,c=this.sprayChunks.length;s<c;s++)for(var i=this.sprayChunks[s],l=0,a=i.length;l<a;l++){var h=new t.Rect({width:i[l].width,height:i[l].width,left:i[l].x+1,top:i[l].y+1,originX:"center",originY:"center",fill:this.color});o.push(h)}this.optimizeOverlapping&&(o=this._getOptimizedRects(o));var g=new t.Group(o);this.shadow&&g.set("shadow",new t.Shadow(this.shadow)),this.canvas.fire("before:path:created",{path:g}),this.canvas.add(g),this.canvas.fire("path:created",{path:g}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=u,this.canvas.requestRenderAll()},_getOptimizedRects:function(u){var o={},s,c,i;for(c=0,i=u.length;c<i;c++)s=u[c].left+""+u[c].top,o[s]||(o[s]=u[c]);var l=[];for(s in o)l.push(o[s]);return l},render:function(u){var o=this.canvas.contextTop,s,c;for(o.fillStyle=this.color,this._saveAndTransform(o),s=0,c=u.length;s<c;s++){var i=u[s];typeof i.opacity<"u"&&(o.globalAlpha=i.opacity),o.fillRect(i.x,i.y,i.width,i.width)}o.restore()},_render:function(){var u=this.canvas.contextTop,o,s;for(u.fillStyle=this.color,this._saveAndTransform(u),o=0,s=this.sprayChunks.length;o<s;o++)this.render(this.sprayChunks[o]);u.restore()},addSprayChunk:function(u){this.sprayChunkPoints=[];var o,s,c,i=this.width/2,l;for(l=0;l<this.density;l++){o=t.util.getRandomInt(u.x-i,u.x+i),s=t.util.getRandomInt(u.y-i,u.y+i),this.dotWidthVariance?c=t.util.getRandomInt(Math.max(1,this.dotWidth-this.dotWidthVariance),this.dotWidth+this.dotWidthVariance):c=this.dotWidth;var a=new t.Point(o,s);a.width=c,this.randomOpacity&&(a.opacity=t.util.getRandomInt(0,100)/100),this.sprayChunkPoints.push(a)}this.sprayChunks.push(this.sprayChunkPoints)}}),t.PatternBrush=t.util.createClass(t.PencilBrush,{getPatternSrc:function(){var u=20,o=5,s=t.util.createCanvasElement(),c=s.getContext("2d");return s.width=s.height=u+o,c.fillStyle=this.color,c.beginPath(),c.arc(u/2,u/2,u/2,0,Math.PI*2,!1),c.closePath(),c.fill(),s},getPatternSrcFunction:function(){return String(this.getPatternSrc).replace("this.color",'"'+this.color+'"')},getPattern:function(u){return u.createPattern(this.source||this.getPatternSrc(),"repeat")},_setBrushStyles:function(u){this.callSuper("_setBrushStyles",u),u.strokeStyle=this.getPattern(u)},createPath:function(u){var o=this.callSuper("createPath",u),s=o._getLeftTopCoords().scalarAdd(o.strokeWidth/2);return o.stroke=new t.Pattern({source:this.source||this.getPatternSrcFunction(),offsetX:-s.x,offsetY:-s.y}),o}}),(function(){var u=t.util.getPointer,o=t.util.degreesToRadians,s=t.util.isTouchEvent;t.Canvas=t.util.createClass(t.StaticCanvas,{initialize:function(i,l){l||(l={}),this.renderAndResetBound=this.renderAndReset.bind(this),this.requestRenderAllBound=this.requestRenderAll.bind(this),this._initStatic(i,l),this._initInteractive(),this._createCacheCanvas()},uniformScaling:!0,uniScaleKey:"shiftKey",centeredScaling:!1,centeredRotation:!1,centeredKey:"altKey",altActionKey:"shiftKey",interactive:!0,selection:!0,selectionKey:"shiftKey",altSelectionKey:null,selectionColor:"rgba(100, 100, 255, 0.3)",selectionDashArray:[],selectionBorderColor:"rgba(255, 255, 255, 0.3)",selectionLineWidth:1,selectionFullyContained:!1,hoverCursor:"move",moveCursor:"move",defaultCursor:"default",freeDrawingCursor:"crosshair",notAllowedCursor:"not-allowed",containerClass:"canvas-container",perPixelTargetFind:!1,targetFindTolerance:0,skipTargetFind:!1,isDrawingMode:!1,preserveObjectStacking:!1,snapAngle:0,snapThreshold:null,stopContextMenu:!1,fireRightClick:!1,fireMiddleClick:!1,targets:[],enablePointerEvents:!1,_hoveredTarget:null,_hoveredTargets:[],_initInteractive:function(){this._currentTransform=null,this._groupSelector=null,this._initWrapperElement(),this._createUpperCanvas(),this._initEventListeners(),this._initRetinaScaling(),this.freeDrawingBrush=t.PencilBrush&&new t.PencilBrush(this),this.calcOffset()},_chooseObjectsToRender:function(){var i=this.getActiveObjects(),l,a,h;if(i.length>0&&!this.preserveObjectStacking){a=[],h=[];for(var g=0,d=this._objects.length;g<d;g++)l=this._objects[g],i.indexOf(l)===-1?a.push(l):h.push(l);i.length>1&&(this._activeObject._objects=h),a.push.apply(a,h)}else a=this._objects;return a},renderAll:function(){this.contextTopDirty&&!this._groupSelector&&!this.isDrawingMode&&(this.clearContext(this.contextTop),this.contextTopDirty=!1),this.hasLostContext&&(this.renderTopLayer(this.contextTop),this.hasLostContext=!1);var i=this.contextContainer;return this.renderCanvas(i,this._chooseObjectsToRender()),this},renderTopLayer:function(i){i.save(),this.isDrawingMode&&this._isCurrentlyDrawing&&(this.freeDrawingBrush&&this.freeDrawingBrush._render(),this.contextTopDirty=!0),this.selection&&this._groupSelector&&(this._drawSelection(i),this.contextTopDirty=!0),i.restore()},renderTop:function(){var i=this.contextTop;return this.clearContext(i),this.renderTopLayer(i),this.fire("after:render"),this},_normalizePointer:function(i,l){var a=i.calcTransformMatrix(),h=t.util.invertTransform(a),g=this.restorePointerVpt(l);return t.util.transformPoint(g,h)},isTargetTransparent:function(i,l,a){if(i.shouldCache()&&i._cacheCanvas&&i!==this._activeObject){var h=this._normalizePointer(i,{x:l,y:a}),g=Math.max(i.cacheTranslationX+h.x*i.zoomX,0),d=Math.max(i.cacheTranslationY+h.y*i.zoomY,0),_=t.util.isTransparent(i._cacheContext,Math.round(g),Math.round(d),this.targetFindTolerance);return _}var A=this.contextCache,y=i.selectionBackgroundColor,m=this.viewportTransform;i.selectionBackgroundColor="",this.clearContext(A),A.save(),A.transform(m[0],m[1],m[2],m[3],m[4],m[5]),i.render(A),A.restore(),i.selectionBackgroundColor=y;var _=t.util.isTransparent(A,l,a,this.targetFindTolerance);return _},_isSelectionKeyPressed:function(i){var l=!1;return Array.isArray(this.selectionKey)?l=!!this.selectionKey.find(function(a){return i[a]===!0}):l=i[this.selectionKey],l},_shouldClearSelection:function(i,l){var a=this.getActiveObjects(),h=this._activeObject;return!l||l&&h&&a.length>1&&a.indexOf(l)===-1&&h!==l&&!this._isSelectionKeyPressed(i)||l&&!l.evented||l&&!l.selectable&&h&&h!==l},_shouldCenterTransform:function(i,l,a){if(i){var h;return l==="scale"||l==="scaleX"||l==="scaleY"||l==="resizing"?h=this.centeredScaling||i.centeredScaling:l==="rotate"&&(h=this.centeredRotation||i.centeredRotation),h?!a:a}},_getOriginFromCorner:function(i,l){var a={x:i.originX,y:i.originY};return l==="ml"||l==="tl"||l==="bl"?a.x="right":(l==="mr"||l==="tr"||l==="br")&&(a.x="left"),l==="tl"||l==="mt"||l==="tr"?a.y="bottom":(l==="bl"||l==="mb"||l==="br")&&(a.y="top"),a},_getActionFromCorner:function(i,l,a,h){if(!l||!i)return"drag";var g=h.controls[l];return g.getActionName(a,g,h)},_setupCurrentTransform:function(i,l,a){if(l){var h=this.getPointer(i),g=l.__corner,d=l.controls[g],A=a&&g?d.getActionHandler(i,l,d):t.controlsUtils.dragHandler,y=this._getActionFromCorner(a,g,i,l),m=this._getOriginFromCorner(l,g),_=i[this.centeredKey],w={target:l,action:y,actionHandler:A,corner:g,scaleX:l.scaleX,scaleY:l.scaleY,skewX:l.skewX,skewY:l.skewY,offsetX:h.x-l.left,offsetY:h.y-l.top,originX:m.x,originY:m.y,ex:h.x,ey:h.y,lastX:h.x,lastY:h.y,theta:o(l.angle),width:l.width*l.scaleX,shiftKey:i.shiftKey,altKey:_,original:t.util.saveObjectTransform(l)};this._shouldCenterTransform(l,y,_)&&(w.originX="center",w.originY="center"),w.original.originX=m.x,w.original.originY=m.y,this._currentTransform=w,this._beforeTransform(i)}},setCursor:function(i){this.upperCanvasEl.style.cursor=i},_drawSelection:function(i){var l=this._groupSelector,a=new t.Point(l.ex,l.ey),h=t.util.transformPoint(a,this.viewportTransform),g=new t.Point(l.ex+l.left,l.ey+l.top),d=t.util.transformPoint(g,this.viewportTransform),A=Math.min(h.x,d.x),y=Math.min(h.y,d.y),m=Math.max(h.x,d.x),_=Math.max(h.y,d.y),w=this.selectionLineWidth/2;this.selectionColor&&(i.fillStyle=this.selectionColor,i.fillRect(A,y,m-A,_-y)),!(!this.selectionLineWidth||!this.selectionBorderColor)&&(i.lineWidth=this.selectionLineWidth,i.strokeStyle=this.selectionBorderColor,A+=w,y+=w,m-=w,_-=w,t.Object.prototype._setLineDash.call(this,i,this.selectionDashArray),i.strokeRect(A,y,m-A,_-y))},findTarget:function(i,l){if(!this.skipTargetFind){var a=!0,h=this.getPointer(i,a),g=this._activeObject,d=this.getActiveObjects(),A,y,m=s(i),_=d.length>1&&!l||d.length===1;if(this.targets=[],_&&g._findTargetCorner(h,m)||d.length>1&&!l&&g===this._searchPossibleTargets([g],h))return g;if(d.length===1&&g===this._searchPossibleTargets([g],h))if(this.preserveObjectStacking)A=g,y=this.targets,this.targets=[];else return g;var w=this._searchPossibleTargets(this._objects,h);return i[this.altSelectionKey]&&w&&A&&w!==A&&(w=A,this.targets=y),w}},_checkTarget:function(i,l,a){if(l&&l.visible&&l.evented&&l.containsPoint(i))if((this.perPixelTargetFind||l.perPixelTargetFind)&&!l.isEditing){var h=this.isTargetTransparent(l,a.x,a.y);if(!h)return!0}else return!0},_searchPossibleTargets:function(i,l){for(var a,h=i.length,g;h--;){var d=i[h],A=d.group?this._normalizePointer(d.group,l):l;if(this._checkTarget(A,d,l)){a=i[h],a.subTargetCheck&&a instanceof t.Group&&(g=this._searchPossibleTargets(a._objects,l),g&&this.targets.push(g));break}}return a},restorePointerVpt:function(i){return t.util.transformPoint(i,t.util.invertTransform(this.viewportTransform))},getPointer:function(i,l){if(this._absolutePointer&&!l)return this._absolutePointer;if(this._pointer&&l)return this._pointer;var a=u(i),h=this.upperCanvasEl,g=h.getBoundingClientRect(),d=g.width||0,A=g.height||0,y;(!d||!A)&&("top"in g&&"bottom"in g&&(A=Math.abs(g.top-g.bottom)),"right"in g&&"left"in g&&(d=Math.abs(g.right-g.left))),this.calcOffset(),a.x=a.x-this._offset.left,a.y=a.y-this._offset.top,l||(a=this.restorePointerVpt(a));var m=this.getRetinaScaling();return m!==1&&(a.x/=m,a.y/=m),d===0||A===0?y={width:1,height:1}:y={width:h.width/d,height:h.height/A},{x:a.x*y.width,y:a.y*y.height}},_createUpperCanvas:function(){var i=this.lowerCanvasEl.className.replace(/\s*lower-canvas\s*/,""),l=this.lowerCanvasEl,a=this.upperCanvasEl;a?a.className="":(a=this._createCanvasElement(),this.upperCanvasEl=a),t.util.addClass(a,"upper-canvas "+i),this.wrapperEl.appendChild(a),this._copyCanvasStyle(l,a),this._applyCanvasStyle(a),this.contextTop=a.getContext("2d")},getTopContext:function(){return this.contextTop},_createCacheCanvas:function(){this.cacheCanvasEl=this._createCanvasElement(),this.cacheCanvasEl.setAttribute("width",this.width),this.cacheCanvasEl.setAttribute("height",this.height),this.contextCache=this.cacheCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=t.util.wrapElement(this.lowerCanvasEl,"div",{class:this.containerClass}),t.util.setStyle(this.wrapperEl,{width:this.width+"px",height:this.height+"px",position:"relative"}),t.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(i){var l=this.width||i.width,a=this.height||i.height;t.util.setStyle(i,{position:"absolute",width:l+"px",height:a+"px",left:0,top:0,"touch-action":this.allowTouchScrolling?"manipulation":"none","-ms-touch-action":this.allowTouchScrolling?"manipulation":"none"}),i.width=l,i.height=a,t.util.makeElementUnselectable(i)},_copyCanvasStyle:function(i,l){l.style.cssText=i.style.cssText},getSelectionContext:function(){return this.contextTop},getSelectionElement:function(){return this.upperCanvasEl},getActiveObject:function(){return this._activeObject},getActiveObjects:function(){var i=this._activeObject;return i?i.type==="activeSelection"&&i._objects?i._objects.slice(0):[i]:[]},_onObjectRemoved:function(i){i===this._activeObject&&(this.fire("before:selection:cleared",{target:i}),this._discardActiveObject(),this.fire("selection:cleared",{target:i}),i.fire("deselected")),i===this._hoveredTarget&&(this._hoveredTarget=null,this._hoveredTargets=[]),this.callSuper("_onObjectRemoved",i)},_fireSelectionEvents:function(i,l){var a=!1,h=this.getActiveObjects(),g=[],d=[];i.forEach(function(A){h.indexOf(A)===-1&&(a=!0,A.fire("deselected",{e:l,target:A}),d.push(A))}),h.forEach(function(A){i.indexOf(A)===-1&&(a=!0,A.fire("selected",{e:l,target:A}),g.push(A))}),i.length>0&&h.length>0?a&&this.fire("selection:updated",{e:l,selected:g,deselected:d}):h.length>0?this.fire("selection:created",{e:l,selected:g}):i.length>0&&this.fire("selection:cleared",{e:l,deselected:d})},setActiveObject:function(i,l){var a=this.getActiveObjects();return this._setActiveObject(i,l),this._fireSelectionEvents(a,l),this},_setActiveObject:function(i,l){return this._activeObject===i||!this._discardActiveObject(l,i)||i.onSelect({e:l})?!1:(this._activeObject=i,!0)},_discardActiveObject:function(i,l){var a=this._activeObject;if(a){if(a.onDeselect({e:i,object:l}))return!1;this._activeObject=null}return!0},discardActiveObject:function(i){var l=this.getActiveObjects(),a=this.getActiveObject();return l.length&&this.fire("before:selection:cleared",{target:a,e:i}),this._discardActiveObject(i),this._fireSelectionEvents(l,i),this},dispose:function(){var i=this.wrapperEl;return this.removeListeners(),i.removeChild(this.upperCanvasEl),i.removeChild(this.lowerCanvasEl),this.contextCache=null,this.contextTop=null,["upperCanvasEl","cacheCanvasEl"].forEach((function(l){t.util.cleanUpJsdomNode(this[l]),this[l]=void 0}).bind(this)),i.parentNode&&i.parentNode.replaceChild(this.lowerCanvasEl,this.wrapperEl),delete this.wrapperEl,t.StaticCanvas.prototype.dispose.call(this),this},clear:function(){return this.discardActiveObject(),this.clearContext(this.contextTop),this.callSuper("clear")},drawControls:function(i){var l=this._activeObject;l&&l._renderControls(i)},_toObject:function(i,l,a){var h=this._realizeGroupTransformOnObject(i),g=this.callSuper("_toObject",i,l,a);return this._unwindGroupTransformOnObject(i,h),g},_realizeGroupTransformOnObject:function(i){if(i.group&&i.group.type==="activeSelection"&&this._activeObject===i.group){var l=["angle","flipX","flipY","left","scaleX","scaleY","skewX","skewY","top"],a={};return l.forEach(function(h){a[h]=i[h]}),t.util.addTransformToObject(i,this._activeObject.calcOwnMatrix()),a}else return null},_unwindGroupTransformOnObject:function(i,l){l&&i.set(l)},_setSVGObject:function(i,l,a){var h=this._realizeGroupTransformOnObject(l);this.callSuper("_setSVGObject",i,l,a),this._unwindGroupTransformOnObject(l,h)},setViewportTransform:function(i){this.renderOnAddRemove&&this._activeObject&&this._activeObject.isEditing&&this._activeObject.clearContextTop(),t.StaticCanvas.prototype.setViewportTransform.call(this,i)}});for(var c in t.StaticCanvas)c!=="prototype"&&(t.Canvas[c]=t.StaticCanvas[c])})(),(function(){var u=t.util.addListener,o=t.util.removeListener,s=3,c=2,i=1,l={passive:!1};function a(h,g){return h.button&&h.button===g-1}t.util.object.extend(t.Canvas.prototype,{mainTouchId:null,_initEventListeners:function(){this.removeListeners(),this._bindEvents(),this.addOrRemove(u,"add")},_getEventPrefix:function(){return this.enablePointerEvents?"pointer":"mouse"},addOrRemove:function(h,g){var d=this.upperCanvasEl,A=this._getEventPrefix();h(t.window,"resize",this._onResize),h(d,A+"down",this._onMouseDown),h(d,A+"move",this._onMouseMove,l),h(d,A+"out",this._onMouseOut),h(d,A+"enter",this._onMouseEnter),h(d,"wheel",this._onMouseWheel),h(d,"contextmenu",this._onContextMenu),h(d,"dblclick",this._onDoubleClick),h(d,"dragover",this._onDragOver),h(d,"dragenter",this._onDragEnter),h(d,"dragleave",this._onDragLeave),h(d,"drop",this._onDrop),this.enablePointerEvents||h(d,"touchstart",this._onTouchStart,l),typeof eventjs<"u"&&g in eventjs&&(eventjs[g](d,"gesture",this._onGesture),eventjs[g](d,"drag",this._onDrag),eventjs[g](d,"orientation",this._onOrientationChange),eventjs[g](d,"shake",this._onShake),eventjs[g](d,"longpress",this._onLongPress))},removeListeners:function(){this.addOrRemove(o,"remove");var h=this._getEventPrefix();o(t.document,h+"up",this._onMouseUp),o(t.document,"touchend",this._onTouchEnd,l),o(t.document,h+"move",this._onMouseMove,l),o(t.document,"touchmove",this._onMouseMove,l)},_bindEvents:function(){this.eventsBound||(this._onMouseDown=this._onMouseDown.bind(this),this._onTouchStart=this._onTouchStart.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this._onMouseUp=this._onMouseUp.bind(this),this._onTouchEnd=this._onTouchEnd.bind(this),this._onResize=this._onResize.bind(this),this._onGesture=this._onGesture.bind(this),this._onDrag=this._onDrag.bind(this),this._onShake=this._onShake.bind(this),this._onLongPress=this._onLongPress.bind(this),this._onOrientationChange=this._onOrientationChange.bind(this),this._onMouseWheel=this._onMouseWheel.bind(this),this._onMouseOut=this._onMouseOut.bind(this),this._onMouseEnter=this._onMouseEnter.bind(this),this._onContextMenu=this._onContextMenu.bind(this),this._onDoubleClick=this._onDoubleClick.bind(this),this._onDragOver=this._onDragOver.bind(this),this._onDragEnter=this._simpleEventHandler.bind(this,"dragenter"),this._onDragLeave=this._simpleEventHandler.bind(this,"dragleave"),this._onDrop=this._onDrop.bind(this),this.eventsBound=!0)},_onGesture:function(h,g){this.__onTransformGesture&&this.__onTransformGesture(h,g)},_onDrag:function(h,g){this.__onDrag&&this.__onDrag(h,g)},_onMouseWheel:function(h){this.__onMouseWheel(h)},_onMouseOut:function(h){var g=this._hoveredTarget;this.fire("mouse:out",{target:g,e:h}),this._hoveredTarget=null,g&&g.fire("mouseout",{e:h});var d=this;this._hoveredTargets.forEach(function(A){d.fire("mouse:out",{target:g,e:h}),A&&g.fire("mouseout",{e:h})}),this._hoveredTargets=[]},_onMouseEnter:function(h){!this._currentTransform&&!this.findTarget(h)&&(this.fire("mouse:over",{target:null,e:h}),this._hoveredTarget=null,this._hoveredTargets=[])},_onOrientationChange:function(h,g){this.__onOrientationChange&&this.__onOrientationChange(h,g)},_onShake:function(h,g){this.__onShake&&this.__onShake(h,g)},_onLongPress:function(h,g){this.__onLongPress&&this.__onLongPress(h,g)},_onDragOver:function(h){h.preventDefault();var g=this._simpleEventHandler("dragover",h);this._fireEnterLeaveEvents(g,h)},_onDrop:function(h){return this._simpleEventHandler("drop:before",h),this._simpleEventHandler("drop",h)},_onContextMenu:function(h){return this.stopContextMenu&&(h.stopPropagation(),h.preventDefault()),!1},_onDoubleClick:function(h){this._cacheTransformEventData(h),this._handleEvent(h,"dblclick"),this._resetTransformEventData(h)},getPointerId:function(h){var g=h.changedTouches;return g?g[0]&&g[0].identifier:this.enablePointerEvents?h.pointerId:-1},_isMainEvent:function(h){return h.isPrimary===!0?!0:h.isPrimary===!1?!1:h.type==="touchend"&&h.touches.length===0?!0:h.changedTouches?h.changedTouches[0].identifier===this.mainTouchId:!0},_onTouchStart:function(h){h.preventDefault(),this.mainTouchId===null&&(this.mainTouchId=this.getPointerId(h)),this.__onMouseDown(h),this._resetTransformEventData();var g=this.upperCanvasEl,d=this._getEventPrefix();u(t.document,"touchend",this._onTouchEnd,l),u(t.document,"touchmove",this._onMouseMove,l),o(g,d+"down",this._onMouseDown)},_onMouseDown:function(h){this.__onMouseDown(h),this._resetTransformEventData();var g=this.upperCanvasEl,d=this._getEventPrefix();o(g,d+"move",this._onMouseMove,l),u(t.document,d+"up",this._onMouseUp),u(t.document,d+"move",this._onMouseMove,l)},_onTouchEnd:function(h){if(!(h.touches.length>0)){this.__onMouseUp(h),this._resetTransformEventData(),this.mainTouchId=null;var g=this._getEventPrefix();o(t.document,"touchend",this._onTouchEnd,l),o(t.document,"touchmove",this._onMouseMove,l);var d=this;this._willAddMouseDown&&clearTimeout(this._willAddMouseDown),this._willAddMouseDown=setTimeout(function(){u(d.upperCanvasEl,g+"down",d._onMouseDown),d._willAddMouseDown=0},400)}},_onMouseUp:function(h){this.__onMouseUp(h),this._resetTransformEventData();var g=this.upperCanvasEl,d=this._getEventPrefix();this._isMainEvent(h)&&(o(t.document,d+"up",this._onMouseUp),o(t.document,d+"move",this._onMouseMove,l),u(g,d+"move",this._onMouseMove,l))},_onMouseMove:function(h){!this.allowTouchScrolling&&h.preventDefault&&h.preventDefault(),this.__onMouseMove(h)},_onResize:function(){this.calcOffset()},_shouldRender:function(h){var g=this._activeObject;return!!g!=!!h||g&&h&&g!==h?!0:(g&&g.isEditing,!1)},__onMouseUp:function(h){var g,d=this._currentTransform,A=this._groupSelector,y=!1,m=!A||A.left===0&&A.top===0;if(this._cacheTransformEventData(h),g=this._target,this._handleEvent(h,"up:before"),a(h,s)){this.fireRightClick&&this._handleEvent(h,"up",s,m);return}if(a(h,c)){this.fireMiddleClick&&this._handleEvent(h,"up",c,m),this._resetTransformEventData();return}if(this.isDrawingMode&&this._isCurrentlyDrawing){this._onMouseUpInDrawingMode(h);return}if(this._isMainEvent(h)){if(d&&(this._finalizeCurrentTransform(h),y=d.actionPerformed),!m){var _=g===this._activeObject;this._maybeGroupObjects(h),y||(y=this._shouldRender(g)||!_&&g===this._activeObject)}var w,S;if(g){if(w=g._findTargetCorner(this.getPointer(h,!0),t.util.isTouchEvent(h)),g.selectable&&g!==this._activeObject&&g.activeOn==="up")this.setActiveObject(g,h),y=!0;else{var O=g.controls[w],P=O&&O.getMouseUpHandler(h,g,O);P&&(S=this.getPointer(h),P(h,d,S.x,S.y))}g.isMoving=!1}if(d&&(d.target!==g||d.corner!==w)){var N=d.target&&d.target.controls[d.corner],q=N&&N.getMouseUpHandler(h,g,O);S=S||this.getPointer(h),q&&q(h,d,S.x,S.y)}this._setCursorFromEvent(h,g),this._handleEvent(h,"up",i,m),this._groupSelector=null,this._currentTransform=null,g&&(g.__corner=0),y?this.requestRenderAll():m||this.renderTop()}},_simpleEventHandler:function(h,g){var d=this.findTarget(g),A=this.targets,y={e:g,target:d,subTargets:A};if(this.fire(h,y),d&&d.fire(h,y),!A)return d;for(var m=0;m<A.length;m++)A[m].fire(h,y);return d},_handleEvent:function(h,g,d,A){var y=this._target,m=this.targets||[],_={e:h,target:y,subTargets:m,button:d||i,isClick:A||!1,pointer:this._pointer,absolutePointer:this._absolutePointer,transform:this._currentTransform};g==="up"&&(_.currentTarget=this.findTarget(h),_.currentSubTargets=this.targets),this.fire("mouse:"+g,_),y&&y.fire("mouse"+g,_);for(var w=0;w<m.length;w++)m[w].fire("mouse"+g,_)},_finalizeCurrentTransform:function(h){var g=this._currentTransform,d=g.target,A={e:h,target:d,transform:g,action:g.action};d._scaling&&(d._scaling=!1),d.setCoords(),(g.actionPerformed||this.stateful&&d.hasStateChanged())&&this._fire("modified",A)},_onMouseDownInDrawingMode:function(h){this._isCurrentlyDrawing=!0,this.getActiveObject()&&this.discardActiveObject(h).requestRenderAll();var g=this.getPointer(h);this.freeDrawingBrush.onMouseDown(g,{e:h,pointer:g}),this._handleEvent(h,"down")},_onMouseMoveInDrawingMode:function(h){if(this._isCurrentlyDrawing){var g=this.getPointer(h);this.freeDrawingBrush.onMouseMove(g,{e:h,pointer:g})}this.setCursor(this.freeDrawingCursor),this._handleEvent(h,"move")},_onMouseUpInDrawingMode:function(h){var g=this.getPointer(h);this._isCurrentlyDrawing=this.freeDrawingBrush.onMouseUp({e:h,pointer:g}),this._handleEvent(h,"up")},__onMouseDown:function(h){this._cacheTransformEventData(h),this._handleEvent(h,"down:before");var g=this._target;if(a(h,s)){this.fireRightClick&&this._handleEvent(h,"down",s);return}if(a(h,c)){this.fireMiddleClick&&this._handleEvent(h,"down",c);return}if(this.isDrawingMode){this._onMouseDownInDrawingMode(h);return}if(this._isMainEvent(h)&&!this._currentTransform){var d=this._pointer;this._previousPointer=d;var A=this._shouldRender(g),y=this._shouldGroup(h,g);if(this._shouldClearSelection(h,g)?this.discardActiveObject(h):y&&(this._handleGrouping(h,g),g=this._activeObject),this.selection&&(!g||!g.selectable&&!g.isEditing&&g!==this._activeObject)&&(this._groupSelector={ex:this._absolutePointer.x,ey:this._absolutePointer.y,top:0,left:0}),g){var m=g===this._activeObject;g.selectable&&g.activeOn==="down"&&this.setActiveObject(g,h);var _=g._findTargetCorner(this.getPointer(h,!0),t.util.isTouchEvent(h));if(g.__corner=_,g===this._activeObject&&(_||!y)){this._setupCurrentTransform(h,g,m);var w=g.controls[_],d=this.getPointer(h),S=w&&w.getMouseDownHandler(h,g,w);S&&S(h,this._currentTransform,d.x,d.y)}}this._handleEvent(h,"down"),(A||y)&&this.requestRenderAll()}},_resetTransformEventData:function(){this._target=null,this._pointer=null,this._absolutePointer=null},_cacheTransformEventData:function(h){this._resetTransformEventData(),this._pointer=this.getPointer(h,!0),this._absolutePointer=this.restorePointerVpt(this._pointer),this._target=this._currentTransform?this._currentTransform.target:this.findTarget(h)||null},_beforeTransform:function(h){var g=this._currentTransform;this.stateful&&g.target.saveState(),this.fire("before:transform",{e:h,transform:g})},__onMouseMove:function(h){this._handleEvent(h,"move:before"),this._cacheTransformEventData(h);var g,d;if(this.isDrawingMode){this._onMouseMoveInDrawingMode(h);return}if(this._isMainEvent(h)){var A=this._groupSelector;A?(d=this._absolutePointer,A.left=d.x-A.ex,A.top=d.y-A.ey,this.renderTop()):this._currentTransform?this._transformObject(h):(g=this.findTarget(h)||null,this._setCursorFromEvent(h,g),this._fireOverOutEvents(g,h)),this._handleEvent(h,"move"),this._resetTransformEventData()}},_fireOverOutEvents:function(h,g){var d=this._hoveredTarget,A=this._hoveredTargets,y=this.targets,m=Math.max(A.length,y.length);this.fireSyntheticInOutEvents(h,g,{oldTarget:d,evtOut:"mouseout",canvasEvtOut:"mouse:out",evtIn:"mouseover",canvasEvtIn:"mouse:over"});for(var _=0;_<m;_++)this.fireSyntheticInOutEvents(y[_],g,{oldTarget:A[_],evtOut:"mouseout",evtIn:"mouseover"});this._hoveredTarget=h,this._hoveredTargets=this.targets.concat()},_fireEnterLeaveEvents:function(h,g){var d=this._draggedoverTarget,A=this._hoveredTargets,y=this.targets,m=Math.max(A.length,y.length);this.fireSyntheticInOutEvents(h,g,{oldTarget:d,evtOut:"dragleave",evtIn:"dragenter"});for(var _=0;_<m;_++)this.fireSyntheticInOutEvents(y[_],g,{oldTarget:A[_],evtOut:"dragleave",evtIn:"dragenter"});this._draggedoverTarget=h},fireSyntheticInOutEvents:function(h,g,d){var A,y,m=d.oldTarget,_,w,S=m!==h,O=d.canvasEvtIn,P=d.canvasEvtOut;S&&(A={e:g,target:h,previousTarget:m},y={e:g,target:m,nextTarget:h}),w=h&&S,_=m&&S,_&&(P&&this.fire(P,y),m.fire(d.evtOut,y)),w&&(O&&this.fire(O,A),h.fire(d.evtIn,A))},__onMouseWheel:function(h){this._cacheTransformEventData(h),this._handleEvent(h,"wheel"),this._resetTransformEventData()},_transformObject:function(h){var g=this.getPointer(h),d=this._currentTransform;d.reset=!1,d.shiftKey=h.shiftKey,d.altKey=h[this.centeredKey],this._performTransformAction(h,d,g),d.actionPerformed&&this.requestRenderAll()},_performTransformAction:function(h,g,d){var A=d.x,y=d.y,m=g.action,_=!1,w=g.actionHandler;w&&(_=w(h,g,A,y)),m==="drag"&&_&&(g.target.isMoving=!0,this.setCursor(g.target.moveCursor||this.moveCursor)),g.actionPerformed=g.actionPerformed||_},_fire:t.controlsUtils.fireEvent,_setCursorFromEvent:function(h,g){if(!g)return this.setCursor(this.defaultCursor),!1;var d=g.hoverCursor||this.hoverCursor,A=this._activeObject&&this._activeObject.type==="activeSelection"?this._activeObject:null,y=(!A||!A.contains(g))&&g._findTargetCorner(this.getPointer(h,!0));y?this.setCursor(this.getCornerCursor(y,g,h)):(g.subTargetCheck&&this.targets.concat().reverse().map(function(m){d=m.hoverCursor||d}),this.setCursor(d))},getCornerCursor:function(h,g,d){var A=g.controls[h];return A.cursorStyleHandler(d,A,g)}})})(),(function(){var u=Math.min,o=Math.max;t.util.object.extend(t.Canvas.prototype,{_shouldGroup:function(s,c){var i=this._activeObject;return i&&this._isSelectionKeyPressed(s)&&c&&c.selectable&&this.selection&&(i!==c||i.type==="activeSelection")&&!c.onSelect({e:s})},_handleGrouping:function(s,c){var i=this._activeObject;i.__corner||c===i&&(c=this.findTarget(s,!0),!c||!c.selectable)||(i&&i.type==="activeSelection"?this._updateActiveSelection(c,s):this._createActiveSelection(c,s))},_updateActiveSelection:function(s,c){var i=this._activeObject,l=i._objects.slice(0);i.contains(s)?(i.removeWithUpdate(s),this._hoveredTarget=s,this._hoveredTargets=this.targets.concat(),i.size()===1&&this._setActiveObject(i.item(0),c)):(i.addWithUpdate(s),this._hoveredTarget=i,this._hoveredTargets=this.targets.concat()),this._fireSelectionEvents(l,c)},_createActiveSelection:function(s,c){var i=this.getActiveObjects(),l=this._createGroup(s);this._hoveredTarget=l,this._setActiveObject(l,c),this._fireSelectionEvents(i,c)},_createGroup:function(s){var c=this._objects,i=c.indexOf(this._activeObject)<c.indexOf(s),l=i?[this._activeObject,s]:[s,this._activeObject];return this._activeObject.isEditing&&this._activeObject.exitEditing(),new t.ActiveSelection(l,{canvas:this})},_groupSelectedObjects:function(s){var c=this._collectObjects(s),i;c.length===1?this.setActiveObject(c[0],s):c.length>1&&(i=new t.ActiveSelection(c.reverse(),{canvas:this}),this.setActiveObject(i,s))},_collectObjects:function(s){for(var c=[],i,l=this._groupSelector.ex,a=this._groupSelector.ey,h=l+this._groupSelector.left,g=a+this._groupSelector.top,d=new t.Point(u(l,h),u(a,g)),A=new t.Point(o(l,h),o(a,g)),y=!this.selectionFullyContained,m=l===h&&a===g,_=this._objects.length;_--&&(i=this._objects[_],!(!(!i||!i.selectable||!i.visible)&&(y&&i.intersectsWithRect(d,A,!0)||i.isContainedWithinRect(d,A,!0)||y&&i.containsPoint(d,null,!0)||y&&i.containsPoint(A,null,!0))&&(c.push(i),m))););return c.length>1&&(c=c.filter(function(w){return!w.onSelect({e:s})})),c},_maybeGroupObjects:function(s){this.selection&&this._groupSelector&&this._groupSelectedObjects(s),this.setCursor(this.defaultCursor),this._groupSelector=null}})})(),(function(){t.util.object.extend(t.StaticCanvas.prototype,{toDataURL:function(u){u||(u={});var o=u.format||"png",s=u.quality||1,c=(u.multiplier||1)*(u.enableRetinaScaling?this.getRetinaScaling():1),i=this.toCanvasElement(c,u);return t.util.toDataURL(i,o,s)},toCanvasElement:function(u,o){u=u||1,o=o||{};var s=(o.width||this.width)*u,c=(o.height||this.height)*u,i=this.getZoom(),l=this.width,a=this.height,h=i*u,g=this.viewportTransform,d=(g[4]-(o.left||0))*u,A=(g[5]-(o.top||0))*u,y=this.interactive,m=[h,0,0,h,d,A],_=this.enableRetinaScaling,w=t.util.createCanvasElement(),S=this.contextTop;return w.width=s,w.height=c,this.contextTop=null,this.enableRetinaScaling=!1,this.interactive=!1,this.viewportTransform=m,this.width=s,this.height=c,this.calcViewportBoundaries(),this.renderCanvas(w.getContext("2d"),this._objects),this.viewportTransform=g,this.width=l,this.height=a,this.calcViewportBoundaries(),this.interactive=y,this.enableRetinaScaling=_,this.contextTop=S,w}})})(),t.util.object.extend(t.StaticCanvas.prototype,{loadFromJSON:function(u,o,s){if(u){var c=typeof u=="string"?JSON.parse(u):t.util.object.clone(u),i=this,l=c.clipPath,a=this.renderOnAddRemove;return this.renderOnAddRemove=!1,delete c.clipPath,this._enlivenObjects(c.objects,function(h){i.clear(),i._setBgOverlay(c,function(){l?i._enlivenObjects([l],function(g){i.clipPath=g[0],i.__setupCanvas.call(i,c,h,a,o)}):i.__setupCanvas.call(i,c,h,a,o)})},s),this}},__setupCanvas:function(u,o,s,c){var i=this;o.forEach(function(l,a){i.insertAt(l,a)}),this.renderOnAddRemove=s,delete u.objects,delete u.backgroundImage,delete u.overlayImage,delete u.background,delete u.overlay,this._setOptions(u),this.renderAll(),c&&c()},_setBgOverlay:function(u,o){var s={backgroundColor:!1,overlayColor:!1,backgroundImage:!1,overlayImage:!1};if(!u.backgroundImage&&!u.overlayImage&&!u.background&&!u.overlay){o&&o();return}var c=function(){s.backgroundImage&&s.overlayImage&&s.backgroundColor&&s.overlayColor&&o&&o()};this.__setBgOverlay("backgroundImage",u.backgroundImage,s,c),this.__setBgOverlay("overlayImage",u.overlayImage,s,c),this.__setBgOverlay("backgroundColor",u.background,s,c),this.__setBgOverlay("overlayColor",u.overlay,s,c)},__setBgOverlay:function(u,o,s,c){var i=this;if(!o){s[u]=!0,c&&c();return}u==="backgroundImage"||u==="overlayImage"?t.util.enlivenObjects([o],function(l){i[u]=l[0],s[u]=!0,c&&c()}):this["set"+t.util.string.capitalize(u,!0)](o,function(){s[u]=!0,c&&c()})},_enlivenObjects:function(u,o,s){if(!u||u.length===0){o&&o([]);return}t.util.enlivenObjects(u,function(c){o&&o(c)},null,s)},_toDataURL:function(u,o){this.clone(function(s){o(s.toDataURL(u))})},_toDataURLWithMultiplier:function(u,o,s){this.clone(function(c){s(c.toDataURLWithMultiplier(u,o))})},clone:function(u,o){var s=JSON.stringify(this.toJSON(o));this.cloneWithoutData(function(c){c.loadFromJSON(s,function(){u&&u(c)})})},cloneWithoutData:function(u){var o=t.util.createCanvasElement();o.width=this.width,o.height=this.height;var s=new t.Canvas(o);this.backgroundImage?(s.setBackgroundImage(this.backgroundImage.src,function(){s.renderAll(),u&&u(s)}),s.backgroundImageOpacity=this.backgroundImageOpacity,s.backgroundImageStretch=this.backgroundImageStretch):u&&u(s)}}),(function(u){var o=u.fabric||(u.fabric={}),s=o.util.object.extend,c=o.util.object.clone,i=o.util.toFixed,l=o.util.string.capitalize,a=o.util.degreesToRadians,h=!o.isLikelyNode,g=2;o.Object||(o.Object=o.util.createClass(o.CommonMethods,{type:"object",originX:"left",originY:"top",top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:!1,flipY:!1,opacity:1,angle:0,skewX:0,skewY:0,cornerSize:13,touchCornerSize:24,transparentCorners:!0,hoverCursor:null,moveCursor:null,padding:0,borderColor:"rgb(178,204,255)",borderDashArray:null,cornerColor:"rgb(178,204,255)",cornerStrokeColor:null,cornerStyle:"rect",cornerDashArray:null,centeredScaling:!1,centeredRotation:!0,fill:"rgb(0,0,0)",fillRule:"nonzero",globalCompositeOperation:"source-over",backgroundColor:"",selectionBackgroundColor:"",stroke:null,strokeWidth:1,strokeDashArray:null,strokeDashOffset:0,strokeLineCap:"butt",strokeLineJoin:"miter",strokeMiterLimit:4,shadow:null,borderOpacityWhenMoving:.4,borderScaleFactor:1,minScaleLimit:0,selectable:!0,evented:!0,visible:!0,hasControls:!0,hasBorders:!0,perPixelTargetFind:!1,includeDefaultValues:!0,lockMovementX:!1,lockMovementY:!1,lockRotation:!1,lockScalingX:!1,lockScalingY:!1,lockSkewingX:!1,lockSkewingY:!1,lockScalingFlip:!1,excludeFromExport:!1,objectCaching:h,statefullCache:!1,noScaleCache:!0,strokeUniform:!1,dirty:!0,__corner:0,paintFirst:"fill",activeOn:"down",stateProperties:"top left width height scaleX scaleY flipX flipY originX originY transformMatrix stroke strokeWidth strokeDashArray strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit angle opacity fill globalCompositeOperation shadow visible backgroundColor skewX skewY fillRule paintFirst clipPath strokeUniform".split(" "),cacheProperties:"fill stroke strokeWidth strokeDashArray width height paintFirst strokeUniform strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit backgroundColor clipPath".split(" "),colorProperties:"fill stroke backgroundColor".split(" "),clipPath:void 0,inverted:!1,absolutePositioned:!1,initialize:function(d){d&&this.setOptions(d)},_createCacheCanvas:function(){this._cacheProperties={},this._cacheCanvas=o.util.createCanvasElement(),this._cacheContext=this._cacheCanvas.getContext("2d"),this._updateCacheCanvas(),this.dirty=!0},_limitCacheSize:function(d){var A=o.perfLimitSizeTotal,y=d.width,m=d.height,_=o.maxCacheSideLimit,w=o.minCacheSideLimit;if(y<=_&&m<=_&&y*m<=A)return y<w&&(d.width=w),m<w&&(d.height=w),d;var S=y/m,O=o.util.limitDimsByArea(S,A),P=o.util.capValue,N=P(w,O.x,_),q=P(w,O.y,_);return y>N&&(d.zoomX/=y/N,d.width=N,d.capped=!0),m>q&&(d.zoomY/=m/q,d.height=q,d.capped=!0),d},_getCacheCanvasDimensions:function(){var d=this.getTotalObjectScaling(),A=this._getTransformedDimensions(0,0),y=A.x*d.scaleX/this.scaleX,m=A.y*d.scaleY/this.scaleY;return{width:y+g,height:m+g,zoomX:d.scaleX,zoomY:d.scaleY,x:y,y:m}},_updateCacheCanvas:function(){var d=this.canvas;if(this.noScaleCache&&d&&d._currentTransform){var A=d._currentTransform.target,y=d._currentTransform.action;if(this===A&&y.slice&&y.slice(0,5)==="scale")return!1}var m=this._cacheCanvas,_=this._limitCacheSize(this._getCacheCanvasDimensions()),w=o.minCacheSideLimit,S=_.width,O=_.height,P,N,q=_.zoomX,Z=_.zoomY,K=S!==this.cacheWidth||O!==this.cacheHeight,rt=this.zoomX!==q||this.zoomY!==Z,$=K||rt,U=0,j=0,B=!1;if(K){var x=this._cacheCanvas.width,b=this._cacheCanvas.height,C=S>x||O>b,E=(S<x*.9||O<b*.9)&&x>w&&b>w;B=C||E,C&&!_.capped&&(S>w||O>w)&&(U=S*.1,j=O*.1)}return this instanceof o.Text&&this.path&&($=!0,B=!0,U+=this.getHeightOfLine(0)*this.zoomX,j+=this.getHeightOfLine(0)*this.zoomY),$?(B?(m.width=Math.ceil(S+U),m.height=Math.ceil(O+j)):(this._cacheContext.setTransform(1,0,0,1,0,0),this._cacheContext.clearRect(0,0,m.width,m.height)),P=_.x/2,N=_.y/2,this.cacheTranslationX=Math.round(m.width/2-P)+P,this.cacheTranslationY=Math.round(m.height/2-N)+N,this.cacheWidth=S,this.cacheHeight=O,this._cacheContext.translate(this.cacheTranslationX,this.cacheTranslationY),this._cacheContext.scale(q,Z),this.zoomX=q,this.zoomY=Z,!0):!1},setOptions:function(d){this._setOptions(d),this._initGradient(d.fill,"fill"),this._initGradient(d.stroke,"stroke"),this._initPattern(d.fill,"fill"),this._initPattern(d.stroke,"stroke")},transform:function(d){var A=this.group&&!this.group._transformDone||this.group&&this.canvas&&d===this.canvas.contextTop,y=this.calcTransformMatrix(!A);d.transform(y[0],y[1],y[2],y[3],y[4],y[5])},toObject:function(d){var A=o.Object.NUM_FRACTION_DIGITS,y={type:this.type,version:o.version,originX:this.originX,originY:this.originY,left:i(this.left,A),top:i(this.top,A),width:i(this.width,A),height:i(this.height,A),fill:this.fill&&this.fill.toObject?this.fill.toObject():this.fill,stroke:this.stroke&&this.stroke.toObject?this.stroke.toObject():this.stroke,strokeWidth:i(this.strokeWidth,A),strokeDashArray:this.strokeDashArray?this.strokeDashArray.concat():this.strokeDashArray,strokeLineCap:this.strokeLineCap,strokeDashOffset:this.strokeDashOffset,strokeLineJoin:this.strokeLineJoin,strokeUniform:this.strokeUniform,strokeMiterLimit:i(this.strokeMiterLimit,A),scaleX:i(this.scaleX,A),scaleY:i(this.scaleY,A),angle:i(this.angle,A),flipX:this.flipX,flipY:this.flipY,opacity:i(this.opacity,A),shadow:this.shadow&&this.shadow.toObject?this.shadow.toObject():this.shadow,visible:this.visible,backgroundColor:this.backgroundColor,fillRule:this.fillRule,paintFirst:this.paintFirst,globalCompositeOperation:this.globalCompositeOperation,skewX:i(this.skewX,A),skewY:i(this.skewY,A)};return this.clipPath&&!this.clipPath.excludeFromExport&&(y.clipPath=this.clipPath.toObject(d),y.clipPath.inverted=this.clipPath.inverted,y.clipPath.absolutePositioned=this.clipPath.absolutePositioned),o.util.populateWithProperties(this,y,d),this.includeDefaultValues||(y=this._removeDefaultValues(y)),y},toDatalessObject:function(d){return this.toObject(d)},_removeDefaultValues:function(d){var A=o.util.getKlass(d.type).prototype,y=A.stateProperties;return y.forEach(function(m){m==="left"||m==="top"||(d[m]===A[m]&&delete d[m],Array.isArray(d[m])&&Array.isArray(A[m])&&d[m].length===0&&A[m].length===0&&delete d[m])}),d},toString:function(){return"#<fabric."+l(this.type)+">"},getObjectScaling:function(){if(!this.group)return{scaleX:this.scaleX,scaleY:this.scaleY};var d=o.util.qrDecompose(this.calcTransformMatrix());return{scaleX:Math.abs(d.scaleX),scaleY:Math.abs(d.scaleY)}},getTotalObjectScaling:function(){var d=this.getObjectScaling(),A=d.scaleX,y=d.scaleY;if(this.canvas){var m=this.canvas.getZoom(),_=this.canvas.getRetinaScaling();A*=m*_,y*=m*_}return{scaleX:A,scaleY:y}},getObjectOpacity:function(){var d=this.opacity;return this.group&&(d*=this.group.getObjectOpacity()),d},_set:function(d,A){var y=d==="scaleX"||d==="scaleY",m=this[d]!==A,_=!1;return y&&(A=this._constrainScale(A)),d==="scaleX"&&A<0?(this.flipX=!this.flipX,A*=-1):d==="scaleY"&&A<0?(this.flipY=!this.flipY,A*=-1):d==="shadow"&&A&&!(A instanceof o.Shadow)?A=new o.Shadow(A):d==="dirty"&&this.group&&this.group.set("dirty",A),this[d]=A,m&&(_=this.group&&this.group.isOnACache(),this.cacheProperties.indexOf(d)>-1?(this.dirty=!0,_&&this.group.set("dirty",!0)):_&&this.stateProperties.indexOf(d)>-1&&this.group.set("dirty",!0)),this},setOnGroup:function(){},getViewportTransform:function(){return this.canvas&&this.canvas.viewportTransform?this.canvas.viewportTransform:o.iMatrix.concat()},isNotVisible:function(){return this.opacity===0||!this.width&&!this.height&&this.strokeWidth===0||!this.visible},render:function(d){this.isNotVisible()||this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(d.save(),this._setupCompositeOperation(d),this.drawSelectionBackground(d),this.transform(d),this._setOpacity(d),this._setShadow(d,this),this.shouldCache()?(this.renderCache(),this.drawCacheOnCanvas(d)):(this._removeCacheCanvas(),this.dirty=!1,this.drawObject(d),this.objectCaching&&this.statefullCache&&this.saveState({propertySet:"cacheProperties"})),d.restore())},renderCache:function(d){d=d||{},(!this._cacheCanvas||!this._cacheContext)&&this._createCacheCanvas(),this.isCacheDirty()&&(this.statefullCache&&this.saveState({propertySet:"cacheProperties"}),this.drawObject(this._cacheContext,d.forClipping),this.dirty=!1)},_removeCacheCanvas:function(){this._cacheCanvas=null,this._cacheContext=null,this.cacheWidth=0,this.cacheHeight=0},hasStroke:function(){return this.stroke&&this.stroke!=="transparent"&&this.strokeWidth!==0},hasFill:function(){return this.fill&&this.fill!=="transparent"},needsItsOwnCache:function(){return!!(this.paintFirst==="stroke"&&this.hasFill()&&this.hasStroke()&&typeof this.shadow=="object"||this.clipPath)},shouldCache:function(){return this.ownCaching=this.needsItsOwnCache()||this.objectCaching&&(!this.group||!this.group.isOnACache()),this.ownCaching},willDrawShadow:function(){return!!this.shadow&&(this.shadow.offsetX!==0||this.shadow.offsetY!==0)},drawClipPathOnCache:function(d,A){if(d.save(),A.inverted?d.globalCompositeOperation="destination-out":d.globalCompositeOperation="destination-in",A.absolutePositioned){var y=o.util.invertTransform(this.calcTransformMatrix());d.transform(y[0],y[1],y[2],y[3],y[4],y[5])}A.transform(d),d.scale(1/A.zoomX,1/A.zoomY),d.drawImage(A._cacheCanvas,-A.cacheTranslationX,-A.cacheTranslationY),d.restore()},drawObject:function(d,A){var y=this.fill,m=this.stroke;A?(this.fill="black",this.stroke="",this._setClippingProperties(d)):this._renderBackground(d),this._render(d),this._drawClipPath(d,this.clipPath),this.fill=y,this.stroke=m},_drawClipPath:function(d,A){A&&(A.canvas=this.canvas,A.shouldCache(),A._transformDone=!0,A.renderCache({forClipping:!0}),this.drawClipPathOnCache(d,A))},drawCacheOnCanvas:function(d){d.scale(1/this.zoomX,1/this.zoomY),d.drawImage(this._cacheCanvas,-this.cacheTranslationX,-this.cacheTranslationY)},isCacheDirty:function(d){if(this.isNotVisible())return!1;if(this._cacheCanvas&&this._cacheContext&&!d&&this._updateCacheCanvas())return!0;if(this.dirty||this.clipPath&&this.clipPath.absolutePositioned||this.statefullCache&&this.hasStateChanged("cacheProperties")){if(this._cacheCanvas&&this._cacheContext&&!d){var A=this.cacheWidth/this.zoomX,y=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-A/2,-y/2,A,y)}return!0}return!1},_renderBackground:function(d){if(this.backgroundColor){var A=this._getNonTransformedDimensions();d.fillStyle=this.backgroundColor,d.fillRect(-A.x/2,-A.y/2,A.x,A.y),this._removeShadow(d)}},_setOpacity:function(d){this.group&&!this.group._transformDone?d.globalAlpha=this.getObjectOpacity():d.globalAlpha*=this.opacity},_setStrokeStyles:function(d,A){var y=A.stroke;y&&(d.lineWidth=A.strokeWidth,d.lineCap=A.strokeLineCap,d.lineDashOffset=A.strokeDashOffset,d.lineJoin=A.strokeLineJoin,d.miterLimit=A.strokeMiterLimit,y.toLive?y.gradientUnits==="percentage"||y.gradientTransform||y.patternTransform?this._applyPatternForTransformedGradient(d,y):(d.strokeStyle=y.toLive(d,this),this._applyPatternGradientTransform(d,y)):d.strokeStyle=A.stroke)},_setFillStyles:function(d,A){var y=A.fill;y&&(y.toLive?(d.fillStyle=y.toLive(d,this),this._applyPatternGradientTransform(d,A.fill)):d.fillStyle=y)},_setClippingProperties:function(d){d.globalAlpha=1,d.strokeStyle="transparent",d.fillStyle="#000000"},_setLineDash:function(d,A){!A||A.length===0||(1&A.length&&A.push.apply(A,A),d.setLineDash(A))},_renderControls:function(d,A){var y=this.getViewportTransform(),m=this.calcTransformMatrix(),_,w,S;A=A||{},w=typeof A.hasBorders<"u"?A.hasBorders:this.hasBorders,S=typeof A.hasControls<"u"?A.hasControls:this.hasControls,m=o.util.multiplyTransformMatrices(y,m),_=o.util.qrDecompose(m),d.save(),d.translate(_.translateX,_.translateY),d.lineWidth=1*this.borderScaleFactor,this.group||(d.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1),this.flipX&&(_.angle-=180),d.rotate(a(this.group?_.angle:this.angle)),A.forActiveSelection||this.group?w&&this.drawBordersInGroup(d,_,A):w&&this.drawBorders(d,A),S&&this.drawControls(d,A),d.restore()},_setShadow:function(d){if(this.shadow){var A=this.shadow,y=this.canvas,m,_=y&&y.viewportTransform[0]||1,w=y&&y.viewportTransform[3]||1;A.nonScaling?m={scaleX:1,scaleY:1}:m=this.getObjectScaling(),y&&y._isRetinaScaling()&&(_*=o.devicePixelRatio,w*=o.devicePixelRatio),d.shadowColor=A.color,d.shadowBlur=A.blur*o.browserShadowBlurConstant*(_+w)*(m.scaleX+m.scaleY)/4,d.shadowOffsetX=A.offsetX*_*m.scaleX,d.shadowOffsetY=A.offsetY*w*m.scaleY}},_removeShadow:function(d){this.shadow&&(d.shadowColor="",d.shadowBlur=d.shadowOffsetX=d.shadowOffsetY=0)},_applyPatternGradientTransform:function(d,A){if(!A||!A.toLive)return{offsetX:0,offsetY:0};var y=A.gradientTransform||A.patternTransform,m=-this.width/2+A.offsetX||0,_=-this.height/2+A.offsetY||0;return A.gradientUnits==="percentage"?d.transform(this.width,0,0,this.height,m,_):d.transform(1,0,0,1,m,_),y&&d.transform(y[0],y[1],y[2],y[3],y[4],y[5]),{offsetX:m,offsetY:_}},_renderPaintInOrder:function(d){this.paintFirst==="stroke"?(this._renderStroke(d),this._renderFill(d)):(this._renderFill(d),this._renderStroke(d))},_render:function(){},_renderFill:function(d){this.fill&&(d.save(),this._setFillStyles(d,this),this.fillRule==="evenodd"?d.fill("evenodd"):d.fill(),d.restore())},_renderStroke:function(d){if(!(!this.stroke||this.strokeWidth===0)){if(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(d),d.save(),this.strokeUniform&&this.group){var A=this.getObjectScaling();d.scale(1/A.scaleX,1/A.scaleY)}else this.strokeUniform&&d.scale(1/this.scaleX,1/this.scaleY);this._setLineDash(d,this.strokeDashArray),this._setStrokeStyles(d,this),d.stroke(),d.restore()}},_applyPatternForTransformedGradient:function(d,A){var y=this._limitCacheSize(this._getCacheCanvasDimensions()),m=o.util.createCanvasElement(),_,w=this.canvas.getRetinaScaling(),S=y.x/this.scaleX/w,O=y.y/this.scaleY/w;m.width=S,m.height=O,_=m.getContext("2d"),_.beginPath(),_.moveTo(0,0),_.lineTo(S,0),_.lineTo(S,O),_.lineTo(0,O),_.closePath(),_.translate(S/2,O/2),_.scale(y.zoomX/this.scaleX/w,y.zoomY/this.scaleY/w),this._applyPatternGradientTransform(_,A),_.fillStyle=A.toLive(d),_.fill(),d.translate(-this.width/2-this.strokeWidth/2,-this.height/2-this.strokeWidth/2),d.scale(w*this.scaleX/y.zoomX,w*this.scaleY/y.zoomY),d.strokeStyle=_.createPattern(m,"no-repeat")},_findCenterFromElement:function(){return{x:this.left+this.width/2,y:this.top+this.height/2}},_assignTransformMatrixProps:function(){if(this.transformMatrix){var d=o.util.qrDecompose(this.transformMatrix);this.flipX=!1,this.flipY=!1,this.set("scaleX",d.scaleX),this.set("scaleY",d.scaleY),this.angle=d.angle,this.skewX=d.skewX,this.skewY=0}},_removeTransformMatrix:function(d){var A=this._findCenterFromElement();this.transformMatrix&&(this._assignTransformMatrixProps(),A=o.util.transformPoint(A,this.transformMatrix)),this.transformMatrix=null,d&&(this.scaleX*=d.scaleX,this.scaleY*=d.scaleY,this.cropX=d.cropX,this.cropY=d.cropY,A.x+=d.offsetLeft,A.y+=d.offsetTop,this.width=d.width,this.height=d.height),this.setPositionByOrigin(A,"center","center")},clone:function(d,A){var y=this.toObject(A);this.constructor.fromObject?this.constructor.fromObject(y,d):o.Object._fromObject("Object",y,d)},cloneAsImage:function(d,A){var y=this.toCanvasElement(A);return d&&d(new o.Image(y)),this},toCanvasElement:function(d){d||(d={});var A=o.util,y=A.saveObjectTransform(this),m=this.group,_=this.shadow,w=Math.abs,S=(d.multiplier||1)*(d.enableRetinaScaling?o.devicePixelRatio:1);delete this.group,d.withoutTransform&&A.resetObjectTransform(this),d.withoutShadow&&(this.shadow=null);var O=o.util.createCanvasElement(),P=this.getBoundingRect(!0,!0),N=this.shadow,q,Z={x:0,y:0},K,rt,$;N&&(K=N.blur,N.nonScaling?q={scaleX:1,scaleY:1}:q=this.getObjectScaling(),Z.x=2*Math.round(w(N.offsetX)+K)*w(q.scaleX),Z.y=2*Math.round(w(N.offsetY)+K)*w(q.scaleY)),rt=P.width+Z.x,$=P.height+Z.y,O.width=Math.ceil(rt),O.height=Math.ceil($);var U=new o.StaticCanvas(O,{enableRetinaScaling:!1,renderOnAddRemove:!1,skipOffscreen:!1});d.format==="jpeg"&&(U.backgroundColor="#fff"),this.setPositionByOrigin(new o.Point(U.width/2,U.height/2),"center","center");var j=this.canvas;U.add(this);var B=U.toCanvasElement(S||1,d);return this.shadow=_,this.set("canvas",j),m&&(this.group=m),this.set(y).setCoords(),U._objects=[],U.dispose(),U=null,B},toDataURL:function(d){return d||(d={}),o.util.toDataURL(this.toCanvasElement(d),d.format||"png",d.quality||1)},isType:function(d){return arguments.length>1?Array.from(arguments).includes(this.type):this.type===d},complexity:function(){return 1},toJSON:function(d){return this.toObject(d)},rotate:function(d){var A=(this.originX!=="center"||this.originY!=="center")&&this.centeredRotation;return A&&this._setOriginToCenter(),this.set("angle",d),A&&this._resetOrigin(),this},centerH:function(){return this.canvas&&this.canvas.centerObjectH(this),this},viewportCenterH:function(){return this.canvas&&this.canvas.viewportCenterObjectH(this),this},centerV:function(){return this.canvas&&this.canvas.centerObjectV(this),this},viewportCenterV:function(){return this.canvas&&this.canvas.viewportCenterObjectV(this),this},center:function(){return this.canvas&&this.canvas.centerObject(this),this},viewportCenter:function(){return this.canvas&&this.canvas.viewportCenterObject(this),this},getLocalPointer:function(d,A){A=A||this.canvas.getPointer(d);var y=new o.Point(A.x,A.y),m=this._getLeftTopCoords();return this.angle&&(y=o.util.rotatePoint(y,m,a(-this.angle))),{x:y.x-m.x,y:y.y-m.y}},_setupCompositeOperation:function(d){this.globalCompositeOperation&&(d.globalCompositeOperation=this.globalCompositeOperation)},dispose:function(){o.runningAnimations&&o.runningAnimations.cancelByTarget(this)}}),o.util.createAccessors&&o.util.createAccessors(o.Object),s(o.Object.prototype,o.Observable),o.Object.NUM_FRACTION_DIGITS=2,o.Object.ENLIVEN_PROPS=["clipPath"],o.Object._fromObject=function(d,A,y,m){var _=o[d];A=c(A,!0),o.util.enlivenPatterns([A.fill,A.stroke],function(w){typeof w[0]<"u"&&(A.fill=w[0]),typeof w[1]<"u"&&(A.stroke=w[1]),o.util.enlivenObjectEnlivables(A,A,function(){var S=m?new _(A[m],A):new _(A);y&&y(S)})})},o.Object.__uid=0)})(e),(function(){var u=t.util.degreesToRadians,o={left:-.5,center:0,right:.5},s={top:-.5,center:0,bottom:.5};t.util.object.extend(t.Object.prototype,{translateToGivenOrigin:function(c,i,l,a,h){var g=c.x,d=c.y,A,y,m;return typeof i=="string"?i=o[i]:i-=.5,typeof a=="string"?a=o[a]:a-=.5,A=a-i,typeof l=="string"?l=s[l]:l-=.5,typeof h=="string"?h=s[h]:h-=.5,y=h-l,(A||y)&&(m=this._getTransformedDimensions(),g=c.x+A*m.x,d=c.y+y*m.y),new t.Point(g,d)},translateToCenterPoint:function(c,i,l){var a=this.translateToGivenOrigin(c,i,l,"center","center");return this.angle?t.util.rotatePoint(a,c,u(this.angle)):a},translateToOriginPoint:function(c,i,l){var a=this.translateToGivenOrigin(c,"center","center",i,l);return this.angle?t.util.rotatePoint(a,c,u(this.angle)):a},getCenterPoint:function(){var c=new t.Point(this.left,this.top);return this.translateToCenterPoint(c,this.originX,this.originY)},getPointByOrigin:function(c,i){var l=this.getCenterPoint();return this.translateToOriginPoint(l,c,i)},toLocalPoint:function(c,i,l){var a=this.getCenterPoint(),h,g;return typeof i<"u"&&typeof l<"u"?h=this.translateToGivenOrigin(a,"center","center",i,l):h=new t.Point(this.left,this.top),g=new t.Point(c.x,c.y),this.angle&&(g=t.util.rotatePoint(g,a,-u(this.angle))),g.subtractEquals(h)},setPositionByOrigin:function(c,i,l){var a=this.translateToCenterPoint(c,i,l),h=this.translateToOriginPoint(a,this.originX,this.originY);this.set("left",h.x),this.set("top",h.y)},adjustPosition:function(c){var i=u(this.angle),l=this.getScaledWidth(),a=t.util.cos(i)*l,h=t.util.sin(i)*l,g,d;typeof this.originX=="string"?g=o[this.originX]:g=this.originX-.5,typeof c=="string"?d=o[c]:d=c-.5,this.left+=a*(d-g),this.top+=h*(d-g),this.setCoords(),this.originX=c},_setOriginToCenter:function(){this._originalOriginX=this.originX,this._originalOriginY=this.originY;var c=this.getCenterPoint();this.originX="center",this.originY="center",this.left=c.x,this.top=c.y},_resetOrigin:function(){var c=this.translateToOriginPoint(this.getCenterPoint(),this._originalOriginX,this._originalOriginY);this.originX=this._originalOriginX,this.originY=this._originalOriginY,this.left=c.x,this.top=c.y,this._originalOriginX=null,this._originalOriginY=null},_getLeftTopCoords:function(){return this.translateToOriginPoint(this.getCenterPoint(),"left","top")}})})(),(function(){function u(l){return[new t.Point(l.tl.x,l.tl.y),new t.Point(l.tr.x,l.tr.y),new t.Point(l.br.x,l.br.y),new t.Point(l.bl.x,l.bl.y)]}var o=t.util,s=o.degreesToRadians,c=o.multiplyTransformMatrices,i=o.transformPoint;o.object.extend(t.Object.prototype,{oCoords:null,aCoords:null,lineCoords:null,ownMatrixCache:null,matrixCache:null,controls:{},_getCoords:function(l,a){return a?l?this.calcACoords():this.calcLineCoords():((!this.aCoords||!this.lineCoords)&&this.setCoords(!0),l?this.aCoords:this.lineCoords)},getCoords:function(l,a){return u(this._getCoords(l,a))},intersectsWithRect:function(l,a,h,g){var d=this.getCoords(h,g),A=t.Intersection.intersectPolygonRectangle(d,l,a);return A.status==="Intersection"},intersectsWithObject:function(l,a,h){var g=t.Intersection.intersectPolygonPolygon(this.getCoords(a,h),l.getCoords(a,h));return g.status==="Intersection"||l.isContainedWithinObject(this,a,h)||this.isContainedWithinObject(l,a,h)},isContainedWithinObject:function(l,a,h){for(var g=this.getCoords(a,h),d=a?l.aCoords:l.lineCoords,A=0,y=l._getImageLines(d);A<4;A++)if(!l.containsPoint(g[A],y))return!1;return!0},isContainedWithinRect:function(l,a,h,g){var d=this.getBoundingRect(h,g);return d.left>=l.x&&d.left+d.width<=a.x&&d.top>=l.y&&d.top+d.height<=a.y},containsPoint:function(l,A,h,g){var d=this._getCoords(h,g),A=A||this._getImageLines(d),y=this._findCrossPoints(l,A);return y!==0&&y%2===1},isOnScreen:function(l){if(!this.canvas)return!1;var a=this.canvas.vptCoords.tl,h=this.canvas.vptCoords.br,g=this.getCoords(!0,l);return g.some(function(d){return d.x<=h.x&&d.x>=a.x&&d.y<=h.y&&d.y>=a.y})||this.intersectsWithRect(a,h,!0,l)?!0:this._containsCenterOfCanvas(a,h,l)},_containsCenterOfCanvas:function(l,a,h){var g={x:(l.x+a.x)/2,y:(l.y+a.y)/2};return!!this.containsPoint(g,null,!0,h)},isPartiallyOnScreen:function(l){if(!this.canvas)return!1;var a=this.canvas.vptCoords.tl,h=this.canvas.vptCoords.br;if(this.intersectsWithRect(a,h,!0,l))return!0;var g=this.getCoords(!0,l).every(function(d){return(d.x>=h.x||d.x<=a.x)&&(d.y>=h.y||d.y<=a.y)});return g&&this._containsCenterOfCanvas(a,h,l)},_getImageLines:function(l){var a={topline:{o:l.tl,d:l.tr},rightline:{o:l.tr,d:l.br},bottomline:{o:l.br,d:l.bl},leftline:{o:l.bl,d:l.tl}};return a},_findCrossPoints:function(l,a){var h,g,d,A,y,m=0,_;for(var w in a)if(_=a[w],!(_.o.y<l.y&&_.d.y<l.y)&&!(_.o.y>=l.y&&_.d.y>=l.y)&&(_.o.x===_.d.x&&_.o.x>=l.x?y=_.o.x:(h=0,g=(_.d.y-_.o.y)/(_.d.x-_.o.x),d=l.y-h*l.x,A=_.o.y-g*_.o.x,y=-(d-A)/(h-g)),y>=l.x&&(m+=1),m===2))break;return m},getBoundingRect:function(l,a){var h=this.getCoords(l,a);return o.makeBoundingBoxFromPoints(h)},getScaledWidth:function(){return this._getTransformedDimensions().x},getScaledHeight:function(){return this._getTransformedDimensions().y},_constrainScale:function(l){return Math.abs(l)<this.minScaleLimit?l<0?-this.minScaleLimit:this.minScaleLimit:l===0?1e-4:l},scale:function(l){return this._set("scaleX",l),this._set("scaleY",l),this.setCoords()},scaleToWidth:function(l,a){var h=this.getBoundingRect(a).width/this.getScaledWidth();return this.scale(l/this.width/h)},scaleToHeight:function(l,a){var h=this.getBoundingRect(a).height/this.getScaledHeight();return this.scale(l/this.height/h)},calcLineCoords:function(){var l=this.getViewportTransform(),a=this.padding,h=s(this.angle),g=o.cos(h),d=o.sin(h),A=g*a,y=d*a,m=A+y,_=A-y,w=this.calcACoords(),S={tl:i(w.tl,l),tr:i(w.tr,l),bl:i(w.bl,l),br:i(w.br,l)};return a&&(S.tl.x-=_,S.tl.y-=m,S.tr.x+=m,S.tr.y-=_,S.bl.x-=m,S.bl.y+=_,S.br.x+=_,S.br.y+=m),S},calcOCoords:function(){var l=this._calcRotateMatrix(),a=this._calcTranslateMatrix(),h=this.getViewportTransform(),g=c(h,a),d=c(g,l),d=c(d,[1/h[0],0,0,1/h[3],0,0]),A=this._calculateCurrentDimensions(),y={};return this.forEachControl(function(m,_,w){y[_]=m.positionHandler(A,d,w)}),y},calcACoords:function(){var l=this._calcRotateMatrix(),a=this._calcTranslateMatrix(),h=c(a,l),g=this._getTransformedDimensions(),d=g.x/2,A=g.y/2;return{tl:i({x:-d,y:-A},h),tr:i({x:d,y:-A},h),bl:i({x:-d,y:A},h),br:i({x:d,y:A},h)}},setCoords:function(l){return this.aCoords=this.calcACoords(),this.lineCoords=this.group?this.aCoords:this.calcLineCoords(),l?this:(this.oCoords=this.calcOCoords(),this._setCornerCoords&&this._setCornerCoords(),this)},_calcRotateMatrix:function(){return o.calcRotateMatrix(this)},_calcTranslateMatrix:function(){var l=this.getCenterPoint();return[1,0,0,1,l.x,l.y]},transformMatrixKey:function(l){var a="_",h="";return!l&&this.group&&(h=this.group.transformMatrixKey(l)+a),h+this.top+a+this.left+a+this.scaleX+a+this.scaleY+a+this.skewX+a+this.skewY+a+this.angle+a+this.originX+a+this.originY+a+this.width+a+this.height+a+this.strokeWidth+this.flipX+this.flipY},calcTransformMatrix:function(l){var a=this.calcOwnMatrix();if(l||!this.group)return a;var h=this.transformMatrixKey(l),g=this.matrixCache||(this.matrixCache={});return g.key===h?g.value:(this.group&&(a=c(this.group.calcTransformMatrix(!1),a)),g.key=h,g.value=a,a)},calcOwnMatrix:function(){var l=this.transformMatrixKey(!0),a=this.ownMatrixCache||(this.ownMatrixCache={});if(a.key===l)return a.value;var h=this._calcTranslateMatrix(),g={angle:this.angle,translateX:h[4],translateY:h[5],scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,flipX:this.flipX,flipY:this.flipY};return a.key=l,a.value=o.composeMatrix(g),a.value},_getNonTransformedDimensions:function(){var l=this.strokeWidth,a=this.width+l,h=this.height+l;return{x:a,y:h}},_getTransformedDimensions:function(l,a){typeof l>"u"&&(l=this.skewX),typeof a>"u"&&(a=this.skewY);var h,g,d,A=l===0&&a===0;if(this.strokeUniform?(g=this.width,d=this.height):(h=this._getNonTransformedDimensions(),g=h.x,d=h.y),A)return this._finalizeDimensions(g*this.scaleX,d*this.scaleY);var y=o.sizeAfterTransform(g,d,{scaleX:this.scaleX,scaleY:this.scaleY,skewX:l,skewY:a});return this._finalizeDimensions(y.x,y.y)},_finalizeDimensions:function(l,a){return this.strokeUniform?{x:l+this.strokeWidth,y:a+this.strokeWidth}:{x:l,y:a}},_calculateCurrentDimensions:function(){var l=this.getViewportTransform(),a=this._getTransformedDimensions(),h=i(a,l,!0);return h.scalarAdd(2*this.padding)}})})(),t.util.object.extend(t.Object.prototype,{sendToBack:function(){return this.group?t.StaticCanvas.prototype.sendToBack.call(this.group,this):this.canvas&&this.canvas.sendToBack(this),this},bringToFront:function(){return this.group?t.StaticCanvas.prototype.bringToFront.call(this.group,this):this.canvas&&this.canvas.bringToFront(this),this},sendBackwards:function(u){return this.group?t.StaticCanvas.prototype.sendBackwards.call(this.group,this,u):this.canvas&&this.canvas.sendBackwards(this,u),this},bringForward:function(u){return this.group?t.StaticCanvas.prototype.bringForward.call(this.group,this,u):this.canvas&&this.canvas.bringForward(this,u),this},moveTo:function(u){return this.group&&this.group.type!=="activeSelection"?t.StaticCanvas.prototype.moveTo.call(this.group,this,u):this.canvas&&this.canvas.moveTo(this,u),this}}),(function(){function u(s,c){if(c){if(c.toLive)return s+": url(#SVGID_"+c.id+"); ";var i=new t.Color(c),l=s+": "+i.toRgb()+"; ",a=i.getAlpha();return a!==1&&(l+=s+"-opacity: "+a.toString()+"; "),l}else return s+": none; "}var o=t.util.toFixed;t.util.object.extend(t.Object.prototype,{getSvgStyles:function(s){var c=this.fillRule?this.fillRule:"nonzero",i=this.strokeWidth?this.strokeWidth:"0",l=this.strokeDashArray?this.strokeDashArray.join(" "):"none",a=this.strokeDashOffset?this.strokeDashOffset:"0",h=this.strokeLineCap?this.strokeLineCap:"butt",g=this.strokeLineJoin?this.strokeLineJoin:"miter",d=this.strokeMiterLimit?this.strokeMiterLimit:"4",A=typeof this.opacity<"u"?this.opacity:"1",y=this.visible?"":" visibility: hidden;",m=s?"":this.getSvgFilter(),_=u("fill",this.fill),w=u("stroke",this.stroke);return[w,"stroke-width: ",i,"; ","stroke-dasharray: ",l,"; ","stroke-linecap: ",h,"; ","stroke-dashoffset: ",a,"; ","stroke-linejoin: ",g,"; ","stroke-miterlimit: ",d,"; ",_,"fill-rule: ",c,"; ","opacity: ",A,";",m,y].join("")},getSvgSpanStyles:function(s,c){var i="; ",a=s.fontFamily?"font-family: "+(s.fontFamily.indexOf("'")===-1&&s.fontFamily.indexOf('"')===-1?"'"+s.fontFamily+"'":s.fontFamily)+i:"",l=s.strokeWidth?"stroke-width: "+s.strokeWidth+i:"",a=a,h=s.fontSize?"font-size: "+s.fontSize+"px"+i:"",g=s.fontStyle?"font-style: "+s.fontStyle+i:"",d=s.fontWeight?"font-weight: "+s.fontWeight+i:"",A=s.fill?u("fill",s.fill):"",y=s.stroke?u("stroke",s.stroke):"",m=this.getSvgTextDecoration(s),_=s.deltaY?"baseline-shift: "+-s.deltaY+"; ":"";return m&&(m="text-decoration: "+m+i),[y,l,a,h,g,d,m,A,_,c?"white-space: pre; ":""].join("")},getSvgTextDecoration:function(s){return["overline","underline","line-through"].filter(function(c){return s[c.replace("-","")]}).join(" ")},getSvgFilter:function(){return this.shadow?"filter: url(#SVGID_"+this.shadow.id+");":""},getSvgCommons:function(){return[this.id?'id="'+this.id+'" ':"",this.clipPath?'clip-path="url(#'+this.clipPath.clipPathId+')" ':""].join("")},getSvgTransform:function(s,c){var i=s?this.calcTransformMatrix():this.calcOwnMatrix(),l='transform="'+t.util.matrixToSVG(i);return l+(c||"")+'" '},_setSVGBg:function(s){if(this.backgroundColor){var c=t.Object.NUM_FRACTION_DIGITS;s.push(" <rect ",this._getFillAttributes(this.backgroundColor),' x="',o(-this.width/2,c),'" y="',o(-this.height/2,c),'" width="',o(this.width,c),'" height="',o(this.height,c),`"></rect>
44
+ `)}},toSVG:function(s){return this._createBaseSVGMarkup(this._toSVG(s),{reviver:s})},toClipPathSVG:function(s){return" "+this._createBaseClipPathSVGMarkup(this._toSVG(s),{reviver:s})},_createBaseClipPathSVGMarkup:function(s,c){c=c||{};var i=c.reviver,l=c.additionalTransform||"",a=[this.getSvgTransform(!0,l),this.getSvgCommons()].join(""),h=s.indexOf("COMMON_PARTS");return s[h]=a,i?i(s.join("")):s.join("")},_createBaseSVGMarkup:function(s,c){c=c||{};var i=c.noStyle,l=c.reviver,a=i?"":'style="'+this.getSvgStyles()+'" ',h=c.withShadow?'style="'+this.getSvgFilter()+'" ':"",g=this.clipPath,d=this.strokeUniform?'vector-effect="non-scaling-stroke" ':"",A=g&&g.absolutePositioned,y=this.stroke,m=this.fill,_=this.shadow,w,S=[],O,P=s.indexOf("COMMON_PARTS"),N=c.additionalTransform;return g&&(g.clipPathId="CLIPPATH_"+t.Object.__uid++,O='<clipPath id="'+g.clipPathId+`" >
45
+ `+g.toClipPathSVG(l)+`</clipPath>
46
+ `),A&&S.push("<g ",h,this.getSvgCommons(),` >
47
+ `),S.push("<g ",this.getSvgTransform(!1),A?"":h+this.getSvgCommons(),` >
48
+ `),w=[a,d,i?"":this.addPaintOrder()," ",N?'transform="'+N+'" ':""].join(""),s[P]=w,m&&m.toLive&&S.push(m.toSVG(this)),y&&y.toLive&&S.push(y.toSVG(this)),_&&S.push(_.toSVG(this)),g&&S.push(O),S.push(s.join("")),S.push(`</g>
49
+ `),A&&S.push(`</g>
50
+ `),l?l(S.join("")):S.join("")},addPaintOrder:function(){return this.paintFirst!=="fill"?' paint-order="'+this.paintFirst+'" ':""}})})(),(function(){var u=t.util.object.extend,o="stateProperties";function s(i,l,a){var h={},g=!0;a.forEach(function(d){h[d]=i[d]}),u(i[l],h,g)}function c(i,l,a){if(i===l)return!0;if(Array.isArray(i)){if(!Array.isArray(l)||i.length!==l.length)return!1;for(var h=0,g=i.length;h<g;h++)if(!c(i[h],l[h]))return!1;return!0}else if(i&&typeof i=="object"){var d=Object.keys(i),A;if(!l||typeof l!="object"||!a&&d.length!==Object.keys(l).length)return!1;for(var h=0,g=d.length;h<g;h++)if(A=d[h],!(A==="canvas"||A==="group")&&!c(i[A],l[A]))return!1;return!0}}t.util.object.extend(t.Object.prototype,{hasStateChanged:function(i){i=i||o;var l="_"+i;return Object.keys(this[l]).length<this[i].length?!0:!c(this[l],this,!0)},saveState:function(i){var l=i&&i.propertySet||o,a="_"+l;return this[a]?(s(this,a,this[l]),i&&i.stateProperties&&s(this,a,i.stateProperties),this):this.setupState(i)},setupState:function(i){i=i||{};var l=i.propertySet||o;return i.propertySet=l,this["_"+l]={},this.saveState(i),this}})})(),(function(){var u=t.util.degreesToRadians;t.util.object.extend(t.Object.prototype,{_findTargetCorner:function(o,s){if(!this.hasControls||this.group||!this.canvas||this.canvas._activeObject!==this)return!1;var c=o.x,i=o.y,l,a,h=Object.keys(this.oCoords),g=h.length-1,d;for(this.__corner=0;g>=0;g--)if(d=h[g],!!this.isControlVisible(d)&&(a=this._getImageLines(s?this.oCoords[d].touchCorner:this.oCoords[d].corner),l=this._findCrossPoints({x:c,y:i},a),l!==0&&l%2===1))return this.__corner=d,d;return!1},forEachControl:function(o){for(var s in this.controls)o(this.controls[s],s,this)},_setCornerCoords:function(){var o=this.oCoords;for(var s in o){var c=this.controls[s];o[s].corner=c.calcCornerCoords(this.angle,this.cornerSize,o[s].x,o[s].y,!1),o[s].touchCorner=c.calcCornerCoords(this.angle,this.touchCornerSize,o[s].x,o[s].y,!0)}},drawSelectionBackground:function(o){if(!this.selectionBackgroundColor||this.canvas&&!this.canvas.interactive||this.canvas&&this.canvas._activeObject!==this)return this;o.save();var s=this.getCenterPoint(),c=this._calculateCurrentDimensions(),i=this.canvas.viewportTransform;return o.translate(s.x,s.y),o.scale(1/i[0],1/i[3]),o.rotate(u(this.angle)),o.fillStyle=this.selectionBackgroundColor,o.fillRect(-c.x/2,-c.y/2,c.x,c.y),o.restore(),this},drawBorders:function(o,s){s=s||{};var c=this._calculateCurrentDimensions(),i=this.borderScaleFactor,l=c.x+i,a=c.y+i,h=typeof s.hasControls<"u"?s.hasControls:this.hasControls,g=!1;return o.save(),o.strokeStyle=s.borderColor||this.borderColor,this._setLineDash(o,s.borderDashArray||this.borderDashArray),o.strokeRect(-l/2,-a/2,l,a),h&&(o.beginPath(),this.forEachControl(function(d,A,y){d.withConnection&&d.getVisibility(y,A)&&(g=!0,o.moveTo(d.x*l,d.y*a),o.lineTo(d.x*l+d.offsetX,d.y*a+d.offsetY))}),g&&o.stroke()),o.restore(),this},drawBordersInGroup:function(o,s,c){c=c||{};var i=t.util.sizeAfterTransform(this.width,this.height,s),l=this.strokeWidth,a=this.strokeUniform,h=this.borderScaleFactor,g=i.x+l*(a?this.canvas.getZoom():s.scaleX)+h,d=i.y+l*(a?this.canvas.getZoom():s.scaleY)+h;return o.save(),this._setLineDash(o,c.borderDashArray||this.borderDashArray),o.strokeStyle=c.borderColor||this.borderColor,o.strokeRect(-g/2,-d/2,g,d),o.restore(),this},drawControls:function(o,s){s=s||{},o.save();var c=this.canvas.getRetinaScaling(),i,l;return o.setTransform(c,0,0,c,0,0),o.strokeStyle=o.fillStyle=s.cornerColor||this.cornerColor,this.transparentCorners||(o.strokeStyle=s.cornerStrokeColor||this.cornerStrokeColor),this._setLineDash(o,s.cornerDashArray||this.cornerDashArray),this.setCoords(),this.group&&(i=this.group.calcTransformMatrix()),this.forEachControl(function(a,h,g){l=g.oCoords[h],a.getVisibility(g,h)&&(i&&(l=t.util.transformPoint(l,i)),a.render(o,l.x,l.y,s,g))}),o.restore(),this},isControlVisible:function(o){return this.controls[o]&&this.controls[o].getVisibility(this,o)},setControlVisible:function(o,s){return this._controlsVisibility||(this._controlsVisibility={}),this._controlsVisibility[o]=s,this},setControlsVisibility:function(o){o||(o={});for(var s in o)this.setControlVisible(s,o[s]);return this},onDeselect:function(){},onSelect:function(){}})})(),t.util.object.extend(t.StaticCanvas.prototype,{FX_DURATION:500,fxCenterObjectH:function(u,o){o=o||{};var s=function(){},c=o.onComplete||s,i=o.onChange||s,l=this;return t.util.animate({target:this,startValue:u.left,endValue:this.getCenterPoint().x,duration:this.FX_DURATION,onChange:function(a){u.set("left",a),l.requestRenderAll(),i()},onComplete:function(){u.setCoords(),c()}})},fxCenterObjectV:function(u,o){o=o||{};var s=function(){},c=o.onComplete||s,i=o.onChange||s,l=this;return t.util.animate({target:this,startValue:u.top,endValue:this.getCenterPoint().y,duration:this.FX_DURATION,onChange:function(a){u.set("top",a),l.requestRenderAll(),i()},onComplete:function(){u.setCoords(),c()}})},fxRemove:function(u,o){o=o||{};var s=function(){},c=o.onComplete||s,i=o.onChange||s,l=this;return t.util.animate({target:this,startValue:u.opacity,endValue:0,duration:this.FX_DURATION,onChange:function(a){u.set("opacity",a),l.requestRenderAll(),i()},onComplete:function(){l.remove(u),c()}})}}),t.util.object.extend(t.Object.prototype,{animate:function(){if(arguments[0]&&typeof arguments[0]=="object"){var u=[],o,s,c=[];for(o in arguments[0])u.push(o);for(var i=0,l=u.length;i<l;i++)o=u[i],s=i!==l-1,c.push(this._animate(o,arguments[0][o],arguments[1],s));return c}else return this._animate.apply(this,arguments)},_animate:function(u,o,s,c){var i=this,l;o=o.toString(),s?s=t.util.object.clone(s):s={},~u.indexOf(".")&&(l=u.split("."));var a=i.colorProperties.indexOf(u)>-1||l&&i.colorProperties.indexOf(l[1])>-1,h=l?this.get(l[0])[l[1]]:this.get(u);"from"in s||(s.from=h),a||(~o.indexOf("=")?o=h+parseFloat(o.replace("=","")):o=parseFloat(o));var g={target:this,startValue:s.from,endValue:o,byValue:s.by,easing:s.easing,duration:s.duration,abort:s.abort&&function(d,A,y){return s.abort.call(i,d,A,y)},onChange:function(d,A,y){l?i[l[0]][l[1]]=d:i.set(u,d),!c&&s.onChange&&s.onChange(d,A,y)},onComplete:function(d,A,y){c||(i.setCoords(),s.onComplete&&s.onComplete(d,A,y))}};return a?t.util.animateColor(g.startValue,g.endValue,g.duration,g):t.util.animate(g)}}),(function(u){var o=u.fabric||(u.fabric={}),s=o.util.object.extend,c=o.util.object.clone,i={x1:1,x2:1,y1:1,y2:1};if(o.Line){o.warn("fabric.Line is already defined");return}o.Line=o.util.createClass(o.Object,{type:"line",x1:0,y1:0,x2:0,y2:0,cacheProperties:o.Object.prototype.cacheProperties.concat("x1","x2","y1","y2"),initialize:function(a,h){a||(a=[0,0,0,0]),this.callSuper("initialize",h),this.set("x1",a[0]),this.set("y1",a[1]),this.set("x2",a[2]),this.set("y2",a[3]),this._setWidthHeight(h)},_setWidthHeight:function(a){a||(a={}),this.width=Math.abs(this.x2-this.x1),this.height=Math.abs(this.y2-this.y1),this.left="left"in a?a.left:this._getLeftToOriginX(),this.top="top"in a?a.top:this._getTopToOriginY()},_set:function(a,h){return this.callSuper("_set",a,h),typeof i[a]<"u"&&this._setWidthHeight(),this},_getLeftToOriginX:l({origin:"originX",axis1:"x1",axis2:"x2",dimension:"width"},{nearest:"left",center:"center",farthest:"right"}),_getTopToOriginY:l({origin:"originY",axis1:"y1",axis2:"y2",dimension:"height"},{nearest:"top",center:"center",farthest:"bottom"}),_render:function(a){a.beginPath();var h=this.calcLinePoints();a.moveTo(h.x1,h.y1),a.lineTo(h.x2,h.y2),a.lineWidth=this.strokeWidth;var g=a.strokeStyle;a.strokeStyle=this.stroke||a.fillStyle,this.stroke&&this._renderStroke(a),a.strokeStyle=g},_findCenterFromElement:function(){return{x:(this.x1+this.x2)/2,y:(this.y1+this.y2)/2}},toObject:function(a){return s(this.callSuper("toObject",a),this.calcLinePoints())},_getNonTransformedDimensions:function(){var a=this.callSuper("_getNonTransformedDimensions");return this.strokeLineCap==="butt"&&(this.width===0&&(a.y-=this.strokeWidth),this.height===0&&(a.x-=this.strokeWidth)),a},calcLinePoints:function(){var a=this.x1<=this.x2?-1:1,h=this.y1<=this.y2?-1:1,g=a*this.width*.5,d=h*this.height*.5,A=a*this.width*-.5,y=h*this.height*-.5;return{x1:g,x2:A,y1:d,y2:y}},_toSVG:function(){var a=this.calcLinePoints();return["<line ","COMMON_PARTS",'x1="',a.x1,'" y1="',a.y1,'" x2="',a.x2,'" y2="',a.y2,`" />
51
+ `]}}),o.Line.ATTRIBUTE_NAMES=o.SHARED_ATTRIBUTES.concat("x1 y1 x2 y2".split(" ")),o.Line.fromElement=function(a,h,g){g=g||{};var d=o.parseAttributes(a,o.Line.ATTRIBUTE_NAMES),A=[d.x1||0,d.y1||0,d.x2||0,d.y2||0];h(new o.Line(A,s(d,g)))},o.Line.fromObject=function(a,h){function g(A){delete A.points,h&&h(A)}var d=c(a,!0);d.points=[a.x1,a.y1,a.x2,a.y2],o.Object._fromObject("Line",d,g,"points")};function l(a,h){var g=a.origin,d=a.axis1,A=a.axis2,y=a.dimension,m=h.nearest,_=h.center,w=h.farthest;return function(){switch(this.get(g)){case m:return Math.min(this.get(d),this.get(A));case _:return Math.min(this.get(d),this.get(A))+.5*this.get(y);case w:return Math.max(this.get(d),this.get(A))}}}})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.util.degreesToRadians;if(o.Circle){o.warn("fabric.Circle is already defined.");return}o.Circle=o.util.createClass(o.Object,{type:"circle",radius:0,startAngle:0,endAngle:360,cacheProperties:o.Object.prototype.cacheProperties.concat("radius","startAngle","endAngle"),_set:function(i,l){return this.callSuper("_set",i,l),i==="radius"&&this.setRadius(l),this},toObject:function(i){return this.callSuper("toObject",["radius","startAngle","endAngle"].concat(i))},_toSVG:function(){var i,l=0,a=0,h=(this.endAngle-this.startAngle)%360;if(h===0)i=["<circle ","COMMON_PARTS",'cx="'+l+'" cy="'+a+'" ','r="',this.radius,`" />
52
+ `];else{var g=s(this.startAngle),d=s(this.endAngle),A=this.radius,y=o.util.cos(g)*A,m=o.util.sin(g)*A,_=o.util.cos(d)*A,w=o.util.sin(d)*A,S=h>180?"1":"0";i=['<path d="M '+y+" "+m," A "+A+" "+A," 0 ",+S+" 1"," "+_+" "+w,'" ',"COMMON_PARTS",` />
53
+ `]}return i},_render:function(i){i.beginPath(),i.arc(0,0,this.radius,s(this.startAngle),s(this.endAngle),!1),this._renderPaintInOrder(i)},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(i){return this.radius=i,this.set("width",i*2).set("height",i*2)}}),o.Circle.ATTRIBUTE_NAMES=o.SHARED_ATTRIBUTES.concat("cx cy r".split(" ")),o.Circle.fromElement=function(i,l){var a=o.parseAttributes(i,o.Circle.ATTRIBUTE_NAMES);if(!c(a))throw new Error("value of `r` attribute is required and can not be negative");a.left=(a.left||0)-a.radius,a.top=(a.top||0)-a.radius,l(new o.Circle(a))};function c(i){return"radius"in i&&i.radius>=0}o.Circle.fromObject=function(i,l){o.Object._fromObject("Circle",i,l)}})(e),(function(u){var o=u.fabric||(u.fabric={});if(o.Triangle){o.warn("fabric.Triangle is already defined");return}o.Triangle=o.util.createClass(o.Object,{type:"triangle",width:100,height:100,_render:function(s){var c=this.width/2,i=this.height/2;s.beginPath(),s.moveTo(-c,i),s.lineTo(0,-i),s.lineTo(c,i),s.closePath(),this._renderPaintInOrder(s)},_toSVG:function(){var s=this.width/2,c=this.height/2,i=[-s+" "+c,"0 "+-c,s+" "+c].join(",");return["<polygon ","COMMON_PARTS",'points="',i,'" />']}}),o.Triangle.fromObject=function(s,c){return o.Object._fromObject("Triangle",s,c)}})(e),(function(u){var o=u.fabric||(u.fabric={}),s=Math.PI*2;if(o.Ellipse){o.warn("fabric.Ellipse is already defined.");return}o.Ellipse=o.util.createClass(o.Object,{type:"ellipse",rx:0,ry:0,cacheProperties:o.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(c){this.callSuper("initialize",c),this.set("rx",c&&c.rx||0),this.set("ry",c&&c.ry||0)},_set:function(c,i){switch(this.callSuper("_set",c,i),c){case"rx":this.rx=i,this.set("width",i*2);break;case"ry":this.ry=i,this.set("height",i*2);break}return this},getRx:function(){return this.get("rx")*this.get("scaleX")},getRy:function(){return this.get("ry")*this.get("scaleY")},toObject:function(c){return this.callSuper("toObject",["rx","ry"].concat(c))},_toSVG:function(){return["<ellipse ","COMMON_PARTS",'cx="0" cy="0" ','rx="',this.rx,'" ry="',this.ry,`" />
54
+ `]},_render:function(c){c.beginPath(),c.save(),c.transform(1,0,0,this.ry/this.rx,0,0),c.arc(0,0,this.rx,0,s,!1),c.restore(),this._renderPaintInOrder(c)}}),o.Ellipse.ATTRIBUTE_NAMES=o.SHARED_ATTRIBUTES.concat("cx cy rx ry".split(" ")),o.Ellipse.fromElement=function(c,i){var l=o.parseAttributes(c,o.Ellipse.ATTRIBUTE_NAMES);l.left=(l.left||0)-l.rx,l.top=(l.top||0)-l.ry,i(new o.Ellipse(l))},o.Ellipse.fromObject=function(c,i){o.Object._fromObject("Ellipse",c,i)}})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.util.object.extend;if(o.Rect){o.warn("fabric.Rect is already defined");return}o.Rect=o.util.createClass(o.Object,{stateProperties:o.Object.prototype.stateProperties.concat("rx","ry"),type:"rect",rx:0,ry:0,cacheProperties:o.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(c){this.callSuper("initialize",c),this._initRxRy()},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(c){var i=this.rx?Math.min(this.rx,this.width/2):0,l=this.ry?Math.min(this.ry,this.height/2):0,a=this.width,h=this.height,g=-this.width/2,d=-this.height/2,A=i!==0||l!==0,y=1-.5522847498;c.beginPath(),c.moveTo(g+i,d),c.lineTo(g+a-i,d),A&&c.bezierCurveTo(g+a-y*i,d,g+a,d+y*l,g+a,d+l),c.lineTo(g+a,d+h-l),A&&c.bezierCurveTo(g+a,d+h-y*l,g+a-y*i,d+h,g+a-i,d+h),c.lineTo(g+i,d+h),A&&c.bezierCurveTo(g+y*i,d+h,g,d+h-y*l,g,d+h-l),c.lineTo(g,d+l),A&&c.bezierCurveTo(g,d+y*l,g+y*i,d,g+i,d),c.closePath(),this._renderPaintInOrder(c)},toObject:function(c){return this.callSuper("toObject",["rx","ry"].concat(c))},_toSVG:function(){var c=-this.width/2,i=-this.height/2;return["<rect ","COMMON_PARTS",'x="',c,'" y="',i,'" rx="',this.rx,'" ry="',this.ry,'" width="',this.width,'" height="',this.height,`" />
55
+ `]}}),o.Rect.ATTRIBUTE_NAMES=o.SHARED_ATTRIBUTES.concat("x y rx ry width height".split(" ")),o.Rect.fromElement=function(c,i,l){if(!c)return i(null);l=l||{};var a=o.parseAttributes(c,o.Rect.ATTRIBUTE_NAMES);a.left=a.left||0,a.top=a.top||0,a.height=a.height||0,a.width=a.width||0;var h=new o.Rect(s(l?o.util.object.clone(l):{},a));h.visible=h.visible&&h.width>0&&h.height>0,i(h)},o.Rect.fromObject=function(c,i){return o.Object._fromObject("Rect",c,i)}})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.util.object.extend,c=o.util.array.min,i=o.util.array.max,l=o.util.toFixed,a=o.util.projectStrokeOnPoints;if(o.Polyline){o.warn("fabric.Polyline is already defined");return}o.Polyline=o.util.createClass(o.Object,{type:"polyline",points:null,exactBoundingBox:!1,cacheProperties:o.Object.prototype.cacheProperties.concat("points"),initialize:function(h,g){g=g||{},this.points=h||[],this.callSuper("initialize",g),this._setPositionDimensions(g)},_projectStrokeOnPoints:function(){return a(this.points,this,!0)},_setPositionDimensions:function(h){var g=this._calcDimensions(h),d,A=this.exactBoundingBox?this.strokeWidth:0;this.width=g.width-A,this.height=g.height-A,h.fromSVG||(d=this.translateToGivenOrigin({x:g.left-this.strokeWidth/2+A/2,y:g.top-this.strokeWidth/2+A/2},"left","top",this.originX,this.originY)),typeof h.left>"u"&&(this.left=h.fromSVG?g.left:d.x),typeof h.top>"u"&&(this.top=h.fromSVG?g.top:d.y),this.pathOffset={x:g.left+this.width/2+A/2,y:g.top+this.height/2+A/2}},_calcDimensions:function(){var h=this.exactBoundingBox?this._projectStrokeOnPoints():this.points,g=c(h,"x")||0,d=c(h,"y")||0,A=i(h,"x")||0,y=i(h,"y")||0,m=A-g,_=y-d;return{left:g,top:d,width:m,height:_}},toObject:function(h){return s(this.callSuper("toObject",h),{points:this.points.concat()})},_toSVG:function(){for(var h=[],g=this.pathOffset.x,d=this.pathOffset.y,A=o.Object.NUM_FRACTION_DIGITS,y=0,m=this.points.length;y<m;y++)h.push(l(this.points[y].x-g,A),",",l(this.points[y].y-d,A)," ");return["<"+this.type+" ","COMMON_PARTS",'points="',h.join(""),`" />
56
+ `]},commonRender:function(h){var g,d=this.points.length,A=this.pathOffset.x,y=this.pathOffset.y;if(!d||isNaN(this.points[d-1].y))return!1;h.beginPath(),h.moveTo(this.points[0].x-A,this.points[0].y-y);for(var m=0;m<d;m++)g=this.points[m],h.lineTo(g.x-A,g.y-y);return!0},_render:function(h){this.commonRender(h)&&this._renderPaintInOrder(h)},complexity:function(){return this.get("points").length}}),o.Polyline.ATTRIBUTE_NAMES=o.SHARED_ATTRIBUTES.concat(),o.Polyline.fromElementGenerator=function(h){return function(g,d,A){if(!g)return d(null);A||(A={});var y=o.parsePointsAttribute(g.getAttribute("points")),m=o.parseAttributes(g,o[h].ATTRIBUTE_NAMES);m.fromSVG=!0,d(new o[h](y,s(m,A)))}},o.Polyline.fromElement=o.Polyline.fromElementGenerator("Polyline"),o.Polyline.fromObject=function(h,g){return o.Object._fromObject("Polyline",h,g,"points")}})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.util.projectStrokeOnPoints;if(o.Polygon){o.warn("fabric.Polygon is already defined");return}o.Polygon=o.util.createClass(o.Polyline,{type:"polygon",_projectStrokeOnPoints:function(){return s(this.points,this)},_render:function(c){this.commonRender(c)&&(c.closePath(),this._renderPaintInOrder(c))}}),o.Polygon.ATTRIBUTE_NAMES=o.SHARED_ATTRIBUTES.concat(),o.Polygon.fromElement=o.Polyline.fromElementGenerator("Polygon"),o.Polygon.fromObject=function(c,i){o.Object._fromObject("Polygon",c,i,"points")}})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.util.array.min,c=o.util.array.max,i=o.util.object.extend,l=o.util.object.clone,a=o.util.toFixed;if(o.Path){o.warn("fabric.Path is already defined");return}o.Path=o.util.createClass(o.Object,{type:"path",path:null,cacheProperties:o.Object.prototype.cacheProperties.concat("path","fillRule"),stateProperties:o.Object.prototype.stateProperties.concat("path"),initialize:function(h,g){g=l(g||{}),delete g.path,this.callSuper("initialize",g),this._setPath(h||[],g)},_setPath:function(h,g){this.path=o.util.makePathSimpler(Array.isArray(h)?h:o.util.parsePath(h)),o.Polyline.prototype._setPositionDimensions.call(this,g||{})},_renderPathCommands:function(h){var g,d=0,A=0,y=0,m=0,_=0,w=0,S=-this.pathOffset.x,O=-this.pathOffset.y;h.beginPath();for(var P=0,N=this.path.length;P<N;++P)switch(g=this.path[P],g[0]){case"L":y=g[1],m=g[2],h.lineTo(y+S,m+O);break;case"M":y=g[1],m=g[2],d=y,A=m,h.moveTo(y+S,m+O);break;case"C":y=g[5],m=g[6],_=g[3],w=g[4],h.bezierCurveTo(g[1]+S,g[2]+O,_+S,w+O,y+S,m+O);break;case"Q":h.quadraticCurveTo(g[1]+S,g[2]+O,g[3]+S,g[4]+O),y=g[3],m=g[4],_=g[1],w=g[2];break;case"z":case"Z":y=d,m=A,h.closePath();break}},_render:function(h){this._renderPathCommands(h),this._renderPaintInOrder(h)},toString:function(){return"#<fabric.Path ("+this.complexity()+'): { "top": '+this.top+', "left": '+this.left+" }>"},toObject:function(h){return i(this.callSuper("toObject",h),{path:this.path.map(function(g){return g.slice()})})},toDatalessObject:function(h){var g=this.toObject(["sourcePath"].concat(h));return g.sourcePath&&delete g.path,g},_toSVG:function(){var h=o.util.joinPath(this.path);return["<path ","COMMON_PARTS",'d="',h,'" stroke-linecap="round" ',`/>
57
+ `]},_getOffsetTransform:function(){var h=o.Object.NUM_FRACTION_DIGITS;return" translate("+a(-this.pathOffset.x,h)+", "+a(-this.pathOffset.y,h)+")"},toClipPathSVG:function(h){var g=this._getOffsetTransform();return" "+this._createBaseClipPathSVGMarkup(this._toSVG(),{reviver:h,additionalTransform:g})},toSVG:function(h){var g=this._getOffsetTransform();return this._createBaseSVGMarkup(this._toSVG(),{reviver:h,additionalTransform:g})},complexity:function(){return this.path.length},_calcDimensions:function(){for(var h=[],g=[],d,A=0,y=0,m=0,_=0,w,S=0,O=this.path.length;S<O;++S){switch(d=this.path[S],d[0]){case"L":m=d[1],_=d[2],w=[];break;case"M":m=d[1],_=d[2],A=m,y=_,w=[];break;case"C":w=o.util.getBoundsOfCurve(m,_,d[1],d[2],d[3],d[4],d[5],d[6]),m=d[5],_=d[6];break;case"Q":w=o.util.getBoundsOfCurve(m,_,d[1],d[2],d[1],d[2],d[3],d[4]),m=d[3],_=d[4];break;case"z":case"Z":m=A,_=y;break}w.forEach(function($){h.push($.x),g.push($.y)}),h.push(m),g.push(_)}var P=s(h)||0,N=s(g)||0,q=c(h)||0,Z=c(g)||0,K=q-P,rt=Z-N;return{left:P,top:N,width:K,height:rt}}}),o.Path.fromObject=function(h,g){if(typeof h.sourcePath=="string"){var d=h.sourcePath;o.loadSVGFromURL(d,function(A){var y=A[0];y.setOptions(h),h.clipPath?o.util.enlivenObjects([h.clipPath],function(m){y.clipPath=m[0],g&&g(y)}):g&&g(y)})}else o.Object._fromObject("Path",h,g,"path")},o.Path.ATTRIBUTE_NAMES=o.SHARED_ATTRIBUTES.concat(["d"]),o.Path.fromElement=function(h,g,d){var A=o.parseAttributes(h,o.Path.ATTRIBUTE_NAMES);A.fromSVG=!0,g(new o.Path(A.d,i(A,d)))}})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.util.array.min,c=o.util.array.max;o.Group||(o.Group=o.util.createClass(o.Object,o.Collection,{type:"group",strokeWidth:0,subTargetCheck:!1,cacheProperties:[],useSetOnGroup:!1,initialize:function(i,l,a){l=l||{},this._objects=[],a&&this.callSuper("initialize",l),this._objects=i||[];for(var h=this._objects.length;h--;)this._objects[h].group=this;if(a)this._updateObjectsACoords();else{var g=l&&l.centerPoint;l.originX!==void 0&&(this.originX=l.originX),l.originY!==void 0&&(this.originY=l.originY),g||this._calcBounds(),this._updateObjectsCoords(g),delete l.centerPoint,this.callSuper("initialize",l)}this.setCoords()},_updateObjectsACoords:function(){for(var i=!0,l=this._objects.length;l--;)this._objects[l].setCoords(i)},_updateObjectsCoords:function(i){for(var i=i||this.getCenterPoint(),l=this._objects.length;l--;)this._updateObjectCoords(this._objects[l],i)},_updateObjectCoords:function(i,l){var a=i.left,h=i.top,g=!0;i.set({left:a-l.x,top:h-l.y}),i.group=this,i.setCoords(g)},toString:function(){return"#<fabric.Group: ("+this.complexity()+")>"},addWithUpdate:function(i){var l=!!this.group;return this._restoreObjectsState(),o.util.resetObjectTransform(this),i&&(l&&o.util.removeTransformFromObject(i,this.group.calcTransformMatrix()),this._objects.push(i),i.group=this,i._set("canvas",this.canvas)),this._calcBounds(),this._updateObjectsCoords(),this.dirty=!0,l?this.group.addWithUpdate():this.setCoords(),this},removeWithUpdate:function(i){return this._restoreObjectsState(),o.util.resetObjectTransform(this),this.remove(i),this._calcBounds(),this._updateObjectsCoords(),this.setCoords(),this.dirty=!0,this},_onObjectAdded:function(i){this.dirty=!0,i.group=this,i._set("canvas",this.canvas)},_onObjectRemoved:function(i){this.dirty=!0,delete i.group},_set:function(i,l){var a=this._objects.length;if(this.useSetOnGroup)for(;a--;)this._objects[a].setOnGroup(i,l);if(i==="canvas")for(;a--;)this._objects[a]._set(i,l);o.Object.prototype._set.call(this,i,l)},toObject:function(i){var l=this.includeDefaultValues,a=this._objects.filter(function(g){return!g.excludeFromExport}).map(function(g){var d=g.includeDefaultValues;g.includeDefaultValues=l;var A=g.toObject(i);return g.includeDefaultValues=d,A}),h=o.Object.prototype.toObject.call(this,i);return h.objects=a,h},toDatalessObject:function(i){var l,a=this.sourcePath;if(a)l=a;else{var h=this.includeDefaultValues;l=this._objects.map(function(d){var A=d.includeDefaultValues;d.includeDefaultValues=h;var y=d.toDatalessObject(i);return d.includeDefaultValues=A,y})}var g=o.Object.prototype.toDatalessObject.call(this,i);return g.objects=l,g},render:function(i){this._transformDone=!0,this.callSuper("render",i),this._transformDone=!1},shouldCache:function(){var i=o.Object.prototype.shouldCache.call(this);if(i){for(var l=0,a=this._objects.length;l<a;l++)if(this._objects[l].willDrawShadow())return this.ownCaching=!1,!1}return i},willDrawShadow:function(){if(o.Object.prototype.willDrawShadow.call(this))return!0;for(var i=0,l=this._objects.length;i<l;i++)if(this._objects[i].willDrawShadow())return!0;return!1},isOnACache:function(){return this.ownCaching||this.group&&this.group.isOnACache()},drawObject:function(i){for(var l=0,a=this._objects.length;l<a;l++)this._objects[l].render(i);this._drawClipPath(i,this.clipPath)},isCacheDirty:function(i){if(this.callSuper("isCacheDirty",i))return!0;if(!this.statefullCache)return!1;for(var l=0,a=this._objects.length;l<a;l++)if(this._objects[l].isCacheDirty(!0)){if(this._cacheCanvas){var h=this.cacheWidth/this.zoomX,g=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-h/2,-g/2,h,g)}return!0}return!1},_restoreObjectsState:function(){var i=this.calcOwnMatrix();return this._objects.forEach(function(l){o.util.addTransformToObject(l,i),delete l.group,l.setCoords()}),this},destroy:function(){return this._objects.forEach(function(i){i.set("dirty",!0)}),this._restoreObjectsState()},dispose:function(){this.callSuper("dispose"),this.forEachObject(function(i){i.dispose&&i.dispose()}),this._objects=[]},toActiveSelection:function(){if(this.canvas){var i=this._objects,l=this.canvas;this._objects=[];var a=this.toObject();delete a.objects;var h=new o.ActiveSelection([]);return h.set(a),h.type="activeSelection",l.remove(this),i.forEach(function(g){g.group=h,g.dirty=!0,l.add(g)}),h.canvas=l,h._objects=i,l._activeObject=h,h.setCoords(),h}},ungroupOnCanvas:function(){return this._restoreObjectsState()},setObjectsCoords:function(){var i=!0;return this.forEachObject(function(l){l.setCoords(i)}),this},_calcBounds:function(i){for(var l=[],a=[],h,g,d,A=["tr","br","bl","tl"],y=0,m=this._objects.length,_,w=A.length;y<m;++y){for(h=this._objects[y],d=h.calcACoords(),_=0;_<w;_++)g=A[_],l.push(d[g].x),a.push(d[g].y);h.aCoords=d}this._getBounds(l,a,i)},_getBounds:function(i,l,a){var h=new o.Point(s(i),s(l)),g=new o.Point(c(i),c(l)),d=h.y||0,A=h.x||0,y=g.x-h.x||0,m=g.y-h.y||0;this.width=y,this.height=m,a||this.setPositionByOrigin({x:A,y:d},"left","top")},_toSVG:function(i){for(var l=["<g ","COMMON_PARTS",` >
58
+ `],a=0,h=this._objects.length;a<h;a++)l.push(" ",this._objects[a].toSVG(i));return l.push(`</g>
59
+ `),l},getSvgStyles:function(){var i=typeof this.opacity<"u"&&this.opacity!==1?"opacity: "+this.opacity+";":"",l=this.visible?"":" visibility: hidden;";return[i,this.getSvgFilter(),l].join("")},toClipPathSVG:function(i){for(var l=[],a=0,h=this._objects.length;a<h;a++)l.push(" ",this._objects[a].toClipPathSVG(i));return this._createBaseClipPathSVGMarkup(l,{reviver:i})}}),o.Group.fromObject=function(i,l){var a=i.objects,h=o.util.object.clone(i,!0);if(delete h.objects,typeof a=="string"){o.loadSVGFromURL(a,function(g){var d=o.util.groupSVGElements(g,i,a),A=h.clipPath;delete h.clipPath,d.set(h),A?o.util.enlivenObjects([A],function(y){d.clipPath=y[0],l&&l(d)}):l&&l(d)});return}o.util.enlivenObjects(a,function(g){o.util.enlivenObjectEnlivables(i,h,function(){l&&l(new o.Group(g,h,!0))})})})})(e),(function(u){var o=u.fabric||(u.fabric={});o.ActiveSelection||(o.ActiveSelection=o.util.createClass(o.Group,{type:"activeSelection",initialize:function(s,c){c=c||{},this._objects=s||[];for(var i=this._objects.length;i--;)this._objects[i].group=this;c.originX&&(this.originX=c.originX),c.originY&&(this.originY=c.originY),this._calcBounds(),this._updateObjectsCoords(),o.Object.prototype.initialize.call(this,c),this.setCoords()},toGroup:function(){var s=this._objects.concat();this._objects=[];var c=o.Object.prototype.toObject.call(this),i=new o.Group([]);if(delete c.type,i.set(c),s.forEach(function(a){a.canvas.remove(a),a.group=i}),i._objects=s,!this.canvas)return i;var l=this.canvas;return l.add(i),l._activeObject=i,i.setCoords(),i},onDeselect:function(){return this.destroy(),!1},toString:function(){return"#<fabric.ActiveSelection: ("+this.complexity()+")>"},shouldCache:function(){return!1},isOnACache:function(){return!1},_renderControls:function(s,c,i){s.save(),s.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,this.callSuper("_renderControls",s,c),i=i||{},typeof i.hasControls>"u"&&(i.hasControls=!1),i.forActiveSelection=!0;for(var l=0,a=this._objects.length;l<a;l++)this._objects[l]._renderControls(s,i);s.restore()}}),o.ActiveSelection.fromObject=function(s,c){o.util.enlivenObjects(s.objects,function(i){delete s.objects,c&&c(new o.ActiveSelection(i,s,!0))})})})(e),(function(u){var o=t.util.object.extend;if(u.fabric||(u.fabric={}),u.fabric.Image){t.warn("fabric.Image is already defined.");return}t.Image=t.util.createClass(t.Object,{type:"image",strokeWidth:0,srcFromAttribute:!1,_lastScaleX:1,_lastScaleY:1,_filterScalingX:1,_filterScalingY:1,minimumScaleTrigger:.5,stateProperties:t.Object.prototype.stateProperties.concat("cropX","cropY"),cacheProperties:t.Object.prototype.cacheProperties.concat("cropX","cropY"),cacheKey:"",cropX:0,cropY:0,imageSmoothing:!0,initialize:function(s,c){c||(c={}),this.filters=[],this.cacheKey="texture"+t.Object.__uid++,this.callSuper("initialize",c),this._initElement(s,c)},getElement:function(){return this._element||{}},setElement:function(s,c){return this.removeTexture(this.cacheKey),this.removeTexture(this.cacheKey+"_filtered"),this._element=s,this._originalElement=s,this._initConfig(c),this.filters.length!==0&&this.applyFilters(),this.resizeFilter&&this.applyResizeFilters(),this},removeTexture:function(s){var c=t.filterBackend;c&&c.evictCachesForKey&&c.evictCachesForKey(s)},dispose:function(){this.callSuper("dispose"),this.removeTexture(this.cacheKey),this.removeTexture(this.cacheKey+"_filtered"),this._cacheContext=void 0,["_originalElement","_element","_filteredEl","_cacheCanvas"].forEach((function(s){t.util.cleanUpJsdomNode(this[s]),this[s]=void 0}).bind(this))},getCrossOrigin:function(){return this._originalElement&&(this._originalElement.crossOrigin||null)},getOriginalSize:function(){var s=this.getElement();return{width:s.naturalWidth||s.width,height:s.naturalHeight||s.height}},_stroke:function(s){if(!(!this.stroke||this.strokeWidth===0)){var c=this.width/2,i=this.height/2;s.beginPath(),s.moveTo(-c,-i),s.lineTo(c,-i),s.lineTo(c,i),s.lineTo(-c,i),s.lineTo(-c,-i),s.closePath()}},toObject:function(s){var c=[];this.filters.forEach(function(l){l&&c.push(l.toObject())});var i=o(this.callSuper("toObject",["cropX","cropY"].concat(s)),{src:this.getSrc(),crossOrigin:this.getCrossOrigin(),filters:c});return this.resizeFilter&&(i.resizeFilter=this.resizeFilter.toObject()),i},hasCrop:function(){return this.cropX||this.cropY||this.width<this._element.width||this.height<this._element.height},_toSVG:function(){var s=[],c=[],i,l=this._element,a=-this.width/2,h=-this.height/2,g="",d="";if(!l)return[];if(this.hasCrop()){var A=t.Object.__uid++;s.push('<clipPath id="imageCrop_'+A+`">
60
+ `,' <rect x="'+a+'" y="'+h+'" width="'+this.width+'" height="'+this.height+`" />
61
+ `,`</clipPath>
62
+ `),g=' clip-path="url(#imageCrop_'+A+')" '}if(this.imageSmoothing||(d='" image-rendering="optimizeSpeed'),c.push(" <image ","COMMON_PARTS",'xlink:href="',this.getSvgSrc(!0),'" x="',a-this.cropX,'" y="',h-this.cropY,'" width="',l.width||l.naturalWidth,'" height="',l.height||l.height,d,'"',g,`></image>
63
+ `),this.stroke||this.strokeDashArray){var y=this.fill;this.fill=null,i=[" <rect ",'x="',a,'" y="',h,'" width="',this.width,'" height="',this.height,'" style="',this.getSvgStyles(),`"/>
64
+ `],this.fill=y}return this.paintFirst!=="fill"?s=s.concat(i,c):s=s.concat(c,i),s},getSrc:function(s){var c=s?this._element:this._originalElement;return c?c.toDataURL?c.toDataURL():this.srcFromAttribute?c.getAttribute("src"):c.src:this.src||""},setSrc:function(s,c,i){return t.util.loadImage(s,function(l,a){this.setElement(l,i),this._setWidthHeight(),c&&c(this,a)},this,i&&i.crossOrigin),this},toString:function(){return'#<fabric.Image: { src: "'+this.getSrc()+'" }>'},applyResizeFilters:function(){var s=this.resizeFilter,c=this.minimumScaleTrigger,i=this.getTotalObjectScaling(),l=i.scaleX,a=i.scaleY,h=this._filteredEl||this._originalElement;if(this.group&&this.set("dirty",!0),!s||l>c&&a>c){this._element=h,this._filterScalingX=1,this._filterScalingY=1,this._lastScaleX=l,this._lastScaleY=a;return}t.filterBackend||(t.filterBackend=t.initFilterBackend());var g=t.util.createCanvasElement(),d=this._filteredEl?this.cacheKey+"_filtered":this.cacheKey,A=h.width,y=h.height;g.width=A,g.height=y,this._element=g,this._lastScaleX=s.scaleX=l,this._lastScaleY=s.scaleY=a,t.filterBackend.applyFilters([s],h,A,y,this._element,d),this._filterScalingX=g.width/this._originalElement.width,this._filterScalingY=g.height/this._originalElement.height},applyFilters:function(s){if(s=s||this.filters||[],s=s.filter(function(h){return h&&!h.isNeutralState()}),this.set("dirty",!0),this.removeTexture(this.cacheKey+"_filtered"),s.length===0)return this._element=this._originalElement,this._filteredEl=null,this._filterScalingX=1,this._filterScalingY=1,this;var c=this._originalElement,i=c.naturalWidth||c.width,l=c.naturalHeight||c.height;if(this._element===this._originalElement){var a=t.util.createCanvasElement();a.width=i,a.height=l,this._element=a,this._filteredEl=a}else this._element=this._filteredEl,this._filteredEl.getContext("2d").clearRect(0,0,i,l),this._lastScaleX=1,this._lastScaleY=1;return t.filterBackend||(t.filterBackend=t.initFilterBackend()),t.filterBackend.applyFilters(s,this._originalElement,i,l,this._element,this.cacheKey),(this._originalElement.width!==this._element.width||this._originalElement.height!==this._element.height)&&(this._filterScalingX=this._element.width/this._originalElement.width,this._filterScalingY=this._element.height/this._originalElement.height),this},_render:function(s){t.util.setImageSmoothing(s,this.imageSmoothing),this.isMoving!==!0&&this.resizeFilter&&this._needsResize()&&this.applyResizeFilters(),this._stroke(s),this._renderPaintInOrder(s)},drawCacheOnCanvas:function(s){t.util.setImageSmoothing(s,this.imageSmoothing),t.Object.prototype.drawCacheOnCanvas.call(this,s)},shouldCache:function(){return this.needsItsOwnCache()},_renderFill:function(s){var c=this._element;if(c){var i=this._filterScalingX,l=this._filterScalingY,a=this.width,h=this.height,g=Math.min,d=Math.max,A=d(this.cropX,0),y=d(this.cropY,0),m=c.naturalWidth||c.width,_=c.naturalHeight||c.height,w=A*i,S=y*l,O=g(a*i,m-w),P=g(h*l,_-S),N=-a/2,q=-h/2,Z=g(a,m/i-A),K=g(h,_/l-y);c&&s.drawImage(c,w,S,O,P,N,q,Z,K)}},_needsResize:function(){var s=this.getTotalObjectScaling();return s.scaleX!==this._lastScaleX||s.scaleY!==this._lastScaleY},_resetWidthHeight:function(){this.set(this.getOriginalSize())},_initElement:function(s,c){this.setElement(t.util.getById(s),c),t.util.addClass(this.getElement(),t.Image.CSS_CANVAS)},_initConfig:function(s){s||(s={}),this.setOptions(s),this._setWidthHeight(s)},_initFilters:function(s,c){s&&s.length?t.util.enlivenObjects(s,function(i){c&&c(i)},"fabric.Image.filters"):c&&c()},_setWidthHeight:function(s){s||(s={});var c=this.getElement();this.width=s.width||c.naturalWidth||c.width||0,this.height=s.height||c.naturalHeight||c.height||0},parsePreserveAspectRatioAttribute:function(){var s=t.util.parsePreserveAspectRatioAttribute(this.preserveAspectRatio||""),c=this._element.width,i=this._element.height,l=1,a=1,h=0,g=0,d=0,A=0,y,m=this.width,_=this.height,w={width:m,height:_};return s&&(s.alignX!=="none"||s.alignY!=="none")?(s.meetOrSlice==="meet"&&(l=a=t.util.findScaleToFit(this._element,w),y=(m-c*l)/2,s.alignX==="Min"&&(h=-y),s.alignX==="Max"&&(h=y),y=(_-i*a)/2,s.alignY==="Min"&&(g=-y),s.alignY==="Max"&&(g=y)),s.meetOrSlice==="slice"&&(l=a=t.util.findScaleToCover(this._element,w),y=c-m/l,s.alignX==="Mid"&&(d=y/2),s.alignX==="Max"&&(d=y),y=i-_/a,s.alignY==="Mid"&&(A=y/2),s.alignY==="Max"&&(A=y),c=m/l,i=_/a)):(l=m/c,a=_/i),{width:c,height:i,scaleX:l,scaleY:a,offsetLeft:h,offsetTop:g,cropX:d,cropY:A}}}),t.Image.CSS_CANVAS="canvas-img",t.Image.prototype.getSvgSrc=t.Image.prototype.getSrc,t.Image.fromObject=function(s,c){var i=t.util.object.clone(s);t.util.loadImage(i.src,function(l,a){if(a){c&&c(null,!0);return}t.Image.prototype._initFilters.call(i,i.filters,function(h){i.filters=h||[],t.Image.prototype._initFilters.call(i,[i.resizeFilter],function(g){i.resizeFilter=g[0],t.util.enlivenObjectEnlivables(i,i,function(){var d=new t.Image(l,i);c(d,!1)})})})},null,i.crossOrigin)},t.Image.fromURL=function(s,c,i){t.util.loadImage(s,function(l,a){c&&c(new t.Image(l,i),a)},null,i&&i.crossOrigin)},t.Image.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("x y width height preserveAspectRatio xlink:href crossOrigin image-rendering".split(" ")),t.Image.fromElement=function(s,c,i){var l=t.parseAttributes(s,t.Image.ATTRIBUTE_NAMES);t.Image.fromURL(l["xlink:href"],c,o(i?t.util.object.clone(i):{},l))}})(e),t.util.object.extend(t.Object.prototype,{_getAngleValueForStraighten:function(){var u=this.angle%360;return u>0?Math.round((u-1)/90)*90:Math.round(u/90)*90},straighten:function(){return this.rotate(this._getAngleValueForStraighten())},fxStraighten:function(u){u=u||{};var o=function(){},s=u.onComplete||o,c=u.onChange||o,i=this;return t.util.animate({target:this,startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(l){i.rotate(l),c()},onComplete:function(){i.setCoords(),s()}})}}),t.util.object.extend(t.StaticCanvas.prototype,{straightenObject:function(u){return u.straighten(),this.requestRenderAll(),this},fxStraightenObject:function(u){return u.fxStraighten({onChange:this.requestRenderAllBound})}}),(function(){function u(s,c){var i="precision "+c+` float;
65
+ void main(){}`,l=s.createShader(s.FRAGMENT_SHADER);return s.shaderSource(l,i),s.compileShader(l),!!s.getShaderParameter(l,s.COMPILE_STATUS)}t.isWebglSupported=function(s){if(t.isLikelyNode)return!1;s=s||t.WebglFilterBackend.prototype.tileSize;var c=document.createElement("canvas"),i=c.getContext("webgl")||c.getContext("experimental-webgl"),l=!1;if(i){t.maxTextureSize=i.getParameter(i.MAX_TEXTURE_SIZE),l=t.maxTextureSize>=s;for(var a=["highp","mediump","lowp"],h=0;h<3;h++)if(u(i,a[h])){t.webGlPrecision=a[h];break}}return this.isSupported=l,l},t.WebglFilterBackend=o;function o(s){s&&s.tileSize&&(this.tileSize=s.tileSize),this.setupGLContext(this.tileSize,this.tileSize),this.captureGPUInfo()}o.prototype={tileSize:2048,resources:{},setupGLContext:function(s,c){this.dispose(),this.createWebGLCanvas(s,c),this.aPosition=new Float32Array([0,0,0,1,1,0,1,1]),this.chooseFastestCopyGLTo2DMethod(s,c)},chooseFastestCopyGLTo2DMethod:function(s,c){var i=typeof window.performance<"u",l;try{new ImageData(1,1),l=!0}catch{l=!1}var a=typeof ArrayBuffer<"u",h=typeof Uint8ClampedArray<"u";if(i&&l&&a&&h){var g=t.util.createCanvasElement(),d=new ArrayBuffer(s*c*4);if(t.forceGLPutImageData){this.imageBuffer=d,this.copyGLTo2D=v;return}var A={imageBuffer:d,destinationWidth:s,destinationHeight:c,targetCanvas:g},y,m,_;g.width=s,g.height=c,y=window.performance.now(),p.call(A,this.gl,A),m=window.performance.now()-y,y=window.performance.now(),v.call(A,this.gl,A),_=window.performance.now()-y,m>_?(this.imageBuffer=d,this.copyGLTo2D=v):this.copyGLTo2D=p}},createWebGLCanvas:function(s,c){var i=t.util.createCanvasElement();i.width=s,i.height=c;var l={alpha:!0,premultipliedAlpha:!1,depth:!1,stencil:!1,antialias:!1},a=i.getContext("webgl",l);a||(a=i.getContext("experimental-webgl",l)),a&&(a.clearColor(0,0,0,0),this.canvas=i,this.gl=a)},applyFilters:function(s,c,i,l,a,h){var g=this.gl,d;h&&(d=this.getCachedTexture(h,c));var A={originalWidth:c.width||c.originalWidth,originalHeight:c.height||c.originalHeight,sourceWidth:i,sourceHeight:l,destinationWidth:i,destinationHeight:l,context:g,sourceTexture:this.createTexture(g,i,l,!d&&c),targetTexture:this.createTexture(g,i,l),originalTexture:d||this.createTexture(g,i,l,!d&&c),passes:s.length,webgl:!0,aPosition:this.aPosition,programCache:this.programCache,pass:0,filterBackend:this,targetCanvas:a},y=g.createFramebuffer();return g.bindFramebuffer(g.FRAMEBUFFER,y),s.forEach(function(m){m&&m.applyTo(A)}),f(A),this.copyGLTo2D(g,A),g.bindTexture(g.TEXTURE_2D,null),g.deleteTexture(A.sourceTexture),g.deleteTexture(A.targetTexture),g.deleteFramebuffer(y),a.getContext("2d").setTransform(1,0,0,1,0,0),A},dispose:function(){this.canvas&&(this.canvas=null,this.gl=null),this.clearWebGLCaches()},clearWebGLCaches:function(){this.programCache={},this.textureCache={}},createTexture:function(s,c,i,l,a){var h=s.createTexture();return s.bindTexture(s.TEXTURE_2D,h),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,a||s.NEAREST),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,a||s.NEAREST),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),l?s.texImage2D(s.TEXTURE_2D,0,s.RGBA,s.RGBA,s.UNSIGNED_BYTE,l):s.texImage2D(s.TEXTURE_2D,0,s.RGBA,c,i,0,s.RGBA,s.UNSIGNED_BYTE,null),h},getCachedTexture:function(s,c){if(this.textureCache[s])return this.textureCache[s];var i=this.createTexture(this.gl,c.width,c.height,c);return this.textureCache[s]=i,i},evictCachesForKey:function(s){this.textureCache[s]&&(this.gl.deleteTexture(this.textureCache[s]),delete this.textureCache[s])},copyGLTo2D:p,captureGPUInfo:function(){if(this.gpuInfo)return this.gpuInfo;var s=this.gl,c={renderer:"",vendor:""};if(!s)return c;var i=s.getExtension("WEBGL_debug_renderer_info");if(i){var l=s.getParameter(i.UNMASKED_RENDERER_WEBGL),a=s.getParameter(i.UNMASKED_VENDOR_WEBGL);l&&(c.renderer=l.toLowerCase()),a&&(c.vendor=a.toLowerCase())}return this.gpuInfo=c,c}}})();function f(u){var o=u.targetCanvas,s=o.width,c=o.height,i=u.destinationWidth,l=u.destinationHeight;(s!==i||c!==l)&&(o.width=i,o.height=l)}function p(u,o){var s=u.canvas,c=o.targetCanvas,i=c.getContext("2d");i.translate(0,c.height),i.scale(1,-1);var l=s.height-c.height;i.drawImage(s,0,l,c.width,c.height,0,0,c.width,c.height)}function v(u,o){var s=o.targetCanvas,c=s.getContext("2d"),i=o.destinationWidth,l=o.destinationHeight,a=i*l*4,h=new Uint8Array(this.imageBuffer,0,a),g=new Uint8ClampedArray(this.imageBuffer,0,a);u.readPixels(0,0,i,l,u.RGBA,u.UNSIGNED_BYTE,h);var d=new ImageData(g,i,l);c.putImageData(d,0,0)}(function(){var u=function(){};t.Canvas2dFilterBackend=o;function o(){}o.prototype={evictCachesForKey:u,dispose:u,clearWebGLCaches:u,resources:{},applyFilters:function(s,c,i,l,a){var h=a.getContext("2d");h.drawImage(c,0,0,i,l);var g=h.getImageData(0,0,i,l),d=h.getImageData(0,0,i,l),A={sourceWidth:i,sourceHeight:l,imageData:g,originalEl:c,originalImageData:d,canvasEl:a,ctx:h,filterBackend:this};return s.forEach(function(y){y.applyTo(A)}),(A.imageData.width!==i||A.imageData.height!==l)&&(a.width=A.imageData.width,a.height=A.imageData.height),h.putImageData(A.imageData,0,0),A}}})(),t.Image=t.Image||{},t.Image.filters=t.Image.filters||{},t.Image.filters.BaseFilter=t.util.createClass({type:"BaseFilter",vertexSource:`attribute vec2 aPosition;
66
+ varying vec2 vTexCoord;
67
+ void main() {
68
+ vTexCoord = aPosition;
69
+ gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);
70
+ }`,fragmentSource:`precision highp float;
71
+ varying vec2 vTexCoord;
72
+ uniform sampler2D uTexture;
73
+ void main() {
74
+ gl_FragColor = texture2D(uTexture, vTexCoord);
75
+ }`,initialize:function(u){u&&this.setOptions(u)},setOptions:function(u){for(var o in u)this[o]=u[o]},createProgram:function(u,o,s){o=o||this.fragmentSource,s=s||this.vertexSource,t.webGlPrecision!=="highp"&&(o=o.replace(/precision highp float/g,"precision "+t.webGlPrecision+" float"));var c=u.createShader(u.VERTEX_SHADER);if(u.shaderSource(c,s),u.compileShader(c),!u.getShaderParameter(c,u.COMPILE_STATUS))throw new Error("Vertex shader compile error for "+this.type+": "+u.getShaderInfoLog(c));var i=u.createShader(u.FRAGMENT_SHADER);if(u.shaderSource(i,o),u.compileShader(i),!u.getShaderParameter(i,u.COMPILE_STATUS))throw new Error("Fragment shader compile error for "+this.type+": "+u.getShaderInfoLog(i));var l=u.createProgram();if(u.attachShader(l,c),u.attachShader(l,i),u.linkProgram(l),!u.getProgramParameter(l,u.LINK_STATUS))throw new Error('Shader link error for "${this.type}" '+u.getProgramInfoLog(l));var a=this.getAttributeLocations(u,l),h=this.getUniformLocations(u,l)||{};return h.uStepW=u.getUniformLocation(l,"uStepW"),h.uStepH=u.getUniformLocation(l,"uStepH"),{program:l,attributeLocations:a,uniformLocations:h}},getAttributeLocations:function(u,o){return{aPosition:u.getAttribLocation(o,"aPosition")}},getUniformLocations:function(){return{}},sendAttributeData:function(u,o,s){var c=o.aPosition,i=u.createBuffer();u.bindBuffer(u.ARRAY_BUFFER,i),u.enableVertexAttribArray(c),u.vertexAttribPointer(c,2,u.FLOAT,!1,0,0),u.bufferData(u.ARRAY_BUFFER,s,u.STATIC_DRAW)},_setupFrameBuffer:function(u){var o=u.context,s,c;u.passes>1?(s=u.destinationWidth,c=u.destinationHeight,(u.sourceWidth!==s||u.sourceHeight!==c)&&(o.deleteTexture(u.targetTexture),u.targetTexture=u.filterBackend.createTexture(o,s,c)),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,u.targetTexture,0)):(o.bindFramebuffer(o.FRAMEBUFFER,null),o.finish())},_swapTextures:function(u){u.passes--,u.pass++;var o=u.targetTexture;u.targetTexture=u.sourceTexture,u.sourceTexture=o},isNeutralState:function(){var u=this.mainParameter,o=t.Image.filters[this.type].prototype;if(u)if(Array.isArray(o[u])){for(var s=o[u].length;s--;)if(this[u][s]!==o[u][s])return!1;return!0}else return o[u]===this[u];else return!1},applyTo:function(u){u.webgl?(this._setupFrameBuffer(u),this.applyToWebGL(u),this._swapTextures(u)):this.applyTo2d(u)},retrieveShader:function(u){return u.programCache.hasOwnProperty(this.type)||(u.programCache[this.type]=this.createProgram(u.context)),u.programCache[this.type]},applyToWebGL:function(u){var o=u.context,s=this.retrieveShader(u);u.pass===0&&u.originalTexture?o.bindTexture(o.TEXTURE_2D,u.originalTexture):o.bindTexture(o.TEXTURE_2D,u.sourceTexture),o.useProgram(s.program),this.sendAttributeData(o,s.attributeLocations,u.aPosition),o.uniform1f(s.uniformLocations.uStepW,1/u.sourceWidth),o.uniform1f(s.uniformLocations.uStepH,1/u.sourceHeight),this.sendUniformData(o,s.uniformLocations),o.viewport(0,0,u.destinationWidth,u.destinationHeight),o.drawArrays(o.TRIANGLE_STRIP,0,4)},bindAdditionalTexture:function(u,o,s){u.activeTexture(s),u.bindTexture(u.TEXTURE_2D,o),u.activeTexture(u.TEXTURE0)},unbindAdditionalTexture:function(u,o){u.activeTexture(o),u.bindTexture(u.TEXTURE_2D,null),u.activeTexture(u.TEXTURE0)},getMainParameter:function(){return this[this.mainParameter]},setMainParameter:function(u){this[this.mainParameter]=u},sendUniformData:function(){},createHelpLayer:function(u){if(!u.helpLayer){var o=document.createElement("canvas");o.width=u.sourceWidth,o.height=u.sourceHeight,u.helpLayer=o}},toObject:function(){var u={type:this.type},o=this.mainParameter;return o&&(u[o]=this[o]),u},toJSON:function(){return this.toObject()}}),t.Image.filters.BaseFilter.fromObject=function(u,o){var s=new t.Image.filters[u.type](u);return o&&o(s),s},(function(u){var o=u.fabric||(u.fabric={}),s=o.Image.filters,c=o.util.createClass;s.ColorMatrix=c(s.BaseFilter,{type:"ColorMatrix",fragmentSource:`precision highp float;
76
+ uniform sampler2D uTexture;
77
+ varying vec2 vTexCoord;
78
+ uniform mat4 uColorMatrix;
79
+ uniform vec4 uConstants;
80
+ void main() {
81
+ vec4 color = texture2D(uTexture, vTexCoord);
82
+ color *= uColorMatrix;
83
+ color += uConstants;
84
+ gl_FragColor = color;
85
+ }`,matrix:[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],mainParameter:"matrix",colorsOnly:!0,initialize:function(i){this.callSuper("initialize",i),this.matrix=this.matrix.slice(0)},applyTo2d:function(i){var l=i.imageData,a=l.data,h=a.length,g=this.matrix,d,A,y,m,_,w=this.colorsOnly;for(_=0;_<h;_+=4)d=a[_],A=a[_+1],y=a[_+2],w?(a[_]=d*g[0]+A*g[1]+y*g[2]+g[4]*255,a[_+1]=d*g[5]+A*g[6]+y*g[7]+g[9]*255,a[_+2]=d*g[10]+A*g[11]+y*g[12]+g[14]*255):(m=a[_+3],a[_]=d*g[0]+A*g[1]+y*g[2]+m*g[3]+g[4]*255,a[_+1]=d*g[5]+A*g[6]+y*g[7]+m*g[8]+g[9]*255,a[_+2]=d*g[10]+A*g[11]+y*g[12]+m*g[13]+g[14]*255,a[_+3]=d*g[15]+A*g[16]+y*g[17]+m*g[18]+g[19]*255)},getUniformLocations:function(i,l){return{uColorMatrix:i.getUniformLocation(l,"uColorMatrix"),uConstants:i.getUniformLocation(l,"uConstants")}},sendUniformData:function(i,l){var a=this.matrix,h=[a[0],a[1],a[2],a[3],a[5],a[6],a[7],a[8],a[10],a[11],a[12],a[13],a[15],a[16],a[17],a[18]],g=[a[4],a[9],a[14],a[19]];i.uniformMatrix4fv(l.uColorMatrix,!1,h),i.uniform4fv(l.uConstants,g)}}),o.Image.filters.ColorMatrix.fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.Image.filters,c=o.util.createClass;s.Brightness=c(s.BaseFilter,{type:"Brightness",fragmentSource:`precision highp float;
86
+ uniform sampler2D uTexture;
87
+ uniform float uBrightness;
88
+ varying vec2 vTexCoord;
89
+ void main() {
90
+ vec4 color = texture2D(uTexture, vTexCoord);
91
+ color.rgb += uBrightness;
92
+ gl_FragColor = color;
93
+ }`,brightness:0,mainParameter:"brightness",applyTo2d:function(i){if(this.brightness!==0){var l=i.imageData,a=l.data,h,g=a.length,d=Math.round(this.brightness*255);for(h=0;h<g;h+=4)a[h]=a[h]+d,a[h+1]=a[h+1]+d,a[h+2]=a[h+2]+d}},getUniformLocations:function(i,l){return{uBrightness:i.getUniformLocation(l,"uBrightness")}},sendUniformData:function(i,l){i.uniform1f(l.uBrightness,this.brightness)}}),o.Image.filters.Brightness.fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.util.object.extend,c=o.Image.filters,i=o.util.createClass;c.Convolute=i(c.BaseFilter,{type:"Convolute",opaque:!1,matrix:[0,0,0,0,1,0,0,0,0],fragmentSource:{Convolute_3_1:`precision highp float;
94
+ uniform sampler2D uTexture;
95
+ uniform float uMatrix[9];
96
+ uniform float uStepW;
97
+ uniform float uStepH;
98
+ varying vec2 vTexCoord;
99
+ void main() {
100
+ vec4 color = vec4(0, 0, 0, 0);
101
+ for (float h = 0.0; h < 3.0; h+=1.0) {
102
+ for (float w = 0.0; w < 3.0; w+=1.0) {
103
+ vec2 matrixPos = vec2(uStepW * (w - 1), uStepH * (h - 1));
104
+ color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 3.0 + w)];
105
+ }
106
+ }
107
+ gl_FragColor = color;
108
+ }`,Convolute_3_0:`precision highp float;
109
+ uniform sampler2D uTexture;
110
+ uniform float uMatrix[9];
111
+ uniform float uStepW;
112
+ uniform float uStepH;
113
+ varying vec2 vTexCoord;
114
+ void main() {
115
+ vec4 color = vec4(0, 0, 0, 1);
116
+ for (float h = 0.0; h < 3.0; h+=1.0) {
117
+ for (float w = 0.0; w < 3.0; w+=1.0) {
118
+ vec2 matrixPos = vec2(uStepW * (w - 1.0), uStepH * (h - 1.0));
119
+ color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 3.0 + w)];
120
+ }
121
+ }
122
+ float alpha = texture2D(uTexture, vTexCoord).a;
123
+ gl_FragColor = color;
124
+ gl_FragColor.a = alpha;
125
+ }`,Convolute_5_1:`precision highp float;
126
+ uniform sampler2D uTexture;
127
+ uniform float uMatrix[25];
128
+ uniform float uStepW;
129
+ uniform float uStepH;
130
+ varying vec2 vTexCoord;
131
+ void main() {
132
+ vec4 color = vec4(0, 0, 0, 0);
133
+ for (float h = 0.0; h < 5.0; h+=1.0) {
134
+ for (float w = 0.0; w < 5.0; w+=1.0) {
135
+ vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));
136
+ color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 5.0 + w)];
137
+ }
138
+ }
139
+ gl_FragColor = color;
140
+ }`,Convolute_5_0:`precision highp float;
141
+ uniform sampler2D uTexture;
142
+ uniform float uMatrix[25];
143
+ uniform float uStepW;
144
+ uniform float uStepH;
145
+ varying vec2 vTexCoord;
146
+ void main() {
147
+ vec4 color = vec4(0, 0, 0, 1);
148
+ for (float h = 0.0; h < 5.0; h+=1.0) {
149
+ for (float w = 0.0; w < 5.0; w+=1.0) {
150
+ vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));
151
+ color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 5.0 + w)];
152
+ }
153
+ }
154
+ float alpha = texture2D(uTexture, vTexCoord).a;
155
+ gl_FragColor = color;
156
+ gl_FragColor.a = alpha;
157
+ }`,Convolute_7_1:`precision highp float;
158
+ uniform sampler2D uTexture;
159
+ uniform float uMatrix[49];
160
+ uniform float uStepW;
161
+ uniform float uStepH;
162
+ varying vec2 vTexCoord;
163
+ void main() {
164
+ vec4 color = vec4(0, 0, 0, 0);
165
+ for (float h = 0.0; h < 7.0; h+=1.0) {
166
+ for (float w = 0.0; w < 7.0; w+=1.0) {
167
+ vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));
168
+ color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 7.0 + w)];
169
+ }
170
+ }
171
+ gl_FragColor = color;
172
+ }`,Convolute_7_0:`precision highp float;
173
+ uniform sampler2D uTexture;
174
+ uniform float uMatrix[49];
175
+ uniform float uStepW;
176
+ uniform float uStepH;
177
+ varying vec2 vTexCoord;
178
+ void main() {
179
+ vec4 color = vec4(0, 0, 0, 1);
180
+ for (float h = 0.0; h < 7.0; h+=1.0) {
181
+ for (float w = 0.0; w < 7.0; w+=1.0) {
182
+ vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));
183
+ color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 7.0 + w)];
184
+ }
185
+ }
186
+ float alpha = texture2D(uTexture, vTexCoord).a;
187
+ gl_FragColor = color;
188
+ gl_FragColor.a = alpha;
189
+ }`,Convolute_9_1:`precision highp float;
190
+ uniform sampler2D uTexture;
191
+ uniform float uMatrix[81];
192
+ uniform float uStepW;
193
+ uniform float uStepH;
194
+ varying vec2 vTexCoord;
195
+ void main() {
196
+ vec4 color = vec4(0, 0, 0, 0);
197
+ for (float h = 0.0; h < 9.0; h+=1.0) {
198
+ for (float w = 0.0; w < 9.0; w+=1.0) {
199
+ vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));
200
+ color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 9.0 + w)];
201
+ }
202
+ }
203
+ gl_FragColor = color;
204
+ }`,Convolute_9_0:`precision highp float;
205
+ uniform sampler2D uTexture;
206
+ uniform float uMatrix[81];
207
+ uniform float uStepW;
208
+ uniform float uStepH;
209
+ varying vec2 vTexCoord;
210
+ void main() {
211
+ vec4 color = vec4(0, 0, 0, 1);
212
+ for (float h = 0.0; h < 9.0; h+=1.0) {
213
+ for (float w = 0.0; w < 9.0; w+=1.0) {
214
+ vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));
215
+ color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 9.0 + w)];
216
+ }
217
+ }
218
+ float alpha = texture2D(uTexture, vTexCoord).a;
219
+ gl_FragColor = color;
220
+ gl_FragColor.a = alpha;
221
+ }`},retrieveShader:function(l){var a=Math.sqrt(this.matrix.length),h=this.type+"_"+a+"_"+(this.opaque?1:0),g=this.fragmentSource[h];return l.programCache.hasOwnProperty(h)||(l.programCache[h]=this.createProgram(l.context,g)),l.programCache[h]},applyTo2d:function(l){var a=l.imageData,h=a.data,g=this.matrix,d=Math.round(Math.sqrt(g.length)),A=Math.floor(d/2),y=a.width,m=a.height,_=l.ctx.createImageData(y,m),w=_.data,S=this.opaque?1:0,O,P,N,q,Z,K,rt,$,U,j,B,x,b;for(B=0;B<m;B++)for(j=0;j<y;j++){for(Z=(B*y+j)*4,O=0,P=0,N=0,q=0,b=0;b<d;b++)for(x=0;x<d;x++)rt=B+b-A,K=j+x-A,!(rt<0||rt>=m||K<0||K>=y)&&($=(rt*y+K)*4,U=g[b*d+x],O+=h[$]*U,P+=h[$+1]*U,N+=h[$+2]*U,S||(q+=h[$+3]*U));w[Z]=O,w[Z+1]=P,w[Z+2]=N,S?w[Z+3]=h[Z+3]:w[Z+3]=q}l.imageData=_},getUniformLocations:function(l,a){return{uMatrix:l.getUniformLocation(a,"uMatrix"),uOpaque:l.getUniformLocation(a,"uOpaque"),uHalfSize:l.getUniformLocation(a,"uHalfSize"),uSize:l.getUniformLocation(a,"uSize")}},sendUniformData:function(l,a){l.uniform1fv(a.uMatrix,this.matrix)},toObject:function(){return s(this.callSuper("toObject"),{opaque:this.opaque,matrix:this.matrix})}}),o.Image.filters.Convolute.fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.Image.filters,c=o.util.createClass;s.Grayscale=c(s.BaseFilter,{type:"Grayscale",fragmentSource:{average:`precision highp float;
222
+ uniform sampler2D uTexture;
223
+ varying vec2 vTexCoord;
224
+ void main() {
225
+ vec4 color = texture2D(uTexture, vTexCoord);
226
+ float average = (color.r + color.b + color.g) / 3.0;
227
+ gl_FragColor = vec4(average, average, average, color.a);
228
+ }`,lightness:`precision highp float;
229
+ uniform sampler2D uTexture;
230
+ uniform int uMode;
231
+ varying vec2 vTexCoord;
232
+ void main() {
233
+ vec4 col = texture2D(uTexture, vTexCoord);
234
+ float average = (max(max(col.r, col.g),col.b) + min(min(col.r, col.g),col.b)) / 2.0;
235
+ gl_FragColor = vec4(average, average, average, col.a);
236
+ }`,luminosity:`precision highp float;
237
+ uniform sampler2D uTexture;
238
+ uniform int uMode;
239
+ varying vec2 vTexCoord;
240
+ void main() {
241
+ vec4 col = texture2D(uTexture, vTexCoord);
242
+ float average = 0.21 * col.r + 0.72 * col.g + 0.07 * col.b;
243
+ gl_FragColor = vec4(average, average, average, col.a);
244
+ }`},mode:"average",mainParameter:"mode",applyTo2d:function(i){var l=i.imageData,a=l.data,h,g=a.length,d,A=this.mode;for(h=0;h<g;h+=4)A==="average"?d=(a[h]+a[h+1]+a[h+2])/3:A==="lightness"?d=(Math.min(a[h],a[h+1],a[h+2])+Math.max(a[h],a[h+1],a[h+2]))/2:A==="luminosity"&&(d=.21*a[h]+.72*a[h+1]+.07*a[h+2]),a[h]=d,a[h+1]=d,a[h+2]=d},retrieveShader:function(i){var l=this.type+"_"+this.mode;if(!i.programCache.hasOwnProperty(l)){var a=this.fragmentSource[this.mode];i.programCache[l]=this.createProgram(i.context,a)}return i.programCache[l]},getUniformLocations:function(i,l){return{uMode:i.getUniformLocation(l,"uMode")}},sendUniformData:function(i,l){var a=1;i.uniform1i(l.uMode,a)},isNeutralState:function(){return!1}}),o.Image.filters.Grayscale.fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.Image.filters,c=o.util.createClass;s.Invert=c(s.BaseFilter,{type:"Invert",fragmentSource:`precision highp float;
245
+ uniform sampler2D uTexture;
246
+ uniform int uInvert;
247
+ varying vec2 vTexCoord;
248
+ void main() {
249
+ vec4 color = texture2D(uTexture, vTexCoord);
250
+ if (uInvert == 1) {
251
+ gl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,color.a);
252
+ } else {
253
+ gl_FragColor = color;
254
+ }
255
+ }`,invert:!0,mainParameter:"invert",applyTo2d:function(i){var l=i.imageData,a=l.data,h,g=a.length;for(h=0;h<g;h+=4)a[h]=255-a[h],a[h+1]=255-a[h+1],a[h+2]=255-a[h+2]},isNeutralState:function(){return!this.invert},getUniformLocations:function(i,l){return{uInvert:i.getUniformLocation(l,"uInvert")}},sendUniformData:function(i,l){i.uniform1i(l.uInvert,this.invert)}}),o.Image.filters.Invert.fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.util.object.extend,c=o.Image.filters,i=o.util.createClass;c.Noise=i(c.BaseFilter,{type:"Noise",fragmentSource:`precision highp float;
256
+ uniform sampler2D uTexture;
257
+ uniform float uStepH;
258
+ uniform float uNoise;
259
+ uniform float uSeed;
260
+ varying vec2 vTexCoord;
261
+ float rand(vec2 co, float seed, float vScale) {
262
+ return fract(sin(dot(co.xy * vScale ,vec2(12.9898 , 78.233))) * 43758.5453 * (seed + 0.01) / 2.0);
263
+ }
264
+ void main() {
265
+ vec4 color = texture2D(uTexture, vTexCoord);
266
+ color.rgb += (0.5 - rand(vTexCoord, uSeed, 0.1 / uStepH)) * uNoise;
267
+ gl_FragColor = color;
268
+ }`,mainParameter:"noise",noise:0,applyTo2d:function(l){if(this.noise!==0){var a=l.imageData,h=a.data,g,d=h.length,A=this.noise,y;for(g=0,d=h.length;g<d;g+=4)y=(.5-Math.random())*A,h[g]+=y,h[g+1]+=y,h[g+2]+=y}},getUniformLocations:function(l,a){return{uNoise:l.getUniformLocation(a,"uNoise"),uSeed:l.getUniformLocation(a,"uSeed")}},sendUniformData:function(l,a){l.uniform1f(a.uNoise,this.noise/255),l.uniform1f(a.uSeed,Math.random())},toObject:function(){return s(this.callSuper("toObject"),{noise:this.noise})}}),o.Image.filters.Noise.fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.Image.filters,c=o.util.createClass;s.Pixelate=c(s.BaseFilter,{type:"Pixelate",blocksize:4,mainParameter:"blocksize",fragmentSource:`precision highp float;
269
+ uniform sampler2D uTexture;
270
+ uniform float uBlocksize;
271
+ uniform float uStepW;
272
+ uniform float uStepH;
273
+ varying vec2 vTexCoord;
274
+ void main() {
275
+ float blockW = uBlocksize * uStepW;
276
+ float blockH = uBlocksize * uStepW;
277
+ int posX = int(vTexCoord.x / blockW);
278
+ int posY = int(vTexCoord.y / blockH);
279
+ float fposX = float(posX);
280
+ float fposY = float(posY);
281
+ vec2 squareCoords = vec2(fposX * blockW, fposY * blockH);
282
+ vec4 color = texture2D(uTexture, squareCoords);
283
+ gl_FragColor = color;
284
+ }`,applyTo2d:function(i){var l=i.imageData,a=l.data,h=l.height,g=l.width,d,A,y,m,_,w,S,O,P,N,q;for(A=0;A<h;A+=this.blocksize)for(y=0;y<g;y+=this.blocksize)for(d=A*4*g+y*4,m=a[d],_=a[d+1],w=a[d+2],S=a[d+3],N=Math.min(A+this.blocksize,h),q=Math.min(y+this.blocksize,g),O=A;O<N;O++)for(P=y;P<q;P++)d=O*4*g+P*4,a[d]=m,a[d+1]=_,a[d+2]=w,a[d+3]=S},isNeutralState:function(){return this.blocksize===1},getUniformLocations:function(i,l){return{uBlocksize:i.getUniformLocation(l,"uBlocksize"),uStepW:i.getUniformLocation(l,"uStepW"),uStepH:i.getUniformLocation(l,"uStepH")}},sendUniformData:function(i,l){i.uniform1f(l.uBlocksize,this.blocksize)}}),o.Image.filters.Pixelate.fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.util.object.extend,c=o.Image.filters,i=o.util.createClass;c.RemoveColor=i(c.BaseFilter,{type:"RemoveColor",color:"#FFFFFF",fragmentSource:`precision highp float;
285
+ uniform sampler2D uTexture;
286
+ uniform vec4 uLow;
287
+ uniform vec4 uHigh;
288
+ varying vec2 vTexCoord;
289
+ void main() {
290
+ gl_FragColor = texture2D(uTexture, vTexCoord);
291
+ if(all(greaterThan(gl_FragColor.rgb,uLow.rgb)) && all(greaterThan(uHigh.rgb,gl_FragColor.rgb))) {
292
+ gl_FragColor.a = 0.0;
293
+ }
294
+ }`,distance:.02,useAlpha:!1,applyTo2d:function(l){var a=l.imageData,h=a.data,g,d=this.distance*255,A,y,m,_=new o.Color(this.color).getSource(),w=[_[0]-d,_[1]-d,_[2]-d],S=[_[0]+d,_[1]+d,_[2]+d];for(g=0;g<h.length;g+=4)A=h[g],y=h[g+1],m=h[g+2],A>w[0]&&y>w[1]&&m>w[2]&&A<S[0]&&y<S[1]&&m<S[2]&&(h[g+3]=0)},getUniformLocations:function(l,a){return{uLow:l.getUniformLocation(a,"uLow"),uHigh:l.getUniformLocation(a,"uHigh")}},sendUniformData:function(l,a){var h=new o.Color(this.color).getSource(),g=parseFloat(this.distance),d=[0+h[0]/255-g,0+h[1]/255-g,0+h[2]/255-g,1],A=[h[0]/255+g,h[1]/255+g,h[2]/255+g,1];l.uniform4fv(a.uLow,d),l.uniform4fv(a.uHigh,A)},toObject:function(){return s(this.callSuper("toObject"),{color:this.color,distance:this.distance})}}),o.Image.filters.RemoveColor.fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.Image.filters,c=o.util.createClass,i={Brownie:[.5997,.34553,-.27082,0,.186,-.0377,.86095,.15059,0,-.1449,.24113,-.07441,.44972,0,-.02965,0,0,0,1,0],Vintage:[.62793,.32021,-.03965,0,.03784,.02578,.64411,.03259,0,.02926,.0466,-.08512,.52416,0,.02023,0,0,0,1,0],Kodachrome:[1.12855,-.39673,-.03992,0,.24991,-.16404,1.08352,-.05498,0,.09698,-.16786,-.56034,1.60148,0,.13972,0,0,0,1,0],Technicolor:[1.91252,-.85453,-.09155,0,.04624,-.30878,1.76589,-.10601,0,-.27589,-.2311,-.75018,1.84759,0,.12137,0,0,0,1,0],Polaroid:[1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0],Sepia:[.393,.769,.189,0,0,.349,.686,.168,0,0,.272,.534,.131,0,0,0,0,0,1,0],BlackWhite:[1.5,1.5,1.5,0,-1,1.5,1.5,1.5,0,-1,1.5,1.5,1.5,0,-1,0,0,0,1,0]};for(var l in i)s[l]=c(s.ColorMatrix,{type:l,matrix:i[l],mainParameter:!1,colorsOnly:!0}),o.Image.filters[l].fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric,s=o.Image.filters,c=o.util.createClass;s.BlendColor=c(s.BaseFilter,{type:"BlendColor",color:"#F95C63",mode:"multiply",alpha:1,fragmentSource:{multiply:`gl_FragColor.rgb *= uColor.rgb;
295
+ `,screen:`gl_FragColor.rgb = 1.0 - (1.0 - gl_FragColor.rgb) * (1.0 - uColor.rgb);
296
+ `,add:`gl_FragColor.rgb += uColor.rgb;
297
+ `,diff:`gl_FragColor.rgb = abs(gl_FragColor.rgb - uColor.rgb);
298
+ `,subtract:`gl_FragColor.rgb -= uColor.rgb;
299
+ `,lighten:`gl_FragColor.rgb = max(gl_FragColor.rgb, uColor.rgb);
300
+ `,darken:`gl_FragColor.rgb = min(gl_FragColor.rgb, uColor.rgb);
301
+ `,exclusion:`gl_FragColor.rgb += uColor.rgb - 2.0 * (uColor.rgb * gl_FragColor.rgb);
302
+ `,overlay:`if (uColor.r < 0.5) {
303
+ gl_FragColor.r *= 2.0 * uColor.r;
304
+ } else {
305
+ gl_FragColor.r = 1.0 - 2.0 * (1.0 - gl_FragColor.r) * (1.0 - uColor.r);
306
+ }
307
+ if (uColor.g < 0.5) {
308
+ gl_FragColor.g *= 2.0 * uColor.g;
309
+ } else {
310
+ gl_FragColor.g = 1.0 - 2.0 * (1.0 - gl_FragColor.g) * (1.0 - uColor.g);
311
+ }
312
+ if (uColor.b < 0.5) {
313
+ gl_FragColor.b *= 2.0 * uColor.b;
314
+ } else {
315
+ gl_FragColor.b = 1.0 - 2.0 * (1.0 - gl_FragColor.b) * (1.0 - uColor.b);
316
+ }
317
+ `,tint:`gl_FragColor.rgb *= (1.0 - uColor.a);
318
+ gl_FragColor.rgb += uColor.rgb;
319
+ `},buildSource:function(i){return`precision highp float;
320
+ uniform sampler2D uTexture;
321
+ uniform vec4 uColor;
322
+ varying vec2 vTexCoord;
323
+ void main() {
324
+ vec4 color = texture2D(uTexture, vTexCoord);
325
+ gl_FragColor = color;
326
+ if (color.a > 0.0) {
327
+ `+this.fragmentSource[i]+`}
328
+ }`},retrieveShader:function(i){var l=this.type+"_"+this.mode,a;return i.programCache.hasOwnProperty(l)||(a=this.buildSource(this.mode),i.programCache[l]=this.createProgram(i.context,a)),i.programCache[l]},applyTo2d:function(i){var l=i.imageData,a=l.data,h=a.length,g,d,A,y,m,_,w,S=1-this.alpha;w=new o.Color(this.color).getSource(),g=w[0]*this.alpha,d=w[1]*this.alpha,A=w[2]*this.alpha;for(var O=0;O<h;O+=4)switch(y=a[O],m=a[O+1],_=a[O+2],this.mode){case"multiply":a[O]=y*g/255,a[O+1]=m*d/255,a[O+2]=_*A/255;break;case"screen":a[O]=255-(255-y)*(255-g)/255,a[O+1]=255-(255-m)*(255-d)/255,a[O+2]=255-(255-_)*(255-A)/255;break;case"add":a[O]=y+g,a[O+1]=m+d,a[O+2]=_+A;break;case"diff":case"difference":a[O]=Math.abs(y-g),a[O+1]=Math.abs(m-d),a[O+2]=Math.abs(_-A);break;case"subtract":a[O]=y-g,a[O+1]=m-d,a[O+2]=_-A;break;case"darken":a[O]=Math.min(y,g),a[O+1]=Math.min(m,d),a[O+2]=Math.min(_,A);break;case"lighten":a[O]=Math.max(y,g),a[O+1]=Math.max(m,d),a[O+2]=Math.max(_,A);break;case"overlay":a[O]=g<128?2*y*g/255:255-2*(255-y)*(255-g)/255,a[O+1]=d<128?2*m*d/255:255-2*(255-m)*(255-d)/255,a[O+2]=A<128?2*_*A/255:255-2*(255-_)*(255-A)/255;break;case"exclusion":a[O]=g+y-2*g*y/255,a[O+1]=d+m-2*d*m/255,a[O+2]=A+_-2*A*_/255;break;case"tint":a[O]=g+y*S,a[O+1]=d+m*S,a[O+2]=A+_*S}},getUniformLocations:function(i,l){return{uColor:i.getUniformLocation(l,"uColor")}},sendUniformData:function(i,l){var a=new o.Color(this.color).getSource();a[0]=this.alpha*a[0]/255,a[1]=this.alpha*a[1]/255,a[2]=this.alpha*a[2]/255,a[3]=this.alpha,i.uniform4fv(l.uColor,a)},toObject:function(){return{type:this.type,color:this.color,mode:this.mode,alpha:this.alpha}}}),o.Image.filters.BlendColor.fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric,s=o.Image.filters,c=o.util.createClass;s.BlendImage=c(s.BaseFilter,{type:"BlendImage",image:null,mode:"multiply",alpha:1,vertexSource:`attribute vec2 aPosition;
329
+ varying vec2 vTexCoord;
330
+ varying vec2 vTexCoord2;
331
+ uniform mat3 uTransformMatrix;
332
+ void main() {
333
+ vTexCoord = aPosition;
334
+ vTexCoord2 = (uTransformMatrix * vec3(aPosition, 1.0)).xy;
335
+ gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);
336
+ }`,fragmentSource:{multiply:`precision highp float;
337
+ uniform sampler2D uTexture;
338
+ uniform sampler2D uImage;
339
+ uniform vec4 uColor;
340
+ varying vec2 vTexCoord;
341
+ varying vec2 vTexCoord2;
342
+ void main() {
343
+ vec4 color = texture2D(uTexture, vTexCoord);
344
+ vec4 color2 = texture2D(uImage, vTexCoord2);
345
+ color.rgba *= color2.rgba;
346
+ gl_FragColor = color;
347
+ }`,mask:`precision highp float;
348
+ uniform sampler2D uTexture;
349
+ uniform sampler2D uImage;
350
+ uniform vec4 uColor;
351
+ varying vec2 vTexCoord;
352
+ varying vec2 vTexCoord2;
353
+ void main() {
354
+ vec4 color = texture2D(uTexture, vTexCoord);
355
+ vec4 color2 = texture2D(uImage, vTexCoord2);
356
+ color.a = color2.a;
357
+ gl_FragColor = color;
358
+ }`},retrieveShader:function(i){var l=this.type+"_"+this.mode,a=this.fragmentSource[this.mode];return i.programCache.hasOwnProperty(l)||(i.programCache[l]=this.createProgram(i.context,a)),i.programCache[l]},applyToWebGL:function(i){var l=i.context,a=this.createTexture(i.filterBackend,this.image);this.bindAdditionalTexture(l,a,l.TEXTURE1),this.callSuper("applyToWebGL",i),this.unbindAdditionalTexture(l,l.TEXTURE1)},createTexture:function(i,l){return i.getCachedTexture(l.cacheKey,l._element)},calculateMatrix:function(){var i=this.image,l=i._element.width,a=i._element.height;return[1/i.scaleX,0,0,0,1/i.scaleY,0,-i.left/l,-i.top/a,1]},applyTo2d:function(i){var l=i.imageData,a=i.filterBackend.resources,h=l.data,g=h.length,d=l.width,A=l.height,y,m,_,w,S,O,P,N,q,Z,K=this.image,rt;a.blendImage||(a.blendImage=o.util.createCanvasElement()),q=a.blendImage,Z=q.getContext("2d"),q.width!==d||q.height!==A?(q.width=d,q.height=A):Z.clearRect(0,0,d,A),Z.setTransform(K.scaleX,0,0,K.scaleY,K.left,K.top),Z.drawImage(K._element,0,0,d,A),rt=Z.getImageData(0,0,d,A).data;for(var $=0;$<g;$+=4)switch(S=h[$],O=h[$+1],P=h[$+2],N=h[$+3],y=rt[$],m=rt[$+1],_=rt[$+2],w=rt[$+3],this.mode){case"multiply":h[$]=S*y/255,h[$+1]=O*m/255,h[$+2]=P*_/255,h[$+3]=N*w/255;break;case"mask":h[$+3]=w;break}},getUniformLocations:function(i,l){return{uTransformMatrix:i.getUniformLocation(l,"uTransformMatrix"),uImage:i.getUniformLocation(l,"uImage")}},sendUniformData:function(i,l){var a=this.calculateMatrix();i.uniform1i(l.uImage,1),i.uniformMatrix3fv(l.uTransformMatrix,!1,a)},toObject:function(){return{type:this.type,image:this.image&&this.image.toObject(),mode:this.mode,alpha:this.alpha}}}),o.Image.filters.BlendImage.fromObject=function(i,l){o.Image.fromObject(i.image,function(a){var h=o.util.object.clone(i);h.image=a,l(new o.Image.filters.BlendImage(h))})}})(e),(function(u){var o=u.fabric||(u.fabric={}),s=Math.pow,c=Math.floor,i=Math.sqrt,l=Math.abs,a=Math.round,h=Math.sin,g=Math.ceil,d=o.Image.filters,A=o.util.createClass;d.Resize=A(d.BaseFilter,{type:"Resize",resizeType:"hermite",scaleX:1,scaleY:1,lanczosLobes:3,getUniformLocations:function(y,m){return{uDelta:y.getUniformLocation(m,"uDelta"),uTaps:y.getUniformLocation(m,"uTaps")}},sendUniformData:function(y,m){y.uniform2fv(m.uDelta,this.horizontal?[1/this.width,0]:[0,1/this.height]),y.uniform1fv(m.uTaps,this.taps)},retrieveShader:function(y){var m=this.getFilterWindow(),_=this.type+"_"+m;if(!y.programCache.hasOwnProperty(_)){var w=this.generateShader(m);y.programCache[_]=this.createProgram(y.context,w)}return y.programCache[_]},getFilterWindow:function(){var y=this.tempScale;return Math.ceil(this.lanczosLobes/y)},getTaps:function(){for(var y=this.lanczosCreate(this.lanczosLobes),m=this.tempScale,_=this.getFilterWindow(),w=new Array(_),S=1;S<=_;S++)w[S-1]=y(S*m);return w},generateShader:function(y){for(var m=new Array(y),_=this.fragmentSourceTOP,y,w=1;w<=y;w++)m[w-1]=w+".0 * uDelta";return _+="uniform float uTaps["+y+`];
359
+ `,_+=`void main() {
360
+ `,_+=` vec4 color = texture2D(uTexture, vTexCoord);
361
+ `,_+=` float sum = 1.0;
362
+ `,m.forEach(function(S,O){_+=" color += texture2D(uTexture, vTexCoord + "+S+") * uTaps["+O+`];
363
+ `,_+=" color += texture2D(uTexture, vTexCoord - "+S+") * uTaps["+O+`];
364
+ `,_+=" sum += 2.0 * uTaps["+O+`];
365
+ `}),_+=` gl_FragColor = color / sum;
366
+ `,_+="}",_},fragmentSourceTOP:`precision highp float;
367
+ uniform sampler2D uTexture;
368
+ uniform vec2 uDelta;
369
+ varying vec2 vTexCoord;
370
+ `,applyTo:function(y){y.webgl?(y.passes++,this.width=y.sourceWidth,this.horizontal=!0,this.dW=Math.round(this.width*this.scaleX),this.dH=y.sourceHeight,this.tempScale=this.dW/this.width,this.taps=this.getTaps(),y.destinationWidth=this.dW,this._setupFrameBuffer(y),this.applyToWebGL(y),this._swapTextures(y),y.sourceWidth=y.destinationWidth,this.height=y.sourceHeight,this.horizontal=!1,this.dH=Math.round(this.height*this.scaleY),this.tempScale=this.dH/this.height,this.taps=this.getTaps(),y.destinationHeight=this.dH,this._setupFrameBuffer(y),this.applyToWebGL(y),this._swapTextures(y),y.sourceHeight=y.destinationHeight):this.applyTo2d(y)},isNeutralState:function(){return this.scaleX===1&&this.scaleY===1},lanczosCreate:function(y){return function(m){if(m>=y||m<=-y)return 0;if(m<11920929e-14&&m>-11920929e-14)return 1;m*=Math.PI;var _=m/y;return h(m)/m*h(_)/_}},applyTo2d:function(y){var m=y.imageData,_=this.scaleX,w=this.scaleY;this.rcpScaleX=1/_,this.rcpScaleY=1/w;var S=m.width,O=m.height,P=a(S*_),N=a(O*w),q;this.resizeType==="sliceHack"?q=this.sliceByTwo(y,S,O,P,N):this.resizeType==="hermite"?q=this.hermiteFastResize(y,S,O,P,N):this.resizeType==="bilinear"?q=this.bilinearFiltering(y,S,O,P,N):this.resizeType==="lanczos"&&(q=this.lanczosResize(y,S,O,P,N)),y.imageData=q},sliceByTwo:function(y,m,_,w,S){var O=y.imageData,P=.5,N=!1,q=!1,Z=m*P,K=_*P,rt=o.filterBackend.resources,$,U,j=0,B=0,x=m,b=0;for(rt.sliceByTwo||(rt.sliceByTwo=document.createElement("canvas")),$=rt.sliceByTwo,($.width<m*1.5||$.height<_)&&($.width=m*1.5,$.height=_),U=$.getContext("2d"),U.clearRect(0,0,m*1.5,_),U.putImageData(O,0,0),w=c(w),S=c(S);!N||!q;)m=Z,_=K,w<c(Z*P)?Z=c(Z*P):(Z=w,N=!0),S<c(K*P)?K=c(K*P):(K=S,q=!0),U.drawImage($,j,B,m,_,x,b,Z,K),j=x,B=b,b+=K;return U.getImageData(j,B,w,S)},lanczosResize:function(y,m,_,w,S){function O(E){var I,M,k,T,Q,H,Y,W,J,tt,F;for(b.x=(E+.5)*K,C.x=c(b.x),I=0;I<S;I++){for(b.y=(I+.5)*rt,C.y=c(b.y),Q=0,H=0,Y=0,W=0,J=0,M=C.x-j;M<=C.x+j;M++)if(!(M<0||M>=m)){tt=c(1e3*l(M-b.x)),x[tt]||(x[tt]={});for(var L=C.y-B;L<=C.y+B;L++)L<0||L>=_||(F=c(1e3*l(L-b.y)),x[tt][F]||(x[tt][F]=Z(i(s(tt*$,2)+s(F*U,2))/1e3)),k=x[tt][F],k>0&&(T=(L*m+M)*4,Q+=k,H+=k*P[T],Y+=k*P[T+1],W+=k*P[T+2],J+=k*P[T+3]))}T=(I*w+E)*4,q[T]=H/Q,q[T+1]=Y/Q,q[T+2]=W/Q,q[T+3]=J/Q}return++E<w?O(E):N}var P=y.imageData.data,N=y.ctx.createImageData(w,S),q=N.data,Z=this.lanczosCreate(this.lanczosLobes),K=this.rcpScaleX,rt=this.rcpScaleY,$=2/this.rcpScaleX,U=2/this.rcpScaleY,j=g(K*this.lanczosLobes/2),B=g(rt*this.lanczosLobes/2),x={},b={},C={};return O(0)},bilinearFiltering:function(y,m,_,w,S){var O,P,N,q,Z,K,rt,$,U,j,B,x,b=0,C,E=this.rcpScaleX,I=this.rcpScaleY,M=4*(m-1),k=y.imageData,T=k.data,Q=y.ctx.createImageData(w,S),H=Q.data;for(rt=0;rt<S;rt++)for($=0;$<w;$++)for(Z=c(E*$),K=c(I*rt),U=E*$-Z,j=I*rt-K,C=4*(K*m+Z),B=0;B<4;B++)O=T[C+B],P=T[C+4+B],N=T[C+M+B],q=T[C+M+4+B],x=O*(1-U)*(1-j)+P*U*(1-j)+N*j*(1-U)+q*U*j,H[b++]=x;return Q},hermiteFastResize:function(y,m,_,w,S){for(var O=this.rcpScaleX,P=this.rcpScaleY,N=g(O/2),q=g(P/2),Z=y.imageData,K=Z.data,rt=y.ctx.createImageData(w,S),$=rt.data,U=0;U<S;U++)for(var j=0;j<w;j++){for(var B=(j+U*w)*4,x=0,b=0,C=0,E=0,I=0,M=0,k=0,T=(U+.5)*P,Q=c(U*P);Q<(U+1)*P;Q++)for(var H=l(T-(Q+.5))/q,Y=(j+.5)*O,W=H*H,J=c(j*O);J<(j+1)*O;J++){var tt=l(Y-(J+.5))/N,F=i(W+tt*tt);F>1&&F<-1||(x=2*F*F*F-3*F*F+1,x>0&&(tt=4*(J+Q*m),k+=x*K[tt+3],C+=x,K[tt+3]<255&&(x=x*K[tt+3]/250),E+=x*K[tt],I+=x*K[tt+1],M+=x*K[tt+2],b+=x))}$[B]=E/b,$[B+1]=I/b,$[B+2]=M/b,$[B+3]=k/C}return rt},toObject:function(){return{type:this.type,scaleX:this.scaleX,scaleY:this.scaleY,resizeType:this.resizeType,lanczosLobes:this.lanczosLobes}}}),o.Image.filters.Resize.fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.Image.filters,c=o.util.createClass;s.Contrast=c(s.BaseFilter,{type:"Contrast",fragmentSource:`precision highp float;
371
+ uniform sampler2D uTexture;
372
+ uniform float uContrast;
373
+ varying vec2 vTexCoord;
374
+ void main() {
375
+ vec4 color = texture2D(uTexture, vTexCoord);
376
+ float contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));
377
+ color.rgb = contrastF * (color.rgb - 0.5) + 0.5;
378
+ gl_FragColor = color;
379
+ }`,contrast:0,mainParameter:"contrast",applyTo2d:function(i){if(this.contrast!==0){var l=i.imageData,a,g,h=l.data,g=h.length,d=Math.floor(this.contrast*255),A=259*(d+255)/(255*(259-d));for(a=0;a<g;a+=4)h[a]=A*(h[a]-128)+128,h[a+1]=A*(h[a+1]-128)+128,h[a+2]=A*(h[a+2]-128)+128}},getUniformLocations:function(i,l){return{uContrast:i.getUniformLocation(l,"uContrast")}},sendUniformData:function(i,l){i.uniform1f(l.uContrast,this.contrast)}}),o.Image.filters.Contrast.fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.Image.filters,c=o.util.createClass;s.Saturation=c(s.BaseFilter,{type:"Saturation",fragmentSource:`precision highp float;
380
+ uniform sampler2D uTexture;
381
+ uniform float uSaturation;
382
+ varying vec2 vTexCoord;
383
+ void main() {
384
+ vec4 color = texture2D(uTexture, vTexCoord);
385
+ float rgMax = max(color.r, color.g);
386
+ float rgbMax = max(rgMax, color.b);
387
+ color.r += rgbMax != color.r ? (rgbMax - color.r) * uSaturation : 0.00;
388
+ color.g += rgbMax != color.g ? (rgbMax - color.g) * uSaturation : 0.00;
389
+ color.b += rgbMax != color.b ? (rgbMax - color.b) * uSaturation : 0.00;
390
+ gl_FragColor = color;
391
+ }`,saturation:0,mainParameter:"saturation",applyTo2d:function(i){if(this.saturation!==0){var l=i.imageData,a=l.data,h=a.length,g=-this.saturation,d,A;for(d=0;d<h;d+=4)A=Math.max(a[d],a[d+1],a[d+2]),a[d]+=A!==a[d]?(A-a[d])*g:0,a[d+1]+=A!==a[d+1]?(A-a[d+1])*g:0,a[d+2]+=A!==a[d+2]?(A-a[d+2])*g:0}},getUniformLocations:function(i,l){return{uSaturation:i.getUniformLocation(l,"uSaturation")}},sendUniformData:function(i,l){i.uniform1f(l.uSaturation,-this.saturation)}}),o.Image.filters.Saturation.fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.Image.filters,c=o.util.createClass;s.Vibrance=c(s.BaseFilter,{type:"Vibrance",fragmentSource:`precision highp float;
392
+ uniform sampler2D uTexture;
393
+ uniform float uVibrance;
394
+ varying vec2 vTexCoord;
395
+ void main() {
396
+ vec4 color = texture2D(uTexture, vTexCoord);
397
+ float max = max(color.r, max(color.g, color.b));
398
+ float avg = (color.r + color.g + color.b) / 3.0;
399
+ float amt = (abs(max - avg) * 2.0) * uVibrance;
400
+ color.r += max != color.r ? (max - color.r) * amt : 0.00;
401
+ color.g += max != color.g ? (max - color.g) * amt : 0.00;
402
+ color.b += max != color.b ? (max - color.b) * amt : 0.00;
403
+ gl_FragColor = color;
404
+ }`,vibrance:0,mainParameter:"vibrance",applyTo2d:function(i){if(this.vibrance!==0){var l=i.imageData,a=l.data,h=a.length,g=-this.vibrance,d,A,y,m;for(d=0;d<h;d+=4)A=Math.max(a[d],a[d+1],a[d+2]),y=(a[d]+a[d+1]+a[d+2])/3,m=Math.abs(A-y)*2/255*g,a[d]+=A!==a[d]?(A-a[d])*m:0,a[d+1]+=A!==a[d+1]?(A-a[d+1])*m:0,a[d+2]+=A!==a[d+2]?(A-a[d+2])*m:0}},getUniformLocations:function(i,l){return{uVibrance:i.getUniformLocation(l,"uVibrance")}},sendUniformData:function(i,l){i.uniform1f(l.uVibrance,-this.vibrance)}}),o.Image.filters.Vibrance.fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.Image.filters,c=o.util.createClass;s.Blur=c(s.BaseFilter,{type:"Blur",fragmentSource:`precision highp float;
405
+ uniform sampler2D uTexture;
406
+ uniform vec2 uDelta;
407
+ varying vec2 vTexCoord;
408
+ const float nSamples = 15.0;
409
+ vec3 v3offset = vec3(12.9898, 78.233, 151.7182);
410
+ float random(vec3 scale) {
411
+ return fract(sin(dot(gl_FragCoord.xyz, scale)) * 43758.5453);
412
+ }
413
+ void main() {
414
+ vec4 color = vec4(0.0);
415
+ float total = 0.0;
416
+ float offset = random(v3offset);
417
+ for (float t = -nSamples; t <= nSamples; t++) {
418
+ float percent = (t + offset - 0.5) / nSamples;
419
+ float weight = 1.0 - abs(percent);
420
+ color += texture2D(uTexture, vTexCoord + uDelta * percent) * weight;
421
+ total += weight;
422
+ }
423
+ gl_FragColor = color / total;
424
+ }`,blur:0,mainParameter:"blur",applyTo:function(i){i.webgl?(this.aspectRatio=i.sourceWidth/i.sourceHeight,i.passes++,this._setupFrameBuffer(i),this.horizontal=!0,this.applyToWebGL(i),this._swapTextures(i),this._setupFrameBuffer(i),this.horizontal=!1,this.applyToWebGL(i),this._swapTextures(i)):this.applyTo2d(i)},applyTo2d:function(i){i.imageData=this.simpleBlur(i)},simpleBlur:function(i){var l=i.filterBackend.resources,a,h,g=i.imageData.width,d=i.imageData.height;l.blurLayer1||(l.blurLayer1=o.util.createCanvasElement(),l.blurLayer2=o.util.createCanvasElement()),a=l.blurLayer1,h=l.blurLayer2,(a.width!==g||a.height!==d)&&(h.width=a.width=g,h.height=a.height=d);var A=a.getContext("2d"),y=h.getContext("2d"),m=15,_,w,S,O,P=this.blur*.06*.5;for(A.putImageData(i.imageData,0,0),y.clearRect(0,0,g,d),O=-m;O<=m;O++)_=(Math.random()-.5)/4,w=O/m,S=P*w*g+_,y.globalAlpha=1-Math.abs(w),y.drawImage(a,S,_),A.drawImage(h,0,0),y.globalAlpha=1,y.clearRect(0,0,h.width,h.height);for(O=-m;O<=m;O++)_=(Math.random()-.5)/4,w=O/m,S=P*w*d+_,y.globalAlpha=1-Math.abs(w),y.drawImage(a,_,S),A.drawImage(h,0,0),y.globalAlpha=1,y.clearRect(0,0,h.width,h.height);i.ctx.drawImage(a,0,0);var N=i.ctx.getImageData(0,0,a.width,a.height);return A.globalAlpha=1,A.clearRect(0,0,a.width,a.height),N},getUniformLocations:function(i,l){return{delta:i.getUniformLocation(l,"uDelta")}},sendUniformData:function(i,l){var a=this.chooseRightDelta();i.uniform2fv(l.delta,a)},chooseRightDelta:function(){var i=1,l=[0,0],a;return this.horizontal?this.aspectRatio>1&&(i=1/this.aspectRatio):this.aspectRatio<1&&(i=this.aspectRatio),a=i*this.blur*.12,this.horizontal?l[0]=a:l[1]=a,l}}),s.Blur.fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.Image.filters,c=o.util.createClass;s.Gamma=c(s.BaseFilter,{type:"Gamma",fragmentSource:`precision highp float;
425
+ uniform sampler2D uTexture;
426
+ uniform vec3 uGamma;
427
+ varying vec2 vTexCoord;
428
+ void main() {
429
+ vec4 color = texture2D(uTexture, vTexCoord);
430
+ vec3 correction = (1.0 / uGamma);
431
+ color.r = pow(color.r, correction.r);
432
+ color.g = pow(color.g, correction.g);
433
+ color.b = pow(color.b, correction.b);
434
+ gl_FragColor = color;
435
+ gl_FragColor.rgb *= color.a;
436
+ }`,gamma:[1,1,1],mainParameter:"gamma",initialize:function(i){this.gamma=[1,1,1],s.BaseFilter.prototype.initialize.call(this,i)},applyTo2d:function(i){var l=i.imageData,a=l.data,h=this.gamma,g=a.length,d=1/h[0],A=1/h[1],y=1/h[2],m;for(this.rVals||(this.rVals=new Uint8Array(256),this.gVals=new Uint8Array(256),this.bVals=new Uint8Array(256)),m=0,g=256;m<g;m++)this.rVals[m]=Math.pow(m/255,d)*255,this.gVals[m]=Math.pow(m/255,A)*255,this.bVals[m]=Math.pow(m/255,y)*255;for(m=0,g=a.length;m<g;m+=4)a[m]=this.rVals[a[m]],a[m+1]=this.gVals[a[m+1]],a[m+2]=this.bVals[a[m+2]]},getUniformLocations:function(i,l){return{uGamma:i.getUniformLocation(l,"uGamma")}},sendUniformData:function(i,l){i.uniform3fv(l.uGamma,this.gamma)}}),o.Image.filters.Gamma.fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.Image.filters,c=o.util.createClass;s.Composed=c(s.BaseFilter,{type:"Composed",subFilters:[],initialize:function(i){this.callSuper("initialize",i),this.subFilters=this.subFilters.slice(0)},applyTo:function(i){i.passes+=this.subFilters.length-1,this.subFilters.forEach(function(l){l.applyTo(i)})},toObject:function(){return o.util.object.extend(this.callSuper("toObject"),{subFilters:this.subFilters.map(function(i){return i.toObject()})})},isNeutralState:function(){return!this.subFilters.some(function(i){return!i.isNeutralState()})}}),o.Image.filters.Composed.fromObject=function(i,l){var a=i.subFilters||[],h=a.map(function(d){return new o.Image.filters[d.type](d)}),g=new o.Image.filters.Composed({subFilters:h});return l&&l(g),g}})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.Image.filters,c=o.util.createClass;s.HueRotation=c(s.ColorMatrix,{type:"HueRotation",rotation:0,mainParameter:"rotation",calculateMatrix:function(){var i=this.rotation*Math.PI,l=o.util.cos(i),a=o.util.sin(i),h=1/3,g=Math.sqrt(h)*a,d=1-l;this.matrix=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],this.matrix[0]=l+d/3,this.matrix[1]=h*d-g,this.matrix[2]=h*d+g,this.matrix[5]=h*d+g,this.matrix[6]=l+h*d,this.matrix[7]=h*d-g,this.matrix[10]=h*d-g,this.matrix[11]=h*d+g,this.matrix[12]=l+h*d},isNeutralState:function(i){return this.calculateMatrix(),s.BaseFilter.prototype.isNeutralState.call(this,i)},applyTo:function(i){this.calculateMatrix(),s.BaseFilter.prototype.applyTo.call(this,i)}}),o.Image.filters.HueRotation.fromObject=o.Image.filters.BaseFilter.fromObject})(e),(function(u){var o=u.fabric||(u.fabric={}),s=o.util.object.clone;if(o.Text){o.warn("fabric.Text is already defined");return}var c="fontFamily fontWeight fontSize text underline overline linethrough textAlign fontStyle lineHeight textBackgroundColor charSpacing styles direction path pathStartOffset pathSide pathAlign".split(" ");o.Text=o.util.createClass(o.Object,{_dimensionAffectingProps:["fontSize","fontWeight","fontFamily","fontStyle","lineHeight","text","charSpacing","textAlign","styles","path","pathStartOffset","pathSide","pathAlign"],_reNewline:/\r?\n/,_reSpacesAndTabs:/[ \t\r]/g,_reSpaceAndTab:/[ \t\r]/,_reWords:/\S+/g,type:"text",fontSize:40,fontWeight:"normal",fontFamily:"Times New Roman",underline:!1,overline:!1,linethrough:!1,textAlign:"left",fontStyle:"normal",lineHeight:1.16,superscript:{size:.6,baseline:-.35},subscript:{size:.6,baseline:.11},textBackgroundColor:"",stateProperties:o.Object.prototype.stateProperties.concat(c),cacheProperties:o.Object.prototype.cacheProperties.concat(c),stroke:null,shadow:null,path:null,pathStartOffset:0,pathSide:"left",pathAlign:"baseline",_fontSizeFraction:.222,offsets:{underline:.1,linethrough:-.315,overline:-.88},_fontSizeMult:1.13,charSpacing:0,styles:null,_measuringContext:null,deltaY:0,direction:"ltr",_styleProperties:["stroke","strokeWidth","fill","fontFamily","fontSize","fontWeight","fontStyle","underline","overline","linethrough","deltaY","textBackgroundColor"],__charBounds:[],CACHE_FONT_SIZE:400,MIN_TEXT_WIDTH:2,initialize:function(i,l){this.styles=l?l.styles||{}:{},this.text=i,this.__skipDimension=!0,this.callSuper("initialize",l),this.path&&this.setPathInfo(),this.__skipDimension=!1,this.initDimensions(),this.setCoords(),this.setupState({propertySet:"_dimensionAffectingProps"})},setPathInfo:function(){var i=this.path;i&&(i.segmentsInfo=o.util.getPathSegmentsInfo(i.path))},getMeasuringContext:function(){return o._measuringContext||(o._measuringContext=this.canvas&&this.canvas.contextCache||o.util.createCanvasElement().getContext("2d")),o._measuringContext},_splitText:function(){var i=this._splitTextIntoLines(this.text);return this.textLines=i.lines,this._textLines=i.graphemeLines,this._unwrappedTextLines=i._unwrappedLines,this._text=i.graphemeText,i},initDimensions:function(){this.__skipDimension||(this._splitText(),this._clearCache(),this.path?(this.width=this.path.width,this.height=this.path.height):(this.width=this.calcTextWidth()||this.cursorWidth||this.MIN_TEXT_WIDTH,this.height=this.calcTextHeight()),this.textAlign.indexOf("justify")!==-1&&this.enlargeSpaces(),this.saveState({propertySet:"_dimensionAffectingProps"}))},enlargeSpaces:function(){for(var i,l,a,h,g,d,A,y=0,m=this._textLines.length;y<m;y++)if(!(this.textAlign!=="justify"&&(y===m-1||this.isEndOfWrapping(y)))&&(h=0,g=this._textLines[y],l=this.getLineWidth(y),l<this.width&&(A=this.textLines[y].match(this._reSpacesAndTabs)))){a=A.length,i=(this.width-l)/a;for(var _=0,w=g.length;_<=w;_++)d=this.__charBounds[y][_],this._reSpaceAndTab.test(g[_])?(d.width+=i,d.kernedWidth+=i,d.left+=h,h+=i):d.left+=h}},isEndOfWrapping:function(i){return i===this._textLines.length-1},missingNewlineOffset:function(){return 1},toString:function(){return"#<fabric.Text ("+this.complexity()+'): { "text": "'+this.text+'", "fontFamily": "'+this.fontFamily+'" }>'},_getCacheCanvasDimensions:function(){var i=this.callSuper("_getCacheCanvasDimensions"),l=this.fontSize;return i.width+=l*i.zoomX,i.height+=l*i.zoomY,i},_render:function(i){var l=this.path;l&&!l.isNotVisible()&&l._render(i),this._setTextStyles(i),this._renderTextLinesBackground(i),this._renderTextDecoration(i,"underline"),this._renderText(i),this._renderTextDecoration(i,"overline"),this._renderTextDecoration(i,"linethrough")},_renderText:function(i){this.paintFirst==="stroke"?(this._renderTextStroke(i),this._renderTextFill(i)):(this._renderTextFill(i),this._renderTextStroke(i))},_setTextStyles:function(i,l,a){if(i.textBaseline="alphabetical",this.path)switch(this.pathAlign){case"center":i.textBaseline="middle";break;case"ascender":i.textBaseline="top";break;case"descender":i.textBaseline="bottom";break}i.font=this._getFontDeclaration(l,a)},calcTextWidth:function(){for(var i=this.getLineWidth(0),l=1,a=this._textLines.length;l<a;l++){var h=this.getLineWidth(l);h>i&&(i=h)}return i},_renderTextLine:function(i,l,a,h,g,d){this._renderChars(i,l,a,h,g,d)},_renderTextLinesBackground:function(i){if(!(!this.textBackgroundColor&&!this.styleHas("textBackgroundColor"))){for(var l,a,h=i.fillStyle,g,d,A=this._getLeftOffset(),y=this._getTopOffset(),m=0,_=0,w,S,O=this.path,P,N=0,q=this._textLines.length;N<q;N++){if(l=this.getHeightOfLine(N),!this.textBackgroundColor&&!this.styleHas("textBackgroundColor",N)){y+=l;continue}g=this._textLines[N],a=this._getLineLeftOffset(N),_=0,m=0,d=this.getValueOfPropertyAt(N,0,"textBackgroundColor");for(var Z=0,K=g.length;Z<K;Z++)w=this.__charBounds[N][Z],S=this.getValueOfPropertyAt(N,Z,"textBackgroundColor"),O?(i.save(),i.translate(w.renderLeft,w.renderTop),i.rotate(w.angle),i.fillStyle=S,S&&i.fillRect(-w.width/2,-l/this.lineHeight*(1-this._fontSizeFraction),w.width,l/this.lineHeight),i.restore()):S!==d?(P=A+a+m,this.direction==="rtl"&&(P=this.width-P-_),i.fillStyle=d,d&&i.fillRect(P,y,_,l/this.lineHeight),m=w.left,_=w.width,d=S):_+=w.kernedWidth;S&&!O&&(P=A+a+m,this.direction==="rtl"&&(P=this.width-P-_),i.fillStyle=S,i.fillRect(P,y,_,l/this.lineHeight)),y+=l}i.fillStyle=h,this._removeShadow(i)}},getFontCache:function(i){var l=i.fontFamily.toLowerCase();o.charWidthsCache[l]||(o.charWidthsCache[l]={});var a=o.charWidthsCache[l],h=i.fontStyle.toLowerCase()+"_"+(i.fontWeight+"").toLowerCase();return a[h]||(a[h]={}),a[h]},_measureChar:function(i,l,a,h){var g=this.getFontCache(l),d=this._getFontDeclaration(l),A=this._getFontDeclaration(h),y=a+i,m=d===A,_,w,S,O=l.fontSize/this.CACHE_FONT_SIZE,P;if(a&&g[a]!==void 0&&(S=g[a]),g[i]!==void 0&&(P=_=g[i]),m&&g[y]!==void 0&&(w=g[y],P=w-S),_===void 0||S===void 0||w===void 0){var N=this.getMeasuringContext();this._setTextStyles(N,l,!0)}return _===void 0&&(P=_=N.measureText(i).width,g[i]=_),S===void 0&&m&&a&&(S=N.measureText(a).width,g[a]=S),m&&w===void 0&&(w=N.measureText(y).width,g[y]=w,P=w-S),{width:_*O,kernedWidth:P*O}},getHeightOfChar:function(i,l){return this.getValueOfPropertyAt(i,l,"fontSize")},measureLine:function(i){var l=this._measureLine(i);return this.charSpacing!==0&&(l.width-=this._getWidthOfCharSpacing()),l.width<0&&(l.width=0),l},_measureLine:function(i){var l=0,a,h,g=this._textLines[i],d,A,y=0,m=new Array(g.length),_=0,w,S,O=this.path,P=this.pathSide==="right";for(this.__charBounds[i]=m,a=0;a<g.length;a++)h=g[a],A=this._getGraphemeBox(h,i,a,d),m[a]=A,l+=A.kernedWidth,d=h;if(m[a]={left:A?A.left+A.width:0,width:0,kernedWidth:0,height:this.fontSize},O){switch(S=O.segmentsInfo[O.segmentsInfo.length-1].length,w=o.util.getPointOnPath(O.path,0,O.segmentsInfo),w.x+=O.pathOffset.x,w.y+=O.pathOffset.y,this.textAlign){case"left":_=P?S-l:0;break;case"center":_=(S-l)/2;break;case"right":_=P?0:S-l;break}for(_+=this.pathStartOffset*(P?-1:1),a=P?g.length-1:0;P?a>=0:a<g.length;P?a--:a++)A=m[a],_>S?_%=S:_<0&&(_+=S),this._setGraphemeOnPath(_,A,w),_+=A.kernedWidth}return{width:l,numOfSpaces:y}},_setGraphemeOnPath:function(i,l,a){var h=i+l.kernedWidth/2,g=this.path,d=o.util.getPointOnPath(g.path,h,g.segmentsInfo);l.renderLeft=d.x-a.x,l.renderTop=d.y-a.y,l.angle=d.angle+(this.pathSide==="right"?Math.PI:0)},_getGraphemeBox:function(i,l,a,h,g){var d=this.getCompleteStyleDeclaration(l,a),A=h?this.getCompleteStyleDeclaration(l,a-1):{},y=this._measureChar(i,d,h,A),m=y.kernedWidth,_=y.width,w;this.charSpacing!==0&&(w=this._getWidthOfCharSpacing(),_+=w,m+=w);var S={width:_,left:0,height:d.fontSize,kernedWidth:m,deltaY:d.deltaY};if(a>0&&!g){var O=this.__charBounds[l][a-1];S.left=O.left+O.width+y.kernedWidth-y.width}return S},getHeightOfLine:function(i){if(this.__lineHeights[i])return this.__lineHeights[i];for(var l=this._textLines[i],a=this.getHeightOfChar(i,0),h=1,g=l.length;h<g;h++)a=Math.max(this.getHeightOfChar(i,h),a);return this.__lineHeights[i]=a*this.lineHeight*this._fontSizeMult},calcTextHeight:function(){for(var i,l=0,a=0,h=this._textLines.length;a<h;a++)i=this.getHeightOfLine(a),l+=a===h-1?i/this.lineHeight:i;return l},_getLeftOffset:function(){return this.direction==="ltr"?-this.width/2:this.width/2},_getTopOffset:function(){return-this.height/2},_renderTextCommon:function(i,l){i.save();for(var a=0,h=this._getLeftOffset(),g=this._getTopOffset(),d=0,A=this._textLines.length;d<A;d++){var y=this.getHeightOfLine(d),m=y/this.lineHeight,_=this._getLineLeftOffset(d);this._renderTextLine(l,i,this._textLines[d],h+_,g+a+m,d),a+=y}i.restore()},_renderTextFill:function(i){!this.fill&&!this.styleHas("fill")||this._renderTextCommon(i,"fillText")},_renderTextStroke:function(i){(!this.stroke||this.strokeWidth===0)&&this.isEmptyStyles()||(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(i),i.save(),this._setLineDash(i,this.strokeDashArray),i.beginPath(),this._renderTextCommon(i,"strokeText"),i.closePath(),i.restore())},_renderChars:function(i,l,a,h,g,d){var A=this.getHeightOfLine(d),y=this.textAlign.indexOf("justify")!==-1,m,_,w="",S,O=0,P,N=this.path,q=!y&&this.charSpacing===0&&this.isEmptyStyles(d)&&!N,Z=this.direction==="ltr",K=this.direction==="ltr"?1:-1,rt,$=l.canvas.getAttribute("dir");if(l.save(),$!==this.direction&&(l.canvas.setAttribute("dir",Z?"ltr":"rtl"),l.direction=Z?"ltr":"rtl",l.textAlign=Z?"left":"right"),g-=A*this._fontSizeFraction/this.lineHeight,q){this._renderChar(i,l,d,0,a.join(""),h,g,A),l.restore();return}for(var U=0,j=a.length-1;U<=j;U++)P=U===j||this.charSpacing||N,w+=a[U],S=this.__charBounds[d][U],O===0?(h+=K*(S.kernedWidth-S.width),O+=S.width):O+=S.kernedWidth,y&&!P&&this._reSpaceAndTab.test(a[U])&&(P=!0),P||(m=m||this.getCompleteStyleDeclaration(d,U),_=this.getCompleteStyleDeclaration(d,U+1),P=o.util.hasStyleChanged(m,_,!1)),P&&(N?(l.save(),l.translate(S.renderLeft,S.renderTop),l.rotate(S.angle),this._renderChar(i,l,d,U,w,-O/2,0,A),l.restore()):(rt=h,this._renderChar(i,l,d,U,w,rt,g,A)),w="",m=_,h+=K*O,O=0);l.restore()},_applyPatternGradientTransformText:function(i){var l=o.util.createCanvasElement(),a,h=this.width+this.strokeWidth,g=this.height+this.strokeWidth;return l.width=h,l.height=g,a=l.getContext("2d"),a.beginPath(),a.moveTo(0,0),a.lineTo(h,0),a.lineTo(h,g),a.lineTo(0,g),a.closePath(),a.translate(h/2,g/2),a.fillStyle=i.toLive(a),this._applyPatternGradientTransform(a,i),a.fill(),a.createPattern(l,"no-repeat")},handleFiller:function(i,l,a){var h,g;return a.toLive?a.gradientUnits==="percentage"||a.gradientTransform||a.patternTransform?(h=-this.width/2,g=-this.height/2,i.translate(h,g),i[l]=this._applyPatternGradientTransformText(a),{offsetX:h,offsetY:g}):(i[l]=a.toLive(i,this),this._applyPatternGradientTransform(i,a)):(i[l]=a,{offsetX:0,offsetY:0})},_setStrokeStyles:function(i,l){return i.lineWidth=l.strokeWidth,i.lineCap=this.strokeLineCap,i.lineDashOffset=this.strokeDashOffset,i.lineJoin=this.strokeLineJoin,i.miterLimit=this.strokeMiterLimit,this.handleFiller(i,"strokeStyle",l.stroke)},_setFillStyles:function(i,l){return this.handleFiller(i,"fillStyle",l.fill)},_renderChar:function(i,l,a,h,g,d,A){var y=this._getStyleDeclaration(a,h),m=this.getCompleteStyleDeclaration(a,h),_=i==="fillText"&&m.fill,w=i==="strokeText"&&m.stroke&&m.strokeWidth,S,O;!w&&!_||(l.save(),_&&(S=this._setFillStyles(l,m)),w&&(O=this._setStrokeStyles(l,m)),l.font=this._getFontDeclaration(m),y&&y.textBackgroundColor&&this._removeShadow(l),y&&y.deltaY&&(A+=y.deltaY),_&&l.fillText(g,d-S.offsetX,A-S.offsetY),w&&l.strokeText(g,d-O.offsetX,A-O.offsetY),l.restore())},setSuperscript:function(i,l){return this._setScript(i,l,this.superscript)},setSubscript:function(i,l){return this._setScript(i,l,this.subscript)},_setScript:function(i,l,a){var h=this.get2DCursorLocation(i,!0),g=this.getValueOfPropertyAt(h.lineIndex,h.charIndex,"fontSize"),d=this.getValueOfPropertyAt(h.lineIndex,h.charIndex,"deltaY"),A={fontSize:g*a.size,deltaY:d+g*a.baseline};return this.setSelectionStyles(A,i,l),this},_getLineLeftOffset:function(i){var l=this.getLineWidth(i),a=this.width-l,h=this.textAlign,g=this.direction,A,d=0,A=this.isEndOfWrapping(i);return h==="justify"||h==="justify-center"&&!A||h==="justify-right"&&!A||h==="justify-left"&&!A?0:(h==="center"&&(d=a/2),h==="right"&&(d=a),h==="justify-center"&&(d=a/2),h==="justify-right"&&(d=a),g==="rtl"&&(d-=a),d)},_clearCache:function(){this.__lineWidths=[],this.__lineHeights=[],this.__charBounds=[]},_shouldClearDimensionCache:function(){var i=this._forceClearCache;return i||(i=this.hasStateChanged("_dimensionAffectingProps")),i&&(this.dirty=!0,this._forceClearCache=!1),i},getLineWidth:function(i){if(this.__lineWidths[i]!==void 0)return this.__lineWidths[i];var l=this.measureLine(i),a=l.width;return this.__lineWidths[i]=a,a},_getWidthOfCharSpacing:function(){return this.charSpacing!==0?this.fontSize*this.charSpacing/1e3:0},getValueOfPropertyAt:function(i,l,a){var h=this._getStyleDeclaration(i,l);return h&&typeof h[a]<"u"?h[a]:this[a]},_renderTextDecoration:function(i,l){if(!(!this[l]&&!this.styleHas(l))){for(var a,h,g,d,A,y,m,_,w=this._getLeftOffset(),S=this._getTopOffset(),O,P,N,q,Z,K,rt,$,U=this.path,j=this._getWidthOfCharSpacing(),B=this.offsets[l],x=0,b=this._textLines.length;x<b;x++){if(a=this.getHeightOfLine(x),!this[l]&&!this.styleHas(l,x)){S+=a;continue}m=this._textLines[x],K=a/this.lineHeight,d=this._getLineLeftOffset(x),P=0,N=0,_=this.getValueOfPropertyAt(x,0,l),$=this.getValueOfPropertyAt(x,0,"fill"),O=S+K*(1-this._fontSizeFraction),h=this.getHeightOfChar(x,0),A=this.getValueOfPropertyAt(x,0,"deltaY");for(var C=0,E=m.length;C<E;C++)if(q=this.__charBounds[x][C],Z=this.getValueOfPropertyAt(x,C,l),rt=this.getValueOfPropertyAt(x,C,"fill"),g=this.getHeightOfChar(x,C),y=this.getValueOfPropertyAt(x,C,"deltaY"),U&&Z&&rt)i.save(),i.fillStyle=$,i.translate(q.renderLeft,q.renderTop),i.rotate(q.angle),i.fillRect(-q.kernedWidth/2,B*g+y,q.kernedWidth,this.fontSize/15),i.restore();else if((Z!==_||rt!==$||g!==h||y!==A)&&N>0){var I=w+d+P;this.direction==="rtl"&&(I=this.width-I-N),_&&$&&(i.fillStyle=$,i.fillRect(I,O+B*h+A,N,this.fontSize/15)),P=q.left,N=q.width,_=Z,$=rt,h=g,A=y}else N+=q.kernedWidth;var I=w+d+P;this.direction==="rtl"&&(I=this.width-I-N),i.fillStyle=rt,Z&&rt&&i.fillRect(I,O+B*h+A,N-j,this.fontSize/15),S+=a}this._removeShadow(i)}},_getFontDeclaration:function(i,l){var a=i||this,h=this.fontFamily,g=o.Text.genericFonts.indexOf(h.toLowerCase())>-1,d=h===void 0||h.indexOf("'")>-1||h.indexOf(",")>-1||h.indexOf('"')>-1||g?a.fontFamily:'"'+a.fontFamily+'"';return[o.isLikelyNode?a.fontWeight:a.fontStyle,o.isLikelyNode?a.fontStyle:a.fontWeight,l?this.CACHE_FONT_SIZE+"px":a.fontSize+"px",d].join(" ")},render:function(i){this.visible&&(this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._shouldClearDimensionCache()&&this.initDimensions(),this.callSuper("render",i)))},_splitTextIntoLines:function(i){for(var l=i.split(this._reNewline),a=new Array(l.length),h=[`
437
+ `],g=[],d=0;d<l.length;d++)a[d]=o.util.string.graphemeSplit(l[d]),g=g.concat(a[d],h);return g.pop(),{_unwrappedLines:a,lines:l,graphemeText:g,graphemeLines:a}},toObject:function(i){var l=c.concat(i),a=this.callSuper("toObject",l);return a.styles=o.util.stylesToArray(this.styles,this.text),a.path&&(a.path=this.path.toObject()),a},set:function(i,l){this.callSuper("set",i,l);var a=!1,h=!1;if(typeof i=="object")for(var g in i)g==="path"&&this.setPathInfo(),a=a||this._dimensionAffectingProps.indexOf(g)!==-1,h=h||g==="path";else a=this._dimensionAffectingProps.indexOf(i)!==-1,h=i==="path";return h&&this.setPathInfo(),a&&(this.initDimensions(),this.setCoords()),this},complexity:function(){return 1}}),o.Text.ATTRIBUTE_NAMES=o.SHARED_ATTRIBUTES.concat("x y dx dy font-family font-style font-weight font-size letter-spacing text-decoration text-anchor".split(" ")),o.Text.DEFAULT_SVG_FONT_SIZE=16,o.Text.fromElement=function(i,l,a){if(!i)return l(null);var h=o.parseAttributes(i,o.Text.ATTRIBUTE_NAMES),g=h.textAnchor||"left";if(a=o.util.object.extend(a?s(a):{},h),a.top=a.top||0,a.left=a.left||0,h.textDecoration){var d=h.textDecoration;d.indexOf("underline")!==-1&&(a.underline=!0),d.indexOf("overline")!==-1&&(a.overline=!0),d.indexOf("line-through")!==-1&&(a.linethrough=!0),delete a.textDecoration}"dx"in h&&(a.left+=h.dx),"dy"in h&&(a.top+=h.dy),"fontSize"in a||(a.fontSize=o.Text.DEFAULT_SVG_FONT_SIZE);var A="";"textContent"in i?A=i.textContent:"firstChild"in i&&i.firstChild!==null&&"data"in i.firstChild&&i.firstChild.data!==null&&(A=i.firstChild.data),A=A.replace(/^\s+|\s+$|\n+/g,"").replace(/\s+/g," ");var y=a.strokeWidth;a.strokeWidth=0;var m=new o.Text(A,a),_=m.getScaledHeight()/m.height,w=(m.height+m.strokeWidth)*m.lineHeight-m.height,S=w*_,O=m.getScaledHeight()+S,P=0;g==="center"&&(P=m.getScaledWidth()/2),g==="right"&&(P=m.getScaledWidth()),m.set({left:m.left-P,top:m.top-(O-m.fontSize*(.07+m._fontSizeFraction))/m.lineHeight,strokeWidth:typeof y<"u"?y:1}),l(m)},o.Text.fromObject=function(i,l){var a=s(i),h=i.path;return delete a.path,o.Object._fromObject("Text",a,function(g){g.styles=o.util.stylesFromArray(i.styles,i.text),h?o.Object._fromObject("Path",h,function(d){g.set("path",d),l(g)},"path"):l(g)},"text")},o.Text.genericFonts=["sans-serif","serif","cursive","fantasy","monospace"],o.util.createAccessors&&o.util.createAccessors(o.Text)})(e),(function(){t.util.object.extend(t.Text.prototype,{isEmptyStyles:function(u){if(!this.styles||typeof u<"u"&&!this.styles[u])return!0;var o=typeof u>"u"?this.styles:{line:this.styles[u]};for(var s in o)for(var c in o[s])for(var i in o[s][c])return!1;return!0},styleHas:function(u,o){if(!this.styles||!u||u===""||typeof o<"u"&&!this.styles[o])return!1;var s=typeof o>"u"?this.styles:{0:this.styles[o]};for(var c in s)for(var i in s[c])if(typeof s[c][i][u]<"u")return!0;return!1},cleanStyle:function(u){if(!this.styles||!u||u==="")return!1;var o=this.styles,s=0,c,i,l=!0,a=0,h;for(var g in o){c=0;for(var d in o[g]){var h=o[g][d],A=h.hasOwnProperty(u);s++,A?(i?h[u]!==i&&(l=!1):i=h[u],h[u]===this[u]&&delete h[u]):l=!1,Object.keys(h).length!==0?c++:delete o[g][d]}c===0&&delete o[g]}for(var y=0;y<this._textLines.length;y++)a+=this._textLines[y].length;l&&s===a&&(this[u]=i,this.removeStyle(u))},removeStyle:function(u){if(!(!this.styles||!u||u==="")){var o=this.styles,s,c,i;for(c in o){s=o[c];for(i in s)delete s[i][u],Object.keys(s[i]).length===0&&delete s[i];Object.keys(s).length===0&&delete o[c]}}},_extendStyles:function(u,o){var s=this.get2DCursorLocation(u);this._getLineStyle(s.lineIndex)||this._setLineStyle(s.lineIndex),this._getStyleDeclaration(s.lineIndex,s.charIndex)||this._setStyleDeclaration(s.lineIndex,s.charIndex,{}),t.util.object.extend(this._getStyleDeclaration(s.lineIndex,s.charIndex),o)},get2DCursorLocation:function(u,o){typeof u>"u"&&(u=this.selectionStart);for(var s=o?this._unwrappedTextLines:this._textLines,c=s.length,i=0;i<c;i++){if(u<=s[i].length)return{lineIndex:i,charIndex:u};u-=s[i].length+this.missingNewlineOffset(i)}return{lineIndex:i-1,charIndex:s[i-1].length<u?s[i-1].length:u}},getSelectionStyles:function(u,o,s){typeof u>"u"&&(u=this.selectionStart||0),typeof o>"u"&&(o=this.selectionEnd||u);for(var c=[],i=u;i<o;i++)c.push(this.getStyleAtPosition(i,s));return c},getStyleAtPosition:function(u,o){var s=this.get2DCursorLocation(u),c=o?this.getCompleteStyleDeclaration(s.lineIndex,s.charIndex):this._getStyleDeclaration(s.lineIndex,s.charIndex);return c||{}},setSelectionStyles:function(u,o,s){typeof o>"u"&&(o=this.selectionStart||0),typeof s>"u"&&(s=this.selectionEnd||o);for(var c=o;c<s;c++)this._extendStyles(c,u);return this._forceClearCache=!0,this},_getStyleDeclaration:function(u,o){var s=this.styles&&this.styles[u];return s?s[o]:null},getCompleteStyleDeclaration:function(u,o){for(var s=this._getStyleDeclaration(u,o)||{},c={},i,l=0;l<this._styleProperties.length;l++)i=this._styleProperties[l],c[i]=typeof s[i]>"u"?this[i]:s[i];return c},_setStyleDeclaration:function(u,o,s){this.styles[u][o]=s},_deleteStyleDeclaration:function(u,o){delete this.styles[u][o]},_getLineStyle:function(u){return!!this.styles[u]},_setLineStyle:function(u){this.styles[u]={}},_deleteLineStyle:function(u){delete this.styles[u]}})})(),(function(){function u(o){o.textDecoration&&(o.textDecoration.indexOf("underline")>-1&&(o.underline=!0),o.textDecoration.indexOf("line-through")>-1&&(o.linethrough=!0),o.textDecoration.indexOf("overline")>-1&&(o.overline=!0),delete o.textDecoration)}t.IText=t.util.createClass(t.Text,t.Observable,{type:"i-text",selectionStart:0,selectionEnd:0,selectionColor:"rgba(17,119,255,0.3)",isEditing:!1,editable:!0,editingBorderColor:"rgba(102,153,255,0.25)",cursorWidth:2,cursorColor:"",cursorDelay:1e3,cursorDuration:600,caching:!0,hiddenTextareaContainer:null,_reSpace:/\s|\n/,_currentCursorOpacity:0,_selectionDirection:null,_abortCursorAnimation:!1,__widthOfSpace:[],inCompositionMode:!1,initialize:function(o,s){this.callSuper("initialize",o,s),this.initBehavior()},setSelectionStart:function(o){o=Math.max(o,0),this._updateAndFire("selectionStart",o)},setSelectionEnd:function(o){o=Math.min(o,this.text.length),this._updateAndFire("selectionEnd",o)},_updateAndFire:function(o,s){this[o]!==s&&(this._fireSelectionChanged(),this[o]=s),this._updateTextarea()},_fireSelectionChanged:function(){this.fire("selection:changed"),this.canvas&&this.canvas.fire("text:selection:changed",{target:this})},initDimensions:function(){this.isEditing&&this.initDelayedCursor(),this.clearContextTop(),this.callSuper("initDimensions")},render:function(o){this.clearContextTop(),this.callSuper("render",o),this.cursorOffsetCache={},this.renderCursorOrSelection()},_render:function(o){this.callSuper("_render",o)},clearContextTop:function(o){if(!(!this.isEditing||!this.canvas||!this.canvas.contextTop)){var s=this.canvas.contextTop,c=this.canvas.viewportTransform;s.save(),s.transform(c[0],c[1],c[2],c[3],c[4],c[5]),this.transform(s),this._clearTextArea(s),o||s.restore()}},renderCursorOrSelection:function(){if(!(!this.isEditing||!this.canvas||!this.canvas.contextTop)){var o=this._getCursorBoundaries(),s=this.canvas.contextTop;this.clearContextTop(!0),this.selectionStart===this.selectionEnd?this.renderCursor(o,s):this.renderSelection(o,s),s.restore()}},_clearTextArea:function(o){var s=this.width+4,c=this.height+4;o.clearRect(-s/2,-c/2,s,c)},_getCursorBoundaries:function(o){typeof o>"u"&&(o=this.selectionStart);var s=this._getLeftOffset(),c=this._getTopOffset(),i=this._getCursorBoundariesOffsets(o);return{left:s,top:c,leftOffset:i.left,topOffset:i.top}},_getCursorBoundariesOffsets:function(o){if(this.cursorOffsetCache&&"top"in this.cursorOffsetCache)return this.cursorOffsetCache;var s,c,i,l=0,a=0,h,g=this.get2DCursorLocation(o);i=g.charIndex,c=g.lineIndex;for(var d=0;d<c;d++)l+=this.getHeightOfLine(d);s=this._getLineLeftOffset(c);var A=this.__charBounds[c][i];return A&&(a=A.left),this.charSpacing!==0&&i===this._textLines[c].length&&(a-=this._getWidthOfCharSpacing()),h={top:l,left:s+(a>0?a:0)},this.direction==="rtl"&&(h.left*=-1),this.cursorOffsetCache=h,this.cursorOffsetCache},renderCursor:function(o,s){var c=this.get2DCursorLocation(),i=c.lineIndex,l=c.charIndex>0?c.charIndex-1:0,a=this.getValueOfPropertyAt(i,l,"fontSize"),h=this.scaleX*this.canvas.getZoom(),g=this.cursorWidth/h,d=o.topOffset,A=this.getValueOfPropertyAt(i,l,"deltaY");d+=(1-this._fontSizeFraction)*this.getHeightOfLine(i)/this.lineHeight-a*(1-this._fontSizeFraction),this.inCompositionMode&&this.renderSelection(o,s),s.fillStyle=this.cursorColor||this.getValueOfPropertyAt(i,l,"fill"),s.globalAlpha=this.__isMousedown?1:this._currentCursorOpacity,s.fillRect(o.left+o.leftOffset-g/2,d+o.top+A,g,a)},renderSelection:function(o,s){for(var c=this.inCompositionMode?this.hiddenTextarea.selectionStart:this.selectionStart,i=this.inCompositionMode?this.hiddenTextarea.selectionEnd:this.selectionEnd,l=this.textAlign.indexOf("justify")!==-1,a=this.get2DCursorLocation(c),h=this.get2DCursorLocation(i),g=a.lineIndex,d=h.lineIndex,A=a.charIndex<0?0:a.charIndex,y=h.charIndex<0?0:h.charIndex,m=g;m<=d;m++){var _=this._getLineLeftOffset(m)||0,w=this.getHeightOfLine(m),S=0,O=0,P=0;if(m===g&&(O=this.__charBounds[g][A].left),m>=g&&m<d)P=l&&!this.isEndOfWrapping(m)?this.width:this.getLineWidth(m)||5;else if(m===d)if(y===0)P=this.__charBounds[d][y].left;else{var N=this._getWidthOfCharSpacing();P=this.__charBounds[d][y-1].left+this.__charBounds[d][y-1].width-N}S=w,(this.lineHeight<1||m===d&&this.lineHeight>1)&&(w/=this.lineHeight);var q=o.left+_+O,Z=P-O,K=w,rt=0;this.inCompositionMode?(s.fillStyle=this.compositionColor||"black",K=1,rt=w):s.fillStyle=this.selectionColor,this.direction==="rtl"&&(q=this.width-q-Z),s.fillRect(q,o.top+o.topOffset+rt,Z,K),o.topOffset+=S}},getCurrentCharFontSize:function(){var o=this._getCurrentCharIndex();return this.getValueOfPropertyAt(o.l,o.c,"fontSize")},getCurrentCharColor:function(){var o=this._getCurrentCharIndex();return this.getValueOfPropertyAt(o.l,o.c,"fill")},_getCurrentCharIndex:function(){var o=this.get2DCursorLocation(this.selectionStart,!0),s=o.charIndex>0?o.charIndex-1:0;return{l:o.lineIndex,c:s}}}),t.IText.fromObject=function(o,s){var c=t.util.stylesFromArray(o.styles,o.text),i=Object.assign({},o,{styles:c});if(u(i),i.styles)for(var l in i.styles)for(var a in i.styles[l])u(i.styles[l][a]);t.Object._fromObject("IText",i,s,"text")}})(),(function(){var u=t.util.object.clone;t.util.object.extend(t.IText.prototype,{initBehavior:function(){this.initAddedHandler(),this.initRemovedHandler(),this.initCursorSelectionHandlers(),this.initDoubleClickSimulation(),this.mouseMoveHandler=this.mouseMoveHandler.bind(this)},onDeselect:function(){this.isEditing&&this.exitEditing(),this.selected=!1},initAddedHandler:function(){var o=this;this.on("added",function(){var s=o.canvas;s&&(s._hasITextHandlers||(s._hasITextHandlers=!0,o._initCanvasHandlers(s)),s._iTextInstances=s._iTextInstances||[],s._iTextInstances.push(o))})},initRemovedHandler:function(){var o=this;this.on("removed",function(){var s=o.canvas;s&&(s._iTextInstances=s._iTextInstances||[],t.util.removeFromArray(s._iTextInstances,o),s._iTextInstances.length===0&&(s._hasITextHandlers=!1,o._removeCanvasHandlers(s)))})},_initCanvasHandlers:function(o){o._mouseUpITextHandler=function(){o._iTextInstances&&o._iTextInstances.forEach(function(s){s.__isMousedown=!1})},o.on("mouse:up",o._mouseUpITextHandler)},_removeCanvasHandlers:function(o){o.off("mouse:up",o._mouseUpITextHandler)},_tick:function(){this._currentTickState=this._animateCursor(this,1,this.cursorDuration,"_onTickComplete")},_animateCursor:function(o,s,c,i){var l;return l={isAborted:!1,abort:function(){this.isAborted=!0}},o.animate("_currentCursorOpacity",s,{duration:c,onComplete:function(){l.isAborted||o[i]()},onChange:function(){o.canvas&&o.selectionStart===o.selectionEnd&&o.renderCursorOrSelection()},abort:function(){return l.isAborted}}),l},_onTickComplete:function(){var o=this;this._cursorTimeout1&&clearTimeout(this._cursorTimeout1),this._cursorTimeout1=setTimeout(function(){o._currentTickCompleteState=o._animateCursor(o,0,this.cursorDuration/2,"_tick")},100)},initDelayedCursor:function(o){var s=this,c=o?0:this.cursorDelay;this.abortCursorAnimation(),this._currentCursorOpacity=1,this._cursorTimeout2=setTimeout(function(){s._tick()},c)},abortCursorAnimation:function(){var o=this._currentTickState||this._currentTickCompleteState,s=this.canvas;this._currentTickState&&this._currentTickState.abort(),this._currentTickCompleteState&&this._currentTickCompleteState.abort(),clearTimeout(this._cursorTimeout1),clearTimeout(this._cursorTimeout2),this._currentCursorOpacity=0,o&&s&&s.clearContext(s.contextTop||s.contextContainer)},selectAll:function(){return this.selectionStart=0,this.selectionEnd=this._text.length,this._fireSelectionChanged(),this._updateTextarea(),this},getSelectedText:function(){return this._text.slice(this.selectionStart,this.selectionEnd).join("")},findWordBoundaryLeft:function(o){var s=0,c=o-1;if(this._reSpace.test(this._text[c]))for(;this._reSpace.test(this._text[c]);)s++,c--;for(;/\S/.test(this._text[c])&&c>-1;)s++,c--;return o-s},findWordBoundaryRight:function(o){var s=0,c=o;if(this._reSpace.test(this._text[c]))for(;this._reSpace.test(this._text[c]);)s++,c++;for(;/\S/.test(this._text[c])&&c<this._text.length;)s++,c++;return o+s},findLineBoundaryLeft:function(o){for(var s=0,c=o-1;!/\n/.test(this._text[c])&&c>-1;)s++,c--;return o-s},findLineBoundaryRight:function(o){for(var s=0,c=o;!/\n/.test(this._text[c])&&c<this._text.length;)s++,c++;return o+s},searchWordBoundary:function(o,s){for(var c=this._text,i=this._reSpace.test(c[o])?o-1:o,l=c[i],a=t.reNonWord;!a.test(l)&&i>0&&i<c.length;)i+=s,l=c[i];return a.test(l)&&(i+=s===1?0:1),i},selectWord:function(o){o=o||this.selectionStart;var s=this.searchWordBoundary(o,-1),c=this.searchWordBoundary(o,1);this.selectionStart=s,this.selectionEnd=c,this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()},selectLine:function(o){o=o||this.selectionStart;var s=this.findLineBoundaryLeft(o),c=this.findLineBoundaryRight(o);return this.selectionStart=s,this.selectionEnd=c,this._fireSelectionChanged(),this._updateTextarea(),this},enterEditing:function(o){if(!(this.isEditing||!this.editable))return this.canvas&&(this.canvas.calcOffset(),this.exitEditingOnOthers(this.canvas)),this.isEditing=!0,this.initHiddenTextarea(o),this.hiddenTextarea.focus(),this.hiddenTextarea.value=this.text,this._updateTextarea(),this._saveEditingProps(),this._setEditingProps(),this._textBeforeEdit=this.text,this._tick(),this.fire("editing:entered"),this._fireSelectionChanged(),this.canvas?(this.canvas.fire("text:editing:entered",{target:this}),this.initMouseMoveHandler(),this.canvas.requestRenderAll(),this):this},exitEditingOnOthers:function(o){o._iTextInstances&&o._iTextInstances.forEach(function(s){s.selected=!1,s.isEditing&&s.exitEditing()})},initMouseMoveHandler:function(){this.canvas.on("mouse:move",this.mouseMoveHandler)},mouseMoveHandler:function(o){if(!(!this.__isMousedown||!this.isEditing)){document.activeElement!==this.hiddenTextarea&&this.hiddenTextarea.focus();var s=this.getSelectionStartFromPointer(o.e),c=this.selectionStart,i=this.selectionEnd;(s!==this.__selectionStartOnMouseDown||c===i)&&(c===s||i===s)||(s>this.__selectionStartOnMouseDown?(this.selectionStart=this.__selectionStartOnMouseDown,this.selectionEnd=s):(this.selectionStart=s,this.selectionEnd=this.__selectionStartOnMouseDown),(this.selectionStart!==c||this.selectionEnd!==i)&&(this.restartCursorIfNeeded(),this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()))}},_setEditingProps:function(){this.hoverCursor="text",this.canvas&&(this.canvas.defaultCursor=this.canvas.moveCursor="text"),this.borderColor=this.editingBorderColor,this.hasControls=this.selectable=!1,this.lockMovementX=this.lockMovementY=!0},fromStringToGraphemeSelection:function(o,s,c){var i=c.slice(0,o),l=t.util.string.graphemeSplit(i).length;if(o===s)return{selectionStart:l,selectionEnd:l};var a=c.slice(o,s),h=t.util.string.graphemeSplit(a).length;return{selectionStart:l,selectionEnd:l+h}},fromGraphemeToStringSelection:function(o,s,c){var i=c.slice(0,o),l=i.join("").length;if(o===s)return{selectionStart:l,selectionEnd:l};var a=c.slice(o,s),h=a.join("").length;return{selectionStart:l,selectionEnd:l+h}},_updateTextarea:function(){if(this.cursorOffsetCache={},!!this.hiddenTextarea){if(!this.inCompositionMode){var o=this.fromGraphemeToStringSelection(this.selectionStart,this.selectionEnd,this._text);this.hiddenTextarea.selectionStart=o.selectionStart,this.hiddenTextarea.selectionEnd=o.selectionEnd}this.updateTextareaPosition()}},updateFromTextArea:function(){if(this.hiddenTextarea){this.cursorOffsetCache={},this.text=this.hiddenTextarea.value,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords());var o=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value);this.selectionEnd=this.selectionStart=o.selectionEnd,this.inCompositionMode||(this.selectionStart=o.selectionStart),this.updateTextareaPosition()}},updateTextareaPosition:function(){if(this.selectionStart===this.selectionEnd){var o=this._calcTextareaPosition();this.hiddenTextarea.style.left=o.left,this.hiddenTextarea.style.top=o.top}},_calcTextareaPosition:function(){if(!this.canvas)return{x:1,y:1};var o=this.inCompositionMode?this.compositionStart:this.selectionStart,s=this._getCursorBoundaries(o),c=this.get2DCursorLocation(o),i=c.lineIndex,l=c.charIndex,a=this.getValueOfPropertyAt(i,l,"fontSize")*this.lineHeight,h=s.leftOffset,g=this.calcTransformMatrix(),d={x:s.left+h,y:s.top+s.topOffset+a},A=this.canvas.getRetinaScaling(),y=this.canvas.upperCanvasEl,m=y.width/A,_=y.height/A,w=m-a,S=_-a,O=y.clientWidth/m,P=y.clientHeight/_;return d=t.util.transformPoint(d,g),d=t.util.transformPoint(d,this.canvas.viewportTransform),d.x*=O,d.y*=P,d.x<0&&(d.x=0),d.x>w&&(d.x=w),d.y<0&&(d.y=0),d.y>S&&(d.y=S),d.x+=this.canvas._offset.left,d.y+=this.canvas._offset.top,{left:d.x+"px",top:d.y+"px",fontSize:a+"px",charHeight:a}},_saveEditingProps:function(){this._savedProps={hasControls:this.hasControls,borderColor:this.borderColor,lockMovementX:this.lockMovementX,lockMovementY:this.lockMovementY,hoverCursor:this.hoverCursor,selectable:this.selectable,defaultCursor:this.canvas&&this.canvas.defaultCursor,moveCursor:this.canvas&&this.canvas.moveCursor}},_restoreEditingProps:function(){this._savedProps&&(this.hoverCursor=this._savedProps.hoverCursor,this.hasControls=this._savedProps.hasControls,this.borderColor=this._savedProps.borderColor,this.selectable=this._savedProps.selectable,this.lockMovementX=this._savedProps.lockMovementX,this.lockMovementY=this._savedProps.lockMovementY,this.canvas&&(this.canvas.defaultCursor=this._savedProps.defaultCursor,this.canvas.moveCursor=this._savedProps.moveCursor))},exitEditing:function(){var o=this._textBeforeEdit!==this.text,s=this.hiddenTextarea;return this.selected=!1,this.isEditing=!1,this.selectionEnd=this.selectionStart,s&&(s.blur&&s.blur(),s.parentNode&&s.parentNode.removeChild(s)),this.hiddenTextarea=null,this.abortCursorAnimation(),this._restoreEditingProps(),this._currentCursorOpacity=0,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this.fire("editing:exited"),o&&this.fire("modified"),this.canvas&&(this.canvas.off("mouse:move",this.mouseMoveHandler),this.canvas.fire("text:editing:exited",{target:this}),o&&this.canvas.fire("object:modified",{target:this})),this},_removeExtraneousStyles:function(){for(var o in this.styles)this._textLines[o]||delete this.styles[o]},removeStyleFromTo:function(o,s){var c=this.get2DCursorLocation(o,!0),i=this.get2DCursorLocation(s,!0),l=c.lineIndex,a=c.charIndex,h=i.lineIndex,g=i.charIndex,d,A;if(l!==h){if(this.styles[l])for(d=a;d<this._unwrappedTextLines[l].length;d++)delete this.styles[l][d];if(this.styles[h])for(d=g;d<this._unwrappedTextLines[h].length;d++)A=this.styles[h][d],A&&(this.styles[l]||(this.styles[l]={}),this.styles[l][a+d-g]=A);for(d=l+1;d<=h;d++)delete this.styles[d];this.shiftLineStyles(h,l-h)}else if(this.styles[l]){A=this.styles[l];var y=g-a,m,_;for(d=a;d<g;d++)delete A[d];for(_ in this.styles[l])m=parseInt(_,10),m>=g&&(A[m-y]=A[_],delete A[_])}},shiftLineStyles:function(o,s){var c=u(this.styles);for(var i in this.styles){var l=parseInt(i,10);l>o&&(this.styles[l+s]=c[l],c[l-s]||delete this.styles[l])}},restartCursorIfNeeded:function(){(!this._currentTickState||this._currentTickState.isAborted||!this._currentTickCompleteState||this._currentTickCompleteState.isAborted)&&this.initDelayedCursor()},insertNewlineStyleObject:function(o,s,c,i){var l,a={},h=!1,g=this._unwrappedTextLines[o].length===s;c||(c=1),this.shiftLineStyles(o,c),this.styles[o]&&(l=this.styles[o][s===0?s:s-1]);for(var d in this.styles[o]){var A=parseInt(d,10);A>=s&&(h=!0,a[A-s]=this.styles[o][d],g&&s===0||delete this.styles[o][d])}var y=!1;for(h&&!g&&(this.styles[o+c]=a,y=!0),y&&c--;c>0;)i&&i[c-1]?this.styles[o+c]={0:u(i[c-1])}:l?this.styles[o+c]={0:u(l)}:delete this.styles[o+c],c--;this._forceClearCache=!0},insertCharStyleObject:function(o,s,c,i){this.styles||(this.styles={});var l=this.styles[o],a=l?u(l):{};c||(c=1);for(var h in a){var g=parseInt(h,10);g>=s&&(l[g+c]=a[g],a[g-c]||delete l[g])}if(this._forceClearCache=!0,i){for(;c--;)Object.keys(i[c]).length&&(this.styles[o]||(this.styles[o]={}),this.styles[o][s+c]=u(i[c]));return}if(l)for(var d=l[s?s-1:1];d&&c--;)this.styles[o][s+c]=u(d)},insertNewStyleBlock:function(o,s,c){for(var i=this.get2DCursorLocation(s,!0),l=[0],a=0,h=0;h<o.length;h++)o[h]===`
438
+ `?(a++,l[a]=0):l[a]++;l[0]>0&&(this.insertCharStyleObject(i.lineIndex,i.charIndex,l[0],c),c=c&&c.slice(l[0]+1)),a&&this.insertNewlineStyleObject(i.lineIndex,i.charIndex+l[0],a);for(var h=1;h<a;h++)l[h]>0?this.insertCharStyleObject(i.lineIndex+h,0,l[h],c):c&&this.styles[i.lineIndex+h]&&c[0]&&(this.styles[i.lineIndex+h][0]=c[0]),c=c&&c.slice(l[h]+1);l[h]>0&&this.insertCharStyleObject(i.lineIndex+h,0,l[h],c)},setSelectionStartEndWithShift:function(o,s,c){c<=o?(s===o?this._selectionDirection="left":this._selectionDirection==="right"&&(this._selectionDirection="left",this.selectionEnd=o),this.selectionStart=c):c>o&&c<s?this._selectionDirection==="right"?this.selectionEnd=c:this.selectionStart=c:(s===o?this._selectionDirection="right":this._selectionDirection==="left"&&(this._selectionDirection="right",this.selectionStart=s),this.selectionEnd=c)},setSelectionInBoundaries:function(){var o=this.text.length;this.selectionStart>o?this.selectionStart=o:this.selectionStart<0&&(this.selectionStart=0),this.selectionEnd>o?this.selectionEnd=o:this.selectionEnd<0&&(this.selectionEnd=0)}})})(),t.util.object.extend(t.IText.prototype,{initDoubleClickSimulation:function(){this.__lastClickTime=+new Date,this.__lastLastClickTime=+new Date,this.__lastPointer={},this.on("mousedown",this.onMouseDown)},onMouseDown:function(u){if(this.canvas){this.__newClickTime=+new Date;var o=u.pointer;this.isTripleClick(o)&&(this.fire("tripleclick",u),this._stopEvent(u.e)),this.__lastLastClickTime=this.__lastClickTime,this.__lastClickTime=this.__newClickTime,this.__lastPointer=o,this.__lastIsEditing=this.isEditing,this.__lastSelected=this.selected}},isTripleClick:function(u){return this.__newClickTime-this.__lastClickTime<500&&this.__lastClickTime-this.__lastLastClickTime<500&&this.__lastPointer.x===u.x&&this.__lastPointer.y===u.y},_stopEvent:function(u){u.preventDefault&&u.preventDefault(),u.stopPropagation&&u.stopPropagation()},initCursorSelectionHandlers:function(){this.initMousedownHandler(),this.initMouseupHandler(),this.initClicks()},doubleClickHandler:function(u){this.isEditing&&this.selectWord(this.getSelectionStartFromPointer(u.e))},tripleClickHandler:function(u){this.isEditing&&this.selectLine(this.getSelectionStartFromPointer(u.e))},initClicks:function(){this.on("mousedblclick",this.doubleClickHandler),this.on("tripleclick",this.tripleClickHandler)},_mouseDownHandler:function(u){!this.canvas||!this.editable||u.e.button&&u.e.button!==1||(this.__isMousedown=!0,this.selected&&(this.inCompositionMode=!1,this.setCursorByClick(u.e)),this.isEditing&&(this.__selectionStartOnMouseDown=this.selectionStart,this.selectionStart===this.selectionEnd&&this.abortCursorAnimation(),this.renderCursorOrSelection()))},_mouseDownHandlerBefore:function(u){!this.canvas||!this.editable||u.e.button&&u.e.button!==1||(this.selected=this===this.canvas._activeObject)},initMousedownHandler:function(){this.on("mousedown",this._mouseDownHandler),this.on("mousedown:before",this._mouseDownHandlerBefore)},initMouseupHandler:function(){this.on("mouseup",this.mouseUpHandler)},mouseUpHandler:function(u){if(this.__isMousedown=!1,!(!this.editable||this.group||u.transform&&u.transform.actionPerformed||u.e.button&&u.e.button!==1)){if(this.canvas){var o=this.canvas._activeObject;if(o&&o!==this)return}this.__lastSelected&&!this.__corner?(this.selected=!1,this.__lastSelected=!1,this.enterEditing(u.e),this.selectionStart===this.selectionEnd?this.initDelayedCursor(!0):this.renderCursorOrSelection()):this.selected=!0}},setCursorByClick:function(u){var o=this.getSelectionStartFromPointer(u),s=this.selectionStart,c=this.selectionEnd;u.shiftKey?this.setSelectionStartEndWithShift(s,c,o):(this.selectionStart=o,this.selectionEnd=o),this.isEditing&&(this._fireSelectionChanged(),this._updateTextarea())},getSelectionStartFromPointer:function(u){for(var o=this.getLocalPointer(u),s=0,c=0,i=0,l=0,a=0,h,g,d=0,A=this._textLines.length;d<A&&i<=o.y;d++)i+=this.getHeightOfLine(d)*this.scaleY,a=d,d>0&&(l+=this._textLines[d-1].length+this.missingNewlineOffset(d-1));h=this._getLineLeftOffset(a),c=h*this.scaleX,g=this._textLines[a],this.direction==="rtl"&&(o.x=this.width*this.scaleX-o.x+c);for(var y=0,m=g.length;y<m&&(s=c,c+=this.__charBounds[a][y].kernedWidth*this.scaleX,c<=o.x);y++)l++;return this._getNewSelectionStartFromOffset(o,s,c,l,m)},_getNewSelectionStartFromOffset:function(u,o,s,c,i){var l=u.x-o,a=s-u.x,h=a>l||a<0?0:1,g=c+h;return this.flipX&&(g=i-g),g>this._text.length&&(g=this._text.length),g}}),t.util.object.extend(t.IText.prototype,{initHiddenTextarea:function(){this.hiddenTextarea=t.document.createElement("textarea"),this.hiddenTextarea.setAttribute("autocapitalize","off"),this.hiddenTextarea.setAttribute("autocorrect","off"),this.hiddenTextarea.setAttribute("autocomplete","off"),this.hiddenTextarea.setAttribute("spellcheck","false"),this.hiddenTextarea.setAttribute("data-fabric-hiddentextarea",""),this.hiddenTextarea.setAttribute("wrap","off");var u=this._calcTextareaPosition();this.hiddenTextarea.style.cssText="position: absolute; top: "+u.top+"; left: "+u.left+"; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; padding-top: "+u.fontSize+";",this.hiddenTextareaContainer?this.hiddenTextareaContainer.appendChild(this.hiddenTextarea):t.document.body.appendChild(this.hiddenTextarea),t.util.addListener(this.hiddenTextarea,"keydown",this.onKeyDown.bind(this)),t.util.addListener(this.hiddenTextarea,"keyup",this.onKeyUp.bind(this)),t.util.addListener(this.hiddenTextarea,"input",this.onInput.bind(this)),t.util.addListener(this.hiddenTextarea,"copy",this.copy.bind(this)),t.util.addListener(this.hiddenTextarea,"cut",this.copy.bind(this)),t.util.addListener(this.hiddenTextarea,"paste",this.paste.bind(this)),t.util.addListener(this.hiddenTextarea,"compositionstart",this.onCompositionStart.bind(this)),t.util.addListener(this.hiddenTextarea,"compositionupdate",this.onCompositionUpdate.bind(this)),t.util.addListener(this.hiddenTextarea,"compositionend",this.onCompositionEnd.bind(this)),!this._clickHandlerInitialized&&this.canvas&&(t.util.addListener(this.canvas.upperCanvasEl,"click",this.onClick.bind(this)),this._clickHandlerInitialized=!0)},keysMap:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorRight",36:"moveCursorLeft",37:"moveCursorLeft",38:"moveCursorUp",39:"moveCursorRight",40:"moveCursorDown"},keysMapRtl:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorLeft",36:"moveCursorRight",37:"moveCursorRight",38:"moveCursorUp",39:"moveCursorLeft",40:"moveCursorDown"},ctrlKeysMapUp:{67:"copy",88:"cut"},ctrlKeysMapDown:{65:"selectAll"},onClick:function(){this.hiddenTextarea&&this.hiddenTextarea.focus()},onKeyDown:function(u){if(this.isEditing){var o=this.direction==="rtl"?this.keysMapRtl:this.keysMap;if(u.keyCode in o)this[o[u.keyCode]](u);else if(u.keyCode in this.ctrlKeysMapDown&&(u.ctrlKey||u.metaKey))this[this.ctrlKeysMapDown[u.keyCode]](u);else return;u.stopImmediatePropagation(),u.preventDefault(),u.keyCode>=33&&u.keyCode<=40?(this.inCompositionMode=!1,this.clearContextTop(),this.renderCursorOrSelection()):this.canvas&&this.canvas.requestRenderAll()}},onKeyUp:function(u){if(!this.isEditing||this._copyDone||this.inCompositionMode){this._copyDone=!1;return}if(u.keyCode in this.ctrlKeysMapUp&&(u.ctrlKey||u.metaKey))this[this.ctrlKeysMapUp[u.keyCode]](u);else return;u.stopImmediatePropagation(),u.preventDefault(),this.canvas&&this.canvas.requestRenderAll()},onInput:function(u){var o=this.fromPaste;if(this.fromPaste=!1,u&&u.stopPropagation(),!!this.isEditing){var s=this._splitTextIntoLines(this.hiddenTextarea.value).graphemeText,c=this._text.length,i=s.length,l,a,h=i-c,g=this.selectionStart,d=this.selectionEnd,A=g!==d,y,m,_;if(this.hiddenTextarea.value===""){this.styles={},this.updateFromTextArea(),this.fire("changed"),this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll());return}var w=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value),S=g>w.selectionStart;A?(l=this._text.slice(g,d),h+=d-g):i<c&&(S?l=this._text.slice(d+h,d):l=this._text.slice(g,g-h)),a=s.slice(w.selectionEnd-h,w.selectionEnd),l&&l.length&&(a.length&&(y=this.getSelectionStyles(g,g+1,!1),y=a.map(function(){return y[0]})),A?(m=g,_=d):S?(m=d-l.length,_=d):(m=d,_=d+l.length),this.removeStyleFromTo(m,_)),a.length&&(o&&a.join("")===t.copiedText&&!t.disableStyleCopyPaste&&(y=t.copiedTextStyle),this.insertNewStyleBlock(a,g,y)),this.updateFromTextArea(),this.fire("changed"),this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll())}},onCompositionStart:function(){this.inCompositionMode=!0},onCompositionEnd:function(){this.inCompositionMode=!1},onCompositionUpdate:function(u){this.compositionStart=u.target.selectionStart,this.compositionEnd=u.target.selectionEnd,this.updateTextareaPosition()},copy:function(){this.selectionStart!==this.selectionEnd&&(t.copiedText=this.getSelectedText(),t.disableStyleCopyPaste?t.copiedTextStyle=null:t.copiedTextStyle=this.getSelectionStyles(this.selectionStart,this.selectionEnd,!0),this._copyDone=!0)},paste:function(){this.fromPaste=!0},_getClipboardData:function(u){return u&&u.clipboardData||t.window.clipboardData},_getWidthBeforeCursor:function(u,o){var s=this._getLineLeftOffset(u),c;return o>0&&(c=this.__charBounds[u][o-1],s+=c.left+c.width),s},getDownCursorOffset:function(u,o){var s=this._getSelectionForOffset(u,o),c=this.get2DCursorLocation(s),i=c.lineIndex;if(i===this._textLines.length-1||u.metaKey||u.keyCode===34)return this._text.length-s;var l=c.charIndex,a=this._getWidthBeforeCursor(i,l),h=this._getIndexOnLine(i+1,a),g=this._textLines[i].slice(l);return g.length+h+1+this.missingNewlineOffset(i)},_getSelectionForOffset:function(u,o){return u.shiftKey&&this.selectionStart!==this.selectionEnd&&o?this.selectionEnd:this.selectionStart},getUpCursorOffset:function(u,o){var s=this._getSelectionForOffset(u,o),c=this.get2DCursorLocation(s),i=c.lineIndex;if(i===0||u.metaKey||u.keyCode===33)return-s;var l=c.charIndex,a=this._getWidthBeforeCursor(i,l),h=this._getIndexOnLine(i-1,a),g=this._textLines[i].slice(0,l),d=this.missingNewlineOffset(i-1);return-this._textLines[i-1].length+h-g.length+(1-d)},_getIndexOnLine:function(u,o){for(var s=this._textLines[u],c=this._getLineLeftOffset(u),i=c,l=0,a,h,g=0,d=s.length;g<d;g++)if(a=this.__charBounds[u][g].width,i+=a,i>o){h=!0;var A=i-a,y=i,m=Math.abs(A-o),_=Math.abs(y-o);l=_<m?g:g-1;break}return h||(l=s.length-1),l},moveCursorDown:function(u){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorUpOrDown("Down",u)},moveCursorUp:function(u){this.selectionStart===0&&this.selectionEnd===0||this._moveCursorUpOrDown("Up",u)},_moveCursorUpOrDown:function(u,o){var s="get"+u+"CursorOffset",c=this[s](o,this._selectionDirection==="right");o.shiftKey?this.moveCursorWithShift(c):this.moveCursorWithoutShift(c),c!==0&&(this.setSelectionInBoundaries(),this.abortCursorAnimation(),this._currentCursorOpacity=1,this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorWithShift:function(u){var o=this._selectionDirection==="left"?this.selectionStart+u:this.selectionEnd+u;return this.setSelectionStartEndWithShift(this.selectionStart,this.selectionEnd,o),u!==0},moveCursorWithoutShift:function(u){return u<0?(this.selectionStart+=u,this.selectionEnd=this.selectionStart):(this.selectionEnd+=u,this.selectionStart=this.selectionEnd),u!==0},moveCursorLeft:function(u){this.selectionStart===0&&this.selectionEnd===0||this._moveCursorLeftOrRight("Left",u)},_move:function(u,o,s){var c;if(u.altKey)c=this["findWordBoundary"+s](this[o]);else if(u.metaKey||u.keyCode===35||u.keyCode===36)c=this["findLineBoundary"+s](this[o]);else return this[o]+=s==="Left"?-1:1,!0;if(typeof c<"u"&&this[o]!==c)return this[o]=c,!0},_moveLeft:function(u,o){return this._move(u,o,"Left")},_moveRight:function(u,o){return this._move(u,o,"Right")},moveCursorLeftWithoutShift:function(u){var o=!0;return this._selectionDirection="left",this.selectionEnd===this.selectionStart&&this.selectionStart!==0&&(o=this._moveLeft(u,"selectionStart")),this.selectionEnd=this.selectionStart,o},moveCursorLeftWithShift:function(u){if(this._selectionDirection==="right"&&this.selectionStart!==this.selectionEnd)return this._moveLeft(u,"selectionEnd");if(this.selectionStart!==0)return this._selectionDirection="left",this._moveLeft(u,"selectionStart")},moveCursorRight:function(u){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorLeftOrRight("Right",u)},_moveCursorLeftOrRight:function(u,o){var s="moveCursor"+u+"With";this._currentCursorOpacity=1,o.shiftKey?s+="Shift":s+="outShift",this[s](o)&&(this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorRightWithShift:function(u){if(this._selectionDirection==="left"&&this.selectionStart!==this.selectionEnd)return this._moveRight(u,"selectionStart");if(this.selectionEnd!==this._text.length)return this._selectionDirection="right",this._moveRight(u,"selectionEnd")},moveCursorRightWithoutShift:function(u){var o=!0;return this._selectionDirection="right",this.selectionStart===this.selectionEnd?(o=this._moveRight(u,"selectionStart"),this.selectionEnd=this.selectionStart):this.selectionStart=this.selectionEnd,o},removeChars:function(u,o){typeof o>"u"&&(o=u+1),this.removeStyleFromTo(u,o),this._text.splice(u,o-u),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()},insertChars:function(u,o,s,c){typeof c>"u"&&(c=s),c>s&&this.removeStyleFromTo(s,c);var i=t.util.string.graphemeSplit(u);this.insertNewStyleBlock(i,s,o),this._text=[].concat(this._text.slice(0,s),i,this._text.slice(c)),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()}}),(function(){var u=t.util.toFixed,o=/ +/g;t.util.object.extend(t.Text.prototype,{_toSVG:function(){var s=this._getSVGLeftTopOffsets(),c=this._getSVGTextAndBg(s.textTop,s.textLeft);return this._wrapSVGTextAndBg(c)},toSVG:function(s){return this._createBaseSVGMarkup(this._toSVG(),{reviver:s,noStyle:!0,withShadow:!0})},_getSVGLeftTopOffsets:function(){return{textLeft:-this.width/2,textTop:-this.height/2,lineTop:this.getHeightOfLine(0)}},_wrapSVGTextAndBg:function(s){var c=!0,i=this.getSvgTextDecoration(this);return[s.textBgRects.join(""),' <text xml:space="preserve" ',this.fontFamily?'font-family="'+this.fontFamily.replace(/"/g,"'")+'" ':"",this.fontSize?'font-size="'+this.fontSize+'" ':"",this.fontStyle?'font-style="'+this.fontStyle+'" ':"",this.fontWeight?'font-weight="'+this.fontWeight+'" ':"",i?'text-decoration="'+i+'" ':"",'style="',this.getSvgStyles(c),'"',this.addPaintOrder()," >",s.textSpans.join(""),`</text>
439
+ `]},_getSVGTextAndBg:function(s,c){var i=[],l=[],a=s,h;this._setSVGBg(l);for(var g=0,d=this._textLines.length;g<d;g++)h=this._getLineLeftOffset(g),(this.textBackgroundColor||this.styleHas("textBackgroundColor",g))&&this._setSVGTextLineBg(l,g,c+h,a),this._setSVGTextLineText(i,g,c+h,a),a+=this.getHeightOfLine(g);return{textSpans:i,textBgRects:l}},_createTextCharSpan:function(s,c,i,l){var a=s!==s.trim()||s.match(o),h=this.getSvgSpanStyles(c,a),g=h?'style="'+h+'"':"",d=c.deltaY,A="",y=t.Object.NUM_FRACTION_DIGITS;return d&&(A=' dy="'+u(d,y)+'" '),['<tspan x="',u(i,y),'" y="',u(l,y),'" ',A,g,">",t.util.string.escapeXml(s),"</tspan>"].join("")},_setSVGTextLineText:function(s,c,i,l){var a=this.getHeightOfLine(c),h=this.textAlign.indexOf("justify")!==-1,g,d,A="",y,m,_=0,w=this._textLines[c],S;l+=a*(1-this._fontSizeFraction)/this.lineHeight;for(var O=0,P=w.length-1;O<=P;O++)S=O===P||this.charSpacing,A+=w[O],y=this.__charBounds[c][O],_===0?(i+=y.kernedWidth-y.width,_+=y.width):_+=y.kernedWidth,h&&!S&&this._reSpaceAndTab.test(w[O])&&(S=!0),S||(g=g||this.getCompleteStyleDeclaration(c,O),d=this.getCompleteStyleDeclaration(c,O+1),S=t.util.hasStyleChanged(g,d,!0)),S&&(m=this._getStyleDeclaration(c,O)||{},s.push(this._createTextCharSpan(A,m,i,l)),A="",g=d,i+=_,_=0)},_pushTextBgRect:function(s,c,i,l,a,h){var g=t.Object.NUM_FRACTION_DIGITS;s.push(" <rect ",this._getFillAttributes(c),' x="',u(i,g),'" y="',u(l,g),'" width="',u(a,g),'" height="',u(h,g),`"></rect>
440
+ `)},_setSVGTextLineBg:function(s,c,i,l){for(var a=this._textLines[c],h=this.getHeightOfLine(c)/this.lineHeight,g=0,d=0,A,y,m=this.getValueOfPropertyAt(c,0,"textBackgroundColor"),_=0,w=a.length;_<w;_++)A=this.__charBounds[c][_],y=this.getValueOfPropertyAt(c,_,"textBackgroundColor"),y!==m?(m&&this._pushTextBgRect(s,m,i+d,l,g,h),d=A.left,g=A.width,m=y):g+=A.kernedWidth;y&&this._pushTextBgRect(s,y,i+d,l,g,h)},_getFillAttributes:function(s){var c=s&&typeof s=="string"?new t.Color(s):"";return!c||!c.getSource()||c.getAlpha()===1?'fill="'+s+'"':'opacity="'+c.getAlpha()+'" fill="'+c.setAlpha(1).toRgb()+'"'},_getSVGLineTopOffset:function(s){for(var c=0,i=0,l=0;l<s;l++)c+=this.getHeightOfLine(l);return i=this.getHeightOfLine(l),{lineTop:c,offset:(this._fontSizeMult-this._fontSizeFraction)*i/(this.lineHeight*this._fontSizeMult)}},getSvgStyles:function(s){var c=t.Object.prototype.getSvgStyles.call(this,s);return c+" white-space: pre;"}})})(),(function(u){var o=u.fabric||(u.fabric={});o.Textbox=o.util.createClass(o.IText,o.Observable,{type:"textbox",minWidth:20,dynamicMinWidth:2,__cachedLines:null,lockScalingFlip:!0,noScaleCache:!1,_dimensionAffectingProps:o.Text.prototype._dimensionAffectingProps.concat("width"),_wordJoiners:/[ \t\r]/,splitByGrapheme:!1,initDimensions:function(){this.__skipDimension||(this.isEditing&&this.initDelayedCursor(),this.clearContextTop(),this._clearCache(),this.dynamicMinWidth=0,this._styleMap=this._generateStyleMap(this._splitText()),this.dynamicMinWidth>this.width&&this._set("width",this.dynamicMinWidth),this.textAlign.indexOf("justify")!==-1&&this.enlargeSpaces(),this.height=this.calcTextHeight(),this.saveState({propertySet:"_dimensionAffectingProps"}))},_generateStyleMap:function(s){for(var c=0,i=0,l=0,a={},h=0;h<s.graphemeLines.length;h++)s.graphemeText[l]===`
441
+ `&&h>0?(i=0,l++,c++):!this.splitByGrapheme&&this._reSpaceAndTab.test(s.graphemeText[l])&&h>0&&(i++,l++),a[h]={line:c,offset:i},l+=s.graphemeLines[h].length,i+=s.graphemeLines[h].length;return a},styleHas:function(s,c){if(this._styleMap&&!this.isWrapping){var i=this._styleMap[c];i&&(c=i.line)}return o.Text.prototype.styleHas.call(this,s,c)},isEmptyStyles:function(s){if(!this.styles)return!0;var c=0,i=s+1,l,a,h=!1,g=this._styleMap[s],d=this._styleMap[s+1];g&&(s=g.line,c=g.offset),d&&(i=d.line,h=i===s,l=d.offset),a=typeof s>"u"?this.styles:{line:this.styles[s]};for(var A in a)for(var y in a[A])if(y>=c&&(!h||y<l))for(var m in a[A][y])return!1;return!0},_getStyleDeclaration:function(s,c){if(this._styleMap&&!this.isWrapping){var i=this._styleMap[s];if(!i)return null;s=i.line,c=i.offset+c}return this.callSuper("_getStyleDeclaration",s,c)},_setStyleDeclaration:function(s,c,i){var l=this._styleMap[s];s=l.line,c=l.offset+c,this.styles[s][c]=i},_deleteStyleDeclaration:function(s,c){var i=this._styleMap[s];s=i.line,c=i.offset+c,delete this.styles[s][c]},_getLineStyle:function(s){var c=this._styleMap[s];return!!this.styles[c.line]},_setLineStyle:function(s){var c=this._styleMap[s];this.styles[c.line]={}},_wrapText:function(s,c){var i=[],l;for(this.isWrapping=!0,l=0;l<s.length;l++)i=i.concat(this._wrapLine(s[l],l,c));return this.isWrapping=!1,i},_measureWord:function(s,c,i){var l=0,a,h=!0;i=i||0;for(var g=0,d=s.length;g<d;g++){var A=this._getGraphemeBox(s[g],c,g+i,a,h);l+=A.kernedWidth,a=s[g]}return l},_wrapLine:function(s,c,i,q){var a=0,h=this.splitByGrapheme,g=[],d=[],A=h?o.util.string.graphemeSplit(s):s.split(this._wordJoiners),y="",m=0,_=h?"":" ",w=0,S=0,O=0,P=!0,N=this._getWidthOfCharSpacing(),q=q||0;A.length===0&&A.push([]),i-=q;for(var Z=0;Z<A.length;Z++)y=h?A[Z]:o.util.string.graphemeSplit(A[Z]),w=this._measureWord(y,c,m),m+=y.length,a+=S+w-N,a>i&&!P?(g.push(d),d=[],a=w,P=!0):a+=N,!P&&!h&&d.push(_),d=d.concat(y),S=h?0:this._measureWord([_],c,m),m++,P=!1,w>O&&(O=w);return Z&&g.push(d),O+q>this.dynamicMinWidth&&(this.dynamicMinWidth=O-N+q),g},isEndOfWrapping:function(s){return!this._styleMap[s+1]||this._styleMap[s+1].line!==this._styleMap[s].line},missingNewlineOffset:function(s){return this.splitByGrapheme?this.isEndOfWrapping(s)?1:0:1},_splitTextIntoLines:function(s){for(var c=o.Text.prototype._splitTextIntoLines.call(this,s),i=this._wrapText(c.lines,this.width),l=new Array(i.length),a=0;a<i.length;a++)l[a]=i[a].join("");return c.lines=l,c.graphemeLines=i,c},getMinWidth:function(){return Math.max(this.minWidth,this.dynamicMinWidth)},_removeExtraneousStyles:function(){var s={};for(var c in this._styleMap)this._textLines[c]&&(s[this._styleMap[c].line]=1);for(var c in this.styles)s[c]||delete this.styles[c]},toObject:function(s){return this.callSuper("toObject",["minWidth","splitByGrapheme"].concat(s))}}),o.Textbox.fromObject=function(s,c){var i=o.util.stylesFromArray(s.styles,s.text),l=Object.assign({},s,{styles:i});return o.Object._fromObject("Textbox",l,c,"text")}})(e),(function(){var u=t.controlsUtils,o=u.scaleSkewCursorStyleHandler,s=u.scaleCursorStyleHandler,c=u.scalingEqually,i=u.scalingYOrSkewingX,l=u.scalingXOrSkewingY,a=u.scaleOrSkewActionName,h=t.Object.prototype.controls;if(h.ml=new t.Control({x:-.5,y:0,cursorStyleHandler:o,actionHandler:l,getActionName:a}),h.mr=new t.Control({x:.5,y:0,cursorStyleHandler:o,actionHandler:l,getActionName:a}),h.mb=new t.Control({x:0,y:.5,cursorStyleHandler:o,actionHandler:i,getActionName:a}),h.mt=new t.Control({x:0,y:-.5,cursorStyleHandler:o,actionHandler:i,getActionName:a}),h.tl=new t.Control({x:-.5,y:-.5,cursorStyleHandler:s,actionHandler:c}),h.tr=new t.Control({x:.5,y:-.5,cursorStyleHandler:s,actionHandler:c}),h.bl=new t.Control({x:-.5,y:.5,cursorStyleHandler:s,actionHandler:c}),h.br=new t.Control({x:.5,y:.5,cursorStyleHandler:s,actionHandler:c}),h.mtr=new t.Control({x:0,y:-.5,actionHandler:u.rotationWithSnapping,cursorStyleHandler:u.rotationStyleHandler,offsetY:-40,withConnection:!0,actionName:"rotate"}),t.Textbox){var g=t.Textbox.prototype.controls={};g.mtr=h.mtr,g.tr=h.tr,g.br=h.br,g.tl=h.tl,g.bl=h.bl,g.mt=h.mt,g.mb=h.mb,g.mr=new t.Control({x:.5,y:0,actionHandler:u.changeWidth,cursorStyleHandler:o,actionName:"resizing"}),g.ml=new t.Control({x:-.5,y:0,actionHandler:u.changeWidth,cursorStyleHandler:o,actionName:"resizing"})}})()})(Lf)),Lf}var qi=lb();function ub(e){return eb(e).promise.value}function hb(e){return new Promise(t=>{const{onChange:n,open:r}=ob(e);n(f=>{t(f)}),r()})}function fb(e){return new Promise(t=>{const n=document.createElement("img");n.src=e,document.body.appendChild(n),n.onload=()=>{t(n)}})}const db=(e,t)=>rb({source:e,...t}).copy();function gb(e,t){const n=document.createElement("a");n.href=e,n.download=`${p1()}.${t}`,document.body.appendChild(n),n.click(),n.remove()}function pb(e,t,n,r,f,p,v){v!==void 0&&(e.save(),e.translate(t,n),e.rotate(v),e.drawImage(r,-f/2,-p/2,f,p),e.restore())}const Ab=e=>e instanceof qi.fabric.Image,vb=e=>e instanceof qi.fabric.Group,yb=e=>e instanceof qi.fabric.IText,mb=e=>e instanceof qi.fabric.ActiveSelection;function _b(e){return new Promise(t=>{const n=new FileReader;n.addEventListener("load",()=>{t(n.result)}),n.readAsDataURL(e)})}function bb(e){if(!e)return null;const t=e.split(","),n=t[0].match(/:(.*?);/)[1],r=window.atob(t[1]),f=new ArrayBuffer(r.length),p=new Uint8Array(f);for(let v=0;v<r.length;v++)p[v]=r.charCodeAt(v);return[new Blob([f],{type:n}),n.slice(6)]}const ze={getImgStr:ub,downFile:gb,selectFiles:hb,insertImgFile:fb,clipboardText:db,drawImg:pb,isImage:Ab,isGroup:vb,isIText:yb,isActiveSelection:mb,blobToBase64:_b,base64ToBlob:bb};qi.fabric;function Nf(e,t,n){const r=c=>c===void 0?void 0:l0(Wt.pxToMm(c,t),n),f=e.left,p=e.top,v=e.width,u=e.height,o=e.strokeWidth,s=e.fontSize;e._originSize={...e._originSize,mm:{left:r(f),top:r(p),width:r(v),height:r(u),strokeWidth:r(o),fontSize:r(s)}}}function ue(e){return e.getUnit?.()??"px"}function fn(e,t,n){if(t==="px")return typeof e=="string"?Number(e):e;if(t==="mm")return Wt.mmToPx(e,n,{direct:!0});const r=typeof e=="string"?Number(e):e;return Wt.mmToPx(r*Wt.CONSTANTS.INCH_TO_MM,n,{direct:!0})}function Qe(e={},t,n,r=["left","top","width","height","fontSize","boxWidth"]){const f=new Set(r),p={},v={};for(const u of Object.keys(e)){if(!f.has(u))continue;const o=e[u];o!==void 0&&(v[u]=o,p[u]=fn(o,t,n))}return{processed:p,originByUnit:{[t]:v}}}function l0(e,t){if(t===void 0)return e;const n=Math.pow(10,t);return Math.round(e*n)/n}function du(e,t){if(typeof e=="number")return l0(e,t);if(Array.isArray(e))return e.map(n=>du(n,t));if(e&&typeof e=="object"){const n={};return Object.keys(e).forEach(r=>{n[r]=du(e[r],t)}),n}return e}function Ae(e,t){return du(e,t)}function Uf(e,t=2){const n=Number(e).toFixed(t);return n.includes(".")?n.replace(/\.?0+$/,""):n}var u0=typeof global=="object"&&global&&global.Object===Object&&global,wb=typeof self=="object"&&self&&self.Object===Object&&self,ie=u0||wb||Function("return this")(),ge=ie.Symbol,h0=Object.prototype,Cb=h0.hasOwnProperty,Eb=h0.toString,li=ge?ge.toStringTag:void 0;function Sb(e){var t=Cb.call(e,li),n=e[li];try{e[li]=void 0;var r=!0}catch{}var f=Eb.call(e);return r&&(t?e[li]=n:delete e[li]),f}var xb=Object.prototype,Ib=xb.toString;function Ob(e){return Ib.call(e)}var Bb="[object Null]",Tb="[object Undefined]",Gf=ge?ge.toStringTag:void 0;function _e(e){return e==null?e===void 0?Tb:Bb:Gf&&Gf in Object(e)?Sb(e):Ob(e)}function Jt(e){return e!=null&&typeof e=="object"}var kb="[object Symbol]";function Fe(e){return typeof e=="symbol"||Jt(e)&&_e(e)==kb}var Db=NaN;function $f(e){return typeof e=="number"?e:Fe(e)?Db:+e}function zt(e,t){for(var n=-1,r=e==null?0:e.length,f=Array(r);++n<r;)f[n]=t(e[n],n,e);return f}var wt=Array.isArray,Hf=ge?ge.prototype:void 0,zf=Hf?Hf.toString:void 0;function Le(e){if(typeof e=="string")return e;if(wt(e))return zt(e,Le)+"";if(Fe(e))return zf?zf.call(e):"";var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function $a(e,t){return function(n,r){var f;if(n===void 0&&r===void 0)return t;if(n!==void 0&&(f=n),r!==void 0){if(f===void 0)return r;typeof n=="string"||typeof r=="string"?(n=Le(n),r=Le(r)):(n=$f(n),r=$f(r)),f=e(n,r)}return f}}var Rb=$a(function(e,t){return e+t},0),Mb=/\s/;function f0(e){for(var t=e.length;t--&&Mb.test(e.charAt(t)););return t}var Pb=/^\s+/;function d0(e){return e&&e.slice(0,f0(e)+1).replace(Pb,"")}function qt(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Yf=NaN,Qb=/^[-+]0x[0-9a-f]+$/i,Fb=/^0b[01]+$/i,Lb=/^0o[0-7]+$/i,jb=parseInt;function Ye(e){if(typeof e=="number")return e;if(Fe(e))return Yf;if(qt(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=qt(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=d0(e);var n=Fb.test(e);return n||Lb.test(e)?jb(e.slice(2),n?2:8):Qb.test(e)?Yf:+e}var Wf=1/0,Nb=17976931348623157e292;function On(e){if(!e)return e===0?e:0;if(e=Ye(e),e===Wf||e===-Wf){var t=e<0?-1:1;return t*Nb}return e===e?e:0}function St(e){var t=On(e),n=t%1;return t===t?n?t-n:t:0}var Ub="Expected a function";function Gb(e,t){if(typeof t!="function")throw new TypeError(Ub);return e=St(e),function(){if(--e<1)return t.apply(this,arguments)}}function Te(e){return e}var $b="[object AsyncFunction]",Hb="[object Function]",zb="[object GeneratorFunction]",Yb="[object Proxy]";function Dn(e){if(!qt(e))return!1;var t=_e(e);return t==Hb||t==zb||t==$b||t==Yb}var cs=ie["__core-js_shared__"],qf=(function(){var e=/[^.]+$/.exec(cs&&cs.keys&&cs.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function Wb(e){return!!qf&&qf in e}var qb=Function.prototype,Xb=qb.toString;function mr(e){if(e!=null){try{return Xb.call(e)}catch{}try{return e+""}catch{}}return""}var Vb=/[\\^$.*+?()[\]{}|]/g,Jb=/^\[object .+?Constructor\]$/,Kb=Function.prototype,Zb=Object.prototype,tw=Kb.toString,ew=Zb.hasOwnProperty,nw=RegExp("^"+tw.call(ew).replace(Vb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function g0(e){if(!qt(e)||Wb(e))return!1;var t=Dn(e)?nw:Jb;return t.test(mr(e))}function rw(e,t){return e?.[t]}function _r(e,t){var n=rw(e,t);return g0(n)?n:void 0}var Li=_r(ie,"WeakMap"),xs=Li&&new Li,p0=xs?function(e,t){return xs.set(e,t),e}:Te,Xf=Object.create,Wr=(function(){function e(){}return function(t){if(!qt(t))return{};if(Xf)return Xf(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}})();function ji(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=Wr(e.prototype),r=e.apply(n,t);return qt(r)?r:n}}var iw=1;function ow(e,t,n){var r=t&iw,f=ji(e);function p(){var v=this&&this!==ie&&this instanceof p?f:e;return v.apply(r?n:this,arguments)}return p}function je(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}var sw=Math.max;function A0(e,t,n,r){for(var f=-1,p=e.length,v=n.length,u=-1,o=t.length,s=sw(p-v,0),c=Array(o+s),i=!r;++u<o;)c[u]=t[u];for(;++f<v;)(i||f<p)&&(c[n[f]]=e[f]);for(;s--;)c[u++]=e[f++];return c}var aw=Math.max;function v0(e,t,n,r){for(var f=-1,p=e.length,v=-1,u=n.length,o=-1,s=t.length,c=aw(p-u,0),i=Array(c+s),l=!r;++f<c;)i[f]=e[f];for(var a=f;++o<s;)i[a+o]=t[o];for(;++v<u;)(l||f<p)&&(i[a+n[v]]=e[f++]);return i}function cw(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}function Ha(){}var lw=4294967295;function Ot(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=lw,this.__views__=[]}Ot.prototype=Wr(Ha.prototype);Ot.prototype.constructor=Ot;function Ni(){}var lh=xs?function(e){return xs.get(e)}:Ni,Lr={},uw=Object.prototype,hw=uw.hasOwnProperty;function ls(e){for(var t=e.name+"",n=Lr[t],r=hw.call(Lr,t)?n.length:0;r--;){var f=n[r],p=f.func;if(p==null||p==e)return f.name}return t}function qe(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}qe.prototype=Wr(Ha.prototype);qe.prototype.constructor=qe;function Ie(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}function y0(e){if(e instanceof Ot)return e.clone();var t=new qe(e.__wrapped__,e.__chain__);return t.__actions__=Ie(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var fw=Object.prototype,dw=fw.hasOwnProperty;function R(e){if(Jt(e)&&!wt(e)&&!(e instanceof Ot)){if(e instanceof qe)return e;if(dw.call(e,"__wrapped__"))return y0(e)}return new qe(e)}R.prototype=Ha.prototype;R.prototype.constructor=R;function gu(e){var t=ls(e),n=R[t];if(typeof n!="function"||!(t in Ot.prototype))return!1;if(e===n)return!0;var r=lh(n);return!!r&&e===r[0]}var gw=800,pw=16,Aw=Date.now;function m0(e){var t=0,n=0;return function(){var r=Aw(),f=pw-(r-n);if(n=r,f>0){if(++t>=gw)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var _0=m0(p0),vw=/\{\n\/\* \[wrapped with (.+)\] \*/,yw=/,? & /;function mw(e){var t=e.match(vw);return t?t[1].split(yw):[]}var _w=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function bw(e,t){var n=t.length;if(!n)return e;var r=n-1;return t[r]=(n>1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(_w,`{
442
+ /* [wrapped with `+t+`] */
443
+ `)}function uh(e){return function(){return e}}var Is=(function(){try{var e=_r(Object,"defineProperty");return e({},"",{}),e}catch{}})(),ww=Is?function(e,t){return Is(e,"toString",{configurable:!0,enumerable:!1,value:uh(t),writable:!0})}:Te,hh=m0(ww);function Ke(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}function za(e,t,n,r){for(var f=e.length,p=n+(r?1:-1);r?p--:++p<f;)if(t(e[p],p,e))return p;return-1}function b0(e){return e!==e}function Cw(e,t,n){for(var r=n-1,f=e.length;++r<f;)if(e[r]===t)return r;return-1}function qr(e,t,n){return t===t?Cw(e,t,n):za(e,b0,n)}function Ya(e,t){var n=e==null?0:e.length;return!!n&&qr(e,t,0)>-1}var Ew=1,Sw=2,xw=8,Iw=16,Ow=32,Bw=64,Tw=128,kw=256,Dw=512,Rw=[["ary",Tw],["bind",Ew],["bindKey",Sw],["curry",xw],["curryRight",Iw],["flip",Dw],["partial",Ow],["partialRight",Bw],["rearg",kw]];function Mw(e,t){return Ke(Rw,function(n){var r="_."+n[0];t&n[1]&&!Ya(e,r)&&e.push(r)}),e.sort()}function w0(e,t,n){var r=t+"";return hh(e,bw(r,Mw(mw(r),n)))}var Pw=4,Qw=8,Vf=32,Jf=64;function C0(e,t,n,r,f,p,v,u,o,s){var c=t&Qw,i=c?v:void 0,l=c?void 0:v,a=c?p:void 0,h=c?void 0:p;t|=c?Vf:Jf,t&=~(c?Jf:Vf),t&Pw||(t&=-4);var g=[e,t,f,a,i,h,l,u,o,s],d=n.apply(void 0,g);return gu(e)&&_0(d,g),d.placeholder=r,w0(d,e,t)}function Xr(e){var t=e;return t.placeholder}var Fw=9007199254740991,Lw=/^(?:0|[1-9]\d*)$/;function Rn(e,t){var n=typeof e;return t=t??Fw,!!t&&(n=="number"||n!="symbol"&&Lw.test(e))&&e>-1&&e%1==0&&e<t}var jw=Math.min;function Nw(e,t){for(var n=e.length,r=jw(t.length,n),f=Ie(e);r--;){var p=t[r];e[r]=Rn(p,n)?f[p]:void 0}return e}var Kf="__lodash_placeholder__";function Jn(e,t){for(var n=-1,r=e.length,f=0,p=[];++n<r;){var v=e[n];(v===t||v===Kf)&&(e[n]=Kf,p[f++]=n)}return p}var Uw=1,Gw=2,$w=8,Hw=16,zw=128,Yw=512;function Wa(e,t,n,r,f,p,v,u,o,s){var c=t&zw,i=t&Uw,l=t&Gw,a=t&($w|Hw),h=t&Yw,g=l?void 0:ji(e);function d(){for(var A=arguments.length,y=Array(A),m=A;m--;)y[m]=arguments[m];if(a)var _=Xr(d),w=cw(y,_);if(r&&(y=A0(y,r,f,a)),p&&(y=v0(y,p,v,a)),A-=w,a&&A<s){var S=Jn(y,_);return C0(e,t,Wa,d.placeholder,n,y,S,u,o,s-A)}var O=i?n:this,P=l?O[e]:e;return A=y.length,u?y=Nw(y,u):h&&A>1&&y.reverse(),c&&o<A&&(y.length=o),this&&this!==ie&&this instanceof d&&(P=g||ji(P)),P.apply(O,y)}return d}function Ww(e,t,n){var r=ji(e);function f(){for(var p=arguments.length,v=Array(p),u=p,o=Xr(f);u--;)v[u]=arguments[u];var s=p<3&&v[0]!==o&&v[p-1]!==o?[]:Jn(v,o);if(p-=s.length,p<n)return C0(e,t,Wa,f.placeholder,void 0,v,s,void 0,void 0,n-p);var c=this&&this!==ie&&this instanceof f?r:e;return je(c,this,v)}return f}var qw=1;function Xw(e,t,n,r){var f=t&qw,p=ji(e);function v(){for(var u=-1,o=arguments.length,s=-1,c=r.length,i=Array(c+o),l=this&&this!==ie&&this instanceof v?p:e;++s<c;)i[s]=r[s];for(;o--;)i[s++]=arguments[++u];return je(l,f?n:this,i)}return v}var Zf="__lodash_placeholder__",zc=1,Vw=2,Jw=4,td=8,ui=128,ed=256,Kw=Math.min;function Zw(e,t){var n=e[1],r=t[1],f=n|r,p=f<(zc|Vw|ui),v=r==ui&&n==td||r==ui&&n==ed&&e[7].length<=t[8]||r==(ui|ed)&&t[7].length<=t[8]&&n==td;if(!(p||v))return e;r&zc&&(e[2]=t[2],f|=n&zc?0:Jw);var u=t[3];if(u){var o=e[3];e[3]=o?A0(o,u,t[4]):u,e[4]=o?Jn(e[3],Zf):t[4]}return u=t[5],u&&(o=e[5],e[5]=o?v0(o,u,t[6]):u,e[6]=o?Jn(e[5],Zf):t[6]),u=t[7],u&&(e[7]=u),r&ui&&(e[8]=e[8]==null?t[8]:Kw(e[8],t[8])),e[9]==null&&(e[9]=t[9]),e[0]=t[0],e[1]=f,e}var tC="Expected a function",nd=1,eC=2,rd=8,id=16,od=32,nC=64,sd=Math.max;function Mn(e,t,n,r,f,p,v,u){var o=t&eC;if(!o&&typeof e!="function")throw new TypeError(tC);var s=r?r.length:0;if(s||(t&=-97,r=f=void 0),v=v===void 0?v:sd(St(v),0),u=u===void 0?u:St(u),s-=f?f.length:0,t&nC){var c=r,i=f;r=f=void 0}var l=o?void 0:lh(e),a=[e,t,n,r,f,c,i,p,v,u];if(l&&Zw(a,l),e=a[0],t=a[1],n=a[2],r=a[3],f=a[4],u=a[9]=a[9]===void 0?o?0:e.length:sd(a[9]-s,0),!u&&t&(rd|id)&&(t&=-25),!t||t==nd)var h=ow(e,t,n);else t==rd||t==id?h=Ww(e,t,u):(t==od||t==(nd|od))&&!f.length?h=Xw(e,t,n,r):h=Wa.apply(void 0,a);var g=l?p0:_0;return w0(g(h,a),e,t)}var rC=128;function E0(e,t,n){return t=n?void 0:t,t=e&&t==null?e.length:t,Mn(e,rC,void 0,void 0,void 0,void 0,t)}function Pn(e,t,n){t=="__proto__"&&Is?Is(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function ln(e,t){return e===t||e!==e&&t!==t}var iC=Object.prototype,oC=iC.hasOwnProperty;function Xi(e,t,n){var r=e[t];(!(oC.call(e,t)&&ln(r,n))||n===void 0&&!(t in e))&&Pn(e,t,n)}function mn(e,t,n,r){var f=!n;n||(n={});for(var p=-1,v=t.length;++p<v;){var u=t[p],o=r?r(n[u],e[u],u,n,e):void 0;o===void 0&&(o=e[u]),f?Pn(n,u,o):Xi(n,u,o)}return n}var ad=Math.max;function S0(e,t,n){return t=ad(t===void 0?e.length-1:t,0),function(){for(var r=arguments,f=-1,p=ad(r.length-t,0),v=Array(p);++f<p;)v[f]=r[t+f];f=-1;for(var u=Array(t+1);++f<t;)u[f]=r[f];return u[t]=n(v),je(e,this,u)}}function It(e,t){return hh(S0(e,t,Te),e+"")}var sC=9007199254740991;function qa(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=sC}function ke(e){return e!=null&&qa(e.length)&&!Dn(e)}function me(e,t,n){if(!qt(n))return!1;var r=typeof t;return(r=="number"?ke(n)&&Rn(t,n.length):r=="string"&&t in n)?ln(n[t],e):!1}function Vr(e){return It(function(t,n){var r=-1,f=n.length,p=f>1?n[f-1]:void 0,v=f>2?n[2]:void 0;for(p=e.length>3&&typeof p=="function"?(f--,p):void 0,v&&me(n[0],n[1],v)&&(p=f<3?void 0:p,f=1),t=Object(t);++r<f;){var u=n[r];u&&e(t,u,r,p)}return t})}var aC=Object.prototype;function Vi(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||aC;return e===n}function fh(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}var cC="[object Arguments]";function cd(e){return Jt(e)&&_e(e)==cC}var x0=Object.prototype,lC=x0.hasOwnProperty,uC=x0.propertyIsEnumerable,pr=cd((function(){return arguments})())?cd:function(e){return Jt(e)&&lC.call(e,"callee")&&!uC.call(e,"callee")};function dh(){return!1}var I0=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ld=I0&&typeof module=="object"&&module&&!module.nodeType&&module,hC=ld&&ld.exports===I0,ud=hC?ie.Buffer:void 0,fC=ud?ud.isBuffer:void 0,Kn=fC||dh,dC="[object Arguments]",gC="[object Array]",pC="[object Boolean]",AC="[object Date]",vC="[object Error]",yC="[object Function]",mC="[object Map]",_C="[object Number]",bC="[object Object]",wC="[object RegExp]",CC="[object Set]",EC="[object String]",SC="[object WeakMap]",xC="[object ArrayBuffer]",IC="[object DataView]",OC="[object Float32Array]",BC="[object Float64Array]",TC="[object Int8Array]",kC="[object Int16Array]",DC="[object Int32Array]",RC="[object Uint8Array]",MC="[object Uint8ClampedArray]",PC="[object Uint16Array]",QC="[object Uint32Array]",Ht={};Ht[OC]=Ht[BC]=Ht[TC]=Ht[kC]=Ht[DC]=Ht[RC]=Ht[MC]=Ht[PC]=Ht[QC]=!0;Ht[dC]=Ht[gC]=Ht[xC]=Ht[pC]=Ht[IC]=Ht[AC]=Ht[vC]=Ht[yC]=Ht[mC]=Ht[_C]=Ht[bC]=Ht[wC]=Ht[CC]=Ht[EC]=Ht[SC]=!1;function FC(e){return Jt(e)&&qa(e.length)&&!!Ht[_e(e)]}function Ne(e){return function(t){return e(t)}}var O0=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ci=O0&&typeof module=="object"&&module&&!module.nodeType&&module,LC=Ci&&Ci.exports===O0,Yc=LC&&u0.process,Xe=(function(){try{var e=Ci&&Ci.require&&Ci.require("util").types;return e||Yc&&Yc.binding&&Yc.binding("util")}catch{}})(),hd=Xe&&Xe.isTypedArray,Jr=hd?Ne(hd):FC,jC=Object.prototype,NC=jC.hasOwnProperty;function B0(e,t){var n=wt(e),r=!n&&pr(e),f=!n&&!r&&Kn(e),p=!n&&!r&&!f&&Jr(e),v=n||r||f||p,u=v?fh(e.length,String):[],o=u.length;for(var s in e)(t||NC.call(e,s))&&!(v&&(s=="length"||f&&(s=="offset"||s=="parent")||p&&(s=="buffer"||s=="byteLength"||s=="byteOffset")||Rn(s,o)))&&u.push(s);return u}function T0(e,t){return function(n){return e(t(n))}}var UC=T0(Object.keys,Object),GC=Object.prototype,$C=GC.hasOwnProperty;function gh(e){if(!Vi(e))return UC(e);var t=[];for(var n in Object(e))$C.call(e,n)&&n!="constructor"&&t.push(n);return t}function oe(e){return ke(e)?B0(e):gh(e)}var HC=Object.prototype,zC=HC.hasOwnProperty,YC=Vr(function(e,t){if(Vi(t)||ke(t)){mn(t,oe(t),e);return}for(var n in t)zC.call(t,n)&&Xi(e,n,t[n])});function WC(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var qC=Object.prototype,XC=qC.hasOwnProperty;function VC(e){if(!qt(e))return WC(e);var t=Vi(e),n=[];for(var r in e)r=="constructor"&&(t||!XC.call(e,r))||n.push(r);return n}function De(e){return ke(e)?B0(e,!0):VC(e)}var JC=Vr(function(e,t){mn(t,De(t),e)}),pu=Vr(function(e,t,n,r){mn(t,De(t),e,r)}),KC=Vr(function(e,t,n,r){mn(t,oe(t),e,r)}),ZC=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,tE=/^\w*$/;function ph(e,t){if(wt(e))return!1;var n=typeof e;return n=="number"||n=="symbol"||n=="boolean"||e==null||Fe(e)?!0:tE.test(e)||!ZC.test(e)||t!=null&&e in Object(t)}var Ui=_r(Object,"create");function eE(){this.__data__=Ui?Ui(null):{},this.size=0}function nE(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var rE="__lodash_hash_undefined__",iE=Object.prototype,oE=iE.hasOwnProperty;function sE(e){var t=this.__data__;if(Ui){var n=t[e];return n===rE?void 0:n}return oE.call(t,e)?t[e]:void 0}var aE=Object.prototype,cE=aE.hasOwnProperty;function lE(e){var t=this.__data__;return Ui?t[e]!==void 0:cE.call(t,e)}var uE="__lodash_hash_undefined__";function hE(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ui&&t===void 0?uE:t,this}function Ar(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Ar.prototype.clear=eE;Ar.prototype.delete=nE;Ar.prototype.get=sE;Ar.prototype.has=lE;Ar.prototype.set=hE;function fE(){this.__data__=[],this.size=0}function Xa(e,t){for(var n=e.length;n--;)if(ln(e[n][0],t))return n;return-1}var dE=Array.prototype,gE=dE.splice;function pE(e){var t=this.__data__,n=Xa(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():gE.call(t,n,1),--this.size,!0}function AE(e){var t=this.__data__,n=Xa(t,e);return n<0?void 0:t[n][1]}function vE(e){return Xa(this.__data__,e)>-1}function yE(e,t){var n=this.__data__,r=Xa(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Qn(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Qn.prototype.clear=fE;Qn.prototype.delete=pE;Qn.prototype.get=AE;Qn.prototype.has=vE;Qn.prototype.set=yE;var Gi=_r(ie,"Map");function mE(){this.size=0,this.__data__={hash:new Ar,map:new(Gi||Qn),string:new Ar}}function _E(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function Va(e,t){var n=e.__data__;return _E(t)?n[typeof t=="string"?"string":"hash"]:n.map}function bE(e){var t=Va(this,e).delete(e);return this.size-=t?1:0,t}function wE(e){return Va(this,e).get(e)}function CE(e){return Va(this,e).has(e)}function EE(e,t){var n=Va(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}function Fn(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Fn.prototype.clear=mE;Fn.prototype.delete=bE;Fn.prototype.get=wE;Fn.prototype.has=CE;Fn.prototype.set=EE;var SE="Expected a function";function Ja(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(SE);var n=function(){var r=arguments,f=t?t.apply(this,r):r[0],p=n.cache;if(p.has(f))return p.get(f);var v=e.apply(this,r);return n.cache=p.set(f,v)||p,v};return n.cache=new(Ja.Cache||Fn),n}Ja.Cache=Fn;var xE=500;function IE(e){var t=Ja(e,function(r){return n.size===xE&&n.clear(),r}),n=t.cache;return t}var OE=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,BE=/\\(\\)?/g,k0=IE(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(OE,function(n,r,f,p){t.push(f?p.replace(BE,"$1"):r||n)}),t});function Mt(e){return e==null?"":Le(e)}function er(e,t){return wt(e)?e:ph(e,t)?[e]:k0(Mt(e))}function _n(e){if(typeof e=="string"||Fe(e))return e;var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function br(e,t){t=er(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[_n(t[n++])];return n&&n==r?e:void 0}function $i(e,t,n){var r=e==null?void 0:br(e,t);return r===void 0?n:r}function Ah(e,t){for(var n=-1,r=t.length,f=Array(r),p=e==null;++n<r;)f[n]=p?void 0:$i(e,t[n]);return f}function nr(e,t){for(var n=-1,r=t.length,f=e.length;++n<r;)e[f+n]=t[n];return e}var fd=ge?ge.isConcatSpreadable:void 0;function TE(e){return wt(e)||pr(e)||!!(fd&&e&&e[fd])}function ce(e,t,n,r,f){var p=-1,v=e.length;for(n||(n=TE),f||(f=[]);++p<v;){var u=e[p];t>0&&n(u)?t>1?ce(u,t-1,n,r,f):nr(f,u):r||(f[f.length]=u)}return f}function D0(e){var t=e==null?0:e.length;return t?ce(e,1):[]}function Ln(e){return hh(S0(e,void 0,D0),e+"")}var kE=Ln(Ah),Ka=T0(Object.getPrototypeOf,Object),DE="[object Object]",RE=Function.prototype,ME=Object.prototype,R0=RE.toString,PE=ME.hasOwnProperty,QE=R0.call(Object);function Ji(e){if(!Jt(e)||_e(e)!=DE)return!1;var t=Ka(e);if(t===null)return!0;var n=PE.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&R0.call(n)==QE}var FE="[object DOMException]",LE="[object Error]";function vh(e){if(!Jt(e))return!1;var t=_e(e);return t==LE||t==FE||typeof e.message=="string"&&typeof e.name=="string"&&!Ji(e)}var M0=It(function(e,t){try{return je(e,void 0,t)}catch(n){return vh(n)?n:new Error(n)}}),jE="Expected a function";function P0(e,t){var n;if(typeof t!="function")throw new TypeError(jE);return e=St(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=void 0),n}}var NE=1,UE=32,Za=It(function(e,t,n){var r=NE;if(n.length){var f=Jn(n,Xr(Za));r|=UE}return Mn(e,r,t,n,f)});Za.placeholder={};var GE=Ln(function(e,t){return Ke(t,function(n){n=_n(n),Pn(e,n,Za(e[n],e))}),e}),$E=1,HE=2,zE=32,yh=It(function(e,t,n){var r=$E|HE;if(n.length){var f=Jn(n,Xr(yh));r|=zE}return Mn(t,r,e,n,f)});yh.placeholder={};function Ve(e,t,n){var r=-1,f=e.length;t<0&&(t=-t>f?0:f+t),n=n>f?f:n,n<0&&(n+=f),f=t>n?0:n-t>>>0,t>>>=0;for(var p=Array(f);++r<f;)p[r]=e[r+t];return p}function rr(e,t,n){var r=e.length;return n=n===void 0?r:n,!t&&n>=r?e:Ve(e,t,n)}var YE="\\ud800-\\udfff",WE="\\u0300-\\u036f",qE="\\ufe20-\\ufe2f",XE="\\u20d0-\\u20ff",VE=WE+qE+XE,JE="\\ufe0e\\ufe0f",KE="\\u200d",ZE=RegExp("["+KE+YE+VE+JE+"]");function Kr(e){return ZE.test(e)}function tS(e){return e.split("")}var Q0="\\ud800-\\udfff",eS="\\u0300-\\u036f",nS="\\ufe20-\\ufe2f",rS="\\u20d0-\\u20ff",iS=eS+nS+rS,oS="\\ufe0e\\ufe0f",sS="["+Q0+"]",Au="["+iS+"]",vu="\\ud83c[\\udffb-\\udfff]",aS="(?:"+Au+"|"+vu+")",F0="[^"+Q0+"]",L0="(?:\\ud83c[\\udde6-\\uddff]){2}",j0="[\\ud800-\\udbff][\\udc00-\\udfff]",cS="\\u200d",N0=aS+"?",U0="["+oS+"]?",lS="(?:"+cS+"(?:"+[F0,L0,j0].join("|")+")"+U0+N0+")*",uS=U0+N0+lS,hS="(?:"+[F0+Au+"?",Au,L0,j0,sS].join("|")+")",fS=RegExp(vu+"(?="+vu+")|"+hS+uS,"g");function dS(e){return e.match(fS)||[]}function an(e){return Kr(e)?dS(e):tS(e)}function G0(e){return function(t){t=Mt(t);var n=Kr(t)?an(t):void 0,r=n?n[0]:t.charAt(0),f=n?rr(n,1).join(""):t.slice(1);return r[e]()+f}}var mh=G0("toUpperCase");function $0(e){return mh(Mt(e).toLowerCase())}function _h(e,t,n,r){var f=-1,p=e==null?0:e.length;for(r&&p&&(n=e[++f]);++f<p;)n=t(n,e[f],f,e);return n}function bh(e){return function(t){return e?.[t]}}var gS={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},pS=bh(gS),AS=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,vS="\\u0300-\\u036f",yS="\\ufe20-\\ufe2f",mS="\\u20d0-\\u20ff",_S=vS+yS+mS,bS="["+_S+"]",wS=RegExp(bS,"g");function H0(e){return e=Mt(e),e&&e.replace(AS,pS).replace(wS,"")}var CS=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function ES(e){return e.match(CS)||[]}var SS=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function xS(e){return SS.test(e)}var z0="\\ud800-\\udfff",IS="\\u0300-\\u036f",OS="\\ufe20-\\ufe2f",BS="\\u20d0-\\u20ff",TS=IS+OS+BS,Y0="\\u2700-\\u27bf",W0="a-z\\xdf-\\xf6\\xf8-\\xff",kS="\\xac\\xb1\\xd7\\xf7",DS="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",RS="\\u2000-\\u206f",MS=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",q0="A-Z\\xc0-\\xd6\\xd8-\\xde",PS="\\ufe0e\\ufe0f",X0=kS+DS+RS+MS,V0="['’]",dd="["+X0+"]",QS="["+TS+"]",J0="\\d+",FS="["+Y0+"]",K0="["+W0+"]",Z0="[^"+z0+X0+J0+Y0+W0+q0+"]",LS="\\ud83c[\\udffb-\\udfff]",jS="(?:"+QS+"|"+LS+")",NS="[^"+z0+"]",tv="(?:\\ud83c[\\udde6-\\uddff]){2}",ev="[\\ud800-\\udbff][\\udc00-\\udfff]",Tr="["+q0+"]",US="\\u200d",gd="(?:"+K0+"|"+Z0+")",GS="(?:"+Tr+"|"+Z0+")",pd="(?:"+V0+"(?:d|ll|m|re|s|t|ve))?",Ad="(?:"+V0+"(?:D|LL|M|RE|S|T|VE))?",nv=jS+"?",rv="["+PS+"]?",$S="(?:"+US+"(?:"+[NS,tv,ev].join("|")+")"+rv+nv+")*",HS="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",zS="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",YS=rv+nv+$S,WS="(?:"+[FS,tv,ev].join("|")+")"+YS,qS=RegExp([Tr+"?"+K0+"+"+pd+"(?="+[dd,Tr,"$"].join("|")+")",GS+"+"+Ad+"(?="+[dd,Tr+gd,"$"].join("|")+")",Tr+"?"+gd+"+"+pd,Tr+"+"+Ad,zS,HS,J0,WS].join("|"),"g");function XS(e){return e.match(qS)||[]}function iv(e,t,n){return e=Mt(e),t=n?void 0:t,t===void 0?xS(e)?XS(e):ES(e):e.match(t)||[]}var VS="['’]",JS=RegExp(VS,"g");function Zr(e){return function(t){return _h(iv(H0(t).replace(JS,"")),e,"")}}var KS=Zr(function(e,t,n){return t=t.toLowerCase(),e+(n?$0(t):t)});function ZS(){if(!arguments.length)return[];var e=arguments[0];return wt(e)?e:[e]}var tx=ie.isFinite,ex=Math.min;function wh(e){var t=Math[e];return function(n,r){if(n=Ye(n),r=r==null?0:ex(St(r),292),r&&tx(n)){var f=(Mt(n)+"e").split("e"),p=t(f[0]+"e"+(+f[1]+r));return f=(Mt(p)+"e").split("e"),+(f[0]+"e"+(+f[1]-r))}return t(n)}}var nx=wh("ceil");function ov(e){var t=R(e);return t.__chain__=!0,t}var rx=Math.ceil,ix=Math.max;function ox(e,t,n){(n?me(e,t,n):t===void 0)?t=1:t=ix(St(t),0);var r=e==null?0:e.length;if(!r||t<1)return[];for(var f=0,p=0,v=Array(rx(r/t));f<r;)v[p++]=Ve(e,f,f+=t);return v}function wr(e,t,n){return e===e&&(n!==void 0&&(e=e<=n?e:n),t!==void 0&&(e=e>=t?e:t)),e}function sx(e,t,n){return n===void 0&&(n=t,t=void 0),n!==void 0&&(n=Ye(n),n=n===n?n:0),t!==void 0&&(t=Ye(t),t=t===t?t:0),wr(Ye(e),t,n)}function ax(){this.__data__=new Qn,this.size=0}function cx(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function lx(e){return this.__data__.get(e)}function ux(e){return this.__data__.has(e)}var hx=200;function fx(e,t){var n=this.__data__;if(n instanceof Qn){var r=n.__data__;if(!Gi||r.length<hx-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Fn(r)}return n.set(e,t),this.size=n.size,this}function sn(e){var t=this.__data__=new Qn(e);this.size=t.size}sn.prototype.clear=ax;sn.prototype.delete=cx;sn.prototype.get=lx;sn.prototype.has=ux;sn.prototype.set=fx;function sv(e,t){return e&&mn(t,oe(t),e)}function dx(e,t){return e&&mn(t,De(t),e)}var av=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vd=av&&typeof module=="object"&&module&&!module.nodeType&&module,gx=vd&&vd.exports===av,yd=gx?ie.Buffer:void 0,md=yd?yd.allocUnsafe:void 0;function cv(e,t){if(t)return e.slice();var n=e.length,r=md?md(n):new e.constructor(n);return e.copy(r),r}function ir(e,t){for(var n=-1,r=e==null?0:e.length,f=0,p=[];++n<r;){var v=e[n];t(v,n,e)&&(p[f++]=v)}return p}function Ch(){return[]}var px=Object.prototype,Ax=px.propertyIsEnumerable,_d=Object.getOwnPropertySymbols,Eh=_d?function(e){return e==null?[]:(e=Object(e),ir(_d(e),function(t){return Ax.call(e,t)}))}:Ch;function vx(e,t){return mn(e,Eh(e),t)}var yx=Object.getOwnPropertySymbols,lv=yx?function(e){for(var t=[];e;)nr(t,Eh(e)),e=Ka(e);return t}:Ch;function mx(e,t){return mn(e,lv(e),t)}function uv(e,t,n){var r=t(e);return wt(e)?r:nr(r,n(e))}function yu(e){return uv(e,oe,Eh)}function Sh(e){return uv(e,De,lv)}var mu=_r(ie,"DataView"),_u=_r(ie,"Promise"),jr=_r(ie,"Set"),bd="[object Map]",_x="[object Object]",wd="[object Promise]",Cd="[object Set]",Ed="[object WeakMap]",Sd="[object DataView]",bx=mr(mu),wx=mr(Gi),Cx=mr(_u),Ex=mr(jr),Sx=mr(Li),he=_e;(mu&&he(new mu(new ArrayBuffer(1)))!=Sd||Gi&&he(new Gi)!=bd||_u&&he(_u.resolve())!=wd||jr&&he(new jr)!=Cd||Li&&he(new Li)!=Ed)&&(he=function(e){var t=_e(e),n=t==_x?e.constructor:void 0,r=n?mr(n):"";if(r)switch(r){case bx:return Sd;case wx:return bd;case Cx:return wd;case Ex:return Cd;case Sx:return Ed}return t});var xx=Object.prototype,Ix=xx.hasOwnProperty;function Ox(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]=="string"&&Ix.call(e,"index")&&(n.index=e.index,n.input=e.input),n}var Os=ie.Uint8Array;function xh(e){var t=new e.constructor(e.byteLength);return new Os(t).set(new Os(e)),t}function Bx(e,t){var n=t?xh(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var Tx=/\w*$/;function kx(e){var t=new e.constructor(e.source,Tx.exec(e));return t.lastIndex=e.lastIndex,t}var xd=ge?ge.prototype:void 0,Id=xd?xd.valueOf:void 0;function Dx(e){return Id?Object(Id.call(e)):{}}function hv(e,t){var n=t?xh(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}var Rx="[object Boolean]",Mx="[object Date]",Px="[object Map]",Qx="[object Number]",Fx="[object RegExp]",Lx="[object Set]",jx="[object String]",Nx="[object Symbol]",Ux="[object ArrayBuffer]",Gx="[object DataView]",$x="[object Float32Array]",Hx="[object Float64Array]",zx="[object Int8Array]",Yx="[object Int16Array]",Wx="[object Int32Array]",qx="[object Uint8Array]",Xx="[object Uint8ClampedArray]",Vx="[object Uint16Array]",Jx="[object Uint32Array]";function Kx(e,t,n){var r=e.constructor;switch(t){case Ux:return xh(e);case Rx:case Mx:return new r(+e);case Gx:return Bx(e,n);case $x:case Hx:case zx:case Yx:case Wx:case qx:case Xx:case Vx:case Jx:return hv(e,n);case Px:return new r;case Qx:case jx:return new r(e);case Fx:return kx(e);case Lx:return new r;case Nx:return Dx(e)}}function fv(e){return typeof e.constructor=="function"&&!Vi(e)?Wr(Ka(e)):{}}var Zx="[object Map]";function t2(e){return Jt(e)&&he(e)==Zx}var Od=Xe&&Xe.isMap,dv=Od?Ne(Od):t2,e2="[object Set]";function n2(e){return Jt(e)&&he(e)==e2}var Bd=Xe&&Xe.isSet,gv=Bd?Ne(Bd):n2,r2=1,i2=2,o2=4,pv="[object Arguments]",s2="[object Array]",a2="[object Boolean]",c2="[object Date]",l2="[object Error]",Av="[object Function]",u2="[object GeneratorFunction]",h2="[object Map]",f2="[object Number]",vv="[object Object]",d2="[object RegExp]",g2="[object Set]",p2="[object String]",A2="[object Symbol]",v2="[object WeakMap]",y2="[object ArrayBuffer]",m2="[object DataView]",_2="[object Float32Array]",b2="[object Float64Array]",w2="[object Int8Array]",C2="[object Int16Array]",E2="[object Int32Array]",S2="[object Uint8Array]",x2="[object Uint8ClampedArray]",I2="[object Uint16Array]",O2="[object Uint32Array]",Ut={};Ut[pv]=Ut[s2]=Ut[y2]=Ut[m2]=Ut[a2]=Ut[c2]=Ut[_2]=Ut[b2]=Ut[w2]=Ut[C2]=Ut[E2]=Ut[h2]=Ut[f2]=Ut[vv]=Ut[d2]=Ut[g2]=Ut[p2]=Ut[A2]=Ut[S2]=Ut[x2]=Ut[I2]=Ut[O2]=!0;Ut[l2]=Ut[Av]=Ut[v2]=!1;function We(e,t,n,r,f,p){var v,u=t&r2,o=t&i2,s=t&o2;if(n&&(v=f?n(e,r,f,p):n(e)),v!==void 0)return v;if(!qt(e))return e;var c=wt(e);if(c){if(v=Ox(e),!u)return Ie(e,v)}else{var i=he(e),l=i==Av||i==u2;if(Kn(e))return cv(e,u);if(i==vv||i==pv||l&&!f){if(v=o||l?{}:fv(e),!u)return o?mx(e,dx(v,e)):vx(e,sv(v,e))}else{if(!Ut[i])return f?e:{};v=Kx(e,i,u)}}p||(p=new sn);var a=p.get(e);if(a)return a;p.set(e,v),gv(e)?e.forEach(function(d){v.add(We(d,t,n,d,e,p))}):dv(e)&&e.forEach(function(d,A){v.set(A,We(d,t,n,A,e,p))});var h=s?o?Sh:yu:o?De:oe,g=c?void 0:h(e);return Ke(g||e,function(d,A){g&&(A=d,d=e[A]),Xi(v,A,We(d,t,n,A,e,p))}),v}var B2=4;function T2(e){return We(e,B2)}var k2=1,D2=4;function yv(e){return We(e,k2|D2)}var R2=1,M2=4;function P2(e,t){return t=typeof t=="function"?t:void 0,We(e,R2|M2,t)}var Q2=4;function F2(e,t){return t=typeof t=="function"?t:void 0,We(e,Q2,t)}function L2(){return new qe(this.value(),this.__chain__)}function j2(e){for(var t=-1,n=e==null?0:e.length,r=0,f=[];++t<n;){var p=e[t];p&&(f[r++]=p)}return f}function N2(){var e=arguments.length;if(!e)return[];for(var t=Array(e-1),n=arguments[0],r=e;r--;)t[r-1]=arguments[r];return nr(wt(n)?Ie(n):[n],ce(t,1))}var U2="__lodash_hash_undefined__";function G2(e){return this.__data__.set(e,U2),this}function $2(e){return this.__data__.has(e)}function vr(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Fn;++t<n;)this.add(e[t])}vr.prototype.add=vr.prototype.push=G2;vr.prototype.has=$2;function Ih(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function Hi(e,t){return e.has(t)}var H2=1,z2=2;function mv(e,t,n,r,f,p){var v=n&H2,u=e.length,o=t.length;if(u!=o&&!(v&&o>u))return!1;var s=p.get(e),c=p.get(t);if(s&&c)return s==t&&c==e;var i=-1,l=!0,a=n&z2?new vr:void 0;for(p.set(e,t),p.set(t,e);++i<u;){var h=e[i],g=t[i];if(r)var d=v?r(g,h,i,t,e,p):r(h,g,i,e,t,p);if(d!==void 0){if(d)continue;l=!1;break}if(a){if(!Ih(t,function(A,y){if(!Hi(a,y)&&(h===A||f(h,A,n,r,p)))return a.push(y)})){l=!1;break}}else if(!(h===g||f(h,g,n,r,p))){l=!1;break}}return p.delete(e),p.delete(t),l}function Oh(e){var t=-1,n=Array(e.size);return e.forEach(function(r,f){n[++t]=[f,r]}),n}function tc(e){var t=-1,n=Array(e.size);return e.forEach(function(r){n[++t]=r}),n}var Y2=1,W2=2,q2="[object Boolean]",X2="[object Date]",V2="[object Error]",J2="[object Map]",K2="[object Number]",Z2="[object RegExp]",tI="[object Set]",eI="[object String]",nI="[object Symbol]",rI="[object ArrayBuffer]",iI="[object DataView]",Td=ge?ge.prototype:void 0,Wc=Td?Td.valueOf:void 0;function oI(e,t,n,r,f,p,v){switch(n){case iI:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case rI:return!(e.byteLength!=t.byteLength||!p(new Os(e),new Os(t)));case q2:case X2:case K2:return ln(+e,+t);case V2:return e.name==t.name&&e.message==t.message;case Z2:case eI:return e==t+"";case J2:var u=Oh;case tI:var o=r&Y2;if(u||(u=tc),e.size!=t.size&&!o)return!1;var s=v.get(e);if(s)return s==t;r|=W2,v.set(e,t);var c=mv(u(e),u(t),r,f,p,v);return v.delete(e),c;case nI:if(Wc)return Wc.call(e)==Wc.call(t)}return!1}var sI=1,aI=Object.prototype,cI=aI.hasOwnProperty;function lI(e,t,n,r,f,p){var v=n&sI,u=yu(e),o=u.length,s=yu(t),c=s.length;if(o!=c&&!v)return!1;for(var i=o;i--;){var l=u[i];if(!(v?l in t:cI.call(t,l)))return!1}var a=p.get(e),h=p.get(t);if(a&&h)return a==t&&h==e;var g=!0;p.set(e,t),p.set(t,e);for(var d=v;++i<o;){l=u[i];var A=e[l],y=t[l];if(r)var m=v?r(y,A,l,t,e,p):r(A,y,l,e,t,p);if(!(m===void 0?A===y||f(A,y,n,r,p):m)){g=!1;break}d||(d=l=="constructor")}if(g&&!d){var _=e.constructor,w=t.constructor;_!=w&&"constructor"in e&&"constructor"in t&&!(typeof _=="function"&&_ instanceof _&&typeof w=="function"&&w instanceof w)&&(g=!1)}return p.delete(e),p.delete(t),g}var uI=1,kd="[object Arguments]",Dd="[object Array]",vo="[object Object]",hI=Object.prototype,Rd=hI.hasOwnProperty;function fI(e,t,n,r,f,p){var v=wt(e),u=wt(t),o=v?Dd:he(e),s=u?Dd:he(t);o=o==kd?vo:o,s=s==kd?vo:s;var c=o==vo,i=s==vo,l=o==s;if(l&&Kn(e)){if(!Kn(t))return!1;v=!0,c=!1}if(l&&!c)return p||(p=new sn),v||Jr(e)?mv(e,t,n,r,f,p):oI(e,t,o,n,r,f,p);if(!(n&uI)){var a=c&&Rd.call(e,"__wrapped__"),h=i&&Rd.call(t,"__wrapped__");if(a||h){var g=a?e.value():e,d=h?t.value():t;return p||(p=new sn),f(g,d,n,r,p)}}return l?(p||(p=new sn),lI(e,t,n,r,f,p)):!1}function Ki(e,t,n,r,f){return e===t?!0:e==null||t==null||!Jt(e)&&!Jt(t)?e!==e&&t!==t:fI(e,t,n,r,Ki,f)}var dI=1,gI=2;function Bh(e,t,n,r){var f=n.length,p=f,v=!r;if(e==null)return!p;for(e=Object(e);f--;){var u=n[f];if(v&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++f<p;){u=n[f];var o=u[0],s=e[o],c=u[1];if(v&&u[2]){if(s===void 0&&!(o in e))return!1}else{var i=new sn;if(r)var l=r(s,c,o,e,t,i);if(!(l===void 0?Ki(c,s,dI|gI,r,i):l))return!1}}return!0}function _v(e){return e===e&&!qt(e)}function Th(e){for(var t=oe(e),n=t.length;n--;){var r=t[n],f=e[r];t[n]=[r,f,_v(f)]}return t}function bv(e,t){return function(n){return n==null?!1:n[e]===t&&(t!==void 0||e in Object(n))}}function wv(e){var t=Th(e);return t.length==1&&t[0][2]?bv(t[0][0],t[0][1]):function(n){return n===e||Bh(n,e,t)}}function pI(e,t){return e!=null&&t in Object(e)}function Cv(e,t,n){t=er(t,e);for(var r=-1,f=t.length,p=!1;++r<f;){var v=_n(t[r]);if(!(p=e!=null&&n(e,v)))break;e=e[v]}return p||++r!=f?p:(f=e==null?0:e.length,!!f&&qa(f)&&Rn(v,f)&&(wt(e)||pr(e)))}function kh(e,t){return e!=null&&Cv(e,t,pI)}var AI=1,vI=2;function Ev(e,t){return ph(e)&&_v(t)?bv(_n(e),t):function(n){var r=$i(n,e);return r===void 0&&r===t?kh(n,e):Ki(t,r,AI|vI)}}function Dh(e){return function(t){return t?.[e]}}function yI(e){return function(t){return br(t,e)}}function Sv(e){return ph(e)?Dh(_n(e)):yI(e)}function _t(e){return typeof e=="function"?e:e==null?Te:typeof e=="object"?wt(e)?Ev(e[0],e[1]):wv(e):Sv(e)}var mI="Expected a function";function _I(e){var t=e==null?0:e.length,n=_t;return e=t?zt(e,function(r){if(typeof r[1]!="function")throw new TypeError(mI);return[n(r[0]),r[1]]}):[],It(function(r){for(var f=-1;++f<t;){var p=e[f];if(je(p[0],this,r))return je(p[1],this,r)}})}function xv(e,t,n){var r=n.length;if(e==null)return!r;for(e=Object(e);r--;){var f=n[r],p=t[f],v=e[f];if(v===void 0&&!(f in e)||!p(v))return!1}return!0}function bI(e){var t=oe(e);return function(n){return xv(n,e,t)}}var wI=1;function CI(e){return bI(We(e,wI))}function EI(e,t){return t==null||xv(e,t,oe(t))}function SI(e,t,n,r){for(var f=-1,p=e==null?0:e.length;++f<p;){var v=e[f];t(r,v,n(v),e)}return r}function Iv(e){return function(t,n,r){for(var f=-1,p=Object(t),v=r(t),u=v.length;u--;){var o=v[e?u:++f];if(n(p[o],o,p)===!1)break}return t}}var Rh=Iv();function bn(e,t){return e&&Rh(e,t,oe)}function Ov(e,t){return function(n,r){if(n==null)return n;if(!ke(n))return e(n,r);for(var f=n.length,p=t?f:-1,v=Object(n);(t?p--:++p<f)&&r(v[p],p,v)!==!1;);return n}}var or=Ov(bn);function xI(e,t,n,r){return or(e,function(f,p,v){t(r,f,n(f),v)}),r}function ec(e,t){return function(n,r){var f=wt(n)?SI:xI,p=t?t():{};return f(n,e,_t(r),p)}}var II=Object.prototype,OI=II.hasOwnProperty,BI=ec(function(e,t,n){OI.call(e,n)?++e[n]:Pn(e,n,1)});function TI(e,t){var n=Wr(e);return t==null?n:sv(n,t)}var kI=8;function Mh(e,t,n){t=n?void 0:t;var r=Mn(e,kI,void 0,void 0,void 0,void 0,void 0,t);return r.placeholder=Mh.placeholder,r}Mh.placeholder={};var DI=16;function Ph(e,t,n){t=n?void 0:t;var r=Mn(e,DI,void 0,void 0,void 0,void 0,void 0,t);return r.placeholder=Ph.placeholder,r}Ph.placeholder={};var us=function(){return ie.Date.now()},RI="Expected a function",MI=Math.max,PI=Math.min;function Bv(e,t,n){var r,f,p,v,u,o,s=0,c=!1,i=!1,l=!0;if(typeof e!="function")throw new TypeError(RI);t=Ye(t)||0,qt(n)&&(c=!!n.leading,i="maxWait"in n,p=i?MI(Ye(n.maxWait)||0,t):p,l="trailing"in n?!!n.trailing:l);function a(S){var O=r,P=f;return r=f=void 0,s=S,v=e.apply(P,O),v}function h(S){return s=S,u=setTimeout(A,t),c?a(S):v}function g(S){var O=S-o,P=S-s,N=t-O;return i?PI(N,p-P):N}function d(S){var O=S-o,P=S-s;return o===void 0||O>=t||O<0||i&&P>=p}function A(){var S=us();if(d(S))return y(S);u=setTimeout(A,g(S))}function y(S){return u=void 0,l&&r?a(S):(r=f=void 0,v)}function m(){u!==void 0&&clearTimeout(u),s=0,r=o=f=u=void 0}function _(){return u===void 0?v:y(us())}function w(){var S=us(),O=d(S);if(r=arguments,f=this,o=S,O){if(u===void 0)return h(o);if(i)return clearTimeout(u),u=setTimeout(A,t),a(o)}return u===void 0&&(u=setTimeout(A,t)),v}return w.cancel=m,w.flush=_,w}function QI(e,t){return e==null||e!==e?t:e}var Tv=Object.prototype,FI=Tv.hasOwnProperty,LI=It(function(e,t){e=Object(e);var n=-1,r=t.length,f=r>2?t[2]:void 0;for(f&&me(t[0],t[1],f)&&(r=1);++n<r;)for(var p=t[n],v=De(p),u=-1,o=v.length;++u<o;){var s=v[u],c=e[s];(c===void 0||ln(c,Tv[s])&&!FI.call(e,s))&&(e[s]=p[s])}return e});function bu(e,t,n){(n!==void 0&&!ln(e[t],n)||n===void 0&&!(t in e))&&Pn(e,t,n)}function Zt(e){return Jt(e)&&ke(e)}function wu(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function kv(e){return mn(e,De(e))}function jI(e,t,n,r,f,p,v){var u=wu(e,n),o=wu(t,n),s=v.get(o);if(s){bu(e,n,s);return}var c=p?p(u,o,n+"",e,t,v):void 0,i=c===void 0;if(i){var l=wt(o),a=!l&&Kn(o),h=!l&&!a&&Jr(o);c=o,l||a||h?wt(u)?c=u:Zt(u)?c=Ie(u):a?(i=!1,c=cv(o,!0)):h?(i=!1,c=hv(o,!0)):c=[]:Ji(o)||pr(o)?(c=u,pr(u)?c=kv(u):(!qt(u)||Dn(u))&&(c=fv(o))):i=!1}i&&(v.set(o,c),f(c,o,r,p,v),v.delete(o)),bu(e,n,c)}function nc(e,t,n,r,f){e!==t&&Rh(t,function(p,v){if(f||(f=new sn),qt(p))jI(e,t,v,n,nc,r,f);else{var u=r?r(wu(e,v),p,v+"",e,t,f):void 0;u===void 0&&(u=p),bu(e,v,u)}},De)}function Dv(e,t,n,r,f,p){return qt(e)&&qt(t)&&(p.set(t,e),nc(e,t,void 0,Dv,p),p.delete(t)),e}var Rv=Vr(function(e,t,n,r){nc(e,t,n,r)}),NI=It(function(e){return e.push(void 0,Dv),je(Rv,void 0,e)}),UI="Expected a function";function Mv(e,t,n){if(typeof e!="function")throw new TypeError(UI);return setTimeout(function(){e.apply(void 0,n)},t)}var GI=It(function(e,t){return Mv(e,1,t)}),$I=It(function(e,t,n){return Mv(e,Ye(t)||0,n)});function Qh(e,t,n){for(var r=-1,f=e==null?0:e.length;++r<f;)if(n(t,e[r]))return!0;return!1}var HI=200;function Zi(e,t,n,r){var f=-1,p=Ya,v=!0,u=e.length,o=[],s=t.length;if(!u)return o;n&&(t=zt(t,Ne(n))),r?(p=Qh,v=!1):t.length>=HI&&(p=Hi,v=!1,t=new vr(t));t:for(;++f<u;){var c=e[f],i=n==null?c:n(c);if(c=r||c!==0?c:0,v&&i===i){for(var l=s;l--;)if(t[l]===i)continue t;o.push(c)}else p(t,i,r)||o.push(c)}return o}var zI=It(function(e,t){return Zt(e)?Zi(e,ce(t,1,Zt,!0)):[]});function Je(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var YI=It(function(e,t){var n=Je(t);return Zt(n)&&(n=void 0),Zt(e)?Zi(e,ce(t,1,Zt,!0),_t(n)):[]}),WI=It(function(e,t){var n=Je(t);return Zt(n)&&(n=void 0),Zt(e)?Zi(e,ce(t,1,Zt,!0),void 0,n):[]}),qI=$a(function(e,t){return e/t},1);function XI(e,t,n){var r=e==null?0:e.length;return r?(t=n||t===void 0?1:St(t),Ve(e,t<0?0:t,r)):[]}function VI(e,t,n){var r=e==null?0:e.length;return r?(t=n||t===void 0?1:St(t),t=r-t,Ve(e,0,t<0?0:t)):[]}function rc(e,t,n,r){for(var f=e.length,p=r?f:-1;(r?p--:++p<f)&&t(e[p],p,e););return n?Ve(e,r?0:p,r?p+1:f):Ve(e,r?p+1:0,r?f:p)}function JI(e,t){return e&&e.length?rc(e,_t(t),!0,!0):[]}function KI(e,t){return e&&e.length?rc(e,_t(t),!0):[]}function wn(e){return typeof e=="function"?e:Te}function ZI(e,t){var n=wt(e)?Ke:or;return n(e,wn(t))}function tO(e,t){for(var n=e==null?0:e.length;n--&&t(e[n],n,e)!==!1;);return e}var Pv=Iv(!0);function Fh(e,t){return e&&Pv(e,t,oe)}var Qv=Ov(Fh,!0);function eO(e,t){var n=wt(e)?tO:Qv;return n(e,wn(t))}function nO(e,t,n){e=Mt(e),t=Le(t);var r=e.length;n=n===void 0?r:wr(St(n),0,r);var f=n;return n-=t.length,n>=0&&e.slice(n,f)==t}function rO(e,t){return zt(t,function(n){return[n,e[n]]})}function iO(e){var t=-1,n=Array(e.size);return e.forEach(function(r){n[++t]=[r,r]}),n}var oO="[object Map]",sO="[object Set]";function Fv(e){return function(t){var n=he(t);return n==oO?Oh(t):n==sO?iO(t):rO(t,e(t))}}var aO=Fv(oe),cO=Fv(De),lO={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},uO=bh(lO),Lv=/[&<>"']/g,hO=RegExp(Lv.source);function jv(e){return e=Mt(e),e&&hO.test(e)?e.replace(Lv,uO):e}var Nv=/[\\^$.*+?()[\]{}|]/g,fO=RegExp(Nv.source);function dO(e){return e=Mt(e),e&&fO.test(e)?e.replace(Nv,"\\$&"):e}function Uv(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}function gO(e,t){var n=!0;return or(e,function(r,f,p){return n=!!t(r,f,p),n}),n}function pO(e,t,n){var r=wt(e)?Uv:gO;return n&&me(e,t,n)&&(t=void 0),r(e,_t(t))}var AO=4294967295;function Gv(e){return e?wr(St(e),0,AO):0}function vO(e,t,n,r){var f=e.length;for(n=St(n),n<0&&(n=-n>f?0:f+n),r=r===void 0||r>f?f:St(r),r<0&&(r+=f),r=n>r?0:Gv(r);n<r;)e[n++]=t;return e}function yO(e,t,n,r){var f=e==null?0:e.length;return f?(n&&typeof n!="number"&&me(e,t,n)&&(n=0,r=f),vO(e,t,n,r)):[]}function $v(e,t){var n=[];return or(e,function(r,f,p){t(r,f,p)&&n.push(r)}),n}function mO(e,t){var n=wt(e)?ir:$v;return n(e,_t(t))}function Hv(e){return function(t,n,r){var f=Object(t);if(!ke(t)){var p=_t(n);t=oe(t),n=function(u){return p(f[u],u,f)}}var v=e(t,n,r);return v>-1?f[p?t[v]:v]:void 0}}var _O=Math.max;function zv(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var f=n==null?0:St(n);return f<0&&(f=_O(r+f,0)),za(e,_t(t),f)}var bO=Hv(zv);function Yv(e,t,n){var r;return n(e,function(f,p,v){if(t(f,p,v))return r=p,!1}),r}function wO(e,t){return Yv(e,_t(t),bn)}var CO=Math.max,EO=Math.min;function Wv(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var f=r-1;return n!==void 0&&(f=St(n),f=n<0?CO(r+f,0):EO(f,r-1)),za(e,_t(t),f,!0)}var SO=Hv(Wv);function xO(e,t){return Yv(e,_t(t),Fh)}function IO(e){return e&&e.length?e[0]:void 0}function qv(e,t){var n=-1,r=ke(e)?Array(e.length):[];return or(e,function(f,p,v){r[++n]=t(f,p,v)}),r}function ic(e,t){var n=wt(e)?zt:qv;return n(e,_t(t))}function OO(e,t){return ce(ic(e,t),1)}var BO=1/0;function TO(e,t){return ce(ic(e,t),BO)}function kO(e,t,n){return n=n===void 0?1:St(n),ce(ic(e,t),n)}var DO=1/0;function RO(e){var t=e==null?0:e.length;return t?ce(e,DO):[]}function MO(e,t){var n=e==null?0:e.length;return n?(t=t===void 0?1:St(t),ce(e,t)):[]}var PO=512;function QO(e){return Mn(e,PO)}var FO=wh("floor"),LO="Expected a function",jO=8,NO=32,UO=128,GO=256;function Xv(e){return Ln(function(t){var n=t.length,r=n,f=qe.prototype.thru;for(e&&t.reverse();r--;){var p=t[r];if(typeof p!="function")throw new TypeError(LO);if(f&&!v&&ls(p)=="wrapper")var v=new qe([],!0)}for(r=v?r:n;++r<n;){p=t[r];var u=ls(p),o=u=="wrapper"?lh(p):void 0;o&&gu(o[0])&&o[1]==(UO|jO|NO|GO)&&!o[4].length&&o[9]==1?v=v[ls(o[0])].apply(v,o[3]):v=p.length==1&&gu(p)?v[u]():v.thru(p)}return function(){var s=arguments,c=s[0];if(v&&s.length==1&&wt(c))return v.plant(c).value();for(var i=0,l=n?t[i].apply(this,s):c;++i<n;)l=t[i].call(this,l);return l}})}var $O=Xv(),HO=Xv(!0);function zO(e,t){return e==null?e:Rh(e,wn(t),De)}function YO(e,t){return e==null?e:Pv(e,wn(t),De)}function WO(e,t){return e&&bn(e,wn(t))}function qO(e,t){return e&&Fh(e,wn(t))}function XO(e){for(var t=-1,n=e==null?0:e.length,r={};++t<n;){var f=e[t];r[f[0]]=f[1]}return r}function oc(e,t){return ir(t,function(n){return Dn(e[n])})}function VO(e){return e==null?[]:oc(e,oe(e))}function JO(e){return e==null?[]:oc(e,De(e))}var KO=Object.prototype,ZO=KO.hasOwnProperty,tB=ec(function(e,t,n){ZO.call(e,n)?e[n].push(t):Pn(e,n,[t])});function Lh(e,t){return e>t}function sc(e){return function(t,n){return typeof t=="string"&&typeof n=="string"||(t=Ye(t),n=Ye(n)),e(t,n)}}var eB=sc(Lh),nB=sc(function(e,t){return e>=t}),rB=Object.prototype,iB=rB.hasOwnProperty;function oB(e,t){return e!=null&&iB.call(e,t)}function sB(e,t){return e!=null&&Cv(e,t,oB)}var aB=Math.max,cB=Math.min;function lB(e,t,n){return e>=cB(t,n)&&e<aB(t,n)}function uB(e,t,n){return t=On(t),n===void 0?(n=t,t=0):n=On(n),e=Ye(e),lB(e,t,n)}var hB="[object String]";function ac(e){return typeof e=="string"||!wt(e)&&Jt(e)&&_e(e)==hB}function jh(e,t){return zt(t,function(n){return e[n]})}function ti(e){return e==null?[]:jh(e,oe(e))}var fB=Math.max;function dB(e,t,n,r){e=ke(e)?e:ti(e),n=n&&!r?St(n):0;var f=e.length;return n<0&&(n=fB(f+n,0)),ac(e)?n<=f&&e.indexOf(t,n)>-1:!!f&&qr(e,t,n)>-1}var gB=Math.max;function pB(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var f=n==null?0:St(n);return f<0&&(f=gB(r+f,0)),qr(e,t,f)}function AB(e){var t=e==null?0:e.length;return t?Ve(e,0,-1):[]}var vB=Math.min;function Nh(e,t,n){for(var r=n?Qh:Ya,f=e[0].length,p=e.length,v=p,u=Array(p),o=1/0,s=[];v--;){var c=e[v];v&&t&&(c=zt(c,Ne(t))),o=vB(c.length,o),u[v]=!n&&(t||f>=120&&c.length>=120)?new vr(v&&c):void 0}c=e[0];var i=-1,l=u[0];t:for(;++i<f&&s.length<o;){var a=c[i],h=t?t(a):a;if(a=n||a!==0?a:0,!(l?Hi(l,h):r(s,h,n))){for(v=p;--v;){var g=u[v];if(!(g?Hi(g,h):r(e[v],h,n)))continue t}l&&l.push(h),s.push(a)}}return s}function Uh(e){return Zt(e)?e:[]}var yB=It(function(e){var t=zt(e,Uh);return t.length&&t[0]===e[0]?Nh(t):[]}),mB=It(function(e){var t=Je(e),n=zt(e,Uh);return t===Je(n)?t=void 0:n.pop(),n.length&&n[0]===e[0]?Nh(n,_t(t)):[]}),_B=It(function(e){var t=Je(e),n=zt(e,Uh);return t=typeof t=="function"?t:void 0,t&&n.pop(),n.length&&n[0]===e[0]?Nh(n,void 0,t):[]});function bB(e,t,n,r){return bn(e,function(f,p,v){t(r,n(f),p,v)}),r}function Vv(e,t){return function(n,r){return bB(n,e,t(r),{})}}var wB=Object.prototype,CB=wB.toString,EB=Vv(function(e,t,n){t!=null&&typeof t.toString!="function"&&(t=CB.call(t)),e[t]=n},uh(Te)),Jv=Object.prototype,SB=Jv.hasOwnProperty,xB=Jv.toString,IB=Vv(function(e,t,n){t!=null&&typeof t.toString!="function"&&(t=xB.call(t)),SB.call(e,t)?e[t].push(n):e[t]=[n]},_t);function Kv(e,t){return t.length<2?e:br(e,Ve(t,0,-1))}function to(e,t,n){t=er(t,e),e=Kv(e,t);var r=e==null?e:e[_n(Je(t))];return r==null?void 0:je(r,e,n)}var OB=It(to),BB=It(function(e,t,n){var r=-1,f=typeof t=="function",p=ke(e)?Array(e.length):[];return or(e,function(v){p[++r]=f?je(t,v,n):to(v,t,n)}),p}),TB="[object ArrayBuffer]";function kB(e){return Jt(e)&&_e(e)==TB}var Md=Xe&&Xe.isArrayBuffer,DB=Md?Ne(Md):kB,RB="[object Boolean]";function MB(e){return e===!0||e===!1||Jt(e)&&_e(e)==RB}var PB="[object Date]";function QB(e){return Jt(e)&&_e(e)==PB}var Pd=Xe&&Xe.isDate,FB=Pd?Ne(Pd):QB;function LB(e){return Jt(e)&&e.nodeType===1&&!Ji(e)}var jB="[object Map]",NB="[object Set]",UB=Object.prototype,GB=UB.hasOwnProperty;function $B(e){if(e==null)return!0;if(ke(e)&&(wt(e)||typeof e=="string"||typeof e.splice=="function"||Kn(e)||Jr(e)||pr(e)))return!e.length;var t=he(e);if(t==jB||t==NB)return!e.size;if(Vi(e))return!gh(e).length;for(var n in e)if(GB.call(e,n))return!1;return!0}function HB(e,t){return Ki(e,t)}function zB(e,t,n){n=typeof n=="function"?n:void 0;var r=n?n(e,t):void 0;return r===void 0?Ki(e,t,void 0,n):!!r}var YB=ie.isFinite;function WB(e){return typeof e=="number"&&YB(e)}function Zv(e){return typeof e=="number"&&e==St(e)}function qB(e,t){return e===t||Bh(e,t,Th(t))}function XB(e,t,n){return n=typeof n=="function"?n:void 0,Bh(e,t,Th(t),n)}var VB="[object Number]";function ty(e){return typeof e=="number"||Jt(e)&&_e(e)==VB}function JB(e){return ty(e)&&e!=+e}var KB=cs?Dn:dh,ZB="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.";function tT(e){if(KB(e))throw new Error(ZB);return g0(e)}function eT(e){return e==null}function nT(e){return e===null}var rT="[object RegExp]";function iT(e){return Jt(e)&&_e(e)==rT}var Qd=Xe&&Xe.isRegExp,Gh=Qd?Ne(Qd):iT,Fd=9007199254740991;function oT(e){return Zv(e)&&e>=-Fd&&e<=Fd}function sT(e){return e===void 0}var aT="[object WeakMap]";function cT(e){return Jt(e)&&he(e)==aT}var lT="[object WeakSet]";function uT(e){return Jt(e)&&_e(e)==lT}var hT=1;function fT(e){return _t(typeof e=="function"?e:We(e,hT))}var dT=Array.prototype,gT=dT.join;function pT(e,t){return e==null?"":gT.call(e,t)}var AT=Zr(function(e,t,n){return e+(n?"-":"")+t.toLowerCase()}),vT=ec(function(e,t,n){Pn(e,n,t)});function yT(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}var mT=Math.max,_T=Math.min;function bT(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var f=r;return n!==void 0&&(f=St(n),f=f<0?mT(r+f,0):_T(f,r-1)),t===t?yT(e,t,f):za(e,b0,f,!0)}var wT=Zr(function(e,t,n){return e+(n?" ":"")+t.toLowerCase()}),CT=G0("toLowerCase");function $h(e,t){return e<t}var ET=sc($h),ST=sc(function(e,t){return e<=t});function xT(e,t){var n={};return t=_t(t),bn(e,function(r,f,p){Pn(n,t(r,f,p),r)}),n}function IT(e,t){var n={};return t=_t(t),bn(e,function(r,f,p){Pn(n,f,t(r,f,p))}),n}var OT=1;function BT(e){return wv(We(e,OT))}var TT=1;function kT(e,t){return Ev(e,We(t,TT))}function cc(e,t,n){for(var r=-1,f=e.length;++r<f;){var p=e[r],v=t(p);if(v!=null&&(u===void 0?v===v&&!Fe(v):n(v,u)))var u=v,o=p}return o}function DT(e){return e&&e.length?cc(e,Te,Lh):void 0}function RT(e,t){return e&&e.length?cc(e,_t(t),Lh):void 0}function Hh(e,t){for(var n,r=-1,f=e.length;++r<f;){var p=t(e[r]);p!==void 0&&(n=n===void 0?p:n+p)}return n}var MT=NaN;function ey(e,t){var n=e==null?0:e.length;return n?Hh(e,t)/n:MT}function PT(e){return ey(e,Te)}function QT(e,t){return ey(e,_t(t))}var FT=Vr(function(e,t,n){nc(e,t,n)}),LT=It(function(e,t){return function(n){return to(n,e,t)}}),jT=It(function(e,t){return function(n){return to(e,n,t)}});function NT(e){return e&&e.length?cc(e,Te,$h):void 0}function UT(e,t){return e&&e.length?cc(e,_t(t),$h):void 0}function GT(e,t,n){var r=oe(t),f=oc(t,r),p=!(qt(n)&&"chain"in n)||!!n.chain,v=Dn(e);return Ke(f,function(u){var o=t[u];e[u]=o,v&&(e.prototype[u]=function(){var s=this.__chain__;if(p||s){var c=e(this.__wrapped__),i=c.__actions__=Ie(this.__actions__);return i.push({func:o,args:arguments,thisArg:e}),c.__chain__=s,c}return o.apply(e,nr([this.value()],arguments))})}),e}var $T=$a(function(e,t){return e*t},1),HT="Expected a function";function lc(e){if(typeof e!="function")throw new TypeError(HT);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function zT(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}var YT="[object Map]",WT="[object Set]",qc=ge?ge.iterator:void 0;function ny(e){if(!e)return[];if(ke(e))return ac(e)?an(e):Ie(e);if(qc&&e[qc])return zT(e[qc]());var t=he(e),n=t==YT?Oh:t==WT?tc:ti;return n(e)}function qT(){this.__values__===void 0&&(this.__values__=ny(this.value()));var e=this.__index__>=this.__values__.length,t=e?void 0:this.__values__[this.__index__++];return{done:e,value:t}}function ry(e,t){var n=e.length;if(n)return t+=t<0?n:0,Rn(t,n)?e[t]:void 0}function XT(e,t){return e&&e.length?ry(e,St(t)):void 0}function VT(e){return e=St(e),It(function(t){return ry(t,e)})}function zh(e,t){return t=er(t,e),e=Kv(e,t),e==null||delete e[_n(Je(t))]}function JT(e){return Ji(e)?void 0:e}var KT=1,ZT=2,tk=4,ek=Ln(function(e,t){var n={};if(e==null)return n;var r=!1;t=zt(t,function(p){return p=er(p,e),r||(r=p.length>1),p}),mn(e,Sh(e),n),r&&(n=We(n,KT|ZT|tk,JT));for(var f=t.length;f--;)zh(n,t[f]);return n});function eo(e,t,n,r){if(!qt(e))return e;t=er(t,e);for(var f=-1,p=t.length,v=p-1,u=e;u!=null&&++f<p;){var o=_n(t[f]),s=n;if(o==="__proto__"||o==="constructor"||o==="prototype")return e;if(f!=v){var c=u[o];s=r?r(c,o,u):void 0,s===void 0&&(s=qt(c)?c:Rn(t[f+1])?[]:{})}Xi(u,o,s),u=u[o]}return e}function iy(e,t,n){for(var r=-1,f=t.length,p={};++r<f;){var v=t[r],u=br(e,v);n(u,v)&&eo(p,er(v,e),u)}return p}function oy(e,t){if(e==null)return{};var n=zt(Sh(e),function(r){return[r]});return t=_t(t),iy(e,n,function(r,f){return t(r,f[0])})}function nk(e,t){return oy(e,lc(_t(t)))}function rk(e){return P0(2,e)}function ik(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}function sy(e,t){if(e!==t){var n=e!==void 0,r=e===null,f=e===e,p=Fe(e),v=t!==void 0,u=t===null,o=t===t,s=Fe(t);if(!u&&!s&&!p&&e>t||p&&v&&o&&!u&&!s||r&&v&&o||!n&&o||!f)return 1;if(!r&&!p&&!s&&e<t||s&&n&&f&&!r&&!p||u&&n&&f||!v&&f||!o)return-1}return 0}function ok(e,t,n){for(var r=-1,f=e.criteria,p=t.criteria,v=f.length,u=n.length;++r<v;){var o=sy(f[r],p[r]);if(o){if(r>=u)return o;var s=n[r];return o*(s=="desc"?-1:1)}}return e.index-t.index}function ay(e,t,n){t.length?t=zt(t,function(p){return wt(p)?function(v){return br(v,p.length===1?p[0]:p)}:p}):t=[Te];var r=-1;t=zt(t,Ne(_t));var f=qv(e,function(p,v,u){var o=zt(t,function(s){return s(p)});return{criteria:o,index:++r,value:p}});return ik(f,function(p,v){return ok(p,v,n)})}function sk(e,t,n,r){return e==null?[]:(wt(t)||(t=t==null?[]:[t]),n=r?void 0:n,wt(n)||(n=n==null?[]:[n]),ay(e,t,n))}function Yh(e){return Ln(function(t){return t=zt(t,Ne(_t)),It(function(n){var r=this;return e(t,function(f){return je(f,r,n)})})})}var ak=Yh(zt),ck=It,lk=Math.min,uk=ck(function(e,t){t=t.length==1&&wt(t[0])?zt(t[0],Ne(_t)):zt(ce(t,1),Ne(_t));var n=t.length;return It(function(r){for(var f=-1,p=lk(r.length,n);++f<p;)r[f]=t[f].call(this,r[f]);return je(e,this,r)})}),hk=Yh(Uv),fk=Yh(Ih),dk=9007199254740991,gk=Math.floor;function Cu(e,t){var n="";if(!e||t<1||t>dk)return n;do t%2&&(n+=e),t=gk(t/2),t&&(e+=e);while(t);return n}var pk=Dh("length"),cy="\\ud800-\\udfff",Ak="\\u0300-\\u036f",vk="\\ufe20-\\ufe2f",yk="\\u20d0-\\u20ff",mk=Ak+vk+yk,_k="\\ufe0e\\ufe0f",bk="["+cy+"]",Eu="["+mk+"]",Su="\\ud83c[\\udffb-\\udfff]",wk="(?:"+Eu+"|"+Su+")",ly="[^"+cy+"]",uy="(?:\\ud83c[\\udde6-\\uddff]){2}",hy="[\\ud800-\\udbff][\\udc00-\\udfff]",Ck="\\u200d",fy=wk+"?",dy="["+_k+"]?",Ek="(?:"+Ck+"(?:"+[ly,uy,hy].join("|")+")"+dy+fy+")*",Sk=dy+fy+Ek,xk="(?:"+[ly+Eu+"?",Eu,uy,hy,bk].join("|")+")",Ld=RegExp(Su+"(?="+Su+")|"+xk+Sk,"g");function Ik(e){for(var t=Ld.lastIndex=0;Ld.test(e);)++t;return t}function ei(e){return Kr(e)?Ik(e):pk(e)}var Ok=Math.ceil;function Bs(e,t){t=t===void 0?" ":Le(t);var n=t.length;if(n<2)return n?Cu(t,e):t;var r=Cu(t,Ok(e/ei(t)));return Kr(t)?rr(an(r),0,e).join(""):r.slice(0,e)}var Bk=Math.ceil,Tk=Math.floor;function kk(e,t,n){e=Mt(e),t=St(t);var r=t?ei(e):0;if(!t||r>=t)return e;var f=(t-r)/2;return Bs(Tk(f),n)+e+Bs(Bk(f),n)}function Dk(e,t,n){e=Mt(e),t=St(t);var r=t?ei(e):0;return t&&r<t?e+Bs(t-r,n):e}function Rk(e,t,n){e=Mt(e),t=St(t);var r=t?ei(e):0;return t&&r<t?Bs(t-r,n)+e:e}var Mk=/^\s+/,Pk=ie.parseInt;function Qk(e,t,n){return n||t==null?t=0:t&&(t=+t),Pk(Mt(e).replace(Mk,""),t||0)}var Fk=32,uc=It(function(e,t){var n=Jn(t,Xr(uc));return Mn(e,Fk,void 0,t,n)});uc.placeholder={};var Lk=64,Wh=It(function(e,t){var n=Jn(t,Xr(Wh));return Mn(e,Lk,void 0,t,n)});Wh.placeholder={};var jk=ec(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]});function Nk(e,t){return iy(e,t,function(n,r){return kh(e,r)})}var gy=Ln(function(e,t){return e==null?{}:Nk(e,t)});function Uk(e){for(var t,n=this;n instanceof Ha;){var r=y0(n);r.__index__=0,r.__values__=void 0,t?f.__wrapped__=r:t=r;var f=r;n=n.__wrapped__}return f.__wrapped__=e,t}function Gk(e){return function(t){return e==null?void 0:br(e,t)}}function $k(e,t,n,r){for(var f=n-1,p=e.length;++f<p;)if(r(e[f],t))return f;return-1}var Hk=Array.prototype,jd=Hk.splice;function qh(e,t,n,r){var f=r?$k:qr,p=-1,v=t.length,u=e;for(e===t&&(t=Ie(t)),n&&(u=zt(e,Ne(n)));++p<v;)for(var o=0,s=t[p],c=n?n(s):s;(o=f(u,c,o,r))>-1;)u!==e&&jd.call(u,o,1),jd.call(e,o,1);return e}function py(e,t){return e&&e.length&&t&&t.length?qh(e,t):e}var zk=It(py);function Yk(e,t,n){return e&&e.length&&t&&t.length?qh(e,t,_t(n)):e}function Wk(e,t,n){return e&&e.length&&t&&t.length?qh(e,t,void 0,n):e}var qk=Array.prototype,Xk=qk.splice;function Ay(e,t){for(var n=e?t.length:0,r=n-1;n--;){var f=t[n];if(n==r||f!==p){var p=f;Rn(f)?Xk.call(e,f,1):zh(e,f)}}return e}var Vk=Ln(function(e,t){var n=e==null?0:e.length,r=Ah(e,t);return Ay(e,zt(t,function(f){return Rn(f,n)?+f:f}).sort(sy)),r}),Jk=Math.floor,Kk=Math.random;function Xh(e,t){return e+Jk(Kk()*(t-e+1))}var Zk=parseFloat,tD=Math.min,eD=Math.random;function nD(e,t,n){if(n&&typeof n!="boolean"&&me(e,t,n)&&(t=n=void 0),n===void 0&&(typeof t=="boolean"?(n=t,t=void 0):typeof e=="boolean"&&(n=e,e=void 0)),e===void 0&&t===void 0?(e=0,t=1):(e=On(e),t===void 0?(t=e,e=0):t=On(t)),e>t){var r=e;e=t,t=r}if(n||e%1||t%1){var f=eD();return tD(e+f*(t-e+Zk("1e-"+((f+"").length-1))),t)}return Xh(e,t)}var rD=Math.ceil,iD=Math.max;function oD(e,t,n,r){for(var f=-1,p=iD(rD((t-e)/(n||1)),0),v=Array(p);p--;)v[r?p:++f]=e,e+=n;return v}function vy(e){return function(t,n,r){return r&&typeof r!="number"&&me(t,n,r)&&(n=r=void 0),t=On(t),n===void 0?(n=t,t=0):n=On(n),r=r===void 0?t<n?1:-1:On(r),oD(t,n,r,e)}}var sD=vy(),aD=vy(!0),cD=256,lD=Ln(function(e,t){return Mn(e,cD,void 0,void 0,void 0,t)});function yy(e,t,n,r,f){return f(e,function(p,v,u){n=r?(r=!1,p):t(n,p,v,u)}),n}function uD(e,t,n){var r=wt(e)?_h:yy,f=arguments.length<3;return r(e,_t(t),n,f,or)}function hD(e,t,n,r){var f=e==null?0:e.length;for(r&&f&&(n=e[--f]);f--;)n=t(n,e[f],f,e);return n}function fD(e,t,n){var r=wt(e)?hD:yy,f=arguments.length<3;return r(e,_t(t),n,f,Qv)}function dD(e,t){var n=wt(e)?ir:$v;return n(e,lc(_t(t)))}function gD(e,t){var n=[];if(!(e&&e.length))return n;var r=-1,f=[],p=e.length;for(t=_t(t);++r<p;){var v=e[r];t(v,r,e)&&(n.push(v),f.push(r))}return Ay(e,f),n}function pD(e,t,n){return(n?me(e,t,n):t===void 0)?t=1:t=St(t),Cu(Mt(e),t)}function AD(){var e=arguments,t=Mt(e[0]);return e.length<3?t:t.replace(e[1],e[2])}var vD="Expected a function";function yD(e,t){if(typeof e!="function")throw new TypeError(vD);return t=t===void 0?t:St(t),It(e,t)}function mD(e,t,n){t=er(t,e);var r=-1,f=t.length;for(f||(f=1,e=void 0);++r<f;){var p=e?.[_n(t[r])];p===void 0&&(r=f,p=n),e=Dn(p)?p.call(e):p}return e}var _D=Array.prototype,bD=_D.reverse;function xu(e){return e==null?e:bD.call(e)}var wD=wh("round");function my(e){var t=e.length;return t?e[Xh(0,t-1)]:void 0}function CD(e){return my(ti(e))}function ED(e){var t=wt(e)?my:CD;return t(e)}function hc(e,t){var n=-1,r=e.length,f=r-1;for(t=t===void 0?r:t;++n<t;){var p=Xh(n,f),v=e[p];e[p]=e[n],e[n]=v}return e.length=t,e}function SD(e,t){return hc(Ie(e),wr(t,0,e.length))}function xD(e,t){var n=ti(e);return hc(n,wr(t,0,n.length))}function ID(e,t,n){(n?me(e,t,n):t===void 0)?t=1:t=St(t);var r=wt(e)?SD:xD;return r(e,t)}function _y(e,t,n){return e==null?e:eo(e,t,n)}function OD(e,t,n,r){return r=typeof r=="function"?r:void 0,e==null?e:eo(e,t,n,r)}function BD(e){return hc(Ie(e))}function TD(e){return hc(ti(e))}function kD(e){var t=wt(e)?BD:TD;return t(e)}var DD="[object Map]",RD="[object Set]";function MD(e){if(e==null)return 0;if(ke(e))return ac(e)?ei(e):e.length;var t=he(e);return t==DD||t==RD?e.size:gh(e).length}function PD(e,t,n){var r=e==null?0:e.length;return r?(n&&typeof n!="number"&&me(e,t,n)?(t=0,n=r):(t=t==null?0:St(t),n=n===void 0?r:St(n)),Ve(e,t,n)):[]}var QD=Zr(function(e,t,n){return e+(n?"_":"")+t.toLowerCase()});function FD(e,t){var n;return or(e,function(r,f,p){return n=t(r,f,p),!n}),!!n}function LD(e,t,n){var r=wt(e)?Ih:FD;return n&&me(e,t,n)&&(t=void 0),r(e,_t(t))}var jD=It(function(e,t){if(e==null)return[];var n=t.length;return n>1&&me(e,t[0],t[1])?t=[]:n>2&&me(t[0],t[1],t[2])&&(t=[t[0]]),ay(e,ce(t,1),[])}),ND=4294967295,UD=ND-1,GD=Math.floor,$D=Math.min;function Vh(e,t,n,r){var f=0,p=e==null?0:e.length;if(p===0)return 0;t=n(t);for(var v=t!==t,u=t===null,o=Fe(t),s=t===void 0;f<p;){var c=GD((f+p)/2),i=n(e[c]),l=i!==void 0,a=i===null,h=i===i,g=Fe(i);if(v)var d=r||h;else s?d=h&&(r||l):u?d=h&&l&&(r||!a):o?d=h&&l&&!a&&(r||!g):a||g?d=!1:d=r?i<=t:i<t;d?f=c+1:p=c}return $D(p,UD)}var HD=4294967295,zD=HD>>>1;function fc(e,t,n){var r=0,f=e==null?r:e.length;if(typeof t=="number"&&t===t&&f<=zD){for(;r<f;){var p=r+f>>>1,v=e[p];v!==null&&!Fe(v)&&(n?v<=t:v<t)?r=p+1:f=p}return f}return Vh(e,t,Te,n)}function YD(e,t){return fc(e,t)}function WD(e,t,n){return Vh(e,t,_t(n))}function qD(e,t){var n=e==null?0:e.length;if(n){var r=fc(e,t);if(r<n&&ln(e[r],t))return r}return-1}function XD(e,t){return fc(e,t,!0)}function VD(e,t,n){return Vh(e,t,_t(n),!0)}function JD(e,t){var n=e==null?0:e.length;if(n){var r=fc(e,t,!0)-1;if(ln(e[r],t))return r}return-1}function by(e,t){for(var n=-1,r=e.length,f=0,p=[];++n<r;){var v=e[n],u=t?t(v):v;if(!n||!ln(u,o)){var o=u;p[f++]=v===0?0:v}}return p}function KD(e){return e&&e.length?by(e):[]}function ZD(e,t){return e&&e.length?by(e,_t(t)):[]}var tR=4294967295;function eR(e,t,n){return n&&typeof n!="number"&&me(e,t,n)&&(t=n=void 0),n=n===void 0?tR:n>>>0,n?(e=Mt(e),e&&(typeof t=="string"||t!=null&&!Gh(t))&&(t=Le(t),!t&&Kr(e))?rr(an(e),0,n):e.split(t,n)):[]}var nR="Expected a function",rR=Math.max;function iR(e,t){if(typeof e!="function")throw new TypeError(nR);return t=t==null?0:rR(St(t),0),It(function(n){var r=n[t],f=rr(n,0,t);return r&&nr(f,r),je(e,this,f)})}var oR=Zr(function(e,t,n){return e+(n?" ":"")+mh(t)});function sR(e,t,n){return e=Mt(e),n=n==null?0:wr(St(n),0,e.length),t=Le(t),e.slice(n,n+t.length)==t}function aR(){return{}}function cR(){return""}function lR(){return!0}var uR=$a(function(e,t){return e-t},0);function hR(e){return e&&e.length?Hh(e,Te):0}function fR(e,t){return e&&e.length?Hh(e,_t(t)):0}function dR(e){var t=e==null?0:e.length;return t?Ve(e,1,t):[]}function gR(e,t,n){return e&&e.length?(t=n||t===void 0?1:St(t),Ve(e,0,t<0?0:t)):[]}function pR(e,t,n){var r=e==null?0:e.length;return r?(t=n||t===void 0?1:St(t),t=r-t,Ve(e,t<0?0:t,r)):[]}function AR(e,t){return e&&e.length?rc(e,_t(t),!1,!0):[]}function vR(e,t){return e&&e.length?rc(e,_t(t)):[]}function yR(e,t){return t(e),e}var wy=Object.prototype,mR=wy.hasOwnProperty;function Nd(e,t,n,r){return e===void 0||ln(e,wy[n])&&!mR.call(r,n)?t:e}var _R={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};function bR(e){return"\\"+_R[e]}var Cy=/<%=([\s\S]+?)%>/g,wR=/<%-([\s\S]+?)%>/g,CR=/<%([\s\S]+?)%>/g,Iu={escape:wR,evaluate:CR,interpolate:Cy,variable:"",imports:{_:{escape:jv}}},ER="Invalid `variable` option passed into `_.template`",SR=/\b__p \+= '';/g,xR=/\b(__p \+=) '' \+/g,IR=/(__e\(.*?\)|\b__t\)) \+\n'';/g,OR=/[()=,{}\[\]\/\s]/,BR=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,yo=/($^)/,TR=/['\n\r\u2028\u2029\\]/g,kR=Object.prototype,Ud=kR.hasOwnProperty;function DR(e,t,n){var r=Iu.imports._.templateSettings||Iu;n&&me(e,t,n)&&(t=void 0),e=Mt(e),t=pu({},t,r,Nd);var f=pu({},t.imports,r.imports,Nd),p=oe(f),v=jh(f,p),u,o,s=0,c=t.interpolate||yo,i="__p += '",l=RegExp((t.escape||yo).source+"|"+c.source+"|"+(c===Cy?BR:yo).source+"|"+(t.evaluate||yo).source+"|$","g"),a=Ud.call(t,"sourceURL")?"//# sourceURL="+(t.sourceURL+"").replace(/\s/g," ")+`
444
+ `:"";e.replace(l,function(d,A,y,m,_,w){return y||(y=m),i+=e.slice(s,w).replace(TR,bR),A&&(u=!0,i+=`' +
445
+ __e(`+A+`) +
446
+ '`),_&&(o=!0,i+=`';
447
+ `+_+`;
448
+ __p += '`),y&&(i+=`' +
449
+ ((__t = (`+y+`)) == null ? '' : __t) +
450
+ '`),s=w+d.length,d}),i+=`';
451
+ `;var h=Ud.call(t,"variable")&&t.variable;if(!h)i=`with (obj) {
452
+ `+i+`
453
+ }
454
+ `;else if(OR.test(h))throw new Error(ER);i=(o?i.replace(SR,""):i).replace(xR,"$1").replace(IR,"$1;"),i="function("+(h||"obj")+`) {
455
+ `+(h?"":`obj || (obj = {});
456
+ `)+"var __t, __p = ''"+(u?", __e = _.escape":"")+(o?`, __j = Array.prototype.join;
457
+ function print() { __p += __j.call(arguments, '') }
458
+ `:`;
459
+ `)+i+`return __p
460
+ }`;var g=M0(function(){return Function(p,a+"return "+i).apply(void 0,v)});if(g.source=i,vh(g))throw g;return g}var RR="Expected a function";function Bn(e,t,n){var r=!0,f=!0;if(typeof e!="function")throw new TypeError(RR);return qt(n)&&(r="leading"in n?!!n.leading:r,f="trailing"in n?!!n.trailing:f),Bv(e,t,{leading:r,maxWait:t,trailing:f})}function dc(e,t){return t(e)}var MR=9007199254740991,Xc=4294967295,PR=Math.min;function QR(e,t){if(e=St(e),e<1||e>MR)return[];var n=Xc,r=PR(e,Xc);t=wn(t),e-=Xc;for(var f=fh(r,t);++n<e;)t(n);return f}function FR(){return this}function Ey(e,t){var n=e;return n instanceof Ot&&(n=n.value()),_h(t,function(r,f){return f.func.apply(f.thisArg,nr([r],f.args))},n)}function LR(){return Ey(this.__wrapped__,this.__actions__)}function jR(e){return Mt(e).toLowerCase()}function NR(e){return wt(e)?zt(e,_n):Fe(e)?[e]:Ie(k0(Mt(e)))}var Gd=9007199254740991;function UR(e){return e?wr(St(e),-Gd,Gd):e===0?e:0}function GR(e){return Mt(e).toUpperCase()}function $R(e,t,n){var r=wt(e),f=r||Kn(e)||Jr(e);if(t=_t(t),n==null){var p=e&&e.constructor;f?n=r?new p:[]:qt(e)?n=Dn(p)?Wr(Ka(e)):{}:n={}}return(f?Ke:bn)(e,function(v,u,o){return t(n,v,u,o)}),n}function Sy(e,t){for(var n=e.length;n--&&qr(t,e[n],0)>-1;);return n}function xy(e,t){for(var n=-1,r=e.length;++n<r&&qr(t,e[n],0)>-1;);return n}function HR(e,t,n){if(e=Mt(e),e&&(n||t===void 0))return d0(e);if(!e||!(t=Le(t)))return e;var r=an(e),f=an(t),p=xy(r,f),v=Sy(r,f)+1;return rr(r,p,v).join("")}function zR(e,t,n){if(e=Mt(e),e&&(n||t===void 0))return e.slice(0,f0(e)+1);if(!e||!(t=Le(t)))return e;var r=an(e),f=Sy(r,an(t))+1;return rr(r,0,f).join("")}var YR=/^\s+/;function WR(e,t,n){if(e=Mt(e),e&&(n||t===void 0))return e.replace(YR,"");if(!e||!(t=Le(t)))return e;var r=an(e),f=xy(r,an(t));return rr(r,f).join("")}var qR=30,XR="...",VR=/\w*$/;function JR(e,t){var n=qR,r=XR;if(qt(t)){var f="separator"in t?t.separator:f;n="length"in t?St(t.length):n,r="omission"in t?Le(t.omission):r}e=Mt(e);var p=e.length;if(Kr(e)){var v=an(e);p=v.length}if(n>=p)return e;var u=n-ei(r);if(u<1)return r;var o=v?rr(v,0,u).join(""):e.slice(0,u);if(f===void 0)return o+r;if(v&&(u+=o.length-u),Gh(f)){if(e.slice(u).search(f)){var s,c=o;for(f.global||(f=RegExp(f.source,Mt(VR.exec(f))+"g")),f.lastIndex=0;s=f.exec(c);)var i=s.index;o=o.slice(0,i===void 0?u:i)}}else if(e.indexOf(Le(f),u)!=u){var l=o.lastIndexOf(f);l>-1&&(o=o.slice(0,l))}return o+r}function KR(e){return E0(e,1)}var ZR={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},tM=bh(ZR),Iy=/&(?:amp|lt|gt|quot|#39);/g,eM=RegExp(Iy.source);function nM(e){return e=Mt(e),e&&eM.test(e)?e.replace(Iy,tM):e}var rM=1/0,iM=jr&&1/tc(new jr([,-0]))[1]==rM?function(e){return new jr(e)}:Ni,oM=200;function Zn(e,t,n){var r=-1,f=Ya,p=e.length,v=!0,u=[],o=u;if(n)v=!1,f=Qh;else if(p>=oM){var s=t?null:iM(e);if(s)return tc(s);v=!1,f=Hi,o=new vr}else o=t?[]:u;t:for(;++r<p;){var c=e[r],i=t?t(c):c;if(c=n||c!==0?c:0,v&&i===i){for(var l=o.length;l--;)if(o[l]===i)continue t;t&&o.push(i),u.push(c)}else f(o,i,n)||(o!==u&&o.push(i),u.push(c))}return u}var sM=It(function(e){return Zn(ce(e,1,Zt,!0))}),aM=It(function(e){var t=Je(e);return Zt(t)&&(t=void 0),Zn(ce(e,1,Zt,!0),_t(t))}),cM=It(function(e){var t=Je(e);return t=typeof t=="function"?t:void 0,Zn(ce(e,1,Zt,!0),void 0,t)});function lM(e){return e&&e.length?Zn(e):[]}function uM(e,t){return e&&e.length?Zn(e,_t(t)):[]}function hM(e,t){return t=typeof t=="function"?t:void 0,e&&e.length?Zn(e,void 0,t):[]}var fM=0;function dM(e){var t=++fM;return Mt(e)+t}function gM(e,t){return e==null?!0:zh(e,t)}var pM=Math.max;function Jh(e){if(!(e&&e.length))return[];var t=0;return e=ir(e,function(n){if(Zt(n))return t=pM(n.length,t),!0}),fh(t,function(n){return zt(e,Dh(n))})}function Oy(e,t){if(!(e&&e.length))return[];var n=Jh(e);return t==null?n:zt(n,function(r){return je(t,void 0,r)})}function By(e,t,n,r){return eo(e,t,n(br(e,t)),r)}function AM(e,t,n){return e==null?e:By(e,t,wn(n))}function vM(e,t,n,r){return r=typeof r=="function"?r:void 0,e==null?e:By(e,t,wn(n),r)}var yM=Zr(function(e,t,n){return e+(n?" ":"")+t.toUpperCase()});function mM(e){return e==null?[]:jh(e,De(e))}var _M=It(function(e,t){return Zt(e)?Zi(e,t):[]});function bM(e,t){return uc(wn(t),e)}var wM=Ln(function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,f=function(p){return Ah(p,e)};return t>1||this.__actions__.length||!(r instanceof Ot)||!Rn(n)?this.thru(f):(r=r.slice(n,+n+(t?1:0)),r.__actions__.push({func:dc,args:[f],thisArg:void 0}),new qe(r,this.__chain__).thru(function(p){return t&&!p.length&&p.push(void 0),p}))});function CM(){return ov(this)}function EM(){var e=this.__wrapped__;if(e instanceof Ot){var t=e;return this.__actions__.length&&(t=new Ot(this)),t=t.reverse(),t.__actions__.push({func:dc,args:[xu],thisArg:void 0}),new qe(t,this.__chain__)}return this.thru(xu)}function Kh(e,t,n){var r=e.length;if(r<2)return r?Zn(e[0]):[];for(var f=-1,p=Array(r);++f<r;)for(var v=e[f],u=-1;++u<r;)u!=f&&(p[f]=Zi(p[f]||v,e[u],t,n));return Zn(ce(p,1),t,n)}var SM=It(function(e){return Kh(ir(e,Zt))}),xM=It(function(e){var t=Je(e);return Zt(t)&&(t=void 0),Kh(ir(e,Zt),_t(t))}),IM=It(function(e){var t=Je(e);return t=typeof t=="function"?t:void 0,Kh(ir(e,Zt),void 0,t)}),OM=It(Jh);function Ty(e,t,n){for(var r=-1,f=e.length,p=t.length,v={};++r<f;){var u=r<p?t[r]:void 0;n(v,e[r],u)}return v}function BM(e,t){return Ty(e||[],t||[],Xi)}function TM(e,t){return Ty(e||[],t||[],eo)}var kM=It(function(e){var t=e.length,n=t>1?e[t-1]:void 0;return n=typeof n=="function"?(e.pop(),n):void 0,Oy(e,n)});const gt={chunk:ox,compact:j2,concat:N2,difference:zI,differenceBy:YI,differenceWith:WI,drop:XI,dropRight:VI,dropRightWhile:JI,dropWhile:KI,fill:yO,findIndex:zv,findLastIndex:Wv,flatten:D0,flattenDeep:RO,flattenDepth:MO,fromPairs:XO,head:IO,indexOf:pB,initial:AB,intersection:yB,intersectionBy:mB,intersectionWith:_B,join:pT,lastIndexOf:bT,nth:XT,pull:zk,pullAll:py,pullAllBy:Yk,pullAllWith:Wk,pullAt:Vk,remove:gD,reverse:xu,slice:PD,sortedIndex:YD,sortedIndexBy:WD,sortedIndexOf:qD,sortedLastIndex:XD,sortedLastIndexBy:VD,sortedLastIndexOf:JD,sortedUniq:KD,sortedUniqBy:ZD,tail:dR,take:gR,takeRight:pR,takeRightWhile:AR,takeWhile:vR,union:sM,unionBy:aM,unionWith:cM,uniq:lM,uniqBy:uM,uniqWith:hM,unzip:Jh,unzipWith:Oy,without:_M,xor:SM,xorBy:xM,xorWith:IM,zip:OM,zipObject:BM,zipObjectDeep:TM,zipWith:kM},jt={countBy:BI,every:pO,filter:mO,find:bO,findLast:SO,flatMap:OO,flatMapDeep:TO,flatMapDepth:kO,forEach:ZI,forEachRight:eO,groupBy:tB,includes:dB,invokeMap:BB,keyBy:vT,map:ic,orderBy:sk,partition:jk,reduce:uD,reduceRight:fD,reject:dD,sample:ED,sampleSize:ID,shuffle:kD,size:MD,some:LD,sortBy:jD},DM={now:us},Kt={after:Gb,ary:E0,before:P0,bind:Za,bindKey:yh,curry:Mh,curryRight:Ph,debounce:Bv,defer:GI,delay:$I,flip:QO,memoize:Ja,once:rk,overArgs:uk,partial:uc,partialRight:Wh,rearg:lD,rest:yD,spread:iR,throttle:Bn,unary:KR,wrap:bM},vt={castArray:ZS,clone:T2,cloneDeep:yv,cloneDeepWith:P2,cloneWith:F2,conformsTo:EI,eq:ln,gt:eB,gte:nB,isArguments:pr,isArrayBuffer:DB,isArrayLike:ke,isArrayLikeObject:Zt,isBoolean:MB,isBuffer:Kn,isDate:FB,isElement:LB,isEmpty:$B,isEqual:HB,isEqualWith:zB,isError:vh,isFinite:WB,isFunction:Dn,isInteger:Zv,isLength:qa,isMap:dv,isMatch:qB,isMatchWith:XB,isNaN:JB,isNative:tT,isNil:eT,isNull:nT,isNumber:ty,isObjectLike:Jt,isPlainObject:Ji,isRegExp:Gh,isSafeInteger:oT,isSet:gv,isString:ac,isSymbol:Fe,isTypedArray:Jr,isUndefined:sT,isWeakMap:cT,isWeakSet:uT,lt:ET,lte:ST,toArray:ny,toFinite:On,toLength:Gv,toNumber:Ye,toPlainObject:kv,toSafeInteger:UR,toString:Mt},be={add:Rb,ceil:nx,divide:qI,floor:FO,max:DT,maxBy:RT,mean:PT,meanBy:QT,min:NT,minBy:UT,multiply:$T,round:wD,subtract:uR,sum:hR,sumBy:fR},Zh={clamp:sx,inRange:uB,random:nD},mt={assign:YC,assignIn:JC,assignInWith:pu,assignWith:KC,at:kE,create:TI,defaults:LI,defaultsDeep:NI,findKey:wO,findLastKey:xO,forIn:zO,forInRight:YO,forOwn:WO,forOwnRight:qO,functions:VO,functionsIn:JO,get:$i,has:sB,hasIn:kh,invert:EB,invertBy:IB,invoke:OB,keysIn:De,mapKeys:xT,mapValues:IT,merge:FT,mergeWith:Rv,omit:ek,omitBy:nk,pick:gy,pickBy:oy,result:mD,set:_y,setWith:OD,toPairs:aO,toPairsIn:cO,transform:$R,unset:gM,update:AM,updateWith:vM,values:ti,valuesIn:mM},Cn={at:wM,chain:ov,commit:L2,next:qT,plant:Uk,reverse:EM,tap:yR,toIterator:FR,value:LR,wrapperChain:CM},Dt={camelCase:KS,capitalize:$0,deburr:H0,endsWith:nO,escape:jv,escapeRegExp:dO,kebabCase:AT,lowerCase:wT,lowerFirst:CT,pad:kk,padEnd:Dk,padStart:Rk,parseInt:Qk,repeat:pD,replace:AD,snakeCase:QD,split:eR,startCase:oR,startsWith:sR,template:DR,templateSettings:Iu,toLower:jR,toUpper:GR,trim:HR,trimEnd:zR,trimStart:WR,truncate:JR,unescape:nM,upperCase:yM,upperFirst:mh,words:iv},Pt={attempt:M0,bindAll:GE,cond:_I,conforms:CI,constant:uh,defaultTo:QI,flow:$O,flowRight:HO,iteratee:fT,matches:BT,matchesProperty:kT,method:LT,methodOf:jT,noop:Ni,nthArg:VT,over:ak,overEvery:hk,overSome:fk,property:Sv,propertyOf:Gk,range:sD,rangeRight:aD,stubArray:Ch,stubFalse:dh,stubObject:aR,stubString:cR,stubTrue:lR,times:QR,toPath:NR,uniqueId:dM};function RM(){var e=new Ot(this.__wrapped__);return e.__actions__=Ie(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Ie(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Ie(this.__views__),e}function MM(){if(this.__filtered__){var e=new Ot(this);e.__dir__=-1,e.__filtered__=!0}else e=this.clone(),e.__dir__*=-1;return e}var PM=Math.max,QM=Math.min;function FM(e,t,n){for(var r=-1,f=n.length;++r<f;){var p=n[r],v=p.size;switch(p.type){case"drop":e+=v;break;case"dropRight":t-=v;break;case"take":t=QM(t,e+v);break;case"takeRight":e=PM(e,t-v);break}}return{start:e,end:t}}var LM=1,jM=2,NM=Math.min;function UM(){var e=this.__wrapped__.value(),t=this.__dir__,n=wt(e),r=t<0,f=n?e.length:0,p=FM(0,f,this.__views__),v=p.start,u=p.end,o=u-v,s=r?u:v-1,c=this.__iteratees__,i=c.length,l=0,a=NM(o,this.__takeCount__);if(!n||!r&&f==o&&a==o)return Ey(e,this.__actions__);var h=[];t:for(;o--&&l<a;){s+=t;for(var g=-1,d=e[s];++g<i;){var A=c[g],y=A.iteratee,m=A.type,_=y(d);if(m==jM)d=_;else if(!_){if(m==LM)continue t;break t}}h[l++]=d}return h}var GM="4.17.21",$M=2,HM=1,zM=3,ky=4294967295,YM=Array.prototype,WM=Object.prototype,Dy=WM.hasOwnProperty,$d=ge?ge.iterator:void 0,qM=Math.max,Hd=Math.min,tf=(function(e){return function(t,n,r){if(r==null){var f=qt(n),p=f&&oe(n),v=p&&p.length&&oc(n,p);(v?v.length:f)||(r=n,n=t,t=this)}return e(t,n,r)}})(GT);R.after=Kt.after;R.ary=Kt.ary;R.assign=mt.assign;R.assignIn=mt.assignIn;R.assignInWith=mt.assignInWith;R.assignWith=mt.assignWith;R.at=mt.at;R.before=Kt.before;R.bind=Kt.bind;R.bindAll=Pt.bindAll;R.bindKey=Kt.bindKey;R.castArray=vt.castArray;R.chain=Cn.chain;R.chunk=gt.chunk;R.compact=gt.compact;R.concat=gt.concat;R.cond=Pt.cond;R.conforms=Pt.conforms;R.constant=Pt.constant;R.countBy=jt.countBy;R.create=mt.create;R.curry=Kt.curry;R.curryRight=Kt.curryRight;R.debounce=Kt.debounce;R.defaults=mt.defaults;R.defaultsDeep=mt.defaultsDeep;R.defer=Kt.defer;R.delay=Kt.delay;R.difference=gt.difference;R.differenceBy=gt.differenceBy;R.differenceWith=gt.differenceWith;R.drop=gt.drop;R.dropRight=gt.dropRight;R.dropRightWhile=gt.dropRightWhile;R.dropWhile=gt.dropWhile;R.fill=gt.fill;R.filter=jt.filter;R.flatMap=jt.flatMap;R.flatMapDeep=jt.flatMapDeep;R.flatMapDepth=jt.flatMapDepth;R.flatten=gt.flatten;R.flattenDeep=gt.flattenDeep;R.flattenDepth=gt.flattenDepth;R.flip=Kt.flip;R.flow=Pt.flow;R.flowRight=Pt.flowRight;R.fromPairs=gt.fromPairs;R.functions=mt.functions;R.functionsIn=mt.functionsIn;R.groupBy=jt.groupBy;R.initial=gt.initial;R.intersection=gt.intersection;R.intersectionBy=gt.intersectionBy;R.intersectionWith=gt.intersectionWith;R.invert=mt.invert;R.invertBy=mt.invertBy;R.invokeMap=jt.invokeMap;R.iteratee=Pt.iteratee;R.keyBy=jt.keyBy;R.keys=oe;R.keysIn=mt.keysIn;R.map=jt.map;R.mapKeys=mt.mapKeys;R.mapValues=mt.mapValues;R.matches=Pt.matches;R.matchesProperty=Pt.matchesProperty;R.memoize=Kt.memoize;R.merge=mt.merge;R.mergeWith=mt.mergeWith;R.method=Pt.method;R.methodOf=Pt.methodOf;R.mixin=tf;R.negate=lc;R.nthArg=Pt.nthArg;R.omit=mt.omit;R.omitBy=mt.omitBy;R.once=Kt.once;R.orderBy=jt.orderBy;R.over=Pt.over;R.overArgs=Kt.overArgs;R.overEvery=Pt.overEvery;R.overSome=Pt.overSome;R.partial=Kt.partial;R.partialRight=Kt.partialRight;R.partition=jt.partition;R.pick=mt.pick;R.pickBy=mt.pickBy;R.property=Pt.property;R.propertyOf=Pt.propertyOf;R.pull=gt.pull;R.pullAll=gt.pullAll;R.pullAllBy=gt.pullAllBy;R.pullAllWith=gt.pullAllWith;R.pullAt=gt.pullAt;R.range=Pt.range;R.rangeRight=Pt.rangeRight;R.rearg=Kt.rearg;R.reject=jt.reject;R.remove=gt.remove;R.rest=Kt.rest;R.reverse=gt.reverse;R.sampleSize=jt.sampleSize;R.set=mt.set;R.setWith=mt.setWith;R.shuffle=jt.shuffle;R.slice=gt.slice;R.sortBy=jt.sortBy;R.sortedUniq=gt.sortedUniq;R.sortedUniqBy=gt.sortedUniqBy;R.split=Dt.split;R.spread=Kt.spread;R.tail=gt.tail;R.take=gt.take;R.takeRight=gt.takeRight;R.takeRightWhile=gt.takeRightWhile;R.takeWhile=gt.takeWhile;R.tap=Cn.tap;R.throttle=Kt.throttle;R.thru=dc;R.toArray=vt.toArray;R.toPairs=mt.toPairs;R.toPairsIn=mt.toPairsIn;R.toPath=Pt.toPath;R.toPlainObject=vt.toPlainObject;R.transform=mt.transform;R.unary=Kt.unary;R.union=gt.union;R.unionBy=gt.unionBy;R.unionWith=gt.unionWith;R.uniq=gt.uniq;R.uniqBy=gt.uniqBy;R.uniqWith=gt.uniqWith;R.unset=mt.unset;R.unzip=gt.unzip;R.unzipWith=gt.unzipWith;R.update=mt.update;R.updateWith=mt.updateWith;R.values=mt.values;R.valuesIn=mt.valuesIn;R.without=gt.without;R.words=Dt.words;R.wrap=Kt.wrap;R.xor=gt.xor;R.xorBy=gt.xorBy;R.xorWith=gt.xorWith;R.zip=gt.zip;R.zipObject=gt.zipObject;R.zipObjectDeep=gt.zipObjectDeep;R.zipWith=gt.zipWith;R.entries=mt.toPairs;R.entriesIn=mt.toPairsIn;R.extend=mt.assignIn;R.extendWith=mt.assignInWith;tf(R,R);R.add=be.add;R.attempt=Pt.attempt;R.camelCase=Dt.camelCase;R.capitalize=Dt.capitalize;R.ceil=be.ceil;R.clamp=Zh.clamp;R.clone=vt.clone;R.cloneDeep=vt.cloneDeep;R.cloneDeepWith=vt.cloneDeepWith;R.cloneWith=vt.cloneWith;R.conformsTo=vt.conformsTo;R.deburr=Dt.deburr;R.defaultTo=Pt.defaultTo;R.divide=be.divide;R.endsWith=Dt.endsWith;R.eq=vt.eq;R.escape=Dt.escape;R.escapeRegExp=Dt.escapeRegExp;R.every=jt.every;R.find=jt.find;R.findIndex=gt.findIndex;R.findKey=mt.findKey;R.findLast=jt.findLast;R.findLastIndex=gt.findLastIndex;R.findLastKey=mt.findLastKey;R.floor=be.floor;R.forEach=jt.forEach;R.forEachRight=jt.forEachRight;R.forIn=mt.forIn;R.forInRight=mt.forInRight;R.forOwn=mt.forOwn;R.forOwnRight=mt.forOwnRight;R.get=mt.get;R.gt=vt.gt;R.gte=vt.gte;R.has=mt.has;R.hasIn=mt.hasIn;R.head=gt.head;R.identity=Te;R.includes=jt.includes;R.indexOf=gt.indexOf;R.inRange=Zh.inRange;R.invoke=mt.invoke;R.isArguments=vt.isArguments;R.isArray=wt;R.isArrayBuffer=vt.isArrayBuffer;R.isArrayLike=vt.isArrayLike;R.isArrayLikeObject=vt.isArrayLikeObject;R.isBoolean=vt.isBoolean;R.isBuffer=vt.isBuffer;R.isDate=vt.isDate;R.isElement=vt.isElement;R.isEmpty=vt.isEmpty;R.isEqual=vt.isEqual;R.isEqualWith=vt.isEqualWith;R.isError=vt.isError;R.isFinite=vt.isFinite;R.isFunction=vt.isFunction;R.isInteger=vt.isInteger;R.isLength=vt.isLength;R.isMap=vt.isMap;R.isMatch=vt.isMatch;R.isMatchWith=vt.isMatchWith;R.isNaN=vt.isNaN;R.isNative=vt.isNative;R.isNil=vt.isNil;R.isNull=vt.isNull;R.isNumber=vt.isNumber;R.isObject=qt;R.isObjectLike=vt.isObjectLike;R.isPlainObject=vt.isPlainObject;R.isRegExp=vt.isRegExp;R.isSafeInteger=vt.isSafeInteger;R.isSet=vt.isSet;R.isString=vt.isString;R.isSymbol=vt.isSymbol;R.isTypedArray=vt.isTypedArray;R.isUndefined=vt.isUndefined;R.isWeakMap=vt.isWeakMap;R.isWeakSet=vt.isWeakSet;R.join=gt.join;R.kebabCase=Dt.kebabCase;R.last=Je;R.lastIndexOf=gt.lastIndexOf;R.lowerCase=Dt.lowerCase;R.lowerFirst=Dt.lowerFirst;R.lt=vt.lt;R.lte=vt.lte;R.max=be.max;R.maxBy=be.maxBy;R.mean=be.mean;R.meanBy=be.meanBy;R.min=be.min;R.minBy=be.minBy;R.stubArray=Pt.stubArray;R.stubFalse=Pt.stubFalse;R.stubObject=Pt.stubObject;R.stubString=Pt.stubString;R.stubTrue=Pt.stubTrue;R.multiply=be.multiply;R.nth=gt.nth;R.noop=Pt.noop;R.now=DM.now;R.pad=Dt.pad;R.padEnd=Dt.padEnd;R.padStart=Dt.padStart;R.parseInt=Dt.parseInt;R.random=Zh.random;R.reduce=jt.reduce;R.reduceRight=jt.reduceRight;R.repeat=Dt.repeat;R.replace=Dt.replace;R.result=mt.result;R.round=be.round;R.sample=jt.sample;R.size=jt.size;R.snakeCase=Dt.snakeCase;R.some=jt.some;R.sortedIndex=gt.sortedIndex;R.sortedIndexBy=gt.sortedIndexBy;R.sortedIndexOf=gt.sortedIndexOf;R.sortedLastIndex=gt.sortedLastIndex;R.sortedLastIndexBy=gt.sortedLastIndexBy;R.sortedLastIndexOf=gt.sortedLastIndexOf;R.startCase=Dt.startCase;R.startsWith=Dt.startsWith;R.subtract=be.subtract;R.sum=be.sum;R.sumBy=be.sumBy;R.template=Dt.template;R.times=Pt.times;R.toFinite=vt.toFinite;R.toInteger=St;R.toLength=vt.toLength;R.toLower=Dt.toLower;R.toNumber=vt.toNumber;R.toSafeInteger=vt.toSafeInteger;R.toString=vt.toString;R.toUpper=Dt.toUpper;R.trim=Dt.trim;R.trimEnd=Dt.trimEnd;R.trimStart=Dt.trimStart;R.truncate=Dt.truncate;R.unescape=Dt.unescape;R.uniqueId=Pt.uniqueId;R.upperCase=Dt.upperCase;R.upperFirst=Dt.upperFirst;R.each=jt.forEach;R.eachRight=jt.forEachRight;R.first=gt.head;tf(R,(function(){var e={};return bn(R,function(t,n){Dy.call(R.prototype,n)||(e[n]=t)}),e})(),{chain:!1});R.VERSION=GM;(R.templateSettings=Dt.templateSettings).imports._=R;Ke(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){R[e].placeholder=R});Ke(["drop","take"],function(e,t){Ot.prototype[e]=function(n){n=n===void 0?1:qM(St(n),0);var r=this.__filtered__&&!t?new Ot(this):this.clone();return r.__filtered__?r.__takeCount__=Hd(n,r.__takeCount__):r.__views__.push({size:Hd(n,ky),type:e+(r.__dir__<0?"Right":"")}),r},Ot.prototype[e+"Right"]=function(n){return this.reverse()[e](n).reverse()}});Ke(["filter","map","takeWhile"],function(e,t){var n=t+1,r=n==HM||n==zM;Ot.prototype[e]=function(f){var p=this.clone();return p.__iteratees__.push({iteratee:_t(f),type:n}),p.__filtered__=p.__filtered__||r,p}});Ke(["head","last"],function(e,t){var n="take"+(t?"Right":"");Ot.prototype[e]=function(){return this[n](1).value()[0]}});Ke(["initial","tail"],function(e,t){var n="drop"+(t?"":"Right");Ot.prototype[e]=function(){return this.__filtered__?new Ot(this):this[n](1)}});Ot.prototype.compact=function(){return this.filter(Te)};Ot.prototype.find=function(e){return this.filter(e).head()};Ot.prototype.findLast=function(e){return this.reverse().find(e)};Ot.prototype.invokeMap=It(function(e,t){return typeof e=="function"?new Ot(this):this.map(function(n){return to(n,e,t)})});Ot.prototype.reject=function(e){return this.filter(lc(_t(e)))};Ot.prototype.slice=function(e,t){e=St(e);var n=this;return n.__filtered__&&(e>0||t<0)?new Ot(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==void 0&&(t=St(t),n=t<0?n.dropRight(-t):n.take(t-e)),n)};Ot.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()};Ot.prototype.toArray=function(){return this.take(ky)};bn(Ot.prototype,function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),f=R[r?"take"+(t=="last"?"Right":""):t],p=r||/^find/.test(t);f&&(R.prototype[t]=function(){var v=this.__wrapped__,u=r?[1]:arguments,o=v instanceof Ot,s=u[0],c=o||wt(v),i=function(A){var y=f.apply(R,nr([A],u));return r&&l?y[0]:y};c&&n&&typeof s=="function"&&s.length!=1&&(o=c=!1);var l=this.__chain__,a=!!this.__actions__.length,h=p&&!l,g=o&&!a;if(!p&&c){v=g?v:new Ot(this);var d=e.apply(v,u);return d.__actions__.push({func:dc,args:[i],thisArg:void 0}),new qe(d,l)}return h&&g?e.apply(this,u):(d=this.thru(i),h?r?d.value()[0]:d.value():d)})});Ke(["pop","push","shift","sort","splice","unshift"],function(e){var t=YM[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);R.prototype[e]=function(){var f=arguments;if(r&&!this.__chain__){var p=this.value();return t.apply(wt(p)?p:[],f)}return this[n](function(v){return t.apply(wt(v)?v:[],f)})}});bn(Ot.prototype,function(e,t){var n=R[t];if(n){var r=n.name+"";Dy.call(Lr,r)||(Lr[r]=[]),Lr[r].push({name:t,func:n})}});Lr[Wa(void 0,$M).name]=[{name:"wrapper",func:void 0}];Ot.prototype.clone=RM;Ot.prototype.reverse=MM;Ot.prototype.value=UM;R.prototype.at=Cn.at;R.prototype.chain=Cn.wrapperChain;R.prototype.commit=Cn.commit;R.prototype.next=Cn.next;R.prototype.plant=Cn.plant;R.prototype.reverse=Cn.reverse;R.prototype.toJSON=R.prototype.valueOf=R.prototype.value=Cn.value;R.prototype.first=R.prototype.head;$d&&(R.prototype[$d]=Cn.toIterator);const pa=class pa{constructor(t,n,r){this.canvas=t,this.editor=n,this.unit="px",this._originSize={mm:{width:0,height:0}},this.init(r),this._bindEvents()}hookSaveBefore(){return new Promise(t=>{t(!0)})}hookSaveAfter(){return new Promise(t=>{t(!0)})}init(t){t?.unit&&(this.unit=t?.unit),t?.precision&&(this.precision=t?.precision)}setUnit(t){this.unit!==t&&(this.unit=t,this.editor.emit("unitChange",t))}getUnit(){return this.unit}getPrecision(){return this.precision}getSizeByUnit(t,n,r){const f=n??this.editor.getUnit();if(f==="px")return t;if(f==="mm")return Wt.pxToMm(t,r,{direct:!0});if(f==="inch")return Wt.pxToMm(t,r,{direct:!0})/Wt.CONSTANTS.INCH_TO_MM}_toPrecisionValue(t){if(this.precision===void 0)return t;const n=Math.pow(10,this.precision);return Math.round(t*n)/n}_formatOriginUnitValues(t){const n={};for(const r in t){const f=t[r];n[r]=f===void 0?void 0:this._toPrecisionValue(f)}return n}applyObjectPx(t,n){const{left:r,top:f,width:p,height:v,strokeWidth:u,fontSize:o}=n;o!==void 0&&t.set("fontSize",o),u!==void 0&&t.set("strokeWidth",u),p!==void 0&&t.set("width",p),v!==void 0&&t.set("height",v),r!==void 0&&t.set("left",r),f!==void 0&&t.set("top",f)}applyObjectMm(t,n,r){const f=v=>v===void 0?void 0:Wt.mmToPx(v,r,{direct:!0});this.applyObjectPx(t,{left:f(n.left),top:f(n.top),width:f(n.width),height:f(n.height),strokeWidth:f(n.strokeWidth),fontSize:f(n.fontSize)});const p=this._formatOriginUnitValues(n);t._originSize={...t._originSize,mm:{...p}}}applyObjectInch(t,n,r){const f=v=>v===void 0?void 0:v*Wt.CONSTANTS.INCH_TO_MM;this.applyObjectMm(t,{left:f(n.left),top:f(n.top),width:f(n.width),height:f(n.height),strokeWidth:f(n.strokeWidth),fontSize:f(n.fontSize)},r);const p=this._formatOriginUnitValues(n);t._originSize={...t._originSize,inch:{...p}}}applyObjectByUnit(t,n,r){const f=this.getUnit();return f==="mm"?this.applyObjectMm(t,n,r):f==="inch"?this.applyObjectInch(t,n,r):this.applyObjectPx(t,n)}setSizeMm(t,n,r){const f=Wt.mmToPx(t,r,{direct:!0}),p=Wt.mmToPx(n,r,{direct:!0});this.editor.setSize(f,p),this._syncOriginSize(t,n)}setSizeByUnit(t,n,r){const f=this.editor.getUnit?.()||"px";if(f==="mm")return this.setSizeMm(t,n,r.dpi);if(f==="inch"){this._syncOriginSize(t,n);const p=t*Wt.CONSTANTS.INCH_TO_MM,v=n*Wt.CONSTANTS.INCH_TO_MM;return this.setSizeMm(p,v,r.dpi)}this.editor.setSize(t,n,{slient:r.slient})}getOriginSize(t){const n=this.getUnit(),f=(this.canvas._originSize||{}).mm||{};if(n==="px")return{width:this.canvas.getWidth(),height:this.canvas.getHeight()};const p=f.width!==void 0?f.width:Wt.pxToMm(this.canvas.getWidth(),t,{direct:!0}),v=f.height!==void 0?f.height:Wt.pxToMm(this.canvas.getHeight(),t,{direct:!0});return n==="mm"?this._originSize.mm??{width:p,height:v}:this._originSize.inch??{width:p/Wt.CONSTANTS.INCH_TO_MM,height:v/Wt.CONSTANTS.INCH_TO_MM}}_syncOriginSize(t,n){const r=this.getUnit();r!=="px"&&(this._originSize[r]=this._originSize[r]||{width:0,height:0},t!==void 0&&(this._originSize[r].width=this._toPrecisionValue(t)),n!==void 0&&(this._originSize[r].height=this._toPrecisionValue(n)))}syncOriginSizeByUnit(t,n){const r=this.getUnit();if(r==="mm"){if(t!==void 0){const f=Wt.pxToMm(t,void 0,{direct:!0});this._originSize[r].width=this._toPrecisionValue(f)}if(n!==void 0){const f=Wt.pxToMm(n,void 0,{direct:!0});this._originSize[r].height=this._toPrecisionValue(f)}}}_bindEvents(){const t=Bn(n=>{Nf(n,void 0,this.precision)},30);this.canvas.on("object:modified",n=>{const r=n.target;r&&Nf(r,void 0,this.precision)}),this.canvas.on("object:moving",n=>{const r=n.target;r&&t(r)}),this.canvas.on("object:scaling",n=>{const r=n.target;r&&t(r)}),this.canvas.on("object:rotating",n=>{const r=n.target;r&&t(r)}),this.editor.on?.("sizeChange",n=>{const r=this.getUnit();if(r!=="px"&&r==="mm"){this._syncOriginSize(n.width,n.height);return}})}destroy(){console.log("pluginDestroy")}};pa.pluginName="UnitPlugin",pa.apis=["getUnit","setUnit","getSizeByUnit","setSizeByUnit","getOriginSize","getPrecision","syncOriginSizeByUnit","applyObjectPx","applyObjectMm","applyObjectInch","applyObjectByUnit"];let Ts=pa;const Si=class Si{constructor(t,n){this.canvas=t,this.editor=n,this.defautOption={},this.hotkeys=["space"],this.dragMode=!1,this.dragMode=!1,this.init()}init(){this._initDring()}startDring(){this.dragMode=!0,this.canvas.setCursor("grab"),this.editor.emit("startDring"),this.canvas.renderAll()}endDring(){this.dragMode=!1,this.canvas.setCursor("default"),this.canvas.isDragging=!1,this.editor.emit("endDring"),this.canvas.renderAll()}_initDring(){const t=this;this.canvas.on("mouse:down",function(n){const r=n.e;(r.altKey||t.dragMode||r.button===1)&&(t.canvas.setCursor("grabbing"),t.canvas.discardActiveObject(),t._setDring(),this.selection=!1,this.isDragging=!0,this.lastPosX=r.clientX,this.lastPosY=r.clientY,this.requestRenderAll())}),this.canvas.on("mouse:move",function(n){if(t.dragMode&&t.canvas.setCursor("grab"),this.isDragging){t.canvas.discardActiveObject(),t.canvas.setCursor("grabbing");const{e:r}=n;if(!this.viewportTransform)return;const f=this.viewportTransform;f[4]+=r.clientX-this.lastPosX,f[5]+=r.clientY-this.lastPosY,this.lastPosX=r.clientX,this.lastPosY=r.clientY,this.requestRenderAll()}}),this.canvas.on("mouse:up",function(){this.viewportTransform&&(this.setViewportTransform(this.viewportTransform),this.isDragging=!1,this.selection=!0,this.getObjects().forEach(n=>{n.id!=="workspace"&&n.hasControls&&(n.selectable=!0)}),t.dragMode&&t.canvas.setCursor("grab"),this.requestRenderAll())})}_setDring(){this.canvas.selection=!1,this.canvas.getObjects().forEach(t=>{t.selectable=!1}),this.canvas.requestRenderAll()}destroy(){console.log("pluginDestroy")}hotkeyEvent(t,n){n.code==="Space"&&n.type==="keydown"&&(this.dragMode||this.startDring()),n.code==="Space"&&n.type==="keyup"&&this.endDring()}};Si.pluginName="DringPlugin",Si.events=["startDring","endDring"],Si.apis=["startDring","endDring"];let ks=Si;const mf=class mf{constructor(t,n){this.canvas=t,this.editor=n,this.defautOption={color:"rgba(255,95,95,1)",width:1},this.dragMode=!1,this.dragMode=!1,this.init()}init(){const{canvas:t}=this,n=t.getSelectionContext(),r=5,f=4,p=this;let v,u=1,o=0,s=0,c=0,i=0;function l(y){h(y.x+.5,y.y1>y.y2?y.y2:y.y1,y.x+.5,y.y2>y.y1?y.y2:y.y1)}function a(y){h(y.x1>y.x2?y.x2:y.x1,y.y+.5,y.x2>y.x1?y.x2:y.x1,y.y+.5)}function h(y,m,_,w){v!=null&&(n.moveTo(y*u+v[4],m*u+v[5]),n.lineTo(_*u+v[4],w*u+v[5]))}function g(y,m){y=Math.round(y),m=Math.round(m);for(let _=y-f,w=y+f;_<=w;_++)if(_===m)return!0;return!1}let d=[],A=[];t.on("mouse:down",y=>{v=t.viewportTransform,u=t.getZoom();try{y&&(c=y.target.left,i=y.target.top,o=y.target.getScaledWidth(),s=y.target.getScaledHeight())}catch{}}),t.on("object:moving",y=>{if(v===void 0||y.target===void 0)return;const m=y.target,_=t.getObjects(),w=m.getCenterPoint(),S=w.x,O=w.y;m.getBoundingRect();const P=m.getScaledHeight(),N=m.getScaledWidth();let q=!1,Z=!1;const K=t._currentTransform;let rt=!1,$=!1,U=0,j=0;if(m.set("hasControls",!1),!!K){for(let B=_.length;B--;){if(_[B]===m||m instanceof V.fabric.GuideLine&&_[B]instanceof V.fabric.GuideLine)continue;const x=_[B].getCenterPoint(),b=x.x,C=x.y,E=_[B].getBoundingRect(),I=E.height/v[3],M=E.width/v[0];if(g(b,S)&&(Z=!0,d=[],d.push({x:b,y1:C<O?C-I/2-r:C+I/2+r,y2:O>C?O+P/2+r:O-P/2-r}),m.setPositionByOrigin(new V.fabric.Point(b,O),"center","center")),g(C,O)&&(q=!0,A=[],A.push({y:C,x1:b<S?b-M/2-r:b+M/2+r,x2:S>b?S+N/2+r:S-N/2-r}),m.setPositionByOrigin(new V.fabric.Point(S,C),"center","center")),g(b-M/2,S-N/2)){Z=!0,d=[],rt=!0,d.push({x:b-M/2,y1:C<O?C-I/2-r:C+I/2+r,y2:O>C?O+P/2+r:O-P/2-r}),U=b-M/2+N/2;let k=b-M/2+N/2,T=$?j:O;m.setPositionByOrigin(new V.fabric.Point(k,T),"center","center")}if(g(b+M/2,S+N/2)){rt=!0,Z=!0,d=[],d.push({x:b+M/2,y1:C<O?C-I/2-r:C+I/2+r,y2:O>C?O+P/2+r:O-P/2-r}),U=b+M/2-N/2;let k=b+M/2-N/2,T=$?j:O;m.setPositionByOrigin(new V.fabric.Point(k,T),"center","center")}if(g(C-I/2,O-P/2)){$=!0,q=!0,A=[],A.push({y:C-I/2,x1:b<S?b-M/2-r:b+M/2+r,x2:S>b?S+N/2+r:S-N/2-r}),j=C-I/2+P/2;let k=rt?U:S,T=C-I/2+P/2;m.setPositionByOrigin(new V.fabric.Point(k,T),"center","center")}if(g(C+I/2,O+P/2)){$=!0,q=!0,A=[],A.push({y:C+I/2,x1:b<S?b-M/2-r:b+M/2+r,x2:S>b?S+N/2+r:S-N/2-r}),j=C+I/2-P/2;let k=rt?U:S,T=C+I/2-P/2;m.setPositionByOrigin(new V.fabric.Point(k,T),"center","center")}if(g(b-M/2,S+N/2)){rt=!0,Z=!0,Z=[],d.push({x:b-M/2,y1:C<O?C-I/2-r:C+I/2+r,y2:O>C?O+P/2+r:O-P/2-r}),U=b-M/2-N/2;let k=b-M/2-N/2,T=O;m.setPositionByOrigin(new V.fabric.Point(k,T),"center","center")}if(g(b+M/2,S-N/2)){rt=!0,Z=!0,Z=[],d.push({x:b+M/2,y1:C<O?C-I/2-r:C+I/2+r,y2:O>C?O+P/2+r:O-P/2-r}),U=b+M/2+N/2;let k=b+M/2+N/2,T=O;m.setPositionByOrigin(new V.fabric.Point(k,T),"center","center")}if(g(C-I/2,O+P/2)){$=!0,q=!0,A=[],A.push({y:C-I/2,x1:b<S?b-M/2-r:b+M/2+r,x2:S>b?S+N/2+r:S-N/2-r}),j=C-I/2-P/2;let k=rt?U:S,T=C-I/2-P/2;m.setPositionByOrigin(new V.fabric.Point(k,T),"center","center")}if(g(C+I/2,O-P/2)){$=!0,q=!0,A=[],A.push({y:C+I/2,x1:b<S?b-M/2-r:b+M/2+r,x2:S>b?S+N/2+r:S-N/2-r}),j=C+I/2+P/2;let k=rt?U:S,T=C+I/2+P/2;m.setPositionByOrigin(new V.fabric.Point(k,T),"center","center")}}q||(A.length=0),Z||(d.length=0)}}),t.on("before:render",()=>{if(t.contextTop!==null)try{t.clearContext(t.contextTop)}catch(y){console.log(y)}}),t.on("object:scaling",y=>{if(v===void 0||y.target===void 0)return;const m=y.target,_=t.getObjects(),w=m.getCenterPoint(),S=w.x,O=w.y;m.getBoundingRect();const P=m.getScaledHeight(),N=m.getScaledWidth();let q=!1,Z=!1;const K=t._currentTransform;if(m.set("hasControls",!1),!!K){for(let rt=_.length;rt--;){if(_[rt]===m||m instanceof V.fabric.GuideLine&&_[rt]instanceof V.fabric.GuideLine)continue;const $=_[rt].getCenterPoint(),U=$.x,j=$.y,B=_[rt].getBoundingRect(),x=B.height/v[3],b=B.width/v[0];if(g(U,S)&&(Z=!0,d=[],d.push({x:U,y1:j<O?j-x/2-r:j+x/2+r,y2:O>j?O+P/2+r:O-P/2-r})),g(U-b/2,S-N/2)&&(Z=!0,d=[],d.push({x:U-b/2,y1:j<O?j-x/2-r:j+x/2+r,y2:O>j?O+P/2+r:O-P/2-r}),new Map([["bl",1],["ml",1],["tl",1]]).get(y.transform.corner))){m.setPositionByOrigin(new V.fabric.Point(U-b/2+N/2,O),"center","center"),m.set("scaleX",(c-(U-b/2)+o)*m.scaleX/m.getScaledWidth());break}if(g(U+b/2,S+N/2)&&(Z=!0,d=[],d.push({x:U+b/2,y1:j<O?j-x/2-r:j+x/2+r,y2:O>j?O+P/2+r:O-P/2-r}),new Map([["mr",1],["tr",1],["br",1]]).get(y.transform.corner))){m.set("scaleX",(U+b/2-(c+o)+o)*m.scaleX/m.getScaledWidth());break}if(g(j,O)&&(q=!0,A=[],A.push({y:j,x1:U<S?U-b/2-r:U+b/2+r,x2:S>U?S+N/2+r:S-N/2-r})),g(j-x/2,O-P/2)&&(q=!0,A=[],A.push({y:j-x/2,x1:U<S?U-b/2-r:U+b/2+r,x2:S>U?S+N/2+r:S-N/2-r}),new Map([["tr",1],["tl",1],["mt",1]]).get(y.transform.corner))){m.setPositionByOrigin(new V.fabric.Point(S,j-x/2+P/2),"center","center"),m.set("scaleY",(i+s-(j-x/2))*m.scaleY/m.getScaledHeight());break}if(g(j+x/2,O+P/2)&&(q=!0,A=[],A.push({y:j+x/2,x1:U<S?U-b/2-r:U+b/2+r,x2:S>U?S+N/2+r:S-N/2-r}),new Map([["mb",1],["bl",1],["br",1]]).get(y.transform.corner))){m.set("scaleY",(j+x/2-(i+s)+s)*m.scaleY/m.getScaledHeight());break}if(g(U-b/2,S+N/2)&&(Z=!0,d=[],d.push({x:U-b/2,y1:j<O?j-x/2-r:j+x/2+r,y2:O>j?O+P/2+r:O-P/2-r}),new Map([["mr",1],["tr",1],["br",1]]).get(y.transform.corner))){m.set("scaleX",(U-b/2-m.left)*m.scaleX/m.getScaledWidth());break}if(g(U+b/2,S-N/2)&&(Z=!0,d=[],d.push({x:U+b/2,y1:j<O?j-x/2-r:j+x/2+r,y2:O>j?O+P/2+r:O-P/2-r}),new Map([["bl",1],["ml",1],["tl",1]]).get(y.transform.corner))){m.setPositionByOrigin(new V.fabric.Point(U+b/2+N/2,O),"center","center"),m.set("scaleX",(c+o-(U+b/2))*m.scaleX/m.getScaledWidth());break}if(g(j-x/2,O+P/2)&&(q=!0,A=[],A.push({y:j-x/2,x1:U<S?U-b/2-r:U+b/2+r,x2:S>U?S+N/2+r:S-N/2-r}),new Map([["mb",1],["bl",1],["br",1]]).get(y.transform.corner))){m.set("scaleY",(j-x/2-m.top)*m.scaleY/m.getScaledHeight());break}if(g(j+x/2,O-P/2)&&(q=!0,A=[],A.push({y:j+x/2,x1:U<S?U-b/2-r:U+b/2+r,x2:S>U?S+N/2+r:S-N/2-r}),new Map([["tr",1],["tl",1],["mt",1]]).get(y.transform.corner))){m.setPositionByOrigin(new V.fabric.Point(S,j+x/2+P/2),"center","center"),m.set("scaleY",(i+s-(j+x/2))*m.scaleY/m.getScaledHeight());break}}q||(A.length=0),Z||(d.length=0)}}),t.on("after:render",()=>{n.save(),n.beginPath(),n.lineWidth=p.defautOption.width,n.strokeStyle=p.defautOption.color;for(let y=d.length;y--;)d[y]&&l(d[y]);for(let y=A.length;y--;)A[y]&&a(A[y]);n.stroke(),n.restore(),d.length=0,A.length=0}),t.on("mouse:up",y=>{const m=y.target;m&&m.selectable&&!m.lockRotation&&m.set("hasControls",!0),d.length=0,A.length=0,t.renderAll()})}destroy(){console.log("pluginDestroy")}};mf.pluginName="AlignGuidLinePlugin";let Ds=mf;const XM="data:image/svg+xml,%3csvg%20width='12'%20height='24'%20viewBox='0%200%2012%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20filter='url(%23filter0_d)'%3e%3crect%20x='4'%20y='4'%20width='4'%20height='16'%20rx='2'%20fill='white'/%3e%3crect%20x='4.25'%20y='4.25'%20width='3.5'%20height='15.5'%20rx='1.75'%20stroke='black'%20stroke-opacity='0.3'%20stroke-width='0.5'/%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='filter0_d'%20x='0'%20y='0'%20width='12'%20height='24'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'/%3e%3cfeOffset/%3e%3cfeGaussianBlur%20stdDeviation='2'/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200.137674%200%200%200%200%200.190937%200%200%200%200%200.270833%200%200%200%200.15%200'/%3e%3cfeBlend%20mode='normal'%20in2='BackgroundImageFix'%20result='effect1_dropShadow'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_dropShadow'%20result='shape'/%3e%3c/filter%3e%3c/defs%3e%3c/svg%3e",VM="data:image/svg+xml,%3csvg%20width='24'%20height='12'%20viewBox='0%200%2024%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20filter='url(%23filter0_d)'%3e%3crect%20x='20'%20y='4'%20width='4'%20height='16'%20rx='2'%20transform='rotate(90%2020%204)'%20fill='white'/%3e%3crect%20x='19.75'%20y='4.25'%20width='3.5'%20height='15.5'%20rx='1.75'%20transform='rotate(90%2019.75%204.25)'%20stroke='black'%20stroke-opacity='0.3'%20stroke-width='0.5'/%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='filter0_d'%20x='0'%20y='0'%20width='24'%20height='12'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'/%3e%3cfeOffset/%3e%3cfeGaussianBlur%20stdDeviation='2'/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200.137674%200%200%200%200%200.190937%200%200%200%200%200.270833%200%200%200%200.15%200'/%3e%3cfeBlend%20mode='normal'%20in2='BackgroundImageFix'%20result='effect1_dropShadow'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_dropShadow'%20result='shape'/%3e%3c/filter%3e%3c/defs%3e%3c/svg%3e",Ry="data:image/svg+xml,%3csvg%20width='19'%20height='18'%20viewBox='0%200%2019%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20filter='url(%23filter0_d)'%3e%3ccircle%20cx='9.99609'%20cy='9'%20r='5'%20fill='white'/%3e%3ccircle%20cx='9.99609'%20cy='9'%20r='4.75'%20stroke='black'%20stroke-opacity='0.3'%20stroke-width='0.5'/%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='filter0_d'%20x='0.996094'%20y='0'%20width='18'%20height='18'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'/%3e%3cfeOffset/%3e%3cfeGaussianBlur%20stdDeviation='2'/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200.137674%200%200%200%200%200.190937%200%200%200%200%200.270833%200%200%200%200.15%200'/%3e%3cfeBlend%20mode='normal'%20in2='BackgroundImageFix'%20result='effect1_dropShadow'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_dropShadow'%20result='shape'/%3e%3c/filter%3e%3c/defs%3e%3c/svg%3e",JM="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20filter='url(%23filter0_d)'%3e%3ccircle%20cx='9'%20cy='9'%20r='5'%20fill='white'/%3e%3ccircle%20cx='9'%20cy='9'%20r='4.75'%20stroke='black'%20stroke-opacity='0.3'%20stroke-width='0.5'/%3e%3c/g%3e%3cpath%20d='M10.8047%2011.1242L9.49934%2011.1242L9.49934%209.81885'%20stroke='black'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M6.94856%206.72607L8.25391%206.72607L8.25391%208.03142'%20stroke='black'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M9.69517%206.92267C10.007%207.03301%2010.2858%207.22054%2010.5055%207.46776C10.7252%207.71497%2010.8787%208.01382%2010.9517%208.33642C11.0247%208.65902%2011.0148%208.99485%2010.9229%209.31258C10.831%209.63031%2010.6601%209.91958%2010.4262%2010.1534L9.49701%2011.0421M8.25792%206.72607L7.30937%207.73554C7.07543%207.96936%206.90454%208.25863%206.81264%208.57636C6.72073%208.89408%206.71081%209.22992%206.78381%209.55251C6.8568%209.87511%207.01032%2010.174%207.23005%2010.4212C7.44978%2010.6684%207.72855%2010.8559%208.04036%2010.9663'%20stroke='black'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cdefs%3e%3cfilter%20id='filter0_d'%20x='0'%20y='0'%20width='18'%20height='18'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'/%3e%3cfeOffset/%3e%3cfeGaussianBlur%20stdDeviation='2'/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200.137674%200%200%200%200%200.190937%200%200%200%200%200.270833%200%200%200%200.15%200'/%3e%3cfeBlend%20mode='normal'%20in2='BackgroundImageFix'%20result='effect1_dropShadow'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_dropShadow'%20result='shape'/%3e%3c/filter%3e%3c/defs%3e%3c/svg%3e";V.fabric.Object.NUM_FRACTION_DIGITS=4;function Rs(e,t,n,r,f,p,v){v!==void 0&&(e.save(),e.translate(t,n),e.rotate(V.fabric.util.degreesToRadians(v)),e.drawImage(r,-f/2,-p/2,f,p),e.restore())}function KM(){const e=document.createElement("img");e.src=XM;const t=document.createElement("img");t.src=VM;function n(f,p,v,u,o){Rs(f,p,v,e,20,25,o.angle)}function r(f,p,v,u,o){Rs(f,p,v,t,25,20,o.angle)}V.fabric.Object.prototype.controls.ml=new V.fabric.Control({x:-.5,y:0,offsetX:-1,cursorStyleHandler:V.fabric.controlsUtils.scaleSkewCursorStyleHandler,actionHandler:V.fabric.controlsUtils.scalingXOrSkewingY,getActionName:V.fabric.controlsUtils.scaleOrSkewActionName,render:n}),V.fabric.Object.prototype.controls.mr=new V.fabric.Control({x:.5,y:0,offsetX:1,cursorStyleHandler:V.fabric.controlsUtils.scaleSkewCursorStyleHandler,actionHandler:V.fabric.controlsUtils.scalingXOrSkewingY,getActionName:V.fabric.controlsUtils.scaleOrSkewActionName,render:n}),V.fabric.Object.prototype.controls.mb=new V.fabric.Control({x:0,y:.5,offsetY:1,cursorStyleHandler:V.fabric.controlsUtils.scaleSkewCursorStyleHandler,actionHandler:V.fabric.controlsUtils.scalingYOrSkewingX,getActionName:V.fabric.controlsUtils.scaleOrSkewActionName,render:r}),V.fabric.Object.prototype.controls.mt=new V.fabric.Control({x:0,y:-.5,offsetY:-1,cursorStyleHandler:V.fabric.controlsUtils.scaleSkewCursorStyleHandler,actionHandler:V.fabric.controlsUtils.scalingYOrSkewingX,getActionName:V.fabric.controlsUtils.scaleOrSkewActionName,render:r})}function ZM(){const e=document.createElement("img");e.src=Ry;function t(n,r,f,p,v){Rs(n,r,f,e,25,25,v.angle)}V.fabric.Object.prototype.controls.tl=new V.fabric.Control({x:-.5,y:-.5,cursorStyleHandler:V.fabric.controlsUtils.scaleCursorStyleHandler,actionHandler:V.fabric.controlsUtils.scalingEqually,render:t}),V.fabric.Object.prototype.controls.bl=new V.fabric.Control({x:-.5,y:.5,cursorStyleHandler:V.fabric.controlsUtils.scaleCursorStyleHandler,actionHandler:V.fabric.controlsUtils.scalingEqually,render:t}),V.fabric.Object.prototype.controls.tr=new V.fabric.Control({x:.5,y:-.5,cursorStyleHandler:V.fabric.controlsUtils.scaleCursorStyleHandler,actionHandler:V.fabric.controlsUtils.scalingEqually,render:t}),V.fabric.Object.prototype.controls.br=new V.fabric.Control({x:.5,y:.5,cursorStyleHandler:V.fabric.controlsUtils.scaleCursorStyleHandler,actionHandler:V.fabric.controlsUtils.scalingEqually,render:t})}function tP(){const e=document.createElement("img");e.src=JM;function t(n,r,f,p,v){Rs(n,r,f,e,40,40,v.angle)}V.fabric.Object.prototype.controls.mtr=new V.fabric.Control({x:0,y:.5,cursorStyleHandler:V.fabric.controlsUtils.rotationStyleHandler,actionHandler:V.fabric.controlsUtils.rotationWithSnapping,offsetY:30,actionName:"rotate",render:t})}const _f=class _f{constructor(t,n){this.canvas=t,this.editor=n,this.init()}init(){ZM(),KM(),tP(),V.fabric.Object.prototype.set({transparentCorners:!1,borderColor:"#51B9F9",cornerColor:"#FFF",borderScaleFactor:2.5,cornerStyle:"circle",cornerStrokeColor:"#0E98FC",borderOpacityWhenMoving:1})}destroy(){console.log("pluginDestroy")}};_f.pluginName="ControlsPlugin";let Ms=_f;function Un(e){return`url("data:image/svg+xml,%3Csvg height='18' width='18' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg' style='color: black;'%3E%3Cg fill='none' transform='rotate(${e} 16 16)'%3E%3Cpath d='M22.4484 0L32 9.57891L22.4484 19.1478V13.1032C17.6121 13.8563 13.7935 17.6618 13.0479 22.4914H19.2141L9.60201 32.01L0 22.4813H6.54912C7.36524 14.1073 14.0453 7.44023 22.4484 6.61688V0Z' fill='white'/%3E%3Cpath d='M24.0605 3.89587L29.7229 9.57896L24.0605 15.252V11.3562C17.0479 11.4365 11.3753 17.0895 11.3048 24.0879H15.3048L9.60201 29.7308L3.90932 24.0879H8.0806C8.14106 15.3223 15.2645 8.22345 24.0605 8.14313V3.89587Z' fill='black'/%3E%3C/g%3E%3C/svg%3E ") 12 12,crosshair`}const bf=class bf{constructor(t,n){this.canvas=t,this.editor=n,this.init()}init(){const{canvas:t}=this;V.fabric.Object.prototype.controls.mtr=new V.fabric.Control({x:-.5,y:-.5,offsetY:-10,offsetX:-10,rotate:20,actionName:"rotate",actionHandler:V.fabric.controlsUtils.rotationWithSnapping,render:()=>""}),V.fabric.Object.prototype.controls.mtr2=new V.fabric.Control({x:.5,y:-.5,offsetY:-10,offsetX:10,rotate:20,actionName:"rotate",actionHandler:V.fabric.controlsUtils.rotationWithSnapping,render:()=>""}),V.fabric.Object.prototype.controls.mtr3=new V.fabric.Control({x:.5,y:.5,offsetY:10,offsetX:10,rotate:20,actionName:"rotate",actionHandler:V.fabric.controlsUtils.rotationWithSnapping,render:()=>""}),V.fabric.Object.prototype.controls.mtr4=new V.fabric.Control({x:-.5,y:.5,offsetY:10,offsetX:-10,rotate:20,actionName:"rotate",actionHandler:V.fabric.controlsUtils.rotationWithSnapping,render:()=>""}),t.on("after:render",()=>{const r=t.getActiveObject()?.angle?.toFixed(2);r!==void 0&&(V.fabric.Object.prototype.controls.mtr.cursorStyle=Un(Number(r)),V.fabric.Object.prototype.controls.mtr2.cursorStyle=Un(Number(r)+90),V.fabric.Object.prototype.controls.mtr3.cursorStyle=Un(Number(r)+180),V.fabric.Object.prototype.controls.mtr4.cursorStyle=Un(Number(r)+270))}),t.on("object:rotating",n=>{const r=t.lowerCanvasEl.nextSibling,f=t.getActiveObject()?.angle?.toFixed(2);if(f!==void 0)switch(n.transform?.corner){case"mtr":r.style.cursor=Un(Number(f));break;case"mtr2":r.style.cursor=Un(Number(f)+90);break;case"mtr3":r.style.cursor=Un(Number(f)+180);break;case"mtr4":r.style.cursor=Un(Number(f)+270);break}})}destroy(){console.log("pluginDestroy")}};bf.pluginName="ControlsRotatePlugin";let Ps=bf;const Hn=class Hn{constructor(t,n){this.canvas=t,this.editor=n}center(t,n){const r=t.getCenterPoint();return this.canvas._centerObject(n,r)}centerV(t,n){return this.canvas._centerObject(n,new V.fabric.Point(n.getCenterPoint().x,t.getCenterPoint().y))}centerH(t,n){return this.canvas._centerObject(n,new V.fabric.Point(t.getCenterPoint().x,n.getCenterPoint().y))}position(t){const n=this.canvas.getActiveObject();if(Hn.anignType.includes(t)&&n){const r=this.canvas.getObjects().find(f=>f.id==="workspace");r&&this[t](r,n),this.canvas.renderAll()}}contextMenu(){if(this.canvas.getActiveObject())return[{text:"水平垂直居中",hotkey:"",disabled:!1,onclick:()=>this.position("center")}]}positionV2(t,n){if(Hn.alignTypeV2.includes(n)&&t){const r=this.canvas.getObjects().find(f=>f.id==="workspace");if(r){const f=r.getCenterPoint();switch(n){case"centerH":this.canvas._centerObject(t,new V.fabric.Point(r.getCenterPoint().x,t.getCenterPoint().y));break;case"centerV":this.canvas._centerObject(t,new V.fabric.Point(t.getCenterPoint().x,r.getCenterPoint().y));break;case"leftH":t.set("left",0);break;case"topV":t.set("top",0);break;case"rightH":t.set("left",r.get("left")+r.get("width")-t.get("width"));break;case"bottomV":t.set("top",r.get("top")+r.get("height")-t.get("height"));break;case"center":this.canvas._centerObject(t,f);break}}t.syncOriginSizeByUnit(),this.canvas.fire("object:modified",t),this.canvas.renderAll()}}destroy(){console.log("pluginDestroy")}};Hn.pluginName="CenterAlignPlugin",Hn.apis=["centerH","center","position","centerV","positionV2"],Hn.anignType=["centerH","center","centerV"],Hn.alignTypeV2=["centerH","center","centerV","leftH","topV","rightH","bottomV"];let Qs=Hn;const Aa=class Aa{constructor(t,n){this.canvas=t,this.editor=n}_getWorkspace(){return this.canvas.getObjects().find(t=>t.id==="workspace")}_workspaceSendToBack(){const t=this._getWorkspace();t&&t.sendToBack()}up(){const t=this.canvas.getActiveObjects();if(t&&t.length===1){const n=this.canvas.getActiveObjects()[0];n&&n.bringForward(),this.canvas.renderAll(),this._workspaceSendToBack()}}down(){const t=this.canvas.getActiveObjects();if(t&&t.length===1){const n=this.canvas.getActiveObjects()[0];n&&n.sendBackwards(),this.canvas.renderAll(),this._workspaceSendToBack()}}toFront(){const t=this.canvas.getActiveObjects();if(t&&t.length===1){const n=this.canvas.getActiveObjects()[0];n&&n.bringToFront(),this.canvas.renderAll(),this._workspaceSendToBack()}}toBack(){const t=this.canvas.getActiveObjects();if(t&&t.length===1){const n=this.canvas.getActiveObjects()[0];n&&n.sendToBack(),this.canvas.renderAll(),this._workspaceSendToBack()}}contextMenu(){if(this.canvas.getActiveObject())return[{text:"图层管理",hotkey:"❯",subitems:[{text:"上一个",hotkey:"",onclick:()=>this.up()},{text:"下一个",hotkey:"",onclick:()=>this.down()},{text:"置顶",hotkey:"",onclick:()=>this.toFront()},{text:"置底",hotkey:"",onclick:()=>this.toBack()}]}]}destroy(){console.log("pluginDestroy")}};Aa.pluginName="LayerPlugin",Aa.apis=["up","down","toFront","toBack"];let Fs=Aa;var mo,eP=new Uint8Array(16);function nP(){if(!mo&&(mo=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!mo))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return mo(eP)}const rP=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function iP(e){return typeof e=="string"&&rP.test(e)}var ae=[];for(var Vc=0;Vc<256;++Vc)ae.push((Vc+256).toString(16).substr(1));function oP(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=(ae[e[t+0]]+ae[e[t+1]]+ae[e[t+2]]+ae[e[t+3]]+"-"+ae[e[t+4]]+ae[e[t+5]]+"-"+ae[e[t+6]]+ae[e[t+7]]+"-"+ae[e[t+8]]+ae[e[t+9]]+"-"+ae[e[t+10]]+ae[e[t+11]]+ae[e[t+12]]+ae[e[t+13]]+ae[e[t+14]]+ae[e[t+15]]).toLowerCase();if(!iP(n))throw TypeError("Stringified UUID is invalid");return n}function re(e,t,n){e=e||{};var r=e.random||(e.rng||nP)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,t){n=n||0;for(var f=0;f<16;++f)t[n+f]=r[f];return t}return oP(r)}const va=class va{constructor(t,n){this.canvas=t,this.editor=n,this.hotkeys=["ctrl+v","ctrl+c"],this.cache=null,this.initPaste()}_copyActiveSelection(t){const r=this.canvas,f=this.editor.getExtensionKey();t?.clone(p=>{p.clone(v=>{r.discardActiveObject(),!(v.left===void 0||v.top===void 0)&&(v.canvas=r,v.set({left:v.left+10,top:v.top+10,evented:!0,id:re()}),v.forEachObject(u=>{u.id=re(),r.add(u)}),v.setCoords(),r.setActiveObject(v),r.requestRenderAll())})},f)}_copyObject(t){const r=this.canvas,f=this.editor.getExtensionKey();t?.clone(p=>{p.left===void 0||p.top===void 0||(r.discardActiveObject(),p.set({left:p.left+10,top:p.top+10,evented:!0,id:re()}),r.add(p),r.setActiveObject(p),r.requestRenderAll())},f)}clone(t){const n=t||this.canvas.getActiveObject();n&&(n?.type==="activeSelection"?this._copyActiveSelection(n):this._copyObject(n))}hotkeyEvent(t,n){if(t==="ctrl+c"&&n.type==="keydown"){const r=this.canvas.getActiveObject();this.cache=r,navigator.clipboard.writeText("")}t==="ctrl+v"&&n.type==="keydown"&&setTimeout(()=>{this.cache&&this.clone(this.cache)},0)}contextMenu(){if(this.canvas.getActiveObject())return[{text:"复制",hotkey:"Ctrl+V",disabled:!1,onclick:()=>this.clone()}]}destroy(){console.log("pluginDestroy"),window.removeEventListener("paste",t=>this.pasteListener(t))}initPaste(){window.addEventListener("paste",t=>this.pasteListener(t))}async pasteListener(t){const n=this.canvas;if(document.activeElement===document.body)t.preventDefault();else return;const r=(t.clipboardData||t.originalEvent.clipboardData).items,f=".pdf,.psd,.cdr,.ai,.svg,.jpg,.jpeg,.png,.webp,.json";for(const p of r)if(p.kind==="file"){const v=p.getAsFile(),u=v.name.split(".").pop();if(!f.split(",").includes(`.${u}`))return;if(u==="svg"){const o=await ze.getImgStr(v);if(!o)throw new Error("file is undefined");V.fabric.loadSVGFromURL(o,(s,c)=>{const i=V.fabric.util.groupSVGElements(s,{...c,name:"defaultSVG",id:re()});n.add(i).centerObject(i).renderAll()})}if(p.type.indexOf("image/")===0){const o=URL.createObjectURL(v),s=document.createElement("img");s.src=o,document.body.appendChild(s),s.onload=()=>{const c=new V.fabric.Image(s,{id:re(),name:"图片1",left:100,top:100});n.add(c),n.setActiveObject(c),n.renderAll(),s.remove()}}}else p.kind==="string"&&p.type.indexOf("text/plain")===0&&p.getAsString(v=>{const u=n.getActiveObject();if(u&&(u.type==="textbox"||u.type==="i-text")&&u.text){const o=u.selectionStart,s=u.text.substring(0,o),c=u.text.substring(o);u.set("text",s+v+c),u.selectionStart=o+v.length,u.selectionEnd=o+v.length,u.dirty=!0,n.renderAll()}else{const o=new V.fabric.IText(v,{left:100,top:100,fontSize:80,id:re()});n.add(o),n.setActiveObject(o)}});r.length&&(this.cache=null)}};va.pluginName="CopyPlugin",va.apis=["clone"];let Ls=va;const wf=class wf{constructor(t,n){this.canvas=t,this.editor=n,this.hotkeys=["left","right","down","up"]}hotkeyEvent(t,n){if(n.type==="keydown"){const{canvas:r}=this,f=r.getActiveObject();if(!f)return;switch(t){case"left":if(f.left===void 0)return;f.set("left",f.left-1);break;case"right":if(f.left===void 0)return;f.set("left",f.left+1);break;case"down":if(f.top===void 0)return;f.set("top",f.top+1);break;case"up":if(f.top===void 0)return;f.set("top",f.top-1);break}r.renderAll()}}destroy(){console.log("pluginDestroy")}};wf.pluginName="MoveHotKeyPlugin";let js=wf;const ya=class ya{constructor(t,n){this.canvas=t,this.editor=n,this.hotkeys=["backspace"]}hotkeyEvent(t,n){n.type==="keydown"&&t==="backspace"&&this.del()}del(){const{canvas:t}=this,n=t.getActiveObjects();n&&(n.map(r=>t.remove(r)),t.requestRenderAll(),t.discardActiveObject())}contextMenu(){if(this.canvas.getActiveObject())return[null,{text:"删除",hotkey:"Backspace",disabled:!1,onclick:()=>this.del()}]}destroy(){console.log("pluginDestroy")}};ya.pluginName="DeleteHotKeyPlugin",ya.apis=["del"];let Ns=ya;const ma=class ma{constructor(t,n){this.canvas=t,this.editor=n}unGroup(){const t=this.canvas.getActiveObject();if(!t)return;const n=t.getObjects();t.toActiveSelection();for(const r of n)r.set("id",re());this.canvas.discardActiveObject().renderAll()}group(){const t=this.canvas.getActiveObject();if(!t)return;const n=t.toGroup(),r=n.getObjects();n.clone(f=>{f.set("id",re()),this.canvas.remove(n),r.forEach(p=>{this.canvas.remove(p)}),this.canvas.add(f),this.canvas.setActiveObject(f)})}contextMenu(){const t=this.canvas.getActiveObject();if(ze.isActiveSelection(t))return[{text:"组合",hotkey:"Ctrl+V",disabled:!1,onclick:()=>this.group()}];if(ze.isGroup(t))return[{text:"拆分组合",hotkey:"Ctrl+V",disabled:!1,onclick:()=>this.unGroup()}]}destroy(){console.log("pluginDestroy")}};ma.pluginName="GroupPlugin",ma.apis=["unGroup","group"];let Us=ma;V.fabric.Arrow=V.fabric.util.createClass(V.fabric.Line,{type:"arrow",superType:"drawing",initialize(e,t){if(!e){const{x1:n,x2:r,y1:f,y2:p}=t;e=[n,f,r,p]}t=t||{},this.callSuper("initialize",e,t)},_render(e){this.callSuper("_render",e),e.save(),e.scale(1/this.scaleX,1/this.scaleY);const t=(this.x2-this.x1)*this.scaleX,n=(this.y2-this.y1)*this.scaleY,r=Math.atan2(n,t);e.translate((this.x2-this.x1)/2*this.scaleX,(this.y2-this.y1)/2*this.scaleY),e.rotate(r),e.beginPath(),e.moveTo(0,0),e.lineTo(-10,5),e.lineTo(-10,-5),e.closePath(),e.lineWidth=this.lineWidth,e.strokeStyle=this.stroke,e.fillStyle=this.fill,e.stroke(),e.fill(),e.restore()}});V.fabric.Arrow.fromObject=(e,t)=>{const{x1:n,x2:r,y1:f,y2:p}=e;return t(new V.fabric.Arrow([n,f,r,p],e))};const sP=V.fabric.Arrow;V.fabric.ThinTailArrow=V.fabric.util.createClass(V.fabric.Line,{type:"thinTailArrow",superType:"drawing",initialize(e,t){if(!e){const{x1:n,x2:r,y1:f,y2:p}=t;e=[n,f,r,p]}t=t||{},this.callSuper("initialize",e,t)},_render(e){e.save(),e.scale(1/this.scaleX,1/this.scaleY);const t=(this.x2-this.x1)*this.scaleX,n=(this.y2-this.y1)*this.scaleY;e.translate(-t/2,-n/2);const r=Math.atan2(n,t);e.rotate(r);let f=Math.hypot(t,n);f=f<20?20:f,e.beginPath(),e.moveTo(0,0),e.lineTo(f-18,-5),e.lineTo(f-20,-12),e.lineTo(f,0),e.lineTo(f-20,12),e.lineTo(f-18,5),e.lineTo(0,0),e.lineWidth=this.strokeWidth,e.strokeStyle=this.stroke,e.fillStyle=this.fill,e.stroke(),e.fill(),e.restore()}});V.fabric.ThinTailArrow.fromObject=(e,t)=>{const{x1:n,x2:r,y1:f,y2:p}=e;return t(new V.fabric.ThinTailArrow([n,f,r,p],e))};const aP=V.fabric.ThinTailArrow,_a=class _a{constructor(t,n){this.canvas=t,this.editor=n,this.isDrawingLine=!1,this.isDrawingLineMode=!1,this.lineType="",this.lineToDraw=null,this.pointer=null,this.pointerPoints=null,this.init()}init(){const{canvas:t}=this;t.on("mouse:down",n=>{if(!this.isDrawingLineMode)return;t.discardActiveObject(),t.getObjects().forEach(p=>{p.selectable=!1,p.hasControls=!1}),t.requestRenderAll(),this.isDrawingLine=!0,this.pointer=t.getPointer(n.e),this.pointerPoints=[this.pointer.x,this.pointer.y,this.pointer.x,this.pointer.y];let r,f={strokeWidth:2,stroke:"#000000",id:re()};switch(this.lineType){case"line":r=V.fabric.Line;break;case"arrow":r=sP;break;case"thinTailArrow":r=aP,f={strokeWidth:2,stroke:"#ff0000",fill:"#ff0000",id:re()};break}if(!r)throw new Error("Draw failed: invalid lineType.");this.lineToDraw=new r(this.pointerPoints,f),this.lineToDraw.selectable=!1,this.lineToDraw.evented=!1,this.lineToDraw.strokeUniform=!0,t.add(this.lineToDraw)}),t.on("mouse:move",n=>{if(!(!this.isDrawingLine||!["line","arrow","thinTailArrow"].includes(this.lineType)||(t.discardActiveObject(),t.getActiveObject()))){if(this.pointer=t.getPointer(n.e),n.e.shiftKey){const f=this.pointerPoints[0],p=this.pointerPoints[1],v=this.pointer.x-f,u=this.pointer.y-p,o=Math.sqrt(v*v+u*u);let s=Math.atan2(u,v)/Math.PI*180;s=~~((s+7.5)%360/15)*15;const c=o*Math.cos(s*Math.PI/180),i=o*Math.sin(s*Math.PI/180);this.lineToDraw.set({x2:c+f,y2:i+p})}else this.lineToDraw.set({x2:this.pointer.x,y2:this.pointer.y});t.renderAll()}}),t.on("mouse:up",()=>{this.isDrawingLine&&(this.lineToDraw.setCoords(),this.isDrawingLine=!1,t.discardActiveObject(),t.renderAll(),this.editor.saveState())})}setLineType(t){this.lineType=t}setMode(t){this.isDrawingLineMode=t,this.isDrawingLineMode||this.endRest()}endRest(){this.canvas.getObjects().forEach(t=>{t.id!=="workspace"&&(t.selectable=!0,t.hasControls=!0)})}destroy(){console.log("pluginDestroy")}};_a.pluginName="DrawLinePlugin",_a.apis=["setLineType","setMode"];let Gs=_a;const Cf=class Cf{constructor(t,n){this.canvas=t,this.editor=n,this.isDown=!1,this._init()}_init(){this.canvas.on("mouse:down",t=>{this.isDown=!0,t.target&&!t.target.lockMovementX&&!t.target.lockMovementY&&!t.target.lockRotation&&!t.target.lockScalingX&&!t.target.lockScalingY&&(t.target.hasControls=!0)}),this.canvas.on("mouse:up",()=>{this.isDown=!1}),this.canvas.on("mouse:dblclick",t=>{if(ze.isGroup(t.target)){const n=this._getGroupObj(t);if(!n)return;if(n.selectable=!0,n.hasControls&&(n.hasControls=!1),this.isText(n)){this._bedingTextEditingEvent(n,t.target);return}this.canvas.setActiveObject(n),this.canvas.renderAll()}})}_getGroupTextObj(t){const n=this.canvas.getPointer(t.e,!0);if(!ze.isGroup(t.target))return!1;const r=this.canvas._searchPossibleTargets(t.target._objects,n);return r&&this.isText(r)?r:!1}_getGroupObj(t){const n=this.canvas.getPointer(t.e,!0);return ze.isGroup(t.target)?this.canvas._searchPossibleTargets(t.target._objects,n):!1}_bedingTextEditingEvent(t,n){const r=t.toObject(),f=n.calcTransformMatrix(),p=f[0],v=f[1],u=f[2],o=f[3],s=f[4],c=f[5],i=p*(t.left??0)+u*(t.top??0)+s,l=v*(t.left??0)+o*(t.top??0)+c,a=new t.constructor(t.text??"",{...r,scaleX:r.scaleX*p,scaleY:r.scaleY*p,textAlign:t.textAlign,left:i,top:l,styles:t.styles,groupCopyed:t.group});a.id=re(),t.visible=!1,n.addWithUpdate(),a.visible=!0,a.selectable=!0,a.hasControls=!1,a.editable=!0,this.canvas.add(a),this.canvas.setActiveObject(a),a.enterEditing(),a.selectAll(),a.on("editing:exited",()=>{const h=a.toObject();t.set({...gy(h,["fill","fontSize","fontStyle","fontFamily","lineHeight","backgroundColor"]),text:a.text,visible:!0}),n.addWithUpdate(),a.visible=!1,this.canvas.remove(a),this.canvas.setActiveObject(n)})}_bedingEditingEvent(t,n){if(!n.target)return;const r=n.target.left,f=n.target.top,p=this._unGroup()||[],v=()=>{const u=this.canvas.getObjects().filter(s=>s.id&&p.includes(s.id));u.forEach(s=>this.canvas.remove(s));const o=new V.fabric.Group([...u]);o.set("left",r),o.set("top",f),o.set("id",re()),t.off("editing:exited",v),this.canvas.add(o),this.canvas.discardActiveObject().renderAll()};t.on("editing:exited",v)}_unGroup(){const t=[],n=this.canvas.getActiveObject();if(n)return n.getObjects().forEach(r=>{const f=re();t.push(f),r.set("id",f)}),n.toActiveSelection(),t}isText(t){return t.type&&["i-text","text","textbox"].includes(t.type)}destroy(){console.log("pluginDestroy")}};Cf.pluginName="GroupTextEditorPlugin";let $s=Cf;const ba=class ba{constructor(t,n){this.canvas=t,this.editor=n}left(){const{canvas:t}=this,n=t.getActiveObject(),r=t.getActiveObjects();if(n){const{left:f=0}=n;t.discardActiveObject(),r.forEach(v=>{const u=v.getBoundingRect(!0);v.set({left:f-u.left+Number(v.left)}),v.setCoords()});const p=new V.fabric.ActiveSelection(r,{canvas:t});t.setActiveObject(p),t.requestRenderAll()}}right(){const{canvas:t}=this,n=t.getActiveObject(),r=t.getActiveObjects();if(n){const{left:f=0,width:p=0}=n;t.discardActiveObject(),r.forEach(u=>{const o=u.getBoundingRect(!0);u.set({left:f+p-(o.left+o.width)+Number(u.left)})});const v=new V.fabric.ActiveSelection(r,{canvas:t});t.setActiveObject(v),t.requestRenderAll()}}xcenter(){const{canvas:t}=this,n=t.getActiveObject(),r=t.getActiveObjects();if(n){const{left:f=0,width:p=0}=n;t.discardActiveObject(),r.forEach(u=>{const o=u.getBoundingRect(!0);u.set({left:f+p/2-(o.left+o.width/2)+Number(u.left)})});const v=new V.fabric.ActiveSelection(r,{canvas:t});t.setActiveObject(v),t.requestRenderAll()}}ycenter(){const{canvas:t}=this,n=t.getActiveObject(),r=t.getActiveObjects();if(n){const{top:f=0,height:p=0}=n;t.discardActiveObject(),r.forEach(u=>{const o=u.getBoundingRect(!0);u.set({top:f+p/2-(o.top+o.height/2)+Number(u.top)})});const v=new V.fabric.ActiveSelection(r,{canvas:t});t.setActiveObject(v),t.requestRenderAll()}}top(){const{canvas:t}=this,n=t.getActiveObject(),r=t.getActiveObjects();if(n){const{top:f=0}=n;t.discardActiveObject(),r.forEach(v=>{const u=v.getBoundingRect(!0);v.set({top:f-u.top+Number(v.top)})});const p=new V.fabric.ActiveSelection(r,{canvas:t});t.setActiveObject(p),t.requestRenderAll()}}bottom(){const{canvas:t}=this,n=t.getActiveObject(),r=t.getActiveObjects();if(n){const{top:f=0,height:p=0}=n;t.discardActiveObject(),r.forEach(u=>{const o=u.getBoundingRect(!0);u.set({top:f+p-(o.top+o.height)+Number(u.top)})});const v=new V.fabric.ActiveSelection(r,{canvas:t});t.setActiveObject(v),t.requestRenderAll()}}xequation(){const{canvas:t}=this,n=t.getActiveObject();function r(s){let c=1/0,i=-1/0;for(const l in s.aCoords)s.aCoords[l].x<c&&(c=s.aCoords[l].x),s.aCoords[l].x>i&&(i=s.aCoords[l].x);return i-c}function f(){let s=0;return n&&n.forEachObject(c=>{s+=r(c)}),s}function p(){const s=f();if(n)return(Number(n.width)-s)/(n._objects.length-1)}function v(s){if(s===0)return 0;let c=0;if(n)for(let i=0;i<s;i++)c+=r(n._objects[i]);return c}if(n&&n.type==="activeSelection"){n._objects.sort((l,a)=>l.left-a.left);const c=p(),i=Number(n.width)/2;n.forEachObject((l,a)=>{const h=v(a),g=c*a+h-i;l.set("left",g)})}const u=t.getActiveObjects();t.discardActiveObject(),u.forEach(s=>{let c=1/0;for(const i in s.aCoords)s.aCoords[i].x<c&&(c=s.aCoords[i].x);s.set("left",2*s.left-c)});const o=new V.fabric.ActiveSelection(u,{canvas:t});t.setActiveObject(o),t.requestRenderAll()}yequation(){const{canvas:t}=this,n=t.getActiveObject()||{top:0,height:0};function r(s){let c=1/0,i=-1/0;for(const l in s.aCoords)s.aCoords[l].y<c&&(c=s.aCoords[l].y),s.aCoords[l].y>i&&(i=s.aCoords[l].y);return i-c}function f(){let s=0;return n.forEachObject(c=>{s+=r(c)}),s}function p(){const s=f();return(n.height-s)/(n._objects.length-1)}function v(s){if(s===0)return 0;let c=0;for(let i=0;i<s;i++)c+=r(n._objects[i]);return c}if(n&&n.type==="activeSelection"){n._objects.sort((l,a)=>l.top-a.top);const c=p(),i=Number(n.height)/2;n.forEachObject((l,a)=>{const h=v(a),g=c*a+h-i;l.set("top",g)})}const u=t.getActiveObjects();t.discardActiveObject(),u.forEach(s=>{let c=1/0;for(const i in s.aCoords)s.aCoords[i].y<c&&(c=s.aCoords[i].y);s.set("top",2*s.top-c)});const o=new V.fabric.ActiveSelection(u,{canvas:t});t.setActiveObject(o),t.requestRenderAll()}destroy(){console.log("pluginDestroy")}};ba.pluginName="GroupAlignPlugin",ba.apis=["left","right","xcenter","ycenter","top","bottom","xequation","yequation"];let Hs=ba;class cP{constructor(){this.maxZoom=20,this.minZoom=.01,this.zoomStep=.01}}const xi=class xi{constructor(t,n,r){this.canvas=t,this.editor=n,this.workspace=null,this.config=Object.assign(new cP,r),this.init({width:114,height:114}),this.zoomRatio=this._getValidZoom(.85)}init(t){const n=document.querySelector("#workspace");if(!n)throw new Error("element #workspace is missing, plz check!");this.workspaceEl=n,this.workspace=null,this.option=t,this._initBackground(),this._initWorkspace(),this._initResizeObserve(),this._bindWheel()}hookImportAfter(){return new Promise(t=>{const n=this.canvas.getObjects().find(r=>r.id==="workspace");n&&(n.set("selectable",!1),n.set("hasControls",!1),n.set("evented",!1),n.width&&n.height&&(this.setSize(n.width,n.height),this.editor.emit("sizeChange",n.width,n.height))),t("")})}hookSaveAfter(){return new Promise(t=>{this.auto(),t(!0)})}_initBackground(){this.canvas.backgroundImage="",this.canvas.setWidth(this.workspaceEl.offsetWidth),this.canvas.setHeight(this.workspaceEl.offsetHeight)}_initWorkspace(){const{width:t,height:n}=this.option,r=new V.fabric.Rect({fill:"rgba(255,255,255,1)",width:t,height:n,id:"workspace",strokeWidth:0});r.set("selectable",!1),r.set("hasControls",!1),r.hoverCursor="default",this.canvas.add(r),this.canvas.renderAll(),this.workspace=r,this.canvas.clearHistory&&this.canvas.clearHistory(),this.auto()}getWorkspase(){return this.canvas.getObjects().find(t=>t.id==="workspace")}setCenterFromObject(t){const{canvas:n}=this,r=t.getCenterPoint(),f=n.viewportTransform;n.width===void 0||n.height===void 0||!f||(f[4]=n.width/2-r.x*f[0],f[5]=n.height/2-r.y*f[3],n.setViewportTransform(f),n.renderAll())}_initResizeObserve(){const t=new ResizeObserver(Bn(()=>{this.auto()},50));this.resizeObserver=t,this.resizeObserver.observe(this.workspaceEl)}_getValidZoom(t){return Math.max(this.config.minZoom,Math.min(this.config.maxZoom,t))}setSize(t,n,r){this._initBackground(),this.option.width=t,this.option.height=n,this.workspace=this.canvas.getObjects().find(f=>f.id==="workspace"),this.workspace.set("width",t),this.workspace.set("height",n),r?.slient!==!0&&this.editor.emit("sizeChange",this.workspace.width,this.workspace.height),this.auto()}setZoomAuto(t,n){const{workspaceEl:r}=this,f=r.offsetWidth,p=r.offsetHeight;this.canvas.setWidth(f),this.canvas.setHeight(p);const v=this.canvas.getCenter();this.canvas.setViewportTransform(V.fabric.iMatrix.concat()),this.canvas.zoomToPoint(new V.fabric.Point(v.left,v.top),t),this.workspace&&(this.setCenterFromObject(this.workspace),this.workspace.clone(u=>{this.canvas.clipPath=u,this.canvas.requestRenderAll()}),n&&n(this.workspace.left,this.workspace.top))}_getScale(){return V.fabric.util.findScaleToFit(this.getWorkspase(),{width:this.workspaceEl.offsetWidth,height:this.workspaceEl.offsetHeight})}big(){let t=this.canvas.getZoom();t=this._getValidZoom(t+this.config.zoomStep);const n=this.canvas.getCenter();this.canvas.zoomToPoint(new V.fabric.Point(n.left,n.top),t)}small(){let t=this.canvas.getZoom();t=this._getValidZoom(t-this.config.zoomStep);const n=this.canvas.getCenter();this.canvas.zoomToPoint(new V.fabric.Point(n.left,n.top),t)}auto(){const t=this._getScale(),n=this._getValidZoom(t*this.zoomRatio);this.setZoomAuto(n)}one(){this.setZoomAuto(1*this.zoomRatio),this.canvas.requestRenderAll()}getZoom(){return this.canvas.getZoom()}setZoom(t){const n=this.canvas.getCenter();this.canvas.zoomToPoint(new V.fabric.Point(n.left,n.top),this._getValidZoom(t))}setWorkspaseBg(t){this.getWorkspase()?.set("fill",t)}_bindWheel(){const t=this._getValidZoom.bind(this);this.canvas.on("mouse:wheel",function(n){const r=n.e.deltaY;let f=this.getZoom();f*=.999**r,f=t(f);const p=this.getCenter();this.zoomToPoint(new V.fabric.Point(p.left,p.top),f),n.e.preventDefault(),n.e.stopPropagation()})}destroy(){this.resizeObserver.disconnect(),this.canvas.off(),console.log("pluginDestroy")}};xi.pluginName="WorkspacePlugin",xi.events=["sizeChange"],xi.apis=["big","small","auto","one","setSize","setSizeMm","getWorkspase","setWorkspaseBg","setCenterFromObject","getZoom","setZoom"];let zs=xi;const wa=class wa{constructor(t,n){this.canvas=t,this.editor=n,this.coverMask=null,this.workspace=null,this.hackFlag=!1,this.init()}init(){const t=document.querySelector("#workspace");if(!t)throw new Error("element #workspace is missing, plz check!");this.workspaceEl=t}workspaceMaskToggle(){const t=this.getWorkspaceMask();t?(t&&this.canvas.remove(t),this.workspace?.clone(n=>{this.canvas.clipPath=n,this.coverMask=null,this.canvas.requestRenderAll()}),this.editor.off("loadJson",this.initMask)):this.initMask()}getworkspaceMaskStatus(){return this.coverMask!==null}getWorkspaceMask(){return this.canvas.getObjects().find(t=>t.id==="coverMask")}getWorkspase(){return this.canvas.getObjects().find(t=>t.id==="workspace")}setCoverMask(t=!1){if(!this.coverMask||!this.workspace)return;const n=this.canvas.getCenter(),r=this.canvas.getZoom();let f=r;if(t&&(f+=1e-7*(this.hackFlag?1:-1),this.hackFlag=!this.hackFlag),this.canvas.zoomToPoint(new V.fabric.Point(n.left,n.top),f),r){const{workspaceEl:p}=this,v=p.offsetWidth,u=p.offsetHeight,o=v/r,s=u/r;this.coverMask.width=o,this.coverMask.height=s,this.coverMask.left=(this.workspace.left||0)+(this.workspace.width-o)/2,this.coverMask.top=(this.workspace.top||0)+(this.workspace.height-s)/2,this.workspace.clone(c=>{c.left=-c.width/2,c.top=-c.height/2,c.inverted=!0,this.coverMask.clipPath=c,this.canvas.requestRenderAll()})}}initMask(t=!0){if(this.workspace=this.getWorkspase(),!this.workspace)throw new Error("MaskPlugin must be used after WorkspacePlugin!");const n=new V.fabric.Rect({fill:"rgba(0,0,0,0.5)",id:"coverMask",strokeWidth:0});n.set("selectable",!1),n.set("hasControls",!1),n.set("evented",!1),n.hoverCursor="default",this.canvas.on("object:added",()=>{n.bringToFront()}),this.canvas.clipPath=void 0,this.canvas.add(n),this.coverMask=n,this.setCoverMask(),t&&this.editor.on("loadJson",()=>this.initMask(!1))}destroy(){console.log("pluginDestroy")}};wa.pluginName="MaskPlugin",wa.apis=["setCoverMask","workspaceMaskToggle","getworkspaceMaskStatus"];let Ys=wa;const Ii=class Ii{constructor(t,n){this.canvas=t,this.editor=n,this.stack=[],this.currentIndex=0,this.maxLength=100,this.isProcessing=!1,this.isLoading=!1,this.hotkeys=["ctrl+z","ctrl+shift+z","⌘+z","⌘+shift+z"],this._init()}_init(){Object.entries({"object:removed":()=>this.saveState(),"object:modified":()=>this.saveState(),"object:skewing":()=>this.saveState()}).forEach(([n,r])=>{this.canvas.on(n,r)}),this.saveState(),this.canvas.on("history:append",()=>{this.historyUpdate()})}getCurrentState(){return this.editor.getJson()}saveState(){this.isProcessing||(this.stack.splice(this.currentIndex),this.stack.push(this.getCurrentState()),this.stack.length>this.maxLength?this.stack.shift():this.currentIndex++,this.historyUpdate())}_loadState(t,n,r){this.isLoading=!0,this.isProcessing=!0;const p=JSON.parse(t).objects?.find(v=>v.id==="workspace");p&&(p.evented=!1),this.canvas.loadFromJSON(t,()=>{this.canvas.renderAll(),this.canvas.fire(n),this.isProcessing=!1,this.isLoading=!1,r?.()})}getState(){return{undoCount:this.currentIndex-1,redoCount:this.stack.length-this.currentIndex}}clear(){this.stack=[],this.currentIndex=0,this.saveState()}historyUpdate(){const{undoCount:t,redoCount:n}=this.getState();this.editor.emit("historyUpdate",t,n)}hookImportAfter(){return this.clear(),this.historyUpdate(),Promise.resolve()}undo(){if(this.isLoading||this.currentIndex<=1)return;this.currentIndex--;const t=this.stack[this.currentIndex-1];t&&(this._loadState(JSON.stringify(t),"history:undo"),this.historyUpdate())}redo(){if(this.isLoading||this.currentIndex>=this.stack.length)return;const t=this.stack[this.currentIndex];t&&(this._loadState(JSON.stringify(t),"history:redo"),this.currentIndex++,this.historyUpdate())}hotkeyEvent(t,n){if(n.type==="keydown")switch(t){case"ctrl+z":case"⌘+z":this.undo();break;case"ctrl+shift+z":case"⌘+shift+z":this.redo();break}}clearAndSaveState(){const t=this.getCurrentState();this.stack=[t],this.currentIndex=1,this.historyUpdate()}};Ii.pluginName="HistoryPlugin",Ii.apis=["undo","redo","historyUpdate","clearAndSaveState","saveState"],Ii.events=[];let Ws=Ii;const Ca=class Ca{constructor(t,n){this.canvas=t,this.editor=n}flip(t){const n=this.canvas.getActiveObject();n&&(n.set(`flip${t}`,!n[`flip${t}`]).setCoords(),this.canvas.requestRenderAll())}contextMenu(){if(this.editor.getSelectMode()===ja.ONE)return[{text:"翻转",hotkey:"❯",subitems:[{text:"水平翻转",hotkey:"|",onclick:()=>this.flip("X")},{text:"垂直翻转",hotkey:"-",onclick:()=>this.flip("Y")}]}]}destroy(){console.log("pluginDestroy")}};Ca.pluginName="FlipPlugin",Ca.apis=["flip"];let qs=Ca;const lP=e=>{const t=[.02,.03,.05,.1,.2,.5,1,2,5,10,18],n=[5e3,2500,1e3,500,250,100,50,25,10,5,2];let r=0;for(;r<t.length&&t[r]<e;)r++;return n[r-1]||5e3},_o=(e,t)=>{const n=t?"left":"top",r=t?"width":"height";e.sort((v,u)=>v[n]-u[n]);const f=[];let p=Object.assign({},e[0]);for(const v of e){const u=Object.assign({},v);p[n]+p[r]>=u[n]?p[r]=Math.max(p[n]+p[r],u[n]+u[r])-p[n]:(f.push(p),p=Object.assign({},u))}return f.push(p),f},Jc=(e,t)=>{e.save();const{left:n,top:r,width:f,height:p,stroke:v,lineWidth:u}=t;e.beginPath(),v&&(e.strokeStyle=v),e.lineWidth=u??1,e.moveTo(n,r),e.lineTo(n+f,r+p),e.stroke(),e.restore()},Kc=(e,t)=>{e.save();const{left:n,top:r,text:f,fill:p,align:v,angle:u,fontSize:o}=t;p&&(e.fillStyle=p),e.textAlign=v??"left",e.textBaseline="top",e.font=`${o??10}px sans-serif`,u&&(e.translate(n,r),e.rotate(Math.PI/180*u),e.translate(-n,-r)),e.fillText(f,n,r),e.restore()},Ou=(e,t)=>{e.save();const{left:n,top:r,width:f,height:p,fill:v,stroke:u,strokeWidth:o}=t;e.beginPath(),v&&(e.fillStyle=v),e.rect(n,r,f,p),e.fill(),u&&(e.strokeStyle=u,e.lineWidth=o??1,e.stroke()),e.restore()},bo=(e,t)=>{e.save();const{isHorizontal:n,left:r,top:f,width:p,height:v,backgroundColor:u}=t,o=n?e.createLinearGradient(r,v/2,r+p,v/2):e.createLinearGradient(p/2,f,p/2,v+f),s=new V.fabric.Color(u);s.setAlpha(0),o.addColorStop(0,s.toRgba()),o.addColorStop(.33,u),o.addColorStop(.67,u),o.addColorStop(1,s.toRgba()),Ou(e,{left:r,top:f,width:p,height:v,fill:o}),e.restore()};function uP(){V.fabric.GuideLine||(V.fabric.GuideLine=V.fabric.util.createClass(V.fabric.Line,{type:"GuideLine",selectable:!1,hasControls:!1,hasBorders:!1,stroke:"#4bec13",originX:"center",originY:"center",padding:4,globalCompositeOperation:"difference",axis:"horizontal",initialize(e,t){const n=t.axis==="horizontal";this.hoverCursor=n?"ns-resize":"ew-resize";const r=n?[-999999,e,999999,e]:[e,-999999,e,999999];t[n?"lockMovementX":"lockMovementY"]=!0,this.callSuper("initialize",r,t),this.on("mousedown:before",f=>{this.activeOn==="down"&&this.canvas&&this.canvas.setActiveObject(this,f.e)}),this.on("moving",f=>{this.canvas&&this.canvas.ruler.options.enabled&&this.isPointOnRuler(f.e)?this.moveCursor="not-allowed":this.moveCursor=this.isHorizontal()?"ns-resize":"ew-resize",this.canvas&&this.canvas.fire("guideline:moving",{target:this,e:f.e})}),this.on("mouseup",f=>{if(this.canvas&&this.canvas.ruler.options.enabled&&this.isPointOnRuler(f.e)){this.canvas.remove(this);return}this.moveCursor=this.isHorizontal()?"ns-resize":"ew-resize",this.canvas&&this.canvas.fire("guideline:mouseup",{target:this,e:f.e})}),this.on("removed",()=>{this.off("removed"),this.off("mousedown:before"),this.off("moving"),this.off("mouseup")})},getBoundingRect(e,t){this.bringToFront();const n=this.isHorizontal(),r=this.callSuper("getBoundingRect",e,t);return r[n?"top":"left"]+=r[n?"height":"width"]/2,r[n?"height":"width"]=0,r},isPointOnRuler(e){const t=this.isHorizontal(),n=this.canvas&&this.canvas.ruler.isPointOnRuler(new V.fabric.Point(e.offsetX,e.offsetY));return t&&n==="horizontal"||!t&&n==="vertical"?n:!1},isHorizontal(){return this.height===0}}),V.fabric.GuideLine.fromObject=function(e,t){const n=V.fabric.util.object.clone;function r(v){delete v.xy,t&&t(v)}const f=n(e,!0),p=f.height===0;f.xy=p?f.y1:f.x1,f.axis=p?"horizontal":"vertical",V.fabric.Object._fromObject(f.type,f,r,"xy")})}V.fabric.GuideLine;class hP{constructor(t){this.unit="px",this.activeOn="up",this.eventHandler={calcObjectRect:Bn(this.calcObjectRect.bind(this),15),markRectDirtyImmediate:n=>{this.currentMovingTarget=n?.target,this.needsRectUpdate=!0,this.options.canvas.requestRenderAll()},markRectDirtyThrottled:Bn(n=>{this.currentMovingTarget=n?.target,this.needsRectUpdate=!0,this.options.canvas.requestRenderAll()},30),clearStatus:this.clearStatus.bind(this),canvasMouseDown:this.canvasMouseDown.bind(this),canvasMouseMove:Bn(this.canvasMouseMove.bind(this),15),canvasMouseUp:this.canvasMouseUp.bind(this),render:n=>{n.ctx&&this.render()}},this.lastAttr={status:"out",cursor:void 0,selection:void 0},this.needsRectUpdate=!0,this.getCommonEventInfo=n=>{if(!(!this.tempGuidelLine||!n.absolutePointer))return{e:n.e,transform:this.tempGuidelLine.get("transform"),pointer:{x:n.absolutePointer.x,y:n.absolutePointer.y},target:this.tempGuidelLine}},this.options=Object.assign({ruleSize:20,fontSize:10,enabled:!1,backgroundColor:"#fff",borderColor:"#ddd",highlightColor:"#007fff",textColor:"#888",unit:"px"},t),this.ctx=this.options.canvas.getContext(),this.unit=this.options.unit||"px",V.fabric.util.object.extend(this.options.canvas,{ruler:this}),uP(),this.options.enabled&&this.enable()}setUnit(t){this.unit!==t&&(this.unit=t,this.render())}formatValueByUnit(t){return this.unit==="px"?t:Wt.pxToMm(t)}formatLabel(t){const n=this.formatValueByUnit(t);return this.unit==="px"?String(Math.round(n)):String(Math.round(n*10)/10)}destroy(){this.disable()}clearGuideline(){this.options.canvas.remove(...this.options.canvas.getObjects(V.fabric.GuideLine.prototype.type))}showGuideline(){this?.options?.canvas?.getObjects(V.fabric.GuideLine.prototype.type).forEach(t=>{t.set("visible",!0)}),this?.options?.canvas?.renderAll()}hideGuideline(){this.options.canvas.getObjects(V.fabric.GuideLine.prototype.type).forEach(t=>{t.set("visible",!1)}),this.options.canvas.renderAll()}enable(){this.options.enabled=!0,this.options.canvas.on("after:render",this.eventHandler.calcObjectRect),this.options.canvas.on("after:render",this.eventHandler.render),this.options.canvas.on("mouse:down",this.eventHandler.canvasMouseDown),this.options.canvas.on("mouse:move",this.eventHandler.canvasMouseMove),this.options.canvas.on("mouse:up",this.eventHandler.canvasMouseUp),this.options.canvas.on("selection:cleared",this.eventHandler.clearStatus),this.options.canvas.on("object:added",this.eventHandler.markRectDirtyImmediate),this.options.canvas.on("selection:created",this.eventHandler.markRectDirtyImmediate),this.options.canvas.on("selection:updated",this.eventHandler.markRectDirtyImmediate),this.options.canvas.on("object:moving",this.eventHandler.markRectDirtyThrottled),this.options.canvas.on("object:modified",this.eventHandler.markRectDirtyImmediate),this.options.canvas.on("object:scaling",this.eventHandler.markRectDirtyThrottled),this.options.canvas.on("object:rotating",this.eventHandler.markRectDirtyThrottled),this.showGuideline(),this.render()}disable(){this.options.canvas.off("after:render",this.eventHandler.calcObjectRect),this.options.canvas.off("after:render",this.eventHandler.render),this.options.canvas.off("mouse:down",this.eventHandler.canvasMouseDown),this.options.canvas.off("mouse:move",this.eventHandler.canvasMouseMove),this.options.canvas.off("mouse:up",this.eventHandler.canvasMouseUp),this.options.canvas.off("selection:cleared",this.eventHandler.clearStatus),this.options.canvas.off("object:added",this.eventHandler.markRectDirtyImmediate),this.options.canvas.off("selection:created",this.eventHandler.markRectDirtyImmediate),this.options.canvas.off("selection:updated",this.eventHandler.markRectDirtyImmediate),this.options.canvas.off("object:moving",this.eventHandler.markRectDirtyThrottled),this.options.canvas.off("object:modified",this.eventHandler.markRectDirtyImmediate),this.options.canvas.off("object:scaling",this.eventHandler.markRectDirtyThrottled),this.options.canvas.off("object:rotating",this.eventHandler.markRectDirtyThrottled),this.hideGuideline(),this.options.enabled=!1}render(){const t=this.options.canvas.viewportTransform;t&&(this.needsRectUpdate&&(this.currentMovingTarget?this.calcObjectRectFromTarget(this.currentMovingTarget):this.calcObjectRect(),this.currentMovingTarget=void 0,this.needsRectUpdate=!1),this.draw({isHorizontal:!0,rulerLength:this.getSize().width,startCalibration:this.startCalibration?.x?this.startCalibration.x:-(t[4]/t[0])}),this.draw({isHorizontal:!1,rulerLength:this.getSize().height,startCalibration:this.startCalibration?.y?this.startCalibration.y:-(t[5]/t[3])}),bo(this.ctx,{isHorizontal:!0,left:-10,top:-10,width:this.options.ruleSize*2+10,height:this.options.ruleSize+10,backgroundColor:this.options.backgroundColor}),bo(this.ctx,{isHorizontal:!1,left:-10,top:-10,width:this.options.ruleSize+10,height:this.options.ruleSize*2+10,backgroundColor:this.options.backgroundColor}))}getSize(){return{width:this.options.canvas.width??0,height:this.options.canvas.height??0}}getZoom(){return this.options.canvas.getZoom()}draw(t){const{isHorizontal:n,rulerLength:r,startCalibration:f}=t,p=this.getZoom();let v=lP(p),u=1;if(this.unit==="mm"){const a=Wt.mmToPx(1,void 0,{direct:!0}),h=a*p;h<4?u=10:h<8&&(u=5),v=a*u}const o=r/p,s=Math[f>0?"floor":"ceil"](f/v)*v,c=s-f,i=this.getSize();Ou(this.ctx,{left:0,top:0,width:n?i.width:this.options.ruleSize,height:n?this.options.ruleSize:i.height,fill:this.options.backgroundColor,stroke:this.options.borderColor});const l=new V.fabric.Color(this.options.textColor);for(let a=0;a+c<=Math.ceil(o);a+=v){const h=(c+a)*p,g=this.formatLabel(s+a);if(this.unit==="mm"){const m=Wt.pxToMm(s+a);if(Math.round(m)%5!==0)continue}const d=10*g.length/4,A=n?h-d-1:this.options.ruleSize/2-this.options.fontSize/2-4,y=n?this.options.ruleSize/2-this.options.fontSize/2-4:h+d;Kc(this.ctx,{text:g,left:A,top:y,fill:l.toRgb(),angle:n?0:-90})}for(let a=0;a+c<=Math.ceil(o);a+=v){const h=Math.round((c+a)*p);let g=8;if(this.unit==="mm"){const _=Wt.pxToMm(s+a),w=Math.round(_);w%10===0?g=12:w%5===0?g=10:g=6}const d=n?h:this.options.ruleSize-g,A=n?this.options.ruleSize-g:h,y=n?0:g,m=n?g:0;Jc(this.ctx,{left:d,top:A,width:y,height:m,stroke:l.toRgb()})}if(this.objectRect){const a=n?"x":"y";this.objectRect[a].forEach(h=>{if(h.skip===a)return;const g=K=>{if(this.unit==="px"){const rt=this.options.editor.getSizeByUnit((K==="start"?n?h.left:h.top:n?h.left+h.width:h.top+h.height)/p+f),$=Number(rt);return Number.isNaN($)?void 0:Math.round($*100)/100}return n?K==="start"?h.originXStart:h.originXEnd:K==="start"?h.originYStart:h.originYEnd},d=g("start"),A=g("end"),y=this.options.editor.getPrecision?.()??2,m=d!==void 0?Uf(d,y):void 0,_=A!==void 0?Uf(A,y):void 0,w=d!==void 0&&A!==void 0&&d===A,S={isHorizontal:n,width:n?160:this.options.ruleSize-8,height:n?this.options.ruleSize-8:160,backgroundColor:this.options.backgroundColor};bo(this.ctx,{...S,left:n?h.left-80:0,top:n?0:h.top-80}),w||bo(this.ctx,{...S,left:n?h.width+h.left-80:0,top:n?0:h.height+h.top-80});const O=new V.fabric.Color(this.options.highlightColor);O.setAlpha(.5),Ou(this.ctx,{left:n?h.left:this.options.ruleSize-8,top:n?this.options.ruleSize-8:h.top,width:n?h.width:8,height:n?8:h.height,fill:O.toRgba()});const P=this.options.ruleSize/2-this.options.fontSize/2-4,N={fill:O.toRgba(),angle:n?0:-90};m!==void 0&&Kc(this.ctx,{...N,text:m,left:n?h.left-2:P,top:n?P:h.top-2,align:w?"center":n?"right":"left"}),!w&&_!==void 0&&Kc(this.ctx,{...N,text:_,left:n?h.left+h.width+2:P,top:n?P:h.top+h.height+2,align:n?"left":"right"});const q=w?8:14;O.setAlpha(1);const Z={width:n?0:q,height:n?q:0,stroke:O.toRgba()};Jc(this.ctx,{...Z,left:n?h.left:this.options.ruleSize-q,top:n?this.options.ruleSize-q:h.top}),w||Jc(this.ctx,{...Z,left:n?h.left+h.width:this.options.ruleSize-q,top:n?this.options.ruleSize-q:h.top+h.height})})}}calcObjectRect(){const t=this.options.canvas.getActiveObjects();if(t.length===0)return;const n=t.reduce((r,f)=>{const p=f.getBoundingRect(!1,!0);if(f.group){const v=f.group,u={...v,scaleX:v?.scaleX??1,scaleY:v?.scaleY??1};p.width*=u.scaleX,p.height*=u.scaleY;const o=u.width/2+u.left,s=(u.width/2+(f.left??0))*(1-u.scaleX);p.left+=(o-s)*this.getZoom();const c=u.height/2+u.top,i=(u.height/2+(f.top??0))*(1-u.scaleY);p.top+=(c-i)*this.getZoom()}if(f instanceof V.fabric.GuideLine&&(p.skip=f.isHorizontal()?"x":"y"),this.unit!=="px"){const v=f._originSize?.[this.unit];if(v)if(f instanceof V.fabric.Polygon&&Array.isArray(v.points)){const u=v.points.map(a=>a.x),o=v.points.map(a=>a.y),s=Math.min(...u),c=Math.max(...u),i=Math.min(...o),l=Math.max(...o);p.originXStart=s,p.originXEnd=c,p.originYStart=i,p.originYEnd=l}else{const u=v.left,o=v.top;let s=v.width,c=v.height;s===void 0&&v.rx!==void 0&&(s=v.rx*2),c===void 0&&v.ry!==void 0&&(c=v.ry*2),u!==void 0&&s!==void 0&&(p.originXStart=u,p.originXEnd=u+s),o!==void 0&&c!==void 0&&(p.originYStart=o,p.originYEnd=o+c)}}return r.push(p),r},[]);n.length!==0&&(this.objectRect={x:_o(n,!0),y:_o(n,!1)})}calcObjectRectFromTarget(t){const r=(f=>{const p=f.getBoundingRect(!1,!0);if(f.group){const v=f.group,u={...v,scaleX:v?.scaleX??1,scaleY:v?.scaleY??1};p.width*=u.scaleX,p.height*=u.scaleY;const o=u.width/2+u.left,s=(u.width/2+(f.left??0))*(1-u.scaleX);p.left+=(o-s)*this.getZoom();const c=u.height/2+u.top,i=(u.height/2+(f.top??0))*(1-u.scaleY);p.top+=(c-i)*this.getZoom()}if(f instanceof V.fabric.GuideLine&&(p.skip=f.isHorizontal()?"x":"y"),this.unit!=="px"){const v=f._originSize?.[this.unit];if(v)if(f instanceof V.fabric.Polygon&&Array.isArray(v.points)){const u=v.points.map(a=>a.x),o=v.points.map(a=>a.y),s=Math.min(...u),c=Math.max(...u),i=Math.min(...o),l=Math.max(...o);p.originXStart=s,p.originXEnd=c,p.originYStart=i,p.originYEnd=l}else{const u=v.left,o=v.top;let s=v.width,c=v.height;s===void 0&&v.rx!==void 0&&(s=v.rx*2),c===void 0&&v.ry!==void 0&&(c=v.ry*2),u!==void 0&&s!==void 0&&(p.originXStart=u,p.originXEnd=u+s),o!==void 0&&c!==void 0&&(p.originYStart=o,p.originYEnd=o+c)}}return p})(t);this.objectRect={x:_o([r],!0),y:_o([r],!1)}}clearStatus(){this.objectRect=void 0}isPointOnRuler(t){return new V.fabric.Rect({left:0,top:0,width:this.options.ruleSize,height:this.options.canvas.height}).containsPoint(t)?"vertical":new V.fabric.Rect({left:0,top:0,width:this.options.canvas.width,height:this.options.ruleSize}).containsPoint(t)?"horizontal":!1}canvasMouseDown(t){if(!t.pointer||!t.absolutePointer)return;const n=this.isPointOnRuler(t.pointer);n&&this.activeOn==="up"&&(this.lastAttr.selection=this.options.canvas.selection,this.options.canvas.selection=!1,this.activeOn="down",this.tempGuidelLine=new V.fabric.GuideLine(n==="horizontal"?t.absolutePointer.y:t.absolutePointer.x,{axis:n,visible:!1}),this.options.canvas.add(this.tempGuidelLine),this.options.canvas.setActiveObject(this.tempGuidelLine),this.options.canvas._setupCurrentTransform(t.e,this.tempGuidelLine,!0),this.tempGuidelLine.fire("down",this.getCommonEventInfo(t)))}canvasMouseMove(t){if(!t.pointer)return;if(this.tempGuidelLine&&t.absolutePointer){const r={};this.tempGuidelLine.axis==="horizontal"?r.top=t.absolutePointer.y:r.left=t.absolutePointer.x,this.tempGuidelLine.set({...r,visible:!0}),this.options.canvas.requestRenderAll();const f=this.getCommonEventInfo(t);this.options.canvas.fire("object:moving",f),this.tempGuidelLine.fire("moving",f)}const n=this.isPointOnRuler(t.pointer);if(!n){this.lastAttr.status!=="out"&&(this.options.canvas.defaultCursor=this.lastAttr.cursor,this.lastAttr.status="out");return}(this.lastAttr.status==="out"||n!==this.lastAttr.status)&&(this.lastAttr.cursor=this.options.canvas.defaultCursor,this.options.canvas.defaultCursor=n==="horizontal"?"ns-resize":"ew-resize",this.lastAttr.status=n)}canvasMouseUp(t){this.activeOn==="down"&&(this.options.canvas.selection=this.lastAttr.selection,this.activeOn="up",this.tempGuidelLine?.fire("up",this.getCommonEventInfo(t)),this.tempGuidelLine=void 0)}}function fP(e,t,n){const r=new hP({canvas:e,editor:t,...n});let f;const p=()=>{f=e.getObjects().find(u=>u.id==="workspace")},v=(u,o)=>{const{top:s,height:c,left:i,width:l}=u;if(s===void 0||c===void 0||i===void 0||l===void 0)return!1;const a=o.getBoundingRect(!0,!0),{top:h,height:g,left:d,width:A}=a;return o.isHorizontal()&&(s>h+1||s+c<h+g-1)?!0:!o.isHorizontal()&&(i>d+1||i+l<d+A-1)};return e.on("guideline:moving",u=>{if(!f){p();return}const{target:o}=u;v(f,o)&&(o.moveCursor="not-allowed")}),e.on("guideline:mouseup",u=>{if(!f){p();return}const{target:o}=u;v(f,o)&&(e.remove(o),e.setCursor(e.defaultCursor??""))}),r}const Ea=class Ea{constructor(t,n){this.canvas=t,this.editor=n,this.init()}hookSaveBefore(){return new Promise(t=>{this.hideGuideline(),t(!0)})}hookSaveAfter(){return new Promise(t=>{this.showGuideline(),t(!0)})}init(){this.ruler=fP(this.canvas,this.editor,{unit:this.editor.getUnit?.()||"px"}),this.editor.on?.("unitChange",t=>{this.ruler?.setUnit?.(t)})}hideGuideline(){this.ruler.hideGuideline()}showGuideline(){this.ruler.showGuideline()}rulerEnable(){this.ruler.enable()}rulerDisable(){this.ruler.disable()}destroy(){console.log("pluginDestroy")}};Ea.pluginName="RulerPlugin",Ea.apis=["hideGuideline","showGuideline","rulerEnable","rulerDisable"];let Xs=Ea;function My(e,t){return function(){return e.apply(t,arguments)}}const{toString:dP}=Object.prototype,{getPrototypeOf:ef}=Object,{iterator:gc,toStringTag:Py}=Symbol,pc=(e=>t=>{const n=dP.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),un=e=>(e=e.toLowerCase(),t=>pc(t)===e),Ac=e=>t=>typeof t===e,{isArray:ni}=Array,Gr=Ac("undefined");function no(e){return e!==null&&!Gr(e)&&e.constructor!==null&&!Gr(e.constructor)&&Oe(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Qy=un("ArrayBuffer");function gP(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Qy(e.buffer),t}const pP=Ac("string"),Oe=Ac("function"),Fy=Ac("number"),ro=e=>e!==null&&typeof e=="object",AP=e=>e===!0||e===!1,hs=e=>{if(pc(e)!=="object")return!1;const t=ef(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Py in e)&&!(gc in e)},vP=e=>{if(!ro(e)||no(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},yP=un("Date"),mP=un("File"),_P=un("Blob"),bP=un("FileList"),wP=e=>ro(e)&&Oe(e.pipe),CP=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Oe(e.append)&&((t=pc(e))==="formdata"||t==="object"&&Oe(e.toString)&&e.toString()==="[object FormData]"))},EP=un("URLSearchParams"),[SP,xP,IP,OP]=["ReadableStream","Request","Response","Headers"].map(un),BP=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function io(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,f;if(typeof e!="object"&&(e=[e]),ni(e))for(r=0,f=e.length;r<f;r++)t.call(null,e[r],r,e);else{if(no(e))return;const p=n?Object.getOwnPropertyNames(e):Object.keys(e),v=p.length;let u;for(r=0;r<v;r++)u=p[r],t.call(null,e[u],u,e)}}function Ly(e,t){if(no(e))return null;t=t.toLowerCase();const n=Object.keys(e);let r=n.length,f;for(;r-- >0;)if(f=n[r],t===f.toLowerCase())return f;return null}const hr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,jy=e=>!Gr(e)&&e!==hr;function Bu(){const{caseless:e,skipUndefined:t}=jy(this)&&this||{},n={},r=(f,p)=>{const v=e&&Ly(n,p)||p;hs(n[v])&&hs(f)?n[v]=Bu(n[v],f):hs(f)?n[v]=Bu({},f):ni(f)?n[v]=f.slice():(!t||!Gr(f))&&(n[v]=f)};for(let f=0,p=arguments.length;f<p;f++)arguments[f]&&io(arguments[f],r);return n}const TP=(e,t,n,{allOwnKeys:r}={})=>(io(t,(f,p)=>{n&&Oe(f)?e[p]=My(f,n):e[p]=f},{allOwnKeys:r}),e),kP=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),DP=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},RP=(e,t,n,r)=>{let f,p,v;const u={};if(t=t||{},e==null)return t;do{for(f=Object.getOwnPropertyNames(e),p=f.length;p-- >0;)v=f[p],(!r||r(v,e,t))&&!u[v]&&(t[v]=e[v],u[v]=!0);e=n!==!1&&ef(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},MP=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},PP=e=>{if(!e)return null;if(ni(e))return e;let t=e.length;if(!Fy(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},QP=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&ef(Uint8Array)),FP=(e,t)=>{const r=(e&&e[gc]).call(e);let f;for(;(f=r.next())&&!f.done;){const p=f.value;t.call(e,p[0],p[1])}},LP=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},jP=un("HTMLFormElement"),NP=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,f){return r.toUpperCase()+f}),zd=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),UP=un("RegExp"),Ny=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};io(n,(f,p)=>{let v;(v=t(f,p,e))!==!1&&(r[p]=v||f)}),Object.defineProperties(e,r)},GP=e=>{Ny(e,(t,n)=>{if(Oe(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Oe(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},$P=(e,t)=>{const n={},r=f=>{f.forEach(p=>{n[p]=!0})};return ni(e)?r(e):r(String(e).split(t)),n},HP=()=>{},zP=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function YP(e){return!!(e&&Oe(e.append)&&e[Py]==="FormData"&&e[gc])}const WP=e=>{const t=new Array(10),n=(r,f)=>{if(ro(r)){if(t.indexOf(r)>=0)return;if(no(r))return r;if(!("toJSON"in r)){t[f]=r;const p=ni(r)?[]:{};return io(r,(v,u)=>{const o=n(v,f+1);!Gr(o)&&(p[u]=o)}),t[f]=void 0,p}}return r};return n(e,0)},qP=un("AsyncFunction"),XP=e=>e&&(ro(e)||Oe(e))&&Oe(e.then)&&Oe(e.catch),Uy=((e,t)=>e?setImmediate:t?((n,r)=>(hr.addEventListener("message",({source:f,data:p})=>{f===hr&&p===n&&r.length&&r.shift()()},!1),f=>{r.push(f),hr.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Oe(hr.postMessage)),VP=typeof queueMicrotask<"u"?queueMicrotask.bind(hr):typeof process<"u"&&process.nextTick||Uy,JP=e=>e!=null&&Oe(e[gc]),ot={isArray:ni,isArrayBuffer:Qy,isBuffer:no,isFormData:CP,isArrayBufferView:gP,isString:pP,isNumber:Fy,isBoolean:AP,isObject:ro,isPlainObject:hs,isEmptyObject:vP,isReadableStream:SP,isRequest:xP,isResponse:IP,isHeaders:OP,isUndefined:Gr,isDate:yP,isFile:mP,isBlob:_P,isRegExp:UP,isFunction:Oe,isStream:wP,isURLSearchParams:EP,isTypedArray:QP,isFileList:bP,forEach:io,merge:Bu,extend:TP,trim:BP,stripBOM:kP,inherits:DP,toFlatObject:RP,kindOf:pc,kindOfTest:un,endsWith:MP,toArray:PP,forEachEntry:FP,matchAll:LP,isHTMLForm:jP,hasOwnProperty:zd,hasOwnProp:zd,reduceDescriptors:Ny,freezeMethods:GP,toObjectSet:$P,toCamelCase:NP,noop:HP,toFiniteNumber:zP,findKey:Ly,global:hr,isContextDefined:jy,isSpecCompliantForm:YP,toJSONObject:WP,isAsyncFn:qP,isThenable:XP,setImmediate:Uy,asap:VP,isIterable:JP};function Ct(e,t,n,r,f){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),f&&(this.response=f,this.status=f.status?f.status:null)}ot.inherits(Ct,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ot.toJSONObject(this.config),code:this.code,status:this.status}}});const Gy=Ct.prototype,$y={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{$y[e]={value:e}});Object.defineProperties(Ct,$y);Object.defineProperty(Gy,"isAxiosError",{value:!0});Ct.from=(e,t,n,r,f,p)=>{const v=Object.create(Gy);ot.toFlatObject(e,v,function(c){return c!==Error.prototype},s=>s!=="isAxiosError");const u=e&&e.message?e.message:"Error",o=t==null&&e?e.code:t;return Ct.call(v,u,o,n,r,f),e&&v.cause==null&&Object.defineProperty(v,"cause",{value:e,configurable:!0}),v.name=e&&e.name||"Error",p&&Object.assign(v,p),v};const KP=null;function Tu(e){return ot.isPlainObject(e)||ot.isArray(e)}function Hy(e){return ot.endsWith(e,"[]")?e.slice(0,-2):e}function Yd(e,t,n){return e?e.concat(t).map(function(f,p){return f=Hy(f),!n&&p?"["+f+"]":f}).join(n?".":""):t}function ZP(e){return ot.isArray(e)&&!e.some(Tu)}const tQ=ot.toFlatObject(ot,{},null,function(t){return/^is[A-Z]/.test(t)});function vc(e,t,n){if(!ot.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=ot.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(g,d){return!ot.isUndefined(d[g])});const r=n.metaTokens,f=n.visitor||c,p=n.dots,v=n.indexes,o=(n.Blob||typeof Blob<"u"&&Blob)&&ot.isSpecCompliantForm(t);if(!ot.isFunction(f))throw new TypeError("visitor must be a function");function s(h){if(h===null)return"";if(ot.isDate(h))return h.toISOString();if(ot.isBoolean(h))return h.toString();if(!o&&ot.isBlob(h))throw new Ct("Blob is not supported. Use a Buffer instead.");return ot.isArrayBuffer(h)||ot.isTypedArray(h)?o&&typeof Blob=="function"?new Blob([h]):Buffer.from(h):h}function c(h,g,d){let A=h;if(h&&!d&&typeof h=="object"){if(ot.endsWith(g,"{}"))g=r?g:g.slice(0,-2),h=JSON.stringify(h);else if(ot.isArray(h)&&ZP(h)||(ot.isFileList(h)||ot.endsWith(g,"[]"))&&(A=ot.toArray(h)))return g=Hy(g),A.forEach(function(m,_){!(ot.isUndefined(m)||m===null)&&t.append(v===!0?Yd([g],_,p):v===null?g:g+"[]",s(m))}),!1}return Tu(h)?!0:(t.append(Yd(d,g,p),s(h)),!1)}const i=[],l=Object.assign(tQ,{defaultVisitor:c,convertValue:s,isVisitable:Tu});function a(h,g){if(!ot.isUndefined(h)){if(i.indexOf(h)!==-1)throw Error("Circular reference detected in "+g.join("."));i.push(h),ot.forEach(h,function(A,y){(!(ot.isUndefined(A)||A===null)&&f.call(t,A,ot.isString(y)?y.trim():y,g,l))===!0&&a(A,g?g.concat(y):[y])}),i.pop()}}if(!ot.isObject(e))throw new TypeError("data must be an object");return a(e),t}function Wd(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function nf(e,t){this._pairs=[],e&&vc(e,this,t)}const zy=nf.prototype;zy.append=function(t,n){this._pairs.push([t,n])};zy.toString=function(t){const n=t?function(r){return t.call(this,r,Wd)}:Wd;return this._pairs.map(function(f){return n(f[0])+"="+n(f[1])},"").join("&")};function eQ(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Yy(e,t,n){if(!t)return e;const r=n&&n.encode||eQ;ot.isFunction(n)&&(n={serialize:n});const f=n&&n.serialize;let p;if(f?p=f(t,n):p=ot.isURLSearchParams(t)?t.toString():new nf(t,n).toString(r),p){const v=e.indexOf("#");v!==-1&&(e=e.slice(0,v)),e+=(e.indexOf("?")===-1?"?":"&")+p}return e}class qd{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){ot.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Wy={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},nQ=typeof URLSearchParams<"u"?URLSearchParams:nf,rQ=typeof FormData<"u"?FormData:null,iQ=typeof Blob<"u"?Blob:null,oQ={isBrowser:!0,classes:{URLSearchParams:nQ,FormData:rQ,Blob:iQ},protocols:["http","https","file","blob","url","data"]},rf=typeof window<"u"&&typeof document<"u",ku=typeof navigator=="object"&&navigator||void 0,sQ=rf&&(!ku||["ReactNative","NativeScript","NS"].indexOf(ku.product)<0),aQ=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",cQ=rf&&window.location.href||"http://localhost",lQ=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:rf,hasStandardBrowserEnv:sQ,hasStandardBrowserWebWorkerEnv:aQ,navigator:ku,origin:cQ},Symbol.toStringTag,{value:"Module"})),fe={...lQ,...oQ};function uQ(e,t){return vc(e,new fe.classes.URLSearchParams,{visitor:function(n,r,f,p){return fe.isNode&&ot.isBuffer(n)?(this.append(r,n.toString("base64")),!1):p.defaultVisitor.apply(this,arguments)},...t})}function hQ(e){return ot.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function fQ(e){const t={},n=Object.keys(e);let r;const f=n.length;let p;for(r=0;r<f;r++)p=n[r],t[p]=e[p];return t}function qy(e){function t(n,r,f,p){let v=n[p++];if(v==="__proto__")return!0;const u=Number.isFinite(+v),o=p>=n.length;return v=!v&&ot.isArray(f)?f.length:v,o?(ot.hasOwnProp(f,v)?f[v]=[f[v],r]:f[v]=r,!u):((!f[v]||!ot.isObject(f[v]))&&(f[v]=[]),t(n,r,f[v],p)&&ot.isArray(f[v])&&(f[v]=fQ(f[v])),!u)}if(ot.isFormData(e)&&ot.isFunction(e.entries)){const n={};return ot.forEachEntry(e,(r,f)=>{t(hQ(r),f,n,0)}),n}return null}function dQ(e,t,n){if(ot.isString(e))try{return(t||JSON.parse)(e),ot.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const oo={transitional:Wy,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",f=r.indexOf("application/json")>-1,p=ot.isObject(t);if(p&&ot.isHTMLForm(t)&&(t=new FormData(t)),ot.isFormData(t))return f?JSON.stringify(qy(t)):t;if(ot.isArrayBuffer(t)||ot.isBuffer(t)||ot.isStream(t)||ot.isFile(t)||ot.isBlob(t)||ot.isReadableStream(t))return t;if(ot.isArrayBufferView(t))return t.buffer;if(ot.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let u;if(p){if(r.indexOf("application/x-www-form-urlencoded")>-1)return uQ(t,this.formSerializer).toString();if((u=ot.isFileList(t))||r.indexOf("multipart/form-data")>-1){const o=this.env&&this.env.FormData;return vc(u?{"files[]":t}:t,o&&new o,this.formSerializer)}}return p||f?(n.setContentType("application/json",!1),dQ(t)):t}],transformResponse:[function(t){const n=this.transitional||oo.transitional,r=n&&n.forcedJSONParsing,f=this.responseType==="json";if(ot.isResponse(t)||ot.isReadableStream(t))return t;if(t&&ot.isString(t)&&(r&&!this.responseType||f)){const v=!(n&&n.silentJSONParsing)&&f;try{return JSON.parse(t,this.parseReviver)}catch(u){if(v)throw u.name==="SyntaxError"?Ct.from(u,Ct.ERR_BAD_RESPONSE,this,null,this.response):u}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:fe.classes.FormData,Blob:fe.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ot.forEach(["delete","get","head","post","put","patch"],e=>{oo.headers[e]={}});const gQ=ot.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),pQ=e=>{const t={};let n,r,f;return e&&e.split(`
461
+ `).forEach(function(v){f=v.indexOf(":"),n=v.substring(0,f).trim().toLowerCase(),r=v.substring(f+1).trim(),!(!n||t[n]&&gQ[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},Xd=Symbol("internals");function hi(e){return e&&String(e).trim().toLowerCase()}function fs(e){return e===!1||e==null?e:ot.isArray(e)?e.map(fs):String(e)}function AQ(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const vQ=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Zc(e,t,n,r,f){if(ot.isFunction(r))return r.call(this,t,n);if(f&&(t=n),!!ot.isString(t)){if(ot.isString(r))return t.indexOf(r)!==-1;if(ot.isRegExp(r))return r.test(t)}}function yQ(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function mQ(e,t){const n=ot.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(f,p,v){return this[r].call(this,t,f,p,v)},configurable:!0})})}let Be=class{constructor(t){t&&this.set(t)}set(t,n,r){const f=this;function p(u,o,s){const c=hi(o);if(!c)throw new Error("header name must be a non-empty string");const i=ot.findKey(f,c);(!i||f[i]===void 0||s===!0||s===void 0&&f[i]!==!1)&&(f[i||o]=fs(u))}const v=(u,o)=>ot.forEach(u,(s,c)=>p(s,c,o));if(ot.isPlainObject(t)||t instanceof this.constructor)v(t,n);else if(ot.isString(t)&&(t=t.trim())&&!vQ(t))v(pQ(t),n);else if(ot.isObject(t)&&ot.isIterable(t)){let u={},o,s;for(const c of t){if(!ot.isArray(c))throw TypeError("Object iterator must return a key-value pair");u[s=c[0]]=(o=u[s])?ot.isArray(o)?[...o,c[1]]:[o,c[1]]:c[1]}v(u,n)}else t!=null&&p(n,t,r);return this}get(t,n){if(t=hi(t),t){const r=ot.findKey(this,t);if(r){const f=this[r];if(!n)return f;if(n===!0)return AQ(f);if(ot.isFunction(n))return n.call(this,f,r);if(ot.isRegExp(n))return n.exec(f);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=hi(t),t){const r=ot.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Zc(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let f=!1;function p(v){if(v=hi(v),v){const u=ot.findKey(r,v);u&&(!n||Zc(r,r[u],u,n))&&(delete r[u],f=!0)}}return ot.isArray(t)?t.forEach(p):p(t),f}clear(t){const n=Object.keys(this);let r=n.length,f=!1;for(;r--;){const p=n[r];(!t||Zc(this,this[p],p,t,!0))&&(delete this[p],f=!0)}return f}normalize(t){const n=this,r={};return ot.forEach(this,(f,p)=>{const v=ot.findKey(r,p);if(v){n[v]=fs(f),delete n[p];return}const u=t?yQ(p):String(p).trim();u!==p&&delete n[p],n[u]=fs(f),r[u]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return ot.forEach(this,(r,f)=>{r!=null&&r!==!1&&(n[f]=t&&ot.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(`
462
+ `)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(f=>r.set(f)),r}static accessor(t){const r=(this[Xd]=this[Xd]={accessors:{}}).accessors,f=this.prototype;function p(v){const u=hi(v);r[u]||(mQ(f,v),r[u]=!0)}return ot.isArray(t)?t.forEach(p):p(t),this}};Be.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);ot.reduceDescriptors(Be.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});ot.freezeMethods(Be);function tl(e,t){const n=this||oo,r=t||n,f=Be.from(r.headers);let p=r.data;return ot.forEach(e,function(u){p=u.call(n,p,f.normalize(),t?t.status:void 0)}),f.normalize(),p}function Xy(e){return!!(e&&e.__CANCEL__)}function ri(e,t,n){Ct.call(this,e??"canceled",Ct.ERR_CANCELED,t,n),this.name="CanceledError"}ot.inherits(ri,Ct,{__CANCEL__:!0});function Vy(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Ct("Request failed with status code "+n.status,[Ct.ERR_BAD_REQUEST,Ct.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function _Q(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function bQ(e,t){e=e||10;const n=new Array(e),r=new Array(e);let f=0,p=0,v;return t=t!==void 0?t:1e3,function(o){const s=Date.now(),c=r[p];v||(v=s),n[f]=o,r[f]=s;let i=p,l=0;for(;i!==f;)l+=n[i++],i=i%e;if(f=(f+1)%e,f===p&&(p=(p+1)%e),s-v<t)return;const a=c&&s-c;return a?Math.round(l*1e3/a):void 0}}function wQ(e,t){let n=0,r=1e3/t,f,p;const v=(s,c=Date.now())=>{n=c,f=null,p&&(clearTimeout(p),p=null),e(...s)};return[(...s)=>{const c=Date.now(),i=c-n;i>=r?v(s,c):(f=s,p||(p=setTimeout(()=>{p=null,v(f)},r-i)))},()=>f&&v(f)]}const Vs=(e,t,n=3)=>{let r=0;const f=bQ(50,250);return wQ(p=>{const v=p.loaded,u=p.lengthComputable?p.total:void 0,o=v-r,s=f(o),c=v<=u;r=v;const i={loaded:v,total:u,progress:u?v/u:void 0,bytes:o,rate:s||void 0,estimated:s&&u&&c?(u-v)/s:void 0,event:p,lengthComputable:u!=null,[t?"download":"upload"]:!0};e(i)},n)},Vd=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Jd=e=>(...t)=>ot.asap(()=>e(...t)),CQ=fe.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,fe.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(fe.origin),fe.navigator&&/(msie|trident)/i.test(fe.navigator.userAgent)):()=>!0,EQ=fe.hasStandardBrowserEnv?{write(e,t,n,r,f,p,v){if(typeof document>"u")return;const u=[`${e}=${encodeURIComponent(t)}`];ot.isNumber(n)&&u.push(`expires=${new Date(n).toUTCString()}`),ot.isString(r)&&u.push(`path=${r}`),ot.isString(f)&&u.push(`domain=${f}`),p===!0&&u.push("secure"),ot.isString(v)&&u.push(`SameSite=${v}`),document.cookie=u.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function SQ(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function xQ(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Jy(e,t,n){let r=!SQ(t);return e&&(r||n==!1)?xQ(e,t):t}const Kd=e=>e instanceof Be?{...e}:e;function yr(e,t){t=t||{};const n={};function r(s,c,i,l){return ot.isPlainObject(s)&&ot.isPlainObject(c)?ot.merge.call({caseless:l},s,c):ot.isPlainObject(c)?ot.merge({},c):ot.isArray(c)?c.slice():c}function f(s,c,i,l){if(ot.isUndefined(c)){if(!ot.isUndefined(s))return r(void 0,s,i,l)}else return r(s,c,i,l)}function p(s,c){if(!ot.isUndefined(c))return r(void 0,c)}function v(s,c){if(ot.isUndefined(c)){if(!ot.isUndefined(s))return r(void 0,s)}else return r(void 0,c)}function u(s,c,i){if(i in t)return r(s,c);if(i in e)return r(void 0,s)}const o={url:p,method:p,data:p,baseURL:v,transformRequest:v,transformResponse:v,paramsSerializer:v,timeout:v,timeoutMessage:v,withCredentials:v,withXSRFToken:v,adapter:v,responseType:v,xsrfCookieName:v,xsrfHeaderName:v,onUploadProgress:v,onDownloadProgress:v,decompress:v,maxContentLength:v,maxBodyLength:v,beforeRedirect:v,transport:v,httpAgent:v,httpsAgent:v,cancelToken:v,socketPath:v,responseEncoding:v,validateStatus:u,headers:(s,c,i)=>f(Kd(s),Kd(c),i,!0)};return ot.forEach(Object.keys({...e,...t}),function(c){const i=o[c]||f,l=i(e[c],t[c],c);ot.isUndefined(l)&&i!==u||(n[c]=l)}),n}const Ky=e=>{const t=yr({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:f,xsrfCookieName:p,headers:v,auth:u}=t;if(t.headers=v=Be.from(v),t.url=Yy(Jy(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),u&&v.set("Authorization","Basic "+btoa((u.username||"")+":"+(u.password?unescape(encodeURIComponent(u.password)):""))),ot.isFormData(n)){if(fe.hasStandardBrowserEnv||fe.hasStandardBrowserWebWorkerEnv)v.setContentType(void 0);else if(ot.isFunction(n.getHeaders)){const o=n.getHeaders(),s=["content-type","content-length"];Object.entries(o).forEach(([c,i])=>{s.includes(c.toLowerCase())&&v.set(c,i)})}}if(fe.hasStandardBrowserEnv&&(r&&ot.isFunction(r)&&(r=r(t)),r||r!==!1&&CQ(t.url))){const o=f&&p&&EQ.read(p);o&&v.set(f,o)}return t},IQ=typeof XMLHttpRequest<"u",OQ=IQ&&function(e){return new Promise(function(n,r){const f=Ky(e);let p=f.data;const v=Be.from(f.headers).normalize();let{responseType:u,onUploadProgress:o,onDownloadProgress:s}=f,c,i,l,a,h;function g(){a&&a(),h&&h(),f.cancelToken&&f.cancelToken.unsubscribe(c),f.signal&&f.signal.removeEventListener("abort",c)}let d=new XMLHttpRequest;d.open(f.method.toUpperCase(),f.url,!0),d.timeout=f.timeout;function A(){if(!d)return;const m=Be.from("getAllResponseHeaders"in d&&d.getAllResponseHeaders()),w={data:!u||u==="text"||u==="json"?d.responseText:d.response,status:d.status,statusText:d.statusText,headers:m,config:e,request:d};Vy(function(O){n(O),g()},function(O){r(O),g()},w),d=null}"onloadend"in d?d.onloadend=A:d.onreadystatechange=function(){!d||d.readyState!==4||d.status===0&&!(d.responseURL&&d.responseURL.indexOf("file:")===0)||setTimeout(A)},d.onabort=function(){d&&(r(new Ct("Request aborted",Ct.ECONNABORTED,e,d)),d=null)},d.onerror=function(_){const w=_&&_.message?_.message:"Network Error",S=new Ct(w,Ct.ERR_NETWORK,e,d);S.event=_||null,r(S),d=null},d.ontimeout=function(){let _=f.timeout?"timeout of "+f.timeout+"ms exceeded":"timeout exceeded";const w=f.transitional||Wy;f.timeoutErrorMessage&&(_=f.timeoutErrorMessage),r(new Ct(_,w.clarifyTimeoutError?Ct.ETIMEDOUT:Ct.ECONNABORTED,e,d)),d=null},p===void 0&&v.setContentType(null),"setRequestHeader"in d&&ot.forEach(v.toJSON(),function(_,w){d.setRequestHeader(w,_)}),ot.isUndefined(f.withCredentials)||(d.withCredentials=!!f.withCredentials),u&&u!=="json"&&(d.responseType=f.responseType),s&&([l,h]=Vs(s,!0),d.addEventListener("progress",l)),o&&d.upload&&([i,a]=Vs(o),d.upload.addEventListener("progress",i),d.upload.addEventListener("loadend",a)),(f.cancelToken||f.signal)&&(c=m=>{d&&(r(!m||m.type?new ri(null,e,d):m),d.abort(),d=null)},f.cancelToken&&f.cancelToken.subscribe(c),f.signal&&(f.signal.aborted?c():f.signal.addEventListener("abort",c)));const y=_Q(f.url);if(y&&fe.protocols.indexOf(y)===-1){r(new Ct("Unsupported protocol "+y+":",Ct.ERR_BAD_REQUEST,e));return}d.send(p||null)})},BQ=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,f;const p=function(s){if(!f){f=!0,u();const c=s instanceof Error?s:this.reason;r.abort(c instanceof Ct?c:new ri(c instanceof Error?c.message:c))}};let v=t&&setTimeout(()=>{v=null,p(new Ct(`timeout ${t} of ms exceeded`,Ct.ETIMEDOUT))},t);const u=()=>{e&&(v&&clearTimeout(v),v=null,e.forEach(s=>{s.unsubscribe?s.unsubscribe(p):s.removeEventListener("abort",p)}),e=null)};e.forEach(s=>s.addEventListener("abort",p));const{signal:o}=r;return o.unsubscribe=()=>ot.asap(u),o}},TQ=function*(e,t){let n=e.byteLength;if(n<t){yield e;return}let r=0,f;for(;r<n;)f=r+t,yield e.slice(r,f),r=f},kQ=async function*(e,t){for await(const n of DQ(e))yield*TQ(n,t)},DQ=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}const t=e.getReader();try{for(;;){const{done:n,value:r}=await t.read();if(n)break;yield r}}finally{await t.cancel()}},Zd=(e,t,n,r)=>{const f=kQ(e,t);let p=0,v,u=o=>{v||(v=!0,r&&r(o))};return new ReadableStream({async pull(o){try{const{done:s,value:c}=await f.next();if(s){u(),o.close();return}let i=c.byteLength;if(n){let l=p+=i;n(l)}o.enqueue(new Uint8Array(c))}catch(s){throw u(s),s}},cancel(o){return u(o),f.return()}},{highWaterMark:2})},tg=64*1024,{isFunction:wo}=ot,RQ=(({Request:e,Response:t})=>({Request:e,Response:t}))(ot.global),{ReadableStream:eg,TextEncoder:ng}=ot.global,rg=(e,...t)=>{try{return!!e(...t)}catch{return!1}},MQ=e=>{e=ot.merge.call({skipUndefined:!0},RQ,e);const{fetch:t,Request:n,Response:r}=e,f=t?wo(t):typeof fetch=="function",p=wo(n),v=wo(r);if(!f)return!1;const u=f&&wo(eg),o=f&&(typeof ng=="function"?(h=>g=>h.encode(g))(new ng):async h=>new Uint8Array(await new n(h).arrayBuffer())),s=p&&u&&rg(()=>{let h=!1;const g=new n(fe.origin,{body:new eg,method:"POST",get duplex(){return h=!0,"half"}}).headers.has("Content-Type");return h&&!g}),c=v&&u&&rg(()=>ot.isReadableStream(new r("").body)),i={stream:c&&(h=>h.body)};f&&["text","arrayBuffer","blob","formData","stream"].forEach(h=>{!i[h]&&(i[h]=(g,d)=>{let A=g&&g[h];if(A)return A.call(g);throw new Ct(`Response type '${h}' is not supported`,Ct.ERR_NOT_SUPPORT,d)})});const l=async h=>{if(h==null)return 0;if(ot.isBlob(h))return h.size;if(ot.isSpecCompliantForm(h))return(await new n(fe.origin,{method:"POST",body:h}).arrayBuffer()).byteLength;if(ot.isArrayBufferView(h)||ot.isArrayBuffer(h))return h.byteLength;if(ot.isURLSearchParams(h)&&(h=h+""),ot.isString(h))return(await o(h)).byteLength},a=async(h,g)=>{const d=ot.toFiniteNumber(h.getContentLength());return d??l(g)};return async h=>{let{url:g,method:d,data:A,signal:y,cancelToken:m,timeout:_,onDownloadProgress:w,onUploadProgress:S,responseType:O,headers:P,withCredentials:N="same-origin",fetchOptions:q}=Ky(h),Z=t||fetch;O=O?(O+"").toLowerCase():"text";let K=BQ([y,m&&m.toAbortSignal()],_),rt=null;const $=K&&K.unsubscribe&&(()=>{K.unsubscribe()});let U;try{if(S&&s&&d!=="get"&&d!=="head"&&(U=await a(P,A))!==0){let E=new n(g,{method:"POST",body:A,duplex:"half"}),I;if(ot.isFormData(A)&&(I=E.headers.get("content-type"))&&P.setContentType(I),E.body){const[M,k]=Vd(U,Vs(Jd(S)));A=Zd(E.body,tg,M,k)}}ot.isString(N)||(N=N?"include":"omit");const j=p&&"credentials"in n.prototype,B={...q,signal:K,method:d.toUpperCase(),headers:P.normalize().toJSON(),body:A,duplex:"half",credentials:j?N:void 0};rt=p&&new n(g,B);let x=await(p?Z(rt,q):Z(g,B));const b=c&&(O==="stream"||O==="response");if(c&&(w||b&&$)){const E={};["status","statusText","headers"].forEach(T=>{E[T]=x[T]});const I=ot.toFiniteNumber(x.headers.get("content-length")),[M,k]=w&&Vd(I,Vs(Jd(w),!0))||[];x=new r(Zd(x.body,tg,M,()=>{k&&k(),$&&$()}),E)}O=O||"text";let C=await i[ot.findKey(i,O)||"text"](x,h);return!b&&$&&$(),await new Promise((E,I)=>{Vy(E,I,{data:C,headers:Be.from(x.headers),status:x.status,statusText:x.statusText,config:h,request:rt})})}catch(j){throw $&&$(),j&&j.name==="TypeError"&&/Load failed|fetch/i.test(j.message)?Object.assign(new Ct("Network Error",Ct.ERR_NETWORK,h,rt),{cause:j.cause||j}):Ct.from(j,j&&j.code,h,rt)}}},PQ=new Map,Zy=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:f}=t,p=[r,f,n];let v=p.length,u=v,o,s,c=PQ;for(;u--;)o=p[u],s=c.get(o),s===void 0&&c.set(o,s=u?new Map:MQ(t)),c=s;return s};Zy();const of={http:KP,xhr:OQ,fetch:{get:Zy}};ot.forEach(of,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const ig=e=>`- ${e}`,QQ=e=>ot.isFunction(e)||e===null||e===!1;function FQ(e,t){e=ot.isArray(e)?e:[e];const{length:n}=e;let r,f;const p={};for(let v=0;v<n;v++){r=e[v];let u;if(f=r,!QQ(r)&&(f=of[(u=String(r)).toLowerCase()],f===void 0))throw new Ct(`Unknown adapter '${u}'`);if(f&&(ot.isFunction(f)||(f=f.get(t))))break;p[u||"#"+v]=f}if(!f){const v=Object.entries(p).map(([o,s])=>`adapter ${o} `+(s===!1?"is not supported by the environment":"is not available in the build"));let u=n?v.length>1?`since :
463
+ `+v.map(ig).join(`
464
+ `):" "+ig(v[0]):"as no adapter specified";throw new Ct("There is no suitable adapter to dispatch the request "+u,"ERR_NOT_SUPPORT")}return f}const tm={getAdapter:FQ,adapters:of};function el(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ri(null,e)}function og(e){return el(e),e.headers=Be.from(e.headers),e.data=tl.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),tm.getAdapter(e.adapter||oo.adapter,e)(e).then(function(r){return el(e),r.data=tl.call(e,e.transformResponse,r),r.headers=Be.from(r.headers),r},function(r){return Xy(r)||(el(e),r&&r.response&&(r.response.data=tl.call(e,e.transformResponse,r.response),r.response.headers=Be.from(r.response.headers))),Promise.reject(r)})}const em="1.13.2",yc={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{yc[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const sg={};yc.transitional=function(t,n,r){function f(p,v){return"[Axios v"+em+"] Transitional option '"+p+"'"+v+(r?". "+r:"")}return(p,v,u)=>{if(t===!1)throw new Ct(f(v," has been removed"+(n?" in "+n:"")),Ct.ERR_DEPRECATED);return n&&!sg[v]&&(sg[v]=!0,console.warn(f(v," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(p,v,u):!0}};yc.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function LQ(e,t,n){if(typeof e!="object")throw new Ct("options must be an object",Ct.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let f=r.length;for(;f-- >0;){const p=r[f],v=t[p];if(v){const u=e[p],o=u===void 0||v(u,p,e);if(o!==!0)throw new Ct("option "+p+" must be "+o,Ct.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Ct("Unknown option "+p,Ct.ERR_BAD_OPTION)}}const ds={assertOptions:LQ,validators:yc},hn=ds.validators;let gr=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qd,response:new qd}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let f={};Error.captureStackTrace?Error.captureStackTrace(f):f=new Error;const p=f.stack?f.stack.replace(/^.+\n/,""):"";try{r.stack?p&&!String(r.stack).endsWith(p.replace(/^.+\n.+\n/,""))&&(r.stack+=`
465
+ `+p):r.stack=p}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=yr(this.defaults,n);const{transitional:r,paramsSerializer:f,headers:p}=n;r!==void 0&&ds.assertOptions(r,{silentJSONParsing:hn.transitional(hn.boolean),forcedJSONParsing:hn.transitional(hn.boolean),clarifyTimeoutError:hn.transitional(hn.boolean)},!1),f!=null&&(ot.isFunction(f)?n.paramsSerializer={serialize:f}:ds.assertOptions(f,{encode:hn.function,serialize:hn.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),ds.assertOptions(n,{baseUrl:hn.spelling("baseURL"),withXsrfToken:hn.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let v=p&&ot.merge(p.common,p[n.method]);p&&ot.forEach(["delete","get","head","post","put","patch","common"],h=>{delete p[h]}),n.headers=Be.concat(v,p);const u=[];let o=!0;this.interceptors.request.forEach(function(g){typeof g.runWhen=="function"&&g.runWhen(n)===!1||(o=o&&g.synchronous,u.unshift(g.fulfilled,g.rejected))});const s=[];this.interceptors.response.forEach(function(g){s.push(g.fulfilled,g.rejected)});let c,i=0,l;if(!o){const h=[og.bind(this),void 0];for(h.unshift(...u),h.push(...s),l=h.length,c=Promise.resolve(n);i<l;)c=c.then(h[i++],h[i++]);return c}l=u.length;let a=n;for(;i<l;){const h=u[i++],g=u[i++];try{a=h(a)}catch(d){g.call(this,d);break}}try{c=og.call(this,a)}catch(h){return Promise.reject(h)}for(i=0,l=s.length;i<l;)c=c.then(s[i++],s[i++]);return c}getUri(t){t=yr(this.defaults,t);const n=Jy(t.baseURL,t.url,t.allowAbsoluteUrls);return Yy(n,t.params,t.paramsSerializer)}};ot.forEach(["delete","get","head","options"],function(t){gr.prototype[t]=function(n,r){return this.request(yr(r||{},{method:t,url:n,data:(r||{}).data}))}});ot.forEach(["post","put","patch"],function(t){function n(r){return function(p,v,u){return this.request(yr(u||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:p,data:v}))}}gr.prototype[t]=n(),gr.prototype[t+"Form"]=n(!0)});let jQ=class nm{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(p){n=p});const r=this;this.promise.then(f=>{if(!r._listeners)return;let p=r._listeners.length;for(;p-- >0;)r._listeners[p](f);r._listeners=null}),this.promise.then=f=>{let p;const v=new Promise(u=>{r.subscribe(u),p=u}).then(f);return v.cancel=function(){r.unsubscribe(p)},v},t(function(p,v,u){r.reason||(r.reason=new ri(p,v,u),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nm(function(f){t=f}),cancel:t}}};function NQ(e){return function(n){return e.apply(null,n)}}function UQ(e){return ot.isObject(e)&&e.isAxiosError===!0}const Du={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Du).forEach(([e,t])=>{Du[t]=e});function rm(e){const t=new gr(e),n=My(gr.prototype.request,t);return ot.extend(n,gr.prototype,t,{allOwnKeys:!0}),ot.extend(n,t,null,{allOwnKeys:!0}),n.create=function(f){return rm(yr(e,f))},n}const Lt=rm(oo);Lt.Axios=gr;Lt.CanceledError=ri;Lt.CancelToken=jQ;Lt.isCancel=Xy;Lt.VERSION=em;Lt.toFormData=vc;Lt.AxiosError=Ct;Lt.Cancel=Lt.CanceledError;Lt.all=function(t){return Promise.all(t)};Lt.spread=NQ;Lt.isAxiosError=UQ;Lt.mergeConfig=yr;Lt.AxiosHeaders=Be;Lt.formToJSON=e=>qy(ot.isHTMLForm(e)?new FormData(e):e);Lt.getAdapter=tm.getAdapter;Lt.HttpStatusCode=Du;Lt.default=Lt;const{Axios:J3,AxiosError:K3,CanceledError:Z3,isCancel:t5,CancelToken:e5,VERSION:n5,all:r5,Cancel:i5,isAxiosError:o5,spread:s5,toFormData:a5,AxiosHeaders:c5,HttpStatusCode:l5,formToJSON:u5,getAdapter:h5,mergeConfig:f5}=Lt;var ag=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function mc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function GQ(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if(typeof t=="function"){var n=function r(){var f=!1;try{f=this instanceof r}catch{}return f?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var f=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,f.get?f:{enumerable:!0,get:function(){return e[r]}})}),n}var nl,cg;function ii(){return cg||(cg=1,nl=TypeError),nl}const $Q={},HQ=Object.freeze(Object.defineProperty({__proto__:null,default:$Q},Symbol.toStringTag,{value:"Module"})),zQ=GQ(HQ);var rl,lg;function _c(){if(lg)return rl;lg=1;var e=typeof Map=="function"&&Map.prototype,t=Object.getOwnPropertyDescriptor&&e?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,n=e&&t&&typeof t.get=="function"?t.get:null,r=e&&Map.prototype.forEach,f=typeof Set=="function"&&Set.prototype,p=Object.getOwnPropertyDescriptor&&f?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,v=f&&p&&typeof p.get=="function"?p.get:null,u=f&&Set.prototype.forEach,o=typeof WeakMap=="function"&&WeakMap.prototype,s=o?WeakMap.prototype.has:null,c=typeof WeakSet=="function"&&WeakSet.prototype,i=c?WeakSet.prototype.has:null,l=typeof WeakRef=="function"&&WeakRef.prototype,a=l?WeakRef.prototype.deref:null,h=Boolean.prototype.valueOf,g=Object.prototype.toString,d=Function.prototype.toString,A=String.prototype.match,y=String.prototype.slice,m=String.prototype.replace,_=String.prototype.toUpperCase,w=String.prototype.toLowerCase,S=RegExp.prototype.test,O=Array.prototype.concat,P=Array.prototype.join,N=Array.prototype.slice,q=Math.floor,Z=typeof BigInt=="function"?BigInt.prototype.valueOf:null,K=Object.getOwnPropertySymbols,rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,$=typeof Symbol=="function"&&typeof Symbol.iterator=="object",U=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===$||!0)?Symbol.toStringTag:null,j=Object.prototype.propertyIsEnumerable,B=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(nt){return nt.__proto__}:null);function x(nt,st){if(nt===1/0||nt===-1/0||nt!==nt||nt&&nt>-1e3&&nt<1e3||S.call(/e/,st))return st;var kt=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof nt=="number"){var Nt=nt<0?-q(-nt):q(nt);if(Nt!==nt){var $t=String(Nt),xt=y.call(st,$t.length+1);return m.call($t,kt,"$&_")+"."+m.call(m.call(xt,/([0-9]{3})/g,"$&_"),/_$/,"")}}return m.call(st,kt,"$&_")}var b=zQ,C=b.custom,E=D(C)?C:null,I={__proto__:null,double:'"',single:"'"},M={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};rl=function nt(st,kt,Nt,$t){var xt=kt||{};if(X(xt,"quoteStyle")&&!X(I,xt.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(X(xt,"maxStringLength")&&(typeof xt.maxStringLength=="number"?xt.maxStringLength<0&&xt.maxStringLength!==1/0:xt.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var jn=X(xt,"customInspect")?xt.customInspect:!0;if(typeof jn!="boolean"&&jn!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(X(xt,"indent")&&xt.indent!==null&&xt.indent!==" "&&!(parseInt(xt.indent,10)===xt.indent&&xt.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(X(xt,"numericSeparator")&&typeof xt.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var sr=xt.numericSeparator;if(typeof st>"u")return"undefined";if(st===null)return"null";if(typeof st=="boolean")return st?"true":"false";if(typeof st=="string")return ht(st,xt);if(typeof st=="number"){if(st===0)return 1/0/st>0?"0":"-0";var Re=String(st);return sr?x(st,Re):Re}if(typeof st=="bigint"){var Nn=String(st)+"n";return sr?x(st,Nn):Nn}var Bc=typeof xt.depth>"u"?5:xt.depth;if(typeof Nt>"u"&&(Nt=0),Nt>=Bc&&Bc>0&&typeof st=="object")return H(st)?"[Array]":"[Object]";var Cr=te(xt,Nt);if(typeof $t>"u")$t=[];else if(lt($t,st)>=0)return"[Circular]";function tn(Er,ho,a1){if(ho&&($t=N.call($t),$t.push(ho)),a1){var kf={depth:xt.depth};return X(xt,"quoteStyle")&&(kf.quoteStyle=xt.quoteStyle),nt(Er,kf,Nt+1,$t)}return nt(Er,xt,Nt+1,$t)}if(typeof st=="function"&&!W(st)){var Ef=at(st),Sf=Ge(st,tn);return"[Function"+(Ef?": "+Ef:" (anonymous)")+"]"+(Sf.length>0?" { "+P.call(Sf,", ")+" }":"")}if(D(st)){var xf=$?m.call(String(st),/^(Symbol\(.*\))_[^)]*$/,"$1"):rt.call(st);return typeof st=="object"&&!$?yt(xf):xf}if(pt(st)){for(var si="<"+w.call(String(st.nodeName)),Tc=st.attributes||[],uo=0;uo<Tc.length;uo++)si+=" "+Tc[uo].name+"="+k(T(Tc[uo].value),"double",xt);return si+=">",st.childNodes&&st.childNodes.length&&(si+="..."),si+="</"+w.call(String(st.nodeName))+">",si}if(H(st)){if(st.length===0)return"[]";var kc=Ge(st,tn);return Cr&&!Ft(kc)?"["+Ze(kc,Cr)+"]":"[ "+P.call(kc,", ")+" ]"}if(J(st)){var Dc=Ge(st,tn);return!("cause"in Error.prototype)&&"cause"in st&&!j.call(st,"cause")?"{ ["+String(st)+"] "+P.call(O.call("[cause]: "+tn(st.cause),Dc),", ")+" }":Dc.length===0?"["+String(st)+"]":"{ ["+String(st)+"] "+P.call(Dc,", ")+" }"}if(typeof st=="object"&&jn){if(E&&typeof st[E]=="function"&&b)return b(st,{depth:Bc-Nt});if(jn!=="symbol"&&typeof st.inspect=="function")return st.inspect()}if(ct(st)){var If=[];return r&&r.call(st,function(Er,ho){If.push(tn(ho,st,!0)+" => "+tn(Er,st))}),Yt("Map",n.call(st),If,Cr)}if(ft(st)){var Of=[];return u&&u.call(st,function(Er){Of.push(tn(Er,st))}),Yt("Set",v.call(st),Of,Cr)}if(it(st))return At("WeakMap");if(dt(st))return At("WeakSet");if(ut(st))return At("WeakRef");if(F(st))return yt(tn(Number(st)));if(G(st))return yt(tn(Z.call(st)));if(L(st))return yt(h.call(st));if(tt(st))return yt(tn(String(st)));if(typeof window<"u"&&st===window)return"{ [object Window] }";if(typeof globalThis<"u"&&st===globalThis||typeof ag<"u"&&st===ag)return"{ [object globalThis] }";if(!Y(st)&&!W(st)){var Rc=Ge(st,tn),Bf=B?B(st)===Object.prototype:st instanceof Object||st.constructor===Object,Mc=st instanceof Object?"":"null prototype",Tf=!Bf&&U&&Object(st)===st&&U in st?y.call(et(st),8,-1):Mc?"Object":"",s1=Bf||typeof st.constructor!="function"?"":st.constructor.name?st.constructor.name+" ":"",Pc=s1+(Tf||Mc?"["+P.call(O.call([],Tf||[],Mc||[]),": ")+"] ":"");return Rc.length===0?Pc+"{}":Cr?Pc+"{"+Ze(Rc,Cr)+"}":Pc+"{ "+P.call(Rc,", ")+" }"}return String(st)};function k(nt,st,kt){var Nt=kt.quoteStyle||st,$t=I[Nt];return $t+nt+$t}function T(nt){return m.call(String(nt),/"/g,"&quot;")}function Q(nt){return!U||!(typeof nt=="object"&&(U in nt||typeof nt[U]<"u"))}function H(nt){return et(nt)==="[object Array]"&&Q(nt)}function Y(nt){return et(nt)==="[object Date]"&&Q(nt)}function W(nt){return et(nt)==="[object RegExp]"&&Q(nt)}function J(nt){return et(nt)==="[object Error]"&&Q(nt)}function tt(nt){return et(nt)==="[object String]"&&Q(nt)}function F(nt){return et(nt)==="[object Number]"&&Q(nt)}function L(nt){return et(nt)==="[object Boolean]"&&Q(nt)}function D(nt){if($)return nt&&typeof nt=="object"&&nt instanceof Symbol;if(typeof nt=="symbol")return!0;if(!nt||typeof nt!="object"||!rt)return!1;try{return rt.call(nt),!0}catch{}return!1}function G(nt){if(!nt||typeof nt!="object"||!Z)return!1;try{return Z.call(nt),!0}catch{}return!1}var z=Object.prototype.hasOwnProperty||function(nt){return nt in this};function X(nt,st){return z.call(nt,st)}function et(nt){return g.call(nt)}function at(nt){if(nt.name)return nt.name;var st=A.call(d.call(nt),/^function\s*([\w$]+)/);return st?st[1]:null}function lt(nt,st){if(nt.indexOf)return nt.indexOf(st);for(var kt=0,Nt=nt.length;kt<Nt;kt++)if(nt[kt]===st)return kt;return-1}function ct(nt){if(!n||!nt||typeof nt!="object")return!1;try{n.call(nt);try{v.call(nt)}catch{return!0}return nt instanceof Map}catch{}return!1}function it(nt){if(!s||!nt||typeof nt!="object")return!1;try{s.call(nt,s);try{i.call(nt,i)}catch{return!0}return nt instanceof WeakMap}catch{}return!1}function ut(nt){if(!a||!nt||typeof nt!="object")return!1;try{return a.call(nt),!0}catch{}return!1}function ft(nt){if(!v||!nt||typeof nt!="object")return!1;try{v.call(nt);try{n.call(nt)}catch{return!0}return nt instanceof Set}catch{}return!1}function dt(nt){if(!i||!nt||typeof nt!="object")return!1;try{i.call(nt,i);try{s.call(nt,s)}catch{return!0}return nt instanceof WeakSet}catch{}return!1}function pt(nt){return!nt||typeof nt!="object"?!1:typeof HTMLElement<"u"&&nt instanceof HTMLElement?!0:typeof nt.nodeName=="string"&&typeof nt.getAttribute=="function"}function ht(nt,st){if(nt.length>st.maxStringLength){var kt=nt.length-st.maxStringLength,Nt="... "+kt+" more character"+(kt>1?"s":"");return ht(y.call(nt,0,st.maxStringLength),st)+Nt}var $t=M[st.quoteStyle||"single"];$t.lastIndex=0;var xt=m.call(m.call(nt,$t,"\\$1"),/[\x00-\x1f]/g,Et);return k(xt,"single",st)}function Et(nt){var st=nt.charCodeAt(0),kt={8:"b",9:"t",10:"n",12:"f",13:"r"}[st];return kt?"\\"+kt:"\\x"+(st<16?"0":"")+_.call(st.toString(16))}function yt(nt){return"Object("+nt+")"}function At(nt){return nt+" { ? }"}function Yt(nt,st,kt,Nt){var $t=Nt?Ze(kt,Nt):P.call(kt,", ");return nt+" ("+st+") {"+$t+"}"}function Ft(nt){for(var st=0;st<nt.length;st++)if(lt(nt[st],`
466
+ `)>=0)return!1;return!0}function te(nt,st){var kt;if(nt.indent===" ")kt=" ";else if(typeof nt.indent=="number"&&nt.indent>0)kt=P.call(Array(nt.indent+1)," ");else return null;return{base:kt,prev:P.call(Array(st+1),kt)}}function Ze(nt,st){if(nt.length===0)return"";var kt=`
467
+ `+st.prev+st.base;return kt+P.call(nt,","+kt)+`
468
+ `+st.prev}function Ge(nt,st){var kt=H(nt),Nt=[];if(kt){Nt.length=nt.length;for(var $t=0;$t<nt.length;$t++)Nt[$t]=X(nt,$t)?st(nt[$t],nt):""}var xt=typeof K=="function"?K(nt):[],jn;if($){jn={};for(var sr=0;sr<xt.length;sr++)jn["$"+xt[sr]]=xt[sr]}for(var Re in nt)X(nt,Re)&&(kt&&String(Number(Re))===Re&&Re<nt.length||$&&jn["$"+Re]instanceof Symbol||(S.call(/[^\w$]/,Re)?Nt.push(st(Re,nt)+": "+st(nt[Re],nt)):Nt.push(Re+": "+st(nt[Re],nt))));if(typeof K=="function")for(var Nn=0;Nn<xt.length;Nn++)j.call(nt,xt[Nn])&&Nt.push("["+st(xt[Nn])+"]: "+st(nt[xt[Nn]],nt));return Nt}return rl}var il,ug;function YQ(){if(ug)return il;ug=1;var e=_c(),t=ii(),n=function(u,o,s){for(var c=u,i;(i=c.next)!=null;c=i)if(i.key===o)return c.next=i.next,s||(i.next=u.next,u.next=i),i},r=function(u,o){if(u){var s=n(u,o);return s&&s.value}},f=function(u,o,s){var c=n(u,o);c?c.value=s:u.next={key:o,next:u.next,value:s}},p=function(u,o){return u?!!n(u,o):!1},v=function(u,o){if(u)return n(u,o,!0)};return il=function(){var o,s={assert:function(c){if(!s.has(c))throw new t("Side channel does not contain "+e(c))},delete:function(c){var i=o&&o.next,l=v(o,c);return l&&i&&i===l&&(o=void 0),!!l},get:function(c){return r(o,c)},has:function(c){return p(o,c)},set:function(c,i){o||(o={next:void 0}),f(o,c,i)}};return s},il}var ol,hg;function im(){return hg||(hg=1,ol=Object),ol}var sl,fg;function WQ(){return fg||(fg=1,sl=Error),sl}var al,dg;function qQ(){return dg||(dg=1,al=EvalError),al}var cl,gg;function XQ(){return gg||(gg=1,cl=RangeError),cl}var ll,pg;function VQ(){return pg||(pg=1,ll=ReferenceError),ll}var ul,Ag;function JQ(){return Ag||(Ag=1,ul=SyntaxError),ul}var hl,vg;function KQ(){return vg||(vg=1,hl=URIError),hl}var fl,yg;function ZQ(){return yg||(yg=1,fl=Math.abs),fl}var dl,mg;function tF(){return mg||(mg=1,dl=Math.floor),dl}var gl,_g;function eF(){return _g||(_g=1,gl=Math.max),gl}var pl,bg;function nF(){return bg||(bg=1,pl=Math.min),pl}var Al,wg;function rF(){return wg||(wg=1,Al=Math.pow),Al}var vl,Cg;function iF(){return Cg||(Cg=1,vl=Math.round),vl}var yl,Eg;function oF(){return Eg||(Eg=1,yl=Number.isNaN||function(t){return t!==t}),yl}var ml,Sg;function sF(){if(Sg)return ml;Sg=1;var e=oF();return ml=function(n){return e(n)||n===0?n:n<0?-1:1},ml}var _l,xg;function aF(){return xg||(xg=1,_l=Object.getOwnPropertyDescriptor),_l}var bl,Ig;function om(){if(Ig)return bl;Ig=1;var e=aF();if(e)try{e([],"length")}catch{e=null}return bl=e,bl}var wl,Og;function cF(){if(Og)return wl;Og=1;var e=Object.defineProperty||!1;if(e)try{e({},"a",{value:1})}catch{e=!1}return wl=e,wl}var Cl,Bg;function lF(){return Bg||(Bg=1,Cl=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},n=Symbol("test"),r=Object(n);if(typeof n=="string"||Object.prototype.toString.call(n)!=="[object Symbol]"||Object.prototype.toString.call(r)!=="[object Symbol]")return!1;var f=42;t[n]=f;for(var p in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var v=Object.getOwnPropertySymbols(t);if(v.length!==1||v[0]!==n||!Object.prototype.propertyIsEnumerable.call(t,n))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var u=Object.getOwnPropertyDescriptor(t,n);if(u.value!==f||u.enumerable!==!0)return!1}return!0}),Cl}var El,Tg;function uF(){if(Tg)return El;Tg=1;var e=typeof Symbol<"u"&&Symbol,t=lF();return El=function(){return typeof e!="function"||typeof Symbol!="function"||typeof e("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:t()},El}var Sl,kg;function sm(){return kg||(kg=1,Sl=typeof Reflect<"u"&&Reflect.getPrototypeOf||null),Sl}var xl,Dg;function am(){if(Dg)return xl;Dg=1;var e=im();return xl=e.getPrototypeOf||null,xl}var Il,Rg;function hF(){if(Rg)return Il;Rg=1;var e="Function.prototype.bind called on incompatible ",t=Object.prototype.toString,n=Math.max,r="[object Function]",f=function(o,s){for(var c=[],i=0;i<o.length;i+=1)c[i]=o[i];for(var l=0;l<s.length;l+=1)c[l+o.length]=s[l];return c},p=function(o,s){for(var c=[],i=s,l=0;i<o.length;i+=1,l+=1)c[l]=o[i];return c},v=function(u,o){for(var s="",c=0;c<u.length;c+=1)s+=u[c],c+1<u.length&&(s+=o);return s};return Il=function(o){var s=this;if(typeof s!="function"||t.apply(s)!==r)throw new TypeError(e+s);for(var c=p(arguments,1),i,l=function(){if(this instanceof i){var A=s.apply(this,f(c,arguments));return Object(A)===A?A:this}return s.apply(o,f(c,arguments))},a=n(0,s.length-c.length),h=[],g=0;g<a;g++)h[g]="$"+g;if(i=Function("binder","return function ("+v(h,",")+"){ return binder.apply(this,arguments); }")(l),s.prototype){var d=function(){};d.prototype=s.prototype,i.prototype=new d,d.prototype=null}return i},Il}var Ol,Mg;function bc(){if(Mg)return Ol;Mg=1;var e=hF();return Ol=Function.prototype.bind||e,Ol}var Bl,Pg;function sf(){return Pg||(Pg=1,Bl=Function.prototype.call),Bl}var Tl,Qg;function cm(){return Qg||(Qg=1,Tl=Function.prototype.apply),Tl}var kl,Fg;function fF(){return Fg||(Fg=1,kl=typeof Reflect<"u"&&Reflect&&Reflect.apply),kl}var Dl,Lg;function dF(){if(Lg)return Dl;Lg=1;var e=bc(),t=cm(),n=sf(),r=fF();return Dl=r||e.call(n,t),Dl}var Rl,jg;function lm(){if(jg)return Rl;jg=1;var e=bc(),t=ii(),n=sf(),r=dF();return Rl=function(p){if(p.length<1||typeof p[0]!="function")throw new t("a function is required");return r(e,n,p)},Rl}var Ml,Ng;function gF(){if(Ng)return Ml;Ng=1;var e=lm(),t=om(),n;try{n=[].__proto__===Array.prototype}catch(v){if(!v||typeof v!="object"||!("code"in v)||v.code!=="ERR_PROTO_ACCESS")throw v}var r=!!n&&t&&t(Object.prototype,"__proto__"),f=Object,p=f.getPrototypeOf;return Ml=r&&typeof r.get=="function"?e([r.get]):typeof p=="function"?function(u){return p(u==null?u:f(u))}:!1,Ml}var Pl,Ug;function pF(){if(Ug)return Pl;Ug=1;var e=sm(),t=am(),n=gF();return Pl=e?function(f){return e(f)}:t?function(f){if(!f||typeof f!="object"&&typeof f!="function")throw new TypeError("getProto: not an object");return t(f)}:n?function(f){return n(f)}:null,Pl}var Ql,Gg;function AF(){if(Gg)return Ql;Gg=1;var e=Function.prototype.call,t=Object.prototype.hasOwnProperty,n=bc();return Ql=n.call(e,t),Ql}var Fl,$g;function af(){if($g)return Fl;$g=1;var e,t=im(),n=WQ(),r=qQ(),f=XQ(),p=VQ(),v=JQ(),u=ii(),o=KQ(),s=ZQ(),c=tF(),i=eF(),l=nF(),a=rF(),h=iF(),g=sF(),d=Function,A=function(W){try{return d('"use strict"; return ('+W+").constructor;")()}catch{}},y=om(),m=cF(),_=function(){throw new u},w=y?(function(){try{return arguments.callee,_}catch{try{return y(arguments,"callee").get}catch{return _}}})():_,S=uF()(),O=pF(),P=am(),N=sm(),q=cm(),Z=sf(),K={},rt=typeof Uint8Array>"u"||!O?e:O(Uint8Array),$={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?e:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?e:ArrayBuffer,"%ArrayIteratorPrototype%":S&&O?O([][Symbol.iterator]()):e,"%AsyncFromSyncIteratorPrototype%":e,"%AsyncFunction%":K,"%AsyncGenerator%":K,"%AsyncGeneratorFunction%":K,"%AsyncIteratorPrototype%":K,"%Atomics%":typeof Atomics>"u"?e:Atomics,"%BigInt%":typeof BigInt>"u"?e:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?e:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?e:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?e:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":n,"%eval%":eval,"%EvalError%":r,"%Float16Array%":typeof Float16Array>"u"?e:Float16Array,"%Float32Array%":typeof Float32Array>"u"?e:Float32Array,"%Float64Array%":typeof Float64Array>"u"?e:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?e:FinalizationRegistry,"%Function%":d,"%GeneratorFunction%":K,"%Int8Array%":typeof Int8Array>"u"?e:Int8Array,"%Int16Array%":typeof Int16Array>"u"?e:Int16Array,"%Int32Array%":typeof Int32Array>"u"?e:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":S&&O?O(O([][Symbol.iterator]())):e,"%JSON%":typeof JSON=="object"?JSON:e,"%Map%":typeof Map>"u"?e:Map,"%MapIteratorPrototype%":typeof Map>"u"||!S||!O?e:O(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":t,"%Object.getOwnPropertyDescriptor%":y,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?e:Promise,"%Proxy%":typeof Proxy>"u"?e:Proxy,"%RangeError%":f,"%ReferenceError%":p,"%Reflect%":typeof Reflect>"u"?e:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?e:Set,"%SetIteratorPrototype%":typeof Set>"u"||!S||!O?e:O(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?e:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":S&&O?O(""[Symbol.iterator]()):e,"%Symbol%":S?Symbol:e,"%SyntaxError%":v,"%ThrowTypeError%":w,"%TypedArray%":rt,"%TypeError%":u,"%Uint8Array%":typeof Uint8Array>"u"?e:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?e:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?e:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?e:Uint32Array,"%URIError%":o,"%WeakMap%":typeof WeakMap>"u"?e:WeakMap,"%WeakRef%":typeof WeakRef>"u"?e:WeakRef,"%WeakSet%":typeof WeakSet>"u"?e:WeakSet,"%Function.prototype.call%":Z,"%Function.prototype.apply%":q,"%Object.defineProperty%":m,"%Object.getPrototypeOf%":P,"%Math.abs%":s,"%Math.floor%":c,"%Math.max%":i,"%Math.min%":l,"%Math.pow%":a,"%Math.round%":h,"%Math.sign%":g,"%Reflect.getPrototypeOf%":N};if(O)try{null.error}catch(W){var U=O(O(W));$["%Error.prototype%"]=U}var j=function W(J){var tt;if(J==="%AsyncFunction%")tt=A("async function () {}");else if(J==="%GeneratorFunction%")tt=A("function* () {}");else if(J==="%AsyncGeneratorFunction%")tt=A("async function* () {}");else if(J==="%AsyncGenerator%"){var F=W("%AsyncGeneratorFunction%");F&&(tt=F.prototype)}else if(J==="%AsyncIteratorPrototype%"){var L=W("%AsyncGenerator%");L&&O&&(tt=O(L.prototype))}return $[J]=tt,tt},B={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},x=bc(),b=AF(),C=x.call(Z,Array.prototype.concat),E=x.call(q,Array.prototype.splice),I=x.call(Z,String.prototype.replace),M=x.call(Z,String.prototype.slice),k=x.call(Z,RegExp.prototype.exec),T=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,Q=/\\(\\)?/g,H=function(J){var tt=M(J,0,1),F=M(J,-1);if(tt==="%"&&F!=="%")throw new v("invalid intrinsic syntax, expected closing `%`");if(F==="%"&&tt!=="%")throw new v("invalid intrinsic syntax, expected opening `%`");var L=[];return I(J,T,function(D,G,z,X){L[L.length]=z?I(X,Q,"$1"):G||D}),L},Y=function(J,tt){var F=J,L;if(b(B,F)&&(L=B[F],F="%"+L[0]+"%"),b($,F)){var D=$[F];if(D===K&&(D=j(F)),typeof D>"u"&&!tt)throw new u("intrinsic "+J+" exists, but is not available. Please file an issue!");return{alias:L,name:F,value:D}}throw new v("intrinsic "+J+" does not exist!")};return Fl=function(J,tt){if(typeof J!="string"||J.length===0)throw new u("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof tt!="boolean")throw new u('"allowMissing" argument must be a boolean');if(k(/^%?[^%]*%?$/,J)===null)throw new v("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var F=H(J),L=F.length>0?F[0]:"",D=Y("%"+L+"%",tt),G=D.name,z=D.value,X=!1,et=D.alias;et&&(L=et[0],E(F,C([0,1],et)));for(var at=1,lt=!0;at<F.length;at+=1){var ct=F[at],it=M(ct,0,1),ut=M(ct,-1);if((it==='"'||it==="'"||it==="`"||ut==='"'||ut==="'"||ut==="`")&&it!==ut)throw new v("property names with quotes must have matching quotes");if((ct==="constructor"||!lt)&&(X=!0),L+="."+ct,G="%"+L+"%",b($,G))z=$[G];else if(z!=null){if(!(ct in z)){if(!tt)throw new u("base intrinsic for "+J+" exists, but the property is not available.");return}if(y&&at+1>=F.length){var ft=y(z,ct);lt=!!ft,lt&&"get"in ft&&!("originalValue"in ft.get)?z=ft.get:z=z[ct]}else lt=b(z,ct),z=z[ct];lt&&!X&&($[G]=z)}}return z},Fl}var Ll,Hg;function um(){if(Hg)return Ll;Hg=1;var e=af(),t=lm(),n=t([e("%String.prototype.indexOf%")]);return Ll=function(f,p){var v=e(f,!!p);return typeof v=="function"&&n(f,".prototype.")>-1?t([v]):v},Ll}var jl,zg;function hm(){if(zg)return jl;zg=1;var e=af(),t=um(),n=_c(),r=ii(),f=e("%Map%",!0),p=t("Map.prototype.get",!0),v=t("Map.prototype.set",!0),u=t("Map.prototype.has",!0),o=t("Map.prototype.delete",!0),s=t("Map.prototype.size",!0);return jl=!!f&&function(){var i,l={assert:function(a){if(!l.has(a))throw new r("Side channel does not contain "+n(a))},delete:function(a){if(i){var h=o(i,a);return s(i)===0&&(i=void 0),h}return!1},get:function(a){if(i)return p(i,a)},has:function(a){return i?u(i,a):!1},set:function(a,h){i||(i=new f),v(i,a,h)}};return l},jl}var Nl,Yg;function vF(){if(Yg)return Nl;Yg=1;var e=af(),t=um(),n=_c(),r=hm(),f=ii(),p=e("%WeakMap%",!0),v=t("WeakMap.prototype.get",!0),u=t("WeakMap.prototype.set",!0),o=t("WeakMap.prototype.has",!0),s=t("WeakMap.prototype.delete",!0);return Nl=p?function(){var i,l,a={assert:function(h){if(!a.has(h))throw new f("Side channel does not contain "+n(h))},delete:function(h){if(p&&h&&(typeof h=="object"||typeof h=="function")){if(i)return s(i,h)}else if(r&&l)return l.delete(h);return!1},get:function(h){return p&&h&&(typeof h=="object"||typeof h=="function")&&i?v(i,h):l&&l.get(h)},has:function(h){return p&&h&&(typeof h=="object"||typeof h=="function")&&i?o(i,h):!!l&&l.has(h)},set:function(h,g){p&&h&&(typeof h=="object"||typeof h=="function")?(i||(i=new p),u(i,h,g)):r&&(l||(l=r()),l.set(h,g))}};return a}:r,Nl}var Ul,Wg;function yF(){if(Wg)return Ul;Wg=1;var e=ii(),t=_c(),n=YQ(),r=hm(),f=vF(),p=f||r||n;return Ul=function(){var u,o={assert:function(s){if(!o.has(s))throw new e("Side channel does not contain "+t(s))},delete:function(s){return!!u&&u.delete(s)},get:function(s){return u&&u.get(s)},has:function(s){return!!u&&u.has(s)},set:function(s,c){u||(u=p()),u.set(s,c)}};return o},Ul}var Gl,qg;function cf(){if(qg)return Gl;qg=1;var e=String.prototype.replace,t=/%20/g,n={RFC1738:"RFC1738",RFC3986:"RFC3986"};return Gl={default:n.RFC3986,formatters:{RFC1738:function(r){return e.call(r,t,"+")},RFC3986:function(r){return String(r)}},RFC1738:n.RFC1738,RFC3986:n.RFC3986},Gl}var $l,Xg;function fm(){if(Xg)return $l;Xg=1;var e=cf(),t=Object.prototype.hasOwnProperty,n=Array.isArray,r=(function(){for(var d=[],A=0;A<256;++A)d.push("%"+((A<16?"0":"")+A.toString(16)).toUpperCase());return d})(),f=function(A){for(;A.length>1;){var y=A.pop(),m=y.obj[y.prop];if(n(m)){for(var _=[],w=0;w<m.length;++w)typeof m[w]<"u"&&_.push(m[w]);y.obj[y.prop]=_}}},p=function(A,y){for(var m=y&&y.plainObjects?Object.create(null):{},_=0;_<A.length;++_)typeof A[_]<"u"&&(m[_]=A[_]);return m},v=function d(A,y,m){if(!y)return A;if(typeof y!="object"){if(n(A))A.push(y);else if(A&&typeof A=="object")(m&&(m.plainObjects||m.allowPrototypes)||!t.call(Object.prototype,y))&&(A[y]=!0);else return[A,y];return A}if(!A||typeof A!="object")return[A].concat(y);var _=A;return n(A)&&!n(y)&&(_=p(A,m)),n(A)&&n(y)?(y.forEach(function(w,S){if(t.call(A,S)){var O=A[S];O&&typeof O=="object"&&w&&typeof w=="object"?A[S]=d(O,w,m):A.push(w)}else A[S]=w}),A):Object.keys(y).reduce(function(w,S){var O=y[S];return t.call(w,S)?w[S]=d(w[S],O,m):w[S]=O,w},_)},u=function(A,y){return Object.keys(y).reduce(function(m,_){return m[_]=y[_],m},A)},o=function(d,A,y){var m=d.replace(/\+/g," ");if(y==="iso-8859-1")return m.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(m)}catch{return m}},s=1024,c=function(A,y,m,_,w){if(A.length===0)return A;var S=A;if(typeof A=="symbol"?S=Symbol.prototype.toString.call(A):typeof A!="string"&&(S=String(A)),m==="iso-8859-1")return escape(S).replace(/%u[0-9a-f]{4}/gi,function(rt){return"%26%23"+parseInt(rt.slice(2),16)+"%3B"});for(var O="",P=0;P<S.length;P+=s){for(var N=S.length>=s?S.slice(P,P+s):S,q=[],Z=0;Z<N.length;++Z){var K=N.charCodeAt(Z);if(K===45||K===46||K===95||K===126||K>=48&&K<=57||K>=65&&K<=90||K>=97&&K<=122||w===e.RFC1738&&(K===40||K===41)){q[q.length]=N.charAt(Z);continue}if(K<128){q[q.length]=r[K];continue}if(K<2048){q[q.length]=r[192|K>>6]+r[128|K&63];continue}if(K<55296||K>=57344){q[q.length]=r[224|K>>12]+r[128|K>>6&63]+r[128|K&63];continue}Z+=1,K=65536+((K&1023)<<10|N.charCodeAt(Z)&1023),q[q.length]=r[240|K>>18]+r[128|K>>12&63]+r[128|K>>6&63]+r[128|K&63]}O+=q.join("")}return O},i=function(A){for(var y=[{obj:{o:A},prop:"o"}],m=[],_=0;_<y.length;++_)for(var w=y[_],S=w.obj[w.prop],O=Object.keys(S),P=0;P<O.length;++P){var N=O[P],q=S[N];typeof q=="object"&&q!==null&&m.indexOf(q)===-1&&(y.push({obj:S,prop:N}),m.push(q))}return f(y),A},l=function(A){return Object.prototype.toString.call(A)==="[object RegExp]"},a=function(A){return!A||typeof A!="object"?!1:!!(A.constructor&&A.constructor.isBuffer&&A.constructor.isBuffer(A))},h=function(A,y){return[].concat(A,y)},g=function(A,y){if(n(A)){for(var m=[],_=0;_<A.length;_+=1)m.push(y(A[_]));return m}return y(A)};return $l={arrayToObject:p,assign:u,combine:h,compact:i,decode:o,encode:c,isBuffer:a,isRegExp:l,maybeMap:g,merge:v},$l}var Hl,Vg;function mF(){if(Vg)return Hl;Vg=1;var e=yF(),t=fm(),n=cf(),r=Object.prototype.hasOwnProperty,f={brackets:function(d){return d+"[]"},comma:"comma",indices:function(d,A){return d+"["+A+"]"},repeat:function(d){return d}},p=Array.isArray,v=Array.prototype.push,u=function(g,d){v.apply(g,p(d)?d:[d])},o=Date.prototype.toISOString,s=n.default,c={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:t.encode,encodeValuesOnly:!1,format:s,formatter:n.formatters[s],indices:!1,serializeDate:function(d){return o.call(d)},skipNulls:!1,strictNullHandling:!1},i=function(d){return typeof d=="string"||typeof d=="number"||typeof d=="boolean"||typeof d=="symbol"||typeof d=="bigint"},l={},a=function g(d,A,y,m,_,w,S,O,P,N,q,Z,K,rt,$,U,j,B){for(var x=d,b=B,C=0,E=!1;(b=b.get(l))!==void 0&&!E;){var I=b.get(d);if(C+=1,typeof I<"u"){if(I===C)throw new RangeError("Cyclic object value");E=!0}typeof b.get(l)>"u"&&(C=0)}if(typeof N=="function"?x=N(A,x):x instanceof Date?x=K(x):y==="comma"&&p(x)&&(x=t.maybeMap(x,function(G){return G instanceof Date?K(G):G})),x===null){if(w)return P&&!U?P(A,c.encoder,j,"key",rt):A;x=""}if(i(x)||t.isBuffer(x)){if(P){var M=U?A:P(A,c.encoder,j,"key",rt);return[$(M)+"="+$(P(x,c.encoder,j,"value",rt))]}return[$(A)+"="+$(String(x))]}var k=[];if(typeof x>"u")return k;var T;if(y==="comma"&&p(x))U&&P&&(x=t.maybeMap(x,P)),T=[{value:x.length>0?x.join(",")||null:void 0}];else if(p(N))T=N;else{var Q=Object.keys(x);T=q?Q.sort(q):Q}var H=O?A.replace(/\./g,"%2E"):A,Y=m&&p(x)&&x.length===1?H+"[]":H;if(_&&p(x)&&x.length===0)return Y+"[]";for(var W=0;W<T.length;++W){var J=T[W],tt=typeof J=="object"&&typeof J.value<"u"?J.value:x[J];if(!(S&&tt===null)){var F=Z&&O?J.replace(/\./g,"%2E"):J,L=p(x)?typeof y=="function"?y(Y,F):Y:Y+(Z?"."+F:"["+F+"]");B.set(d,C);var D=e();D.set(l,B),u(k,g(tt,L,y,m,_,w,S,O,y==="comma"&&U&&p(x)?null:P,N,q,Z,K,rt,$,U,j,D))}}return k},h=function(d){if(!d)return c;if(typeof d.allowEmptyArrays<"u"&&typeof d.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof d.encodeDotInKeys<"u"&&typeof d.encodeDotInKeys!="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(d.encoder!==null&&typeof d.encoder<"u"&&typeof d.encoder!="function")throw new TypeError("Encoder has to be a function.");var A=d.charset||c.charset;if(typeof d.charset<"u"&&d.charset!=="utf-8"&&d.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var y=n.default;if(typeof d.format<"u"){if(!r.call(n.formatters,d.format))throw new TypeError("Unknown format option provided.");y=d.format}var m=n.formatters[y],_=c.filter;(typeof d.filter=="function"||p(d.filter))&&(_=d.filter);var w;if(d.arrayFormat in f?w=d.arrayFormat:"indices"in d?w=d.indices?"indices":"repeat":w=c.arrayFormat,"commaRoundTrip"in d&&typeof d.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var S=typeof d.allowDots>"u"?d.encodeDotInKeys===!0?!0:c.allowDots:!!d.allowDots;return{addQueryPrefix:typeof d.addQueryPrefix=="boolean"?d.addQueryPrefix:c.addQueryPrefix,allowDots:S,allowEmptyArrays:typeof d.allowEmptyArrays=="boolean"?!!d.allowEmptyArrays:c.allowEmptyArrays,arrayFormat:w,charset:A,charsetSentinel:typeof d.charsetSentinel=="boolean"?d.charsetSentinel:c.charsetSentinel,commaRoundTrip:d.commaRoundTrip,delimiter:typeof d.delimiter>"u"?c.delimiter:d.delimiter,encode:typeof d.encode=="boolean"?d.encode:c.encode,encodeDotInKeys:typeof d.encodeDotInKeys=="boolean"?d.encodeDotInKeys:c.encodeDotInKeys,encoder:typeof d.encoder=="function"?d.encoder:c.encoder,encodeValuesOnly:typeof d.encodeValuesOnly=="boolean"?d.encodeValuesOnly:c.encodeValuesOnly,filter:_,format:y,formatter:m,serializeDate:typeof d.serializeDate=="function"?d.serializeDate:c.serializeDate,skipNulls:typeof d.skipNulls=="boolean"?d.skipNulls:c.skipNulls,sort:typeof d.sort=="function"?d.sort:null,strictNullHandling:typeof d.strictNullHandling=="boolean"?d.strictNullHandling:c.strictNullHandling}};return Hl=function(g,d){var A=g,y=h(d),m,_;typeof y.filter=="function"?(_=y.filter,A=_("",A)):p(y.filter)&&(_=y.filter,m=_);var w=[];if(typeof A!="object"||A===null)return"";var S=f[y.arrayFormat],O=S==="comma"&&y.commaRoundTrip;m||(m=Object.keys(A)),y.sort&&m.sort(y.sort);for(var P=e(),N=0;N<m.length;++N){var q=m[N];y.skipNulls&&A[q]===null||u(w,a(A[q],q,S,O,y.allowEmptyArrays,y.strictNullHandling,y.skipNulls,y.encodeDotInKeys,y.encode?y.encoder:null,y.filter,y.sort,y.allowDots,y.serializeDate,y.format,y.formatter,y.encodeValuesOnly,y.charset,P))}var Z=w.join(y.delimiter),K=y.addQueryPrefix===!0?"?":"";return y.charsetSentinel&&(y.charset==="iso-8859-1"?K+="utf8=%26%2310003%3B&":K+="utf8=%E2%9C%93&"),Z.length>0?K+Z:""},Hl}var zl,Jg;function _F(){if(Jg)return zl;Jg=1;var e=fm(),t=Object.prototype.hasOwnProperty,n=Array.isArray,r={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:e.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},f=function(l){return l.replace(/&#(\d+);/g,function(a,h){return String.fromCharCode(parseInt(h,10))})},p=function(l,a){return l&&typeof l=="string"&&a.comma&&l.indexOf(",")>-1?l.split(","):l},v="utf8=%26%2310003%3B",u="utf8=%E2%9C%93",o=function(a,h){var g={__proto__:null},d=h.ignoreQueryPrefix?a.replace(/^\?/,""):a;d=d.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var A=h.parameterLimit===1/0?void 0:h.parameterLimit,y=d.split(h.delimiter,A),m=-1,_,w=h.charset;if(h.charsetSentinel)for(_=0;_<y.length;++_)y[_].indexOf("utf8=")===0&&(y[_]===u?w="utf-8":y[_]===v&&(w="iso-8859-1"),m=_,_=y.length);for(_=0;_<y.length;++_)if(_!==m){var S=y[_],O=S.indexOf("]="),P=O===-1?S.indexOf("="):O+1,N,q;P===-1?(N=h.decoder(S,r.decoder,w,"key"),q=h.strictNullHandling?null:""):(N=h.decoder(S.slice(0,P),r.decoder,w,"key"),q=e.maybeMap(p(S.slice(P+1),h),function(K){return h.decoder(K,r.decoder,w,"value")})),q&&h.interpretNumericEntities&&w==="iso-8859-1"&&(q=f(q)),S.indexOf("[]=")>-1&&(q=n(q)?[q]:q);var Z=t.call(g,N);Z&&h.duplicates==="combine"?g[N]=e.combine(g[N],q):(!Z||h.duplicates==="last")&&(g[N]=q)}return g},s=function(l,a,h,g){for(var d=g?a:p(a,h),A=l.length-1;A>=0;--A){var y,m=l[A];if(m==="[]"&&h.parseArrays)y=h.allowEmptyArrays&&(d===""||h.strictNullHandling&&d===null)?[]:[].concat(d);else{y=h.plainObjects?Object.create(null):{};var _=m.charAt(0)==="["&&m.charAt(m.length-1)==="]"?m.slice(1,-1):m,w=h.decodeDotInKeys?_.replace(/%2E/g,"."):_,S=parseInt(w,10);!h.parseArrays&&w===""?y={0:d}:!isNaN(S)&&m!==w&&String(S)===w&&S>=0&&h.parseArrays&&S<=h.arrayLimit?(y=[],y[S]=d):w!=="__proto__"&&(y[w]=d)}d=y}return d},c=function(a,h,g,d){if(a){var A=g.allowDots?a.replace(/\.([^.[]+)/g,"[$1]"):a,y=/(\[[^[\]]*])/,m=/(\[[^[\]]*])/g,_=g.depth>0&&y.exec(A),w=_?A.slice(0,_.index):A,S=[];if(w){if(!g.plainObjects&&t.call(Object.prototype,w)&&!g.allowPrototypes)return;S.push(w)}for(var O=0;g.depth>0&&(_=m.exec(A))!==null&&O<g.depth;){if(O+=1,!g.plainObjects&&t.call(Object.prototype,_[1].slice(1,-1))&&!g.allowPrototypes)return;S.push(_[1])}return _&&S.push("["+A.slice(_.index)+"]"),s(S,h,g,d)}},i=function(a){if(!a)return r;if(typeof a.allowEmptyArrays<"u"&&typeof a.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof a.decodeDotInKeys<"u"&&typeof a.decodeDotInKeys!="boolean")throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");if(a.decoder!==null&&typeof a.decoder<"u"&&typeof a.decoder!="function")throw new TypeError("Decoder has to be a function.");if(typeof a.charset<"u"&&a.charset!=="utf-8"&&a.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var h=typeof a.charset>"u"?r.charset:a.charset,g=typeof a.duplicates>"u"?r.duplicates:a.duplicates;if(g!=="combine"&&g!=="first"&&g!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var d=typeof a.allowDots>"u"?a.decodeDotInKeys===!0?!0:r.allowDots:!!a.allowDots;return{allowDots:d,allowEmptyArrays:typeof a.allowEmptyArrays=="boolean"?!!a.allowEmptyArrays:r.allowEmptyArrays,allowPrototypes:typeof a.allowPrototypes=="boolean"?a.allowPrototypes:r.allowPrototypes,allowSparse:typeof a.allowSparse=="boolean"?a.allowSparse:r.allowSparse,arrayLimit:typeof a.arrayLimit=="number"?a.arrayLimit:r.arrayLimit,charset:h,charsetSentinel:typeof a.charsetSentinel=="boolean"?a.charsetSentinel:r.charsetSentinel,comma:typeof a.comma=="boolean"?a.comma:r.comma,decodeDotInKeys:typeof a.decodeDotInKeys=="boolean"?a.decodeDotInKeys:r.decodeDotInKeys,decoder:typeof a.decoder=="function"?a.decoder:r.decoder,delimiter:typeof a.delimiter=="string"||e.isRegExp(a.delimiter)?a.delimiter:r.delimiter,depth:typeof a.depth=="number"||a.depth===!1?+a.depth:r.depth,duplicates:g,ignoreQueryPrefix:a.ignoreQueryPrefix===!0,interpretNumericEntities:typeof a.interpretNumericEntities=="boolean"?a.interpretNumericEntities:r.interpretNumericEntities,parameterLimit:typeof a.parameterLimit=="number"?a.parameterLimit:r.parameterLimit,parseArrays:a.parseArrays!==!1,plainObjects:typeof a.plainObjects=="boolean"?a.plainObjects:r.plainObjects,strictNullHandling:typeof a.strictNullHandling=="boolean"?a.strictNullHandling:r.strictNullHandling}};return zl=function(l,a){var h=i(a);if(l===""||l===null||typeof l>"u")return h.plainObjects?Object.create(null):{};for(var g=typeof l=="string"?o(l,h):l,d=h.plainObjects?Object.create(null):{},A=Object.keys(g),y=0;y<A.length;++y){var m=A[y],_=c(m,g[m],h,typeof l=="string");d=e.merge(d,_,h)}return h.allowSparse===!0?d:e.compact(d)},zl}var Yl,Kg;function bF(){if(Kg)return Yl;Kg=1;var e=mF(),t=_F(),n=cf();return Yl={formats:n,parse:t,stringify:e},Yl}var wF=bF();const CF=mc(wF),Sa=class Sa{constructor(t,n,r){this.canvas=t,this.editor=n,this.repoSrc=r.repoSrc,this.apiMapUrl={template:r.repoSrc+"/template/type.json",svg:r.repoSrc+"/svg/type.json"}}getTemplTypeList(){return Lt.get(`${this.repoSrc}/api/templ-types?pagination[pageSize]=100`).then(t=>t.data.data.map(r=>({value:r.id,label:r.attributes.name})))}getTemplList(t="",n=1,r=""){const f={fields:"*",populate:{img:"*"},filters:{},pagination:{page:n,pageSize:10}},p=this._getQueryParams(f,[{key:"templ_type",value:t,type:"$eq"},{key:"name",value:r,type:"$contains"}]);return Lt.get(`${this.repoSrc}/api/templs?${p}`).then(v=>({list:v.data.data.map(o=>({name:o.attributes.name,desc:o.attributes.desc,src:this._getMaterialPreviewUrl(o.attributes.img),json:o.attributes.json})),pagination:v?.data?.meta?.pagination}))}getMaterialTypeList(){return Lt.get(`${this.repoSrc}/api/material-types?pagination[pageSize]=100`).then(t=>t.data.data.map(r=>({value:r.id,label:r.attributes.name})))}getMaterialList(t="",n=1,r=""){const f={populate:{img:"*"},filters:{},pagination:{page:n,pageSize:50}},p=this._getQueryParams(f,[{key:"material_type",value:t,type:"$eq"},{key:"name",value:r,type:"$contains"}]);return Lt.get(`${this.repoSrc}/api/materials?${p}`).then(v=>({list:v.data.data.map(o=>({name:o.attributes.name,desc:o.attributes.desc,src:this._getMaterialInfoUrl(o.attributes.img),previewSrc:this._getMaterialPreviewUrl(o.attributes.img)})),pagination:v?.data?.meta?.pagination}))}getSizeList(){return Lt.get(`${this.repoSrc}/api/sizes?pagination[pageSize]=100`).then(t=>t.data.data.map(r=>({value:r.id,name:r.attributes.name,width:Number(r.attributes.width),height:Number(r.attributes.height),unit:r.attributes.unit})))}getFontList(){return Lt.get(`${this.repoSrc}/api/fonts?pagination[pageSize]=100`).then(t=>t.data.data.map(r=>({value:r.id,label:r.attributes.name})))}_getMaterialInfoUrl(t){const n=t?.data?.attributes?.url||"";return this.repoSrc+n}_getMaterialPreviewUrl(t){const n=t?.data?.attributes?.formats?.small?.url||t?.data?.attributes?.url||"";return this.repoSrc+n}_getQueryParams(t,n){return n.forEach(r=>{const{key:f,value:p,type:v}=r;p&&(t.filters[f]={[v]:p})}),CF.stringify(t)}async getMaterialInfo(t){const n=this.apiMapUrl[t];return(await Lt.get(n,{params:{typeId:t}})).data.data}};Sa.pluginName="MaterialPlugin",Sa.apis=["getTemplTypeList","getTemplList","getMaterialTypeList","getMaterialList","getSizeList"];let Js=Sa;const Zg={text:"",size:24,isRotate:!1,fontFamily:"汉体",color:"#ccc",position:"Left_Top"},xa=class xa{constructor(t,n){this.canvas=t,this.editor=n,this.hadDraw=!1,this.drawOps=Zg,this.drawing={Left_Top:(r,f,p)=>{let v=this.createCanvas(r,f);const u=v.width||r;let o=v.getContext("2d");o.fillStyle=this.drawOps.color,o.font=`${this.drawOps.size}px ${this.drawOps.fontFamily}`,o.fillText(this.drawOps.text,10,this.drawOps.size+10,u-20),p&&p(v.toDataURL()),v=null,o=null},Right_Top:(r,f,p)=>{let v=this.createCanvas(r,f),u=v.getContext("2d");const o=v.width||r;u.fillStyle=this.drawOps.color,u.font=`${this.drawOps.size}px ${this.drawOps.fontFamily}`,u.fillText(this.drawOps.text,o-u.measureText(this.drawOps.text).width-20,this.drawOps.size+10,o-20),p&&p(v.toDataURL()),v=null,u=null},Left_Right:(r,f,p)=>{let v=this.createCanvas(r,f),u=v.getContext("2d");const o=v.width||r,s=v.height||f;u.fillStyle=this.drawOps.color,u.font=`${this.drawOps.size}px ${this.drawOps.fontFamily}`,u.fillText(this.drawOps.text,10,s-this.drawOps.size,o-20),p&&p(v.toDataURL()),v=null,u=null},Right_Bottom:(r,f,p)=>{let v=this.createCanvas(r,f),u=v.getContext("2d");const o=v.width||r;u.fillStyle=this.drawOps.color,u.font=`${this.drawOps.size}px ${this.drawOps.fontFamily}`,u.fillText(this.drawOps.text,o-u.measureText(this.drawOps.text).width-20,f-this.drawOps.size,r-20),p&&p(v.toDataURL()),v=null,u=null},Full:(r,f,p)=>{const u=-30*Math.PI/180,o=`${this.drawOps.size}px ${this.drawOps.fontFamily}`;let s=this.createCanvas(r,f),c=s.getContext("2d");c.font=o;const i=c.measureText(this.drawOps.text).width+40;let l=this.createCanvas(this.drawOps.isRotate?i*Math.abs(Math.cos(u))+this.drawOps.size:i,this.drawOps.isRotate?i*Math.abs(Math.sin(u))+this.drawOps.size:this.drawOps.size+20);document.body.appendChild(l);let a=l.getContext("2d");a.textAlign="left",a.textBaseline="top",a.font=o,a.fillStyle=`${this.drawOps.color}`,this.drawOps.isRotate?(a.translate(0,i*Math.abs(Math.sin(u))),a.rotate(u),a.fillText(this.drawOps.text,0,0)):a.fillText(this.drawOps.text,10,10),c.fillStyle=c.createPattern(l,"repeat"),c.fillRect(0,0,r,f),p&&p(s.toDataURL()),s=null,l=null,c=null,a=null}},this.init()}createCanvas(t,n){const r=document.createElement("canvas");return r.width=t,r.height=n,r.style.position="fixed",r.style.opacity="0",r.style.zIndex="-1",r}drawWaterMark(t){if(this.drawOps=Object.assign(yv(this.drawOps),t),!this.drawOps.text)return;const n=this.canvas.getObjects().find(u=>u.id==="workspace"),{width:r,height:f,left:p,top:v}=n;this.drawing[this.drawOps?.position](r,f,u=>{this.canvas.overlayImage=void 0,this.hadDraw=!0,this.canvas.setOverlayImage(u,this.canvas.renderAll.bind(this.canvas),{left:p||0,top:v||0,originX:"left",originY:"top"})})}updateDrawStatus(t){this.hadDraw=t}clearWaterMMatk(){this.hadDraw&&(this.canvas.overlayImage=void 0,this.canvas.renderAll(),this.hadDraw=!1,this.drawOps=Zg)}init(){this.editor.on("sizeChange",this.drawWaterMark.bind(this))}destroy(){this.editor.off("sizeChange",this.drawWaterMark)}};xa.pluginName="WaterMarkPlugin",xa.apis=["drawWaterMark","clearWaterMMatk","updateDrawStatus"];let Ks=xa;var Wl={exports:{}},tp;function EF(){return tp||(tp=1,(function(e){(function(){function t(d,A){document.addEventListener?d.addEventListener("scroll",A,!1):d.attachEvent("scroll",A)}function n(d){document.body?d():document.addEventListener?document.addEventListener("DOMContentLoaded",function A(){document.removeEventListener("DOMContentLoaded",A),d()}):document.attachEvent("onreadystatechange",function A(){(document.readyState=="interactive"||document.readyState=="complete")&&(document.detachEvent("onreadystatechange",A),d())})}function r(d){this.a=document.createElement("div"),this.a.setAttribute("aria-hidden","true"),this.a.appendChild(document.createTextNode(d)),this.b=document.createElement("span"),this.c=document.createElement("span"),this.h=document.createElement("span"),this.f=document.createElement("span"),this.g=-1,this.b.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;",this.c.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;",this.f.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;",this.h.style.cssText="display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;",this.b.appendChild(this.h),this.c.appendChild(this.f),this.a.appendChild(this.b),this.a.appendChild(this.c)}function f(d,A){d.a.style.cssText="max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:"+A+";"}function p(d){var A=d.a.offsetWidth,y=A+100;return d.f.style.width=y+"px",d.c.scrollLeft=y,d.b.scrollLeft=d.b.scrollWidth+100,d.g!==A?(d.g=A,!0):!1}function v(d,A){function y(){var _=m;p(_)&&_.a.parentNode&&A(_.g)}var m=d;t(d.b,y),t(d.c,y),p(d)}function u(d,A){var y=A||{};this.family=d,this.style=y.style||"normal",this.weight=y.weight||"normal",this.stretch=y.stretch||"normal"}var o=null,s=null,c=null,i=null;function l(){if(s===null)if(a()&&/Apple/.test(window.navigator.vendor)){var d=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))(?:\.([0-9]+))/.exec(window.navigator.userAgent);s=!!d&&603>parseInt(d[1],10)}else s=!1;return s}function a(){return i===null&&(i=!!document.fonts),i}function h(){if(c===null){var d=document.createElement("div");try{d.style.font="condensed 100px sans-serif"}catch{}c=d.style.font!==""}return c}function g(d,A){return[d.style,d.weight,h()?d.stretch:"","100px",A].join(" ")}u.prototype.load=function(d,A){var y=this,m=d||"BESbswy",_=0,w=A||3e3,S=new Date().getTime();return new Promise(function(O,P){if(a()&&!l()){var N=new Promise(function(Z,K){function rt(){new Date().getTime()-S>=w?K(Error(""+w+"ms timeout exceeded")):document.fonts.load(g(y,'"'+y.family+'"'),m).then(function($){1<=$.length?Z():setTimeout(rt,25)},K)}rt()}),q=new Promise(function(Z,K){_=setTimeout(function(){K(Error(""+w+"ms timeout exceeded"))},w)});Promise.race([q,N]).then(function(){clearTimeout(_),O(y)},P)}else n(function(){function Z(){var M;(M=j!=-1&&B!=-1||j!=-1&&x!=-1||B!=-1&&x!=-1)&&((M=j!=B&&j!=x&&B!=x)||(o===null&&(M=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent),o=!!M&&(536>parseInt(M[1],10)||parseInt(M[1],10)===536&&11>=parseInt(M[2],10))),M=o&&(j==b&&B==b&&x==b||j==C&&B==C&&x==C||j==E&&B==E&&x==E)),M=!M),M&&(I.parentNode&&I.parentNode.removeChild(I),clearTimeout(_),O(y))}function K(){if(new Date().getTime()-S>=w)I.parentNode&&I.parentNode.removeChild(I),P(Error(""+w+"ms timeout exceeded"));else{var M=document.hidden;(M===!0||M===void 0)&&(j=rt.a.offsetWidth,B=$.a.offsetWidth,x=U.a.offsetWidth,Z()),_=setTimeout(K,50)}}var rt=new r(m),$=new r(m),U=new r(m),j=-1,B=-1,x=-1,b=-1,C=-1,E=-1,I=document.createElement("div");I.dir="ltr",f(rt,g(y,"sans-serif")),f($,g(y,"serif")),f(U,g(y,"monospace")),I.appendChild(rt.a),I.appendChild($.a),I.appendChild(U.a),document.body.appendChild(I),b=rt.a.offsetWidth,C=$.a.offsetWidth,E=U.a.offsetWidth,K(),v(rt,function(M){j=M,Z()}),f(rt,g(y,'"'+y.family+'",sans-serif')),v($,function(M){B=M,Z()}),f($,g(y,'"'+y.family+'",serif')),v(U,function(M){x=M,Z()}),f(U,g(y,'"'+y.family+'",monospace'))})})},e.exports=u})()})(Wl)),Wl.exports}var SF=EF();const ep=mc(SF),Ia=class Ia{constructor(t,n,r){this.canvas=t,this.editor=n,this.repoSrc=r.repoSrc,this.cacheList=[],this.tempPromise=null}hookImportBefore(t){return this.downFontByJSON(t)}getFontList(){return this.cacheList.length?Promise.resolve(this.cacheList):this.tempPromise?this.tempPromise:(this.tempPromise=Lt.get(`${this.repoSrc}/api/fonts?populate=*&pagination[pageSize]=100`).then(t=>{const n=t.data.data.map(r=>({name:r.attributes.name,type:r.attributes.type,file:this.repoSrc+r.attributes.file.data.attributes.url,img:this.repoSrc+r.attributes.img.data.attributes.url}));return this.cacheList=n,this.createFontCSS(n),n}),this.tempPromise)}downFontByJSON(t){const n=JSON.parse(t);let r=[];const f=["arial"];n.objects?r=JSON.parse(t).objects.filter(v=>{const u=this.cacheList.find(o=>o.name===v.fontFamily);return v.type.includes("text")&&!f.includes(v.fontFamily)&&u}).map(v=>v.fontFamily):r=f.includes(n.fontFamily)?[]:[n.fontFamily];const p=r.map(v=>new ep(v).load(null,15e4));return Promise.all(p)}getFontJson(){const t=this.canvas.getActiveObject();if(t){const n=t.toJSON(["id","gradientAngle","selectable","hasControls"]),r=`data:text/json;charset=utf-8,${encodeURIComponent(JSON.stringify(n,null," "))}`,f=t.toDataURL({});ze.downFile(r,"font.json"),ze.downFile(f,"font.png")}}loadFont(t){return new ep(t).load(null,15e4).then(()=>{const r=this.canvas.getActiveObjects()[0];r&&(r.set("fontFamily",t),this.canvas.renderAll())})}createFontCSS(t){let n="";t.forEach(p=>{n=n+`
469
+ @font-face {
470
+ font-family: ${p.name};
471
+ src: url('${p.file}');
472
+ }
473
+ `});const r=document.createElement("style");try{r.appendChild(document.createTextNode(n))}catch{}document.getElementsByTagName("head")[0].appendChild(r)}destroy(){console.log("pluginDestroy")}};Ia.pluginName="FontPlugin",Ia.apis=["getFontList","loadFont","getFontJson","downFontByJSON"];let Zs=Ia;const xF=function(e,t,n,r){const f=t.target,p=f.controls[f.__corner],v=f.toLocalPoint(new V.fabric.Point(n,r),"center","center"),u=dm(f),o=f._getTransformedDimensions(0,0);return f.points==null?!1:(f.points[p.pointIndex]=new V.fabric.Point(v.x*u.x/o.x+f.pathOffset.x,v.y*u.y/o.y+f.pathOffset.y),!0)},IF=function(e,t){return function(n,r,f,p){const v=r.target;if(v.points==null)return!1;const u=V.fabric.util.transformPoint(new V.fabric.Point(v.points[e].x-v.pathOffset.x,v.points[e].y-v.pathOffset.y),v.calcTransformMatrix()),o=t(n,r,f,p),s=dm(v),c=(v.points[e].x-v.pathOffset.x)/s.x,i=(v.points[e].y-v.pathOffset.y)/s.y,l=c+.5,a=i+.5;return v.setPositionByOrigin(u,l,a),o}},dm=function(e){const t=new V.fabric.Point(e.strokeUniform?1/e.scaleX:1,e.strokeUniform?1/e.scaleY:1).multiply(e.strokeWidth);return new V.fabric.Point(e.width+t.x,e.height+t.y)},OF=function(e,t,n){const r=n.points[this.pointIndex].x-n.pathOffset.x,f=n.points[this.pointIndex].y-n.pathOffset.y;return V.fabric.util.transformPoint(new V.fabric.Point(r,f),V.fabric.util.multiplyTransformMatrices(n.canvas.viewportTransform,n.calcTransformMatrix()))};function BF(e,t,n,r,f,p){ze.drawImg(e,t,n,p,25,25,V.fabric.util.degreesToRadians(f.angle||0))}const Oi=class Oi{constructor(t,n){this.canvas=t,this.editor=n,this._onDeselected=Ni,this.isEdit=!1;const r=document.createElement("img");r.src=Ry,this.img=r,this.init()}init(){console.info("[PolygonModifyPlugin]: init")}_ensureEvent(t){t.off("deselected",this._onDeselected)}toggleEdit(){this.isEdit?this.inActiveEdit():this.activeEdit()}activeEdit(){this.isEdit=!0;const t=this.canvas.getActiveObject();if(t&&t.type==="polygon"){if(this._ensureEvent(t),t.points==null)return;const n=t.points.length-1,r=this;t.controls=t.points.reduce(function(f,p,v){return f["p"+v]=new V.fabric.Control({positionHandler:OF,actionHandler:IF(v>0?v-1:n,xF),actionName:"modifyPolygon",render:(...u)=>BF(...u,r.img)}),Object.defineProperty(f["p"+v],"pointIndex",{value:v}),f},{}),t.set({objectCaching:!1}),t.hasBorders=!this.isEdit,this.canvas.requestRenderAll(),this._onDeselected=()=>this.inActiveEdit(t),t.on("deselected",this._onDeselected)}}inActiveEdit(t){this.isEdit=!1,t=t||this.canvas.getActiveObject(),t&&t.type==="polygon"&&(t.cornerColor="blue",t.cornerStyle="rect",t.controls=V.fabric.Object.prototype.controls,t.hasBorders=!this.isEdit,t.set({objectCaching:!0}),this._onDeselected&&(t.off("deselected",this._onDeselected),this._onDeselected=Ni)),this.canvas.requestRenderAll()}};Oi.pluginName="PolygonModifyPlugin",Oi.events=[],Oi.apis=["toggleEdit","activeEdit","inActiveEdit"];let ta=Oi;const Oa=class Oa{constructor(t,n){this.canvas=t,this.editor=n,this.isDrawingPolygon=!1,this.points=[],this.lines=[],this.anchors=[],this.delta=5,this._escListener=r=>{(r.key==="Escape"||r.keyCode===27)&&this._confirmBuildPolygon()},this._downHandler=r=>{if(!this.isDrawingPolygon)return;const f=r.absolutePointer,p=new V.fabric.Point(f.x,f.y),v=this._mackAnchor(f);if(this.anchors.push(v),this.tempLine==null){const u=new V.fabric.Point(f.x,f.y);this.tempLine=this._makeLine([u,u]),this.canvas.add(this.tempLine)}else r.e.shiftKey&&p.setXY(this.tempLine.x2,this.tempLine.y2),v.set({left:p.x,top:p.y}),this.tempLine.set({x1:p.x,y1:p.y,x2:p.x,y2:p.y});if(this.lastPoint){const u=this._makeLine([this.lastPoint,p]);if(this.lines.push(u),this.canvas.add(u),this.points[0].distanceFrom(p)/this.canvas.getZoom()<=this.delta){this._confirmBuildPolygon();return}}this.canvas.add(v),this.lastPoint=p,this.points.push(p),this._ensureAnchorsForward()},this._moveHandler=r=>{if(!this.isDrawingPolygon||!this.tempLine)return;const f=r.absolutePointer;if(r.e.shiftKey&&this.lastPoint){const p=ze.shiftAngle(this.lastPoint,f);this.tempLine.set({x2:p.x,y2:p.y})}else this.tempLine.set({x2:f.x,y2:f.y});this.canvas.renderAll()}}_isUsingHistory(){return this.canvas.offHistory&&typeof this.canvas.offHistory=="function"}_bindEvent(){window.addEventListener("keydown",this._escListener),this.canvas.on("mouse:down",this._downHandler),this.canvas.on("mouse:move",this._moveHandler)}_ensureAnchorsForward(){this.anchors.forEach(t=>{t.bringForward()})}_unbindEvent(){window.removeEventListener("keydown",this._escListener),this.canvas.off("mouse:down",this._downHandler),this.canvas.off("mouse:move",this._moveHandler)}_createPolygon(t){return new V.fabric.Polygon(t,{fill:"#ccccccff",id:re()})}_makeLine(t){const[n,r]=t;return new V.fabric.Line([n.x,n.y,r.x,r.y],{fill:"#000",stroke:"#000",strokeWidth:1,selectable:!1,evented:!1})}_mackAnchor(t){return new V.fabric.Circle({radius:5,left:t.x,top:t.y,fill:"rgb(178, 53, 84)",scaleX:1/this.canvas.getZoom(),scaleY:1/this.canvas.getZoom(),strokeWidth:1/this.canvas.getZoom(),originX:"center",originY:"center",evented:!1,selectable:!1})}_confirmBuildPolygon(){const t=this.points;if(this.discardPolygon(),this._isUsingHistory()&&(this.canvas.historyProcessing=!1),t.length>=3){const n=this._createPolygon(t);this.canvas.add(n)}}_prepare(){this.canvas.discardActiveObject(),this.canvas.getObjects().forEach(t=>{t.selectable=!1,t.hasControls=!1})}beginDrawPolygon(t){this._prepare(),this.onEnd=t,this._isUsingHistory()&&(this.canvas.historyProcessing=!0),this.canvas.requestRenderAll(),this.isDrawingPolygon=!0,this._bindEvent()}endDrawPolygon(){this.canvas.discardActiveObject(),this.isDrawingPolygon=!1,this.lastPoint=void 0,this.tempPoint=void 0,this._unbindEvent(),this.onEnd&&this.onEnd(),this.onEnd=void 0}discardPolygon(){this.lines.forEach(t=>{this.canvas.remove(t)}),this.anchors.forEach(t=>{this.canvas.remove(t)}),this.tempLine&&this.canvas.remove(this.tempLine),this.tempLine=void 0,this.anchors=[],this.lines=[],this.points=[],this.endDrawPolygon()}};Oa.pluginName="DrawPolygonPlugin",Oa.apis=["beginDrawPolygon","endDrawPolygon","discardPolygon"];let ea=Oa;const Ba=class Ba{constructor(t,n){this.canvas=t,this.editor=n,this._createdHandler=r=>{r.path.set("id",re())}}_bindEvent(){this.canvas.on("path:created",this._createdHandler)}_unbindEvent(){this.canvas.off("path:created",this._createdHandler)}startDraw(t){this.canvas.isDrawingMode=!0,this.canvas.freeDrawingBrush=new V.fabric.PencilBrush(this.canvas),this.canvas.freeDrawingBrush.width=t.width,this._bindEvent()}endDraw(){if(this.canvas.isDrawingMode){this.canvas.isDrawingMode=!1,this._unbindEvent();return}}};Ba.pluginName="FreeDrawPlugin",Ba.apis=["startDraw","endDraw"];let na=Ba;const Ta=class Ta{constructor(t,n){this.canvas=t,this.editor=n,this._beforeHandler=r=>{if(this.options==null)return;const f=r.path,p=V.fabric.util.getPathSegmentsInfo;f.segmentsInfo=p(f.path),f.set({stroke:this.options.lineColor});const v=this.options.defaultText,u=this.options.defaultFontSize,o=new V.fabric.IText(v,{shadow:"",fontFamily:"arial",fontSize:u,top:f.top,left:f.left,fill:this.options.color,path:f,id:re(),editable:!1});this.canvas.add(o)},this._createdHandler=r=>{this.canvas.remove(r.path)}}_bindEvent(){this.canvas.on("before:path:created",this._beforeHandler),this.canvas.on("path:created",this._createdHandler)}_unbindEvent(){this.canvas.off("before:path:created",this._beforeHandler),this.canvas.off("path:created",this._createdHandler)}startTextPathDraw(t={}){const n={decimate:8,width:2,defaultText:"诸事顺遂 万事大吉",color:"#000000",lineColor:"#000000",defaultFontSize:20};this.options={...n,...t},this.canvas.isDrawingMode=!0;const r=this.canvas.freeDrawingBrush=new V.fabric.PencilBrush(this.canvas);r.decimate=this.options.decimate,r.width=this.options.width,r.color=this.options.color,this._bindEvent()}endTextPathDraw(){this.canvas.isDrawingMode=!1,this._unbindEvent()}};Ta.pluginName="PathTextPlugin",Ta.apis=["startTextPathDraw","endTextPathDraw"];let ra=Ta;async function TF(e){const t=DF(),{clipPath:n,workspase:r}=RF(e);t.clipPath=n,t.objects.push(r);const f=QF(e.children),p=await kF(f);return t.objects.push(...p.reverse()),JSON.stringify(t,null,2)}async function kF(e){function t(r){return r.filter(p=>(p.text&&(p.type="text"),!p.isHidden)).map(async p=>{const v=np(["left","top",["width",c=>c.width+50],"height","name",["visible",()=>!0],["opacity",c=>255/c.opacity],["id",re]])(p),u=[{sourceType:"Layer",targetType:"image",attr:[],async customTransform(c){return{src:await MF(c)}}},{sourceType:"text",targetType:"textbox",attr:["text"],async customTransform(c){const{FontSize:i,FillColor:l,Tracking:a}=c.textProperties.EngineDict.StyleRun.RunArray[0].StyleSheet.StyleSheetData;return{charSpacing:a,fontFamily:"站酷快乐体",fill:PF(l.Values),fontSize:i||12}}}],o="type",s=u.find(c=>c.sourceType===p[o]);if(s){const c=rp(s.targetType),i=np(s.attr)(p),l=s.customTransform?await s.customTransform(p):null;return R.assign(c,v,c,i,l)}return{...rp("textbox")}})}return await Promise.all(t(e))}function DF(){return{version:"5.3.0",objects:[],clipPath:null}}function np(e){return function(t){const n={desc:{}};return e.forEach(r=>{if(typeof r=="string"){const f=R.get(t,r);R.set(n,r,f)}else{const[f,p]=r;if(typeof p=="function"){const v=p(t);v&&R.set(n,f,v)}else{const v=R.get(t,p);R.set(n,f,v)}}}),n}}function rp(e){return{group:{type:"group",version:"5.3.0",originX:"left",originY:"top",fill:"rgb(0,0,0)",stroke:null,strokeWidth:0,strokeDashArray:null,strokeLineCap:"butt",strokeDashOffset:0,strokeLineJoin:"miter",strokeUniform:!1,strokeMiterLimit:4,scaleX:1,scaleY:1,flipX:!1,flipY:!1,shadow:null,visible:!0,backgroundColor:"",fillRule:"nonzero",paintFirst:"fill",globalCompositeOperation:"source-over",skewX:0,skewY:0,selectable:!0,hasControls:!0},textbox:{type:"textbox",version:"5.3.0",originX:"left",originY:"top",fill:"rgb(0,0,0)",stroke:null,strokeWidth:1,strokeDashArray:null,strokeLineCap:"butt",strokeDashOffset:0,strokeLineJoin:"miter",strokeUniform:!1,strokeMiterLimit:4,scaleX:1,scaleY:1,angle:0,flipX:!1,flipY:!1,shadow:"",backgroundColor:"",fillRule:"nonzero",paintFirst:"fill",globalCompositeOperation:"source-over",skewX:0,skewY:0,fontFamily:"arial",fontWeight:"normal",fontSize:80,text:"诸事顺遂",underline:!1,overline:!1,linethrough:!1,textAlign:"left",fontStyle:"normal",lineHeight:1.16,textBackgroundColor:"",charSpacing:0,styles:[],direction:"ltr",path:null,pathStartOffset:0,pathSide:"left",pathAlign:"baseline",minWidth:20,splitByGrapheme:!0,selectable:!0,hasControls:!0},image:{type:"image",version:"5.3.0",originX:"left",originY:"top",fill:"rgb(0,0,0)",stroke:null,strokeWidth:0,strokeDashArray:null,strokeLineCap:"butt",strokeDashOffset:0,strokeLineJoin:"miter",strokeUniform:!1,strokeMiterLimit:4,scaleX:1,scaleY:1,angle:0,flipX:!1,flipY:!1,shadow:null,backgroundColor:"",fillRule:"nonzero",paintFirst:"fill",globalCompositeOperation:"source-over",skewX:0,skewY:0,cropX:0,cropY:0,selectable:!0,hasControls:!0,src:"",crossOrigin:"anonymous",filters:[]},rect:{type:"rect",version:"5.3.0",originX:"center",originY:"center",left:0,top:0,width:226,height:302,fill:"rgb(0,0,0)",stroke:null,strokeWidth:1,strokeDashArray:null,strokeLineCap:"butt",strokeDashOffset:0,strokeLineJoin:"miter",strokeUniform:!1,strokeMiterLimit:4,scaleX:1,scaleY:1,angle:0,flipX:!1,flipY:!1,opacity:1,shadow:null,visible:!0,backgroundColor:"",fillRule:"nonzero",paintFirst:"fill",globalCompositeOperation:"source-over",skewX:0,skewY:0,rx:0,ry:0,selectable:!0,hasControls:!0,inverted:!1,absolutePositioned:!1}}[e]}function RF(e){const{width:t,height:n}=e;return{clipPath:{type:"rect",version:"5.3.0",originX:"left",originY:"top",left:0,top:0,width:t,height:n,fill:"rgba(255,255,255,1)",stroke:null,strokeWidth:0,strokeDashArray:null,strokeLineCap:"butt",strokeDashOffset:0,strokeLineJoin:"miter",strokeUniform:!1,strokeMiterLimit:4,scaleX:1,scaleY:1,angle:0,flipX:!1,flipY:!1,opacity:1,shadow:null,visible:!0,backgroundColor:"",fillRule:"nonzero",paintFirst:"fill",globalCompositeOperation:"source-over",skewX:0,skewY:0,rx:0,ry:0,selectable:!0,hasControls:!0},workspase:{type:"rect",version:"5.3.0",originX:"left",originY:"top",left:0,top:0,width:t,height:n,fill:"rgba(255,255,255,1)",stroke:null,strokeWidth:0,strokeDashArray:null,strokeLineCap:"butt",strokeDashOffset:0,strokeLineJoin:"miter",strokeUniform:!1,strokeMiterLimit:4,scaleX:1,scaleY:1,angle:0,flipX:!1,flipY:!1,shadow:null,visible:!0,backgroundColor:"",fillRule:"nonzero",paintFirst:"fill",globalCompositeOperation:"source-over",skewX:0,skewY:0,rx:0,ry:0,id:"workspace",selectable:!1,hasControls:!0}}}async function MF(e){try{const t=await e.composite(),n=document.createElement("canvas"),r=n.getContext("2d"),f=new ImageData(t,e.width,e.height);return n.width=e.width,n.height=e.height,r.putImageData(f,0,0),n.toDataURL("image/png")}catch{return""}}function PF(e){const[,t,n,r]=e;return`rgb(${t*255}, ${n*255}, ${r*255})`}function QF(e){const t=[];function n(r){r.forEach(f=>{f.children?n(f.children):t.push(f)})}return n(e),t}class FF{constructor(t,n){this.layerFrame=t,this.parent=n,this.type="Group",this.children=[]}get name(){var t,n;return(n=(t=this.layerFrame)===null||t===void 0?void 0:t.layerProperties.name)!==null&&n!==void 0?n:""}get opacity(){var t,n;return(n=(t=this.layerFrame)===null||t===void 0?void 0:t.layerProperties.opacity)!==null&&n!==void 0?n:0}get composedOpacity(){return this.parent.composedOpacity*(this.opacity/255)}get additionalProperties(){var t;return(t=this.layerFrame)===null||t===void 0?void 0:t.layerProperties.additionalLayerProperties}addChild(t){this.children.push(t)}hasChildren(){return this.children.length!==0}freeze(){this.children.forEach(t=>{var n,r;return(r=(n=t).freeze)===null||r===void 0?void 0:r.call(n)}),Object.freeze(this.children)}}var Gt;(function(e){e.SectionDividerSetting="lsct",e.TypeToolObjectSetting="TySh",e.UnicodeLayerName="luni",e.VectorStrokeData="vstk",e.ObjectBasedEffects="lfx2",e.GradientFillSetting="GdFl",e.SolidColorSheetSetting="SoCo",e.PatternFillSetting="PtFl",e.VectorStrokeContentData="vscg",e.BlendOptionsCapacity="iOpa",e.VectorMaskSetting1="vmsk",e.VectorMaskSetting2="vsms",e.HueSaturation="hue2",e.NestedSectionDividerSetting="lsdk",e.LayerId="lyid",e.ArtboardData="artb",e.SmartObjectPlacedLayerData="SoLE",e.PlacedLayerData="SoLd",e.LinkedLayer="lnkD",e.LinkedLayer2="lnk2",e.LinkedLayer3="lnk3"})(Gt||(Gt={}));var Ru;(function(e){e[e.Normal=0]="Normal",e[e.SceneGroup=1]="SceneGroup"})(Ru||(Ru={}));var nn;(function(e){e[e.ClosedSubpathLength=0]="ClosedSubpathLength",e[e.ClosedSubpathBezierKnotLinked=1]="ClosedSubpathBezierKnotLinked",e[e.ClosedSubpathBezierKnotUnlinked=2]="ClosedSubpathBezierKnotUnlinked",e[e.OpenSubpathLength=3]="OpenSubpathLength",e[e.OpenSubpathBezierKnotLinked=4]="OpenSubpathBezierKnotLinked",e[e.OpenSubpathBezierKnotUnlinked=5]="OpenSubpathBezierKnotUnlinked",e[e.PathFillRule=6]="PathFillRule",e[e.Clipboard=7]="Clipboard",e[e.InitialFillRule=8]="InitialFillRule"})(nn||(nn={}));const Mu=(e,t)=>{const n=Math.max(e.length,t.length);for(let r=0;r<n;r++)if(e[r]!==t[r])return!1;return!0};class bt extends Error{constructor(t){super(t),Object.setPrototypeOf(this,new.target.prototype),this.name=new.target.name}}class LF extends bt{}class gm extends bt{}class jF extends bt{}class NF extends bt{}class UF extends bt{}class GF extends bt{}class $F extends bt{}class HF extends bt{}class zF extends bt{}class YF extends bt{}class pm extends bt{}class Am extends bt{}class WF extends bt{}class qF extends bt{}class XF extends bt{}class VF extends bt{}class JF extends bt{}class KF extends bt{}class ZF extends bt{}class tL extends bt{}class eL extends bt{}class nL extends bt{}class rL extends bt{}class iL extends bt{}class Ei extends bt{}class vm extends bt{}class oL extends bt{}class ip extends bt{}class ql extends bt{}class sL extends bt{}class aL extends bt{}class cL extends bt{}class lL extends bt{}class uL extends bt{}class hL extends bt{}class fL extends bt{}class dL extends bt{}class gL extends bt{}class pL extends bt{}class AL extends bt{}class op extends bt{}class Xl extends bt{}class vL extends bt{}class yL extends bt{}function ym(e,t){const n=e.getUint32(t),r=e.getUint32(t+4);if(n>=2097152)throw new vm;return n*4294967296+r}function mL(e,t){const n=e.getInt32(t),r=e.getUint32(t+4);if(n>=2097152||n<-2097152||n===-2097152&&r===0)throw new vm;return n*4294967296+r}const _L={u8:1,i8:1,u16:2,i16:2,u32:4,i32:4,f32:4,u64:8,i64:8,f64:8};class tr{static from(t){return new tr(new DataView(t.buffer,t.byteOffset,t.byteLength))}constructor(t,n=0){this.dataView=t,this.position=n}get length(){return this.dataView.byteLength}clone(t){const n=t!==void 0?t:this.position;return new tr(new DataView(this.dataView.buffer,this.dataView.byteOffset,this.dataView.byteLength),n)}pass(t){this.position+=t}unpass(t){this.position-=t}extract(t){if(this.position+t>this.dataView.byteLength)throw new tL;return new Uint8Array(this.dataView.buffer,this.dataView.byteOffset+this.position,t)}iter(){return new Uint8Array(this.dataView.buffer,this.dataView.byteOffset+this.position)}take(t){const n=this.extract(t);return this.pass(t),n}peek(){return this.dataView.getUint8(this.position)}one(){const t=this.dataView.getUint8(this.position);return this.position+=1,t}read(t){const{dataView:n,position:r}=this;switch(this.pass(_L[t]),t){case"u8":return n.getUint8(r);case"u16":return n.getUint16(r);case"u32":return n.getUint32(r);case"u64":return ym(n,r);case"i8":return n.getInt8(r);case"i16":return n.getInt16(r);case"i32":return n.getInt32(r);case"i64":return mL(n,r);case"f32":return n.getFloat32(r);case"f64":return n.getFloat64(r);default:throw new TypeError(`Invalid ReadType: ${t}`)}}readString(t){const n=this.take(t);return new TextDecoder().decode(n)}readUnicodeString(t=4){const n=this.read("u32")*2,r=this.take(n),f=new TextDecoder("utf-16be").decode(r);return this.padding(4+n,t),f.charCodeAt(f.length-1)===0?f.slice(0,-1):f}readFixedPoint32bit(){return this.read("u32")/65536}readIdString(){const t=this.read("u32");return this.readString(t||4)}padding(t,n){const r=t%n;r>0&&this.pass(n-r)}}const Vl=(e,t,n)=>t<=e&&e<=n;function gs(e){return e.bottom-e.top}function bL(e){return e.right-e.left}function sp(e){return bL(e)*gs(e)}var ia;(function(e){e.PassThrough="pass",e.Normal="norm",e.Dissolve="diss",e.Darken="dark",e.Multiply="mul ",e.ColorBurn="idiv",e.LinearBurn="lbrn",e.DarkerColor="dkCl",e.Lighten="lite",e.Screen="scrn",e.ColorDodge="div ",e.LinearDodge="lddg",e.LighterColor="lgCl",e.Overlay="over",e.SoftLight="sLit",e.HardLight="hLit",e.VividLight="vLit",e.LinearLight="lLit",e.PinLight="pLit",e.HardMix="hMix",e.Difference="diff",e.Exclusion="smud",e.Subtract="fsub",e.Divide="fdiv",e.Hue="hue ",e.Saturation="sat ",e.Color="colr",e.Luminosity="lum "})(ia||(ia={}));function mm(e){const t=Object.keys(ia);for(const n of t)if(ia[n]===e)return e;throw new YF}var Dr;(function(e){e[e.Base=0]="Base",e[e.NonBase=1]="NonBase"})(Dr||(Dr={}));function wL(e){if(e===Dr.Base)return Dr.Base;if(e===Dr.NonBase)return Dr.NonBase;throw new VF}var Pu;(function(e){e[e.Bitmap=0]="Bitmap",e[e.Grayscale=1]="Grayscale",e[e.Indexed=2]="Indexed",e[e.Rgb=3]="Rgb",e[e.Cmyk=4]="Cmyk",e[e.Multichannel=7]="Multichannel",e[e.Duotone=8]="Duotone",e[e.Lab=9]="Lab"})(Pu||(Pu={}));var Qu;(function(e){e[e.One=1]="One",e[e.Eight=8]="Eight",e[e.Sixteen=16]="Sixteen",e[e.ThirtyTwo=32]="ThirtyTwo"})(Qu||(Qu={}));var Qt;(function(e){e.Alias="alis",e.Boolean="bool",e.Class="type",e.Descriptor="Objc",e.Double="doub",e.Enumerated="enum",e.GlobalClass="GlbC",e.GlobalObject="GlbO",e.Integer="long",e.LargeInteger="comp",e.List="VlLs",e.RawData="tdta",e.Reference="obj ",e.String="TEXT",e.UnitFloat="UntF",e.UnitFloats="UnFl",e.ObjectArray="ObAr"})(Qt||(Qt={}));var Fu;(function(e){e.Angle="#Ang",e.Density="#Rsl",e.Distance="#Rlt",e.Millimeters="#Mlm",e.None="#Nne",e.Percent="#Prc",e.Pixels="#Pxl",e.Points="#Pnt"})(Fu||(Fu={}));function kr(e,t,n){const r=e.items.get(t);if(!r)throw new uL(`Cannot find key "${t}" in descriptor`);if(r.type!==n)throw new hL(`Unexpected descriptor value type: expected "${n}" but got "${r.type}"`);return r}var $r;(function(e){e[e.PSD=1]="PSD",e[e.PSB=2]="PSB"})($r||($r={}));const CL=[56,66,80,83],EL=[0,0,0,0,0,0],SL=[1,8,16,32],xL=1,IL=56,ap=1;function OL(e){const t=new tr(e),n=t.take(4);if(!Mu(n,CL))throw new LF;const r=t.read("u16");if(!(r===$r.PSD||r===$r.PSB))throw new gm;const f=hf(r),p=t.take(6);if(!Mu(p,EL))throw new jF;const v=t.read("u16");if(!Vl(v,xL,IL))throw new GF;const u=t.read("u32"),o=t.read("u32");if(!Vl(u,ap,f.maxPixels)||!Vl(o,ap,f.maxPixels))throw new $F;const s=t.read("u16");if(!SL.includes(s))throw new UF;const c=t.read("u16");if(!(c in Pu))throw new NF;return{channelCount:v,version:r,width:o,height:u,depth:s,colorMode:c}}function BL(e,t,n){const r=(e.length-2)/n,f=e.extract(r),p=n>=2?e.extract(r):void 0,v=n>=3?e.extract(r):void 0,u=n>=4?e.extract(r):void 0;if(t===Qu.Eight)return{red:f,green:p,blue:v,alpha:u};throw new WF(`Unsupported image bit depth: ${t}`)}function TL(e,t,n,r){let f=0,p=0,v=0,u=0;const o=r.rleScanlineLengthFieldReadType;for(let g=0;g<n;g++)f+=e.read(o);if(t>=2)for(let g=0;g<n;g++)p+=e.read(o);if(t>=3)for(let g=0;g<n;g++)v+=e.read(o);if(t===4)for(let g=0;g<n;g++)u+=e.read(o);const s=2+t*n*r.rleScanlineLengthFieldSize,c=e.clone(s),i=c.take(f),l=p?c.take(p):void 0,a=v?c.take(v):void 0,h=u?c.take(u):void 0;return{red:i,green:l,blue:a,alpha:h}}function kL(e,t,n,r,f){const p=new tr(e),v=p.read("u16");if(!(v in gn))throw new pm;const{red:u,green:o,blue:s,alpha:c}=(()=>{switch(v){case gn.RawData:return BL(p,t,r);case gn.RleCompressed:return TL(p,r,n,f);default:throw new Am}})();return{compression:v,red:u,green:o,blue:s,alpha:c}}function DL(e){const t=e.read("u32");if(t!==1)throw new eL;const n=e.read("u32"),r=e.read("u32"),f=e.read("u32"),p=[];for(let v=0;v<f;++v){const u=e.read("i32"),o=Pj(e.read("u8"));p.push({position:u,direction:o})}return{version:t,gridSizeX:n,gridSizeY:r,guides:p}}function RL(e,t){return e.take(t-e.position)}function ML(e){const t=e.readFixedPoint32bit(),n=e.read("u16"),r=e.read("u16"),f=e.readFixedPoint32bit(),p=e.read("u16"),v=e.read("u16");return{horizontal:t,horizontalUnit:n,widthUnit:r,vertical:f,verticalUnit:p,heightUnit:v}}function PL(e,t){const n=e.read("u32");if(n===6){const r=e.read("i32"),f=e.read("i32"),p=e.read("i32"),v=e.read("i32"),u=e.readUnicodeString(0),o=e.read("u32"),s=[];for(;s.length<o;){const i=e.read("u32"),l=e.read("u32"),a=Qj(e.read("u32")),h=a===1?e.read("u32"):void 0;s.push({id:i,groupId:l,origin:a,associatedLayerId:h,name:e.readUnicodeString(0),type:e.read("u32"),left:e.read("i32"),top:e.read("i32"),right:e.read("i32"),bottom:e.read("i32"),url:e.readUnicodeString(0),target:e.readUnicodeString(0),message:e.readUnicodeString(0),altTag:e.readUnicodeString(0),isCellTextHtml:!!e.read("u8"),cellText:e.readUnicodeString(0),horizontalAlignment:e.read("i32"),verticalAlignment:e.read("i32"),alpha:e.read("u8"),red:e.read("u8"),green:e.read("u8"),blue:e.read("u8")})}const c=e.position<t?cn(e):void 0;return{version:n,boundTop:r,boundLeft:f,boundBottom:p,boundRight:v,sliceGroupName:u,slices:s,descriptor:c}}else if(n===7||n===8){const r=cn(e);return{version:n,descriptor:r}}else throw new rL(`Invalid Slices section version: ${n}`)}const QL=[56,66,73,77];function FL(e){const t=new tr(e),n=[],r=t.read("u32");for(;t.position<r;){const f=LL(t);n.push(f)}return{resources:n}}function LL(e){const t=e.take(4);if(!Mu(t,QL))throw new ZF;const n=e.read("i16"),r=jL(e,2),f=e.read("u32"),p=e.position+f,v=f+f%2,u=e.position;let o=null;switch(n){case Ce.GridAndGuides:o=DL(e);break;case Ce.Slices:o=PL(e,p);break;case Ce.ICCProfile:o=RL(e,p);break;case Ce.ResolutionInfo:o=ML(e);break;case Ce.GlobalLightAltitude:o=e.read("i32");break;case Ce.GlobalLightAngle:o=e.read("i32");break}const s=e.position,c=u+v-s;return c>0&&e.pass(c),{id:n,name:r,resource:o}}function jL(e,t=0){const n=e.read("u8"),r=e.readString(n);if(t){const f=(n+1)%t;f>0&&e.pass(t-f)}return r}function _m(e){const t={};for(const[n,r]of e)t[n]=r;return t}const bm=(e,t,n)=>{const{top:r,left:f,bottom:p,right:v,opacity:u,clipping:o,hidden:s,transparencyLocked:c,blendMode:i,layerText:l,engineData:a,maskData:h,additionalLayerInfos:g}=t,d=_m(g.map(A=>[A.key,A]));return{name:e,top:r,left:f,bottom:p,right:v,opacity:u,clippingMask:o,hidden:s,transparencyLocked:c,blendMode:i,groupId:n,text:l,textProperties:a,maskData:h,additionalLayerProperties:d}};class lf{static create(t,n,r){const f=bm(t.name,t,r);return new lf(n,f)}constructor(t,n){this.channels=t,this.layerProperties=n}get red(){const t=this.channels.get(ve.Red);if(t===void 0)throw new XF;return t}get green(){return this.channels.get(ve.Green)}get blue(){return this.channels.get(ve.Blue)}get alpha(){return this.channels.get(ve.TransparencyMask)}get userMask(){return this.channels.get(ve.UserSuppliedLayerMask)}get realUserMask(){return this.channels.get(ve.RealUserSuppliedLayerMask)}get width(){const{right:t,left:n}=this.layerProperties;return t-n+1}get height(){const{bottom:t,top:n}=this.layerProperties;return t-n+1}}class uf{static create(t,n,r,f){const p=bm(t,r,f);return new uf(n,p)}constructor(t,n){this.id=t,this.layerProperties=n}}function NL(e){return{data:cn(e)}}function UL(e){return{fillOpacity:e.read("u8")}}function GL(e){return{data:cn(e)}}function Lu(e){const t=e.read("i16"),n=e.read("i16"),r=e.read("i16");return{hue:t,saturation:n,lightness:r}}function $L(e){const t=e.read("i16"),n=e.read("i16"),r=e.read("i16"),f=e.read("i16");return{beginRamp:t,beginSustain:n,endSustain:r,endRamp:f,...Lu(e)}}function HL(e){return Array.from(Array(6),()=>$L(e))}function zL(e){const t=e.read("u16"),n=e.read("u8");e.pass(1);const r=Lu(e),f=Lu(e);return{version:t,colorize:n,colorization:r,master:f,adjustment:n?void 0:HL(e)}}function YL(e){return{value:e.read("u32")}}function WL(e,t){const n=[];let r=0;const f=e.position+t;for(;e.position<f&&(r=e.read("u64"));){const p=e.position,v=qL(e);n.push(v);const u=e.position-p,o=r-u;e.pass(o),e.padding(e.position,4)}return{layers:n}}function qL(e){const t=e.readString(4);if(t!=="liFD")throw new sL(`unknown layer type: '${t}'`);const n=e.read("i32"),r=XL(e),f=e.readUnicodeString(0),p=e.readString(4),v=e.readString(4),u=e.read("u64"),o=e.read("u8")?cn(e):void 0,s=e.take(u),c=n>5?e.readUnicodeString():void 0;return{layerType:t,version:n,uniqueId:r,filename:f,filetype:p,creator:v,data:o,contents:s,uuid:c}}function XL(e){const t=e.read("u8");return e.readString(t)}function VL(e){const t=e.read("u32"),n=e.read("u32"),r=wc(e);return{version:t,descriptor:r,descriptorVersion:n}}function JL(e){return{data:cn(e)}}function KL(e,t){const n=Mj(e.read("u32"));if(t<12)return{dividerType:n};const r=e.readString(4);if(r!=="8BIM")throw new ip(`Invalid Section Divider Setting signature: ${r}`);const f=mm(e.readString(4));if(t<16)return{dividerType:n,dividerSignature:r,blendMode:f};const p=e.read("u32");if(!(p in Ru))throw new ip(`Invalid Section Divider Setting subtype: ${p}`);return{dividerType:n,dividerSignature:r,blendMode:f,subType:p}}function ZL(e){const t=e.readString(4),n=e.read("u32");return{data:cn(e),version:n,identifier:t}}function tj(e){const t=e.read("u32"),n=wc(e);return{version:t,data:n}}function ej(e){const t=e.read("u16");if(t!==1)throw new ql(`Invalid type tool object setting version: ${t}`);const n=e.read("f64"),r=e.read("f64"),f=e.read("f64"),p=e.read("f64"),v=e.read("f64"),u=e.read("f64"),o=e.read("u16");if(o!==50)throw new ql(`Invalid text version: ${o}`);const s=cn(e),c=e.read("u16");if(c!==1)throw new ql(`Invalid warp version: ${c}`);const i=cn(e),l=e.read("f64"),a=e.read("f64"),h=e.read("f64"),g=e.read("f64");return{version:t,transformXX:n,transformXY:r,transformYX:f,transformYY:p,transformTX:v,transformTY:u,textVersion:o,textData:s,warpVersion:c,warpData:i,left:l,top:a,right:h,bottom:g}}function nj(e){return{name:e.readUnicodeString(0)}}function cp(e){const[t,...n]=e.take(4),r=n[0]*2**16+n[1]*2**8+n[2];return t+r/2**24}function Jl(e){const t=cp(e),n=cp(e);return{vert:t,horiz:n}}function rj(e,t){const n=e.read("i16"),r=e.read("i16"),f=e.read("i16");e.pass(6);const p=e.read("i16");return e.pass(10),{type:t,length:n,operation:r,subpathType:f,index:p}}function ij(e,t){const n=Array(4).map(()=>e.read("f32")),r=e.read("f32");return e.pass(6),{type:t,bounds:n,resolution:r}}function oj(e,t){const n=!!(e.read("i16")&1);return e.pass(22),{type:t,fill:n}}function sj(e,t){const n=Jl(e),r=Jl(e),f=Jl(e);return{type:t,preceding:n,anchor:r,leaving:f}}function aj(e){const t=e.read("u16");switch(t){case nn.OpenSubpathLength:case nn.ClosedSubpathLength:return rj(e,t);case nn.PathFillRule:return e.pass(24),{type:t};case nn.Clipboard:return ij(e,t);case nn.InitialFillRule:return oj(e,t);case nn.ClosedSubpathBezierKnotLinked:case nn.ClosedSubpathBezierKnotUnlinked:case nn.OpenSubpathBezierKnotLinked:case nn.OpenSubpathBezierKnotUnlinked:return sj(e,t);default:throw new Error(`Unknown PathRecordType: ${t} (bug in offsets?)`)}}function cj(e,t){const n=Math.floor(t/26);return Array.from(Array(n),()=>aj(e))}function lj(e,t){const n=e.read("u32"),r=e.read("u32"),f=cj(e,t);return{version:n,pathRecords:f,invert:!!(r&1),notLink:!!(r&2),disable:!!(r&4)}}function uj(e){const t=e.read("u32"),n=cn(e);return{version:t,data:n}}function hj(e){return{data:cn(e)}}function wm(e,t,n=0){const r=e.readString(4);if(r!=="8BIM"&&r!=="8B64")throw new oL(`Invalid signature: ${r}`);const f=e.readString(4),p=e.read(dj(f,t)),v=e.position,u=fj(e,r,f,p),o=p-(e.position-v);return e.pass(o),e.padding(p,n),u}function fj(e,t,n,r){switch(n){case Gt.NestedSectionDividerSetting:case Gt.SectionDividerSetting:return{signature:t,key:n,...KL(e,r)};case Gt.TypeToolObjectSetting:return{signature:t,key:n,...ej(e)};case Gt.UnicodeLayerName:return{signature:t,key:n,...nj(e)};case Gt.VectorStrokeData:return{signature:t,key:n,...hj(e)};case Gt.ObjectBasedEffects:return{signature:t,key:n,...VL(e)};case Gt.GradientFillSetting:return{signature:t,key:n,...GL(e)};case Gt.SolidColorSheetSetting:return{signature:t,key:n,...tj(e)};case Gt.PatternFillSetting:return{signature:t,key:n,...JL(e)};case Gt.VectorStrokeContentData:return{signature:t,key:n,...uj(e)};case Gt.BlendOptionsCapacity:return{signature:t,key:n,...UL(e)};case Gt.VectorMaskSetting1:case Gt.VectorMaskSetting2:return{signature:t,key:n,...lj(e,r)};case Gt.HueSaturation:return{signature:t,key:n,...zL(e)};case Gt.LayerId:return{signature:t,key:n,...YL(e)};case Gt.ArtboardData:return{signature:t,key:n,...NL(e)};case Gt.PlacedLayerData:case Gt.SmartObjectPlacedLayerData:return{signature:t,key:n,...ZL(e)};case Gt.LinkedLayer:case Gt.LinkedLayer2:case Gt.LinkedLayer3:return{signature:t,key:n,...WL(e,r)};default:{const f=e.take(r);return{signature:t,key:n,_isUnknown:!0,data:f}}}}function dj(e,t){if(t.aliLengthFieldSizeIsVariable)switch(e){case"LMsk":case"Lr16":case"Lr32":case"Layr":case"Mt16":case"Mt32":case"Mtrn":case"Alph":case"FMsk":case"Ink2":case"FEid":case"FXid":case"PxSD":case"cinf":return"u64"}return"u32"}const gj="8BIM";function pj(e,t,n){const r=[];for(;r.length<t;)r.push(Aj(e,n));return r.map(f=>{const p=wj(e,f.channelInformation,f,n);return[f,p]}).reverse()}function Aj(e,t){const[n,r,f,p]=yj(e),v=e.read("u16"),u=[];for(;u.length<v;){const S=e.read("i16"),O=e.read(t.layerRecordSectionChannelLengthFieldReadType)-2;u.push([S,O])}if(e.readString(4)!==gj)throw new HF;const o=mm(e.readString(4)),s=e.read("u8"),c=wL(e.read("u8")),{hidden:i,transparencyLocked:l}=mj(e);e.pass(1);const a=e.read("u32"),h=e.position,g=Ej(e);e.pass(e.read("u32"));const d=e.read("u8");let A=e.readString(d);e.padding(d+1,4);const y=[];for(;e.position-h<a;)y.push(wm(e,t));let m,_,w;for(const S of y)if(!S._isUnknown)switch(S.key){case Gt.SectionDividerSetting:({dividerType:m}=S);break;case Gt.TypeToolObjectSetting:{const O=S.textData.descriptor.items.get("Txt ");O&&O.type===Qt.String&&(_=O.value);const P=S.textData.descriptor.items.get("EngineData");P&&P.type===Qt.RawData&&(w=Xj(P.data));break}case Gt.UnicodeLayerName:({name:A}=S);break}return{name:A,channelInformation:u,top:n,left:r,bottom:f,right:p,hidden:i,transparencyLocked:l,opacity:s,clipping:c,blendMode:o,additionalLayerInfos:y,dividerType:m,layerText:_,engineData:w,maskData:g}}function vj(e,t){const n=[];for(;e.position<e.length;)n.push(wm(e,t,4));return _m(n.map(r=>[r.key,r]))}function yj(e){const t=e.read("i32"),n=e.read("i32");let r=e.read("i32");r!==0&&(r-=1);let f=e.read("i32");return f!==0&&(f-=1),[t,n,r,f]}function mj(e){const t=e.read("u8");return{transparencyLocked:!!(t&1),hidden:!!(t&2)}}function _j(e){const t=e.maskData.realData;if(!t)throw new Error("missing real mask data");return t}function bj(e,t){switch(t){case ve.UserSuppliedLayerMask:return gs(e.maskData);case ve.RealUserSuppliedLayerMask:return gs(_j(e));default:return gs(e)+1}}function wj(e,t,n,r){const f=new Map,{length:p}=t;for(let v=0;v<p;v++){const[u,o]=t[v],s=Dj(e.read("u16"));switch(s){case gn.RawData:{const c=e.take(o);f.set(u,{compression:s,data:c});break}case gn.RleCompressed:{const c=e.take(o>0?Cj(e,bj(n,u),r.rleScanlineLengthFieldReadType):o);f.set(u,{compression:s,data:c});break}}}return f}function Cj(e,t,n){return Array.from(Array(t),()=>e.read(n)).reduce((r,f)=>r+f)}function Ej(e){const t=e.read("u32"),n=e.position,[r,f,p,v]=Cm(e),u=e.read("u8"),o=Em(e),s=t>=36?xj(e):void 0,c=o.masksHaveParametersApplied?Sj(e):void 0,i=t-(e.position-n);return e.pass(i),{top:r,left:f,bottom:p,right:v,backgroundColor:u,flags:o,parameters:c,realData:s}}function Cm(e){return Array.from(Array(4),()=>e.read("i32"))}var ur;(function(e){e[e.PositionRelativeToLayer=1]="PositionRelativeToLayer",e[e.LayerMaskDisabled=2]="LayerMaskDisabled",e[e.InvertMaskWhenBlending=4]="InvertMaskWhenBlending",e[e.UserMaskFromRenderingOtherData=8]="UserMaskFromRenderingOtherData",e[e.MasksHaveParametersApplied=16]="MasksHaveParametersApplied"})(ur||(ur={}));function Em(e){const t=e.read("u8");return{positionRelativeToLayer:!!(t&ur.PositionRelativeToLayer),layerMaskDisabled:!!(t&ur.LayerMaskDisabled),invertMaskWhenBlending:!!(t&ur.InvertMaskWhenBlending),userMaskFromRenderingOtherData:!!(t&ur.UserMaskFromRenderingOtherData),masksHaveParametersApplied:!!(t&ur.MasksHaveParametersApplied)}}var Rr;(function(e){e[e.UserMaskDensity=1]="UserMaskDensity",e[e.UserMaskFeather=2]="UserMaskFeather",e[e.VectorMaskDensity=4]="VectorMaskDensity",e[e.VectorMaskFeather=8]="VectorMaskFeather"})(Rr||(Rr={}));function Sj(e){const t=e.read("u8");return{userMaskDensity:t&Rr.UserMaskDensity?e.read("u8"):void 0,userMaskFeather:t&Rr.UserMaskFeather?e.read("f64"):void 0,vectorMaskDensity:t&Rr.VectorMaskDensity?e.read("u8"):void 0,vectorMaskFeather:t&Rr.VectorMaskFeather?e.read("f64"):void 0}}function xj(e){const t=Em(e),n=e.read("u8"),[r,f,p,v]=Cm(e);return{top:r,left:f,bottom:p,right:v,flags:t,backgroundColor:n}}function Ij(e,t){const n=new tr(e);n.pass(t.layerAndMaskSectionLengthFieldSize),n.pass(t.layerInfoSectionLengthFieldSize);const r=n.read("i16"),f=Math.abs(r),p=pj(n,f,t);n.padding(n.position,4),n.pass(n.read("u32"));const v=vj(n,t),u=[],o=[],s=[],c=[{startIndex:0,groupId:0,parentGroupId:0}];let i=0;for(let l=0;l<f;l++){const[a,h]=p[l],g=c[c.length-1].groupId,{dividerType:d}=a;if(d===Nr.CloseFolder||d===Nr.OpenFolder)i+=1,c.push({startIndex:u.length,groupId:i,parentGroupId:g,layerRecord:a}),s.push("G");else if(d===Nr.BoundingSection){const A=c.pop();if(A===void 0)throw new JF;const y=A.groupId>0?A.groupId:void 0,m=A.layerRecord||a;o.push(uf.create(m.name,A.groupId,m,y)),s.push("D")}else u.push(lf.create(a,h,g)),s.push("L")}return o.sort((l,a)=>l.id-a.id),{layers:u,groups:o,orders:s,globalAdditionalLayerInformation:v}}const Oj=26;function Kl(e,t,n=4){const r=(n===4?e.getUint32(t):ym(e,t))+n;return{start:t,end:t+r,size:r}}function Bj(e){const t=new DataView(e),n=0,r=Oj,f=new DataView(e,n,r),p=OL(f),v=hf(p.version),u=Kl(t,n+r),o=Kl(t,u.end),s=Kl(t,o.end,v.layerAndMaskSectionLengthFieldSize);return{fileHeader:p,colorModeData:new DataView(e,u.size),imageResources:new DataView(e,o.start,o.size),layerAndMaskInformation:new DataView(e,s.start,s.size),imageData:new DataView(e,s.end)}}const Tj={maxPixels:3e4,rleScanlineLengthFieldSize:2,rleScanlineLengthFieldReadType:"u16",layerAndMaskSectionLengthFieldSize:4,layerInfoSectionLengthFieldSize:4,layerRecordSectionChannelLengthFieldReadType:"u32",aliLengthFieldSizeIsVariable:!1},kj={maxPixels:3e5,rleScanlineLengthFieldSize:4,rleScanlineLengthFieldReadType:"u32",layerAndMaskSectionLengthFieldSize:8,layerInfoSectionLengthFieldSize:8,layerRecordSectionChannelLengthFieldReadType:"u64",aliLengthFieldSizeIsVariable:!0};function hf(e){switch(e){case $r.PSD:return Tj;case $r.PSB:return kj;default:throw new gm}}var gn;(function(e){e[e.RawData=0]="RawData",e[e.RleCompressed=1]="RleCompressed",e[e.ZipWithoutPrediction=2]="ZipWithoutPrediction",e[e.ZipWithPrediction=3]="ZipWithPrediction"})(gn||(gn={}));function Dj(e){if(!(e in gn))throw new pm;return e}var ve;(function(e){e[e.Red=0]="Red",e[e.Green=1]="Green",e[e.Blue=2]="Blue",e[e.TransparencyMask=-1]="TransparencyMask",e[e.UserSuppliedLayerMask=-2]="UserSuppliedLayerMask",e[e.RealUserSuppliedLayerMask=-3]="RealUserSuppliedLayerMask"})(ve||(ve={}));function Rj(e){switch(e){case ve.Red:return 0;case ve.Green:return 1;case ve.Blue:return 2;case ve.TransparencyMask:return 3;default:throw new qF}}var Nr;(function(e){e[e.Other=0]="Other",e[e.OpenFolder=1]="OpenFolder",e[e.CloseFolder=2]="CloseFolder",e[e.BoundingSection=3]="BoundingSection"})(Nr||(Nr={}));function Mj(e){if(e in Nr)return e;throw new zF}var ju;(function(e){e[e.Vertical=0]="Vertical",e[e.Horizontal=1]="Horizontal"})(ju||(ju={}));function Pj(e){if(!(e in ju))throw new nL;return e}var Ce;(function(e){e[e.GridAndGuides=1032]="GridAndGuides",e[e.Slices=1050]="Slices",e[e.ICCProfile=1039]="ICCProfile",e[e.GlobalLightAngle=1037]="GlobalLightAngle",e[e.GlobalLightAltitude=1049]="GlobalLightAltitude",e[e.ResolutionInfo=1005]="ResolutionInfo"})(Ce||(Ce={}));var Ur;(function(e){e[e.AutoGenerated=0]="AutoGenerated",e[e.LayerGenerated=1]="LayerGenerated",e[e.UserGenerated=2]="UserGenerated"})(Ur||(Ur={}));function Qj(e){if(!(e in Ur))throw new iL(`Invalid slice origin: ${e}`);return e}var lp;(function(e){e[e.PixelsPerInch=1]="PixelsPerInch",e[e.PixelsPerCM=2]="PixelsPerCM"})(lp||(lp={}));var up;(function(e){e[e.Inch=1]="Inch",e[e.CM=2]="CM",e[e.Point=3]="Point",e[e.Pica=4]="Pica",e[e.Column=5]="Column"})(up||(up={}));var In;(function(e){e.Class="Clss",e.Enumerated="Enmr",e.Identifier="Idnt",e.Index="indx",e.Name="name",e.Offset="rele",e.Property="prop"})(In||(In={}));function hp(e,t=255){if(!(0<=t&&t<=255))throw new KF;const n=e.length/4,r=Rj(ve.TransparencyMask),f=t/255;for(let p=0;p<n;p++){const v=p*4+r;e[v]=Math.floor(f*e[v])}return e}let fp,dp,gp,pp,Ap,vp,Sm,xm,Im,Om,Bm=(async()=>{const e="data:application/wasm;base64,AGFzbQEAAAABbw9gAn9/AX9gAn9/AGADf39/AX9gAX8Bf2ABfwBgA39/fwBgAX8BfmAAAX9gBX9/f39/AGAAAGAEf39/fwF/YA5/f39/f39/f39/f39/fwBgC39/f39/f39/f39/AGAEf39/fwBgCH9/f39/f39/AAKYAgUbLi93ZWJ0b29uX3BzZF9kZWNvZGVyX2JnLmpzGl9fd2JnX25ld19hYmRhNzZlODgzYmE4YTVmAAcbLi93ZWJ0b29uX3BzZF9kZWNvZGVyX2JnLmpzHF9fd2JnX3N0YWNrXzY1ODI3OWZlNDQ1NDFjZjYAARsuL3dlYnRvb25fcHNkX2RlY29kZXJfYmcuanMcX193YmdfZXJyb3JfZjg1MTY2N2FmNzFiY2ZjNgABGy4vd2VidG9vbl9wc2RfZGVjb2Rlcl9iZy5qcxpfX3diaW5kZ2VuX29iamVjdF9kcm9wX3JlZgAEGy4vd2VidG9vbl9wc2RfZGVjb2Rlcl9iZy5qcxBfX3diaW5kZ2VuX3Rocm93AAEDVVQDBAICAQAAAAAEAQcICwUMAQEIDQ4BCAEAAAAFAQICCQAJAQoBCgMBBAUBBAMDAQAKBQMAAAAAAAEDAAMDAQMAAAMJAwMDAwECAgcAAAMDAQYGBgQEBQFwASUlBQMBABEGCQF/AUGAgMAACwfHAQsGbWVtb3J5AgAHbWFpbl9qcwAkCmRlY29kZV9yZ2IAFAtkZWNvZGVfcmdiYQASEGRlY29kZV9ncmF5c2NhbGUAGxJkZWNvZGVfZ3JheXNjYWxlX2EAGR9fX3diaW5kZ2VuX2FkZF90b19zdGFja19wb2ludGVyAEYRX193YmluZGdlbl9tYWxsb2MAJQ9fX3diaW5kZ2VuX2ZyZWUANhJfX3diaW5kZ2VuX3JlYWxsb2MAKhBfX3diaW5kZ2VuX3N0YXJ0ACQJKgEAQQELJFhUVFRYIgsdMCMNH1g5RRpYIgweMFZVLRYcJz1XRDs/OjhYVwr0lwFU/CACD38BfiMAQRBrIgskAAJAAkACQAJAAkACQCAAQfUBTwRAQQhBCBA0IQZBFEEIEDQhBUEQQQgQNCEBQQBBEEEIEDRBAnRrIgJBgIB8IAEgBSAGamprQXdxQQNrIgEgASACSxsgAE0NBiAAQQRqQQgQNCEEQdiQwAAoAgBFDQVBACAEayEDAn9BACAEQYACSQ0AGkEfIARB////B0sNABogBEEGIARBCHZnIgBrdkEBcSAAQQF0a0E+agsiBkECdEG8jcAAaigCACIBDQFBACEAQQAhBQwCC0EQIABBBGpBEEEIEDRBBWsgAEsbQQgQNCEEAkACQAJAAn8CQAJAQdSQwAAoAgAiASAEQQN2IgB2IgJBA3FFBEAgBEHckMAAKAIATQ0LIAINAUHYkMAAKAIAIgBFDQsgABBAaEECdEG8jcAAaigCACIBEEggBGshAyABEDEiAARAA0AgABBIIARrIgIgAyACIANJIgIbIQMgACABIAIbIQEgABAxIgANAAsLIAEgBBBQIQUgARAOQRBBCBA0IANLDQUgASAEEEIgBSADEDNB3JDAACgCACIARQ0EIABBeHFBzI7AAGohB0HkkMAAKAIAIQZB1JDAACgCACICQQEgAEEDdnQiAHFFDQIgBygCCAwDCwJAIAJBf3NBAXEgAGoiA0EDdCIAQdSOwABqKAIAIgVBCGooAgAiAiAAQcyOwABqIgBHBEAgAiAANgIMIAAgAjYCCAwBC0HUkMAAIAFBfiADd3E2AgALIAUgA0EDdBAvIAUQUiEDDAsLAkBBASAAQR9xIgB0EDcgAiAAdHEQQGgiAkEDdCIAQdSOwABqKAIAIgNBCGooAgAiASAAQcyOwABqIgBHBEAgASAANgIMIAAgATYCCAwBC0HUkMAAQdSQwAAoAgBBfiACd3E2AgALIAMgBBBCIAMgBBBQIgUgAkEDdCAEayICEDNB3JDAACgCACIABEAgAEF4cUHMjsAAaiEHQeSQwAAoAgAhBgJ/QdSQwAAoAgAiAUEBIABBA3Z0IgBxBEAgBygCCAwBC0HUkMAAIAAgAXI2AgAgBwshACAHIAY2AgggACAGNgIMIAYgBzYCDCAGIAA2AggLQeSQwAAgBTYCAEHckMAAIAI2AgAgAxBSIQMMCgtB1JDAACAAIAJyNgIAIAcLIQAgByAGNgIIIAAgBjYCDCAGIAc2AgwgBiAANgIIC0HkkMAAIAU2AgBB3JDAACADNgIADAELIAEgAyAEahAvCyABEFIiAw0FDAQLIAQgBhAydCEHQQAhAEEAIQUDQAJAIAEQSCICIARJDQAgAiAEayICIANPDQAgASEFIAIiAw0AQQAhAyABIQAMAwsgAUEUaigCACICIAAgAiABIAdBHXZBBHFqQRBqKAIAIgFHGyAAIAIbIQAgB0EBdCEHIAENAAsLIAAgBXJFBEBBACEFQQEgBnQQN0HYkMAAKAIAcSIARQ0DIAAQQGhBAnRBvI3AAGooAgAhAAsgAEUNAQsDQCAAIAUgABBIIgEgBE8gASAEayICIANJcSIBGyEFIAIgAyABGyEDIAAQMSIADQALCyAFRQ0AIARB3JDAACgCACIATSADIAAgBGtPcQ0AIAUgBBBQIQYgBRAOAkBBEEEIEDQgA00EQCAFIAQQQiAGIAMQMyADQYACTwRAIAYgAxAPDAILIANBeHFBzI7AAGohAgJ/QdSQwAAoAgAiAUEBIANBA3Z0IgBxBEAgAigCCAwBC0HUkMAAIAAgAXI2AgAgAgshACACIAY2AgggACAGNgIMIAYgAjYCDCAGIAA2AggMAQsgBSADIARqEC8LIAUQUiIDDQELAkACQAJAAkACQAJAAkAgBEHckMAAKAIAIgBLBEBB4JDAACgCACIAIARLDQJBCEEIEDQgBGpBFEEIEDRqQRBBCBA0akGAgAQQNCIAQRB2QAAhASALQQA2AgggC0EAIABBgIB8cSABQX9GIgAbNgIEIAtBACABQRB0IAAbNgIAIAsoAgAiCA0BQQAhAwwIC0HkkMAAKAIAIQJBEEEIEDQgACAEayIBSwRAQeSQwABBADYCAEHckMAAKAIAIQBB3JDAAEEANgIAIAIgABAvIAIQUiEDDAgLIAIgBBBQIQBB3JDAACABNgIAQeSQwAAgADYCACAAIAEQMyACIAQQQiACEFIhAwwHCyALKAIIIQxB7JDAACALKAIEIgpB7JDAACgCAGoiATYCAEHwkMAAQfCQwAAoAgAiACABIAAgAUsbNgIAAkACQAJAQeiQwAAoAgAEQEG8jsAAIQADQCAAEEMgCEYNAiAAKAIIIgANAAsMAgtB+JDAACgCACIARSAAIAhLcg0FDAcLIAAQSg0AIAAQSyAMRw0AIAAoAgAiAkHokMAAKAIAIgFNBH8gAiAAKAIEaiABSwVBAAsNAQtB+JDAAEH4kMAAKAIAIgAgCCAAIAhJGzYCACAIIApqIQFBvI7AACEAAkACQANAIAEgACgCAEcEQCAAKAIIIgANAQwCCwsgABBKDQAgABBLIAxGDQELQeiQwAAoAgAhCUG8jsAAIQACQANAIAkgACgCAE8EQCAAEEMgCUsNAgsgACgCCCIADQALQQAhAAsgCSAAEEMiBkEUQQgQNCIPa0EXayIBEFIiAEEIEDQgAGsgAWoiACAAQRBBCBA0IAlqSRsiDRBSIQ4gDSAPEFAhAEEIQQgQNCEDQRRBCBA0IQVBEEEIEDQhAkHokMAAIAggCBBSIgFBCBA0IAFrIgEQUCIHNgIAQeCQwAAgCkEIaiACIAMgBWpqIAFqayIDNgIAIAcgA0EBcjYCBEEIQQgQNCEFQRRBCBA0IQJBEEEIEDQhASAHIAMQUCABIAIgBUEIa2pqNgIEQfSQwABBgICAATYCACANIA8QQkG8jsAAKQIAIRAgDkEIakHEjsAAKQIANwIAIA4gEDcCAEHIjsAAIAw2AgBBwI7AACAKNgIAQbyOwAAgCDYCAEHEjsAAIA42AgADQCAAQQQQUCAAQQc2AgQiAEEEaiAGSQ0ACyAJIA1GDQcgCSANIAlrIgAgCSAAEFAQLiAAQYACTwRAIAkgABAPDAgLIABBeHFBzI7AAGohAgJ/QdSQwAAoAgAiAUEBIABBA3Z0IgBxBEAgAigCCAwBC0HUkMAAIAAgAXI2AgAgAgshACACIAk2AgggACAJNgIMIAkgAjYCDCAJIAA2AggMBwsgACgCACEDIAAgCDYCACAAIAAoAgQgCmo2AgQgCBBSIgVBCBA0IQIgAxBSIgFBCBA0IQAgCCACIAVraiIGIAQQUCEHIAYgBBBCIAMgACABa2oiACAEIAZqayEEQeiQwAAoAgAgAEcEQCAAQeSQwAAoAgBGDQMgACgCBEEDcUEBRw0FAkAgABBIIgVBgAJPBEAgABAODAELIABBDGooAgAiAiAAQQhqKAIAIgFHBEAgASACNgIMIAIgATYCCAwBC0HUkMAAQdSQwAAoAgBBfiAFQQN2d3E2AgALIAQgBWohBCAAIAUQUCEADAULQeiQwAAgBzYCAEHgkMAAQeCQwAAoAgAgBGoiADYCACAHIABBAXI2AgQgBhBSIQMMBwsgACAAKAIEIApqNgIEQeCQwAAoAgAgCmohAUHokMAAKAIAIgAgABBSIgBBCBA0IABrIgAQUCEDQeCQwAAgASAAayIFNgIAQeiQwAAgAzYCACADIAVBAXI2AgRBCEEIEDQhAkEUQQgQNCEBQRBBCBA0IQAgAyAFEFAgACABIAJBCGtqajYCBEH0kMAAQYCAgAE2AgAMBQtB4JDAACAAIARrIgE2AgBB6JDAAEHokMAAKAIAIgIgBBBQIgA2AgAgACABQQFyNgIEIAIgBBBCIAIQUiEDDAULQeSQwAAgBzYCAEHckMAAQdyQwAAoAgAgBGoiADYCACAHIAAQMyAGEFIhAwwEC0H4kMAAIAg2AgAMAQsgByAEIAAQLiAEQYACTwRAIAcgBBAPIAYQUiEDDAMLIARBeHFBzI7AAGohAgJ/QdSQwAAoAgAiAUEBIARBA3Z0IgBxBEAgAigCCAwBC0HUkMAAIAAgAXI2AgAgAgshACACIAc2AgggACAHNgIMIAcgAjYCDCAHIAA2AgggBhBSIQMMAgtB/JDAAEH/HzYCAEHIjsAAIAw2AgBBwI7AACAKNgIAQbyOwAAgCDYCAEHYjsAAQcyOwAA2AgBB4I7AAEHUjsAANgIAQdSOwABBzI7AADYCAEHojsAAQdyOwAA2AgBB3I7AAEHUjsAANgIAQfCOwABB5I7AADYCAEHkjsAAQdyOwAA2AgBB+I7AAEHsjsAANgIAQeyOwABB5I7AADYCAEGAj8AAQfSOwAA2AgBB9I7AAEHsjsAANgIAQYiPwABB/I7AADYCAEH8jsAAQfSOwAA2AgBBkI/AAEGEj8AANgIAQYSPwABB/I7AADYCAEGYj8AAQYyPwAA2AgBBjI/AAEGEj8AANgIAQZSPwABBjI/AADYCAEGgj8AAQZSPwAA2AgBBnI/AAEGUj8AANgIAQaiPwABBnI/AADYCAEGkj8AAQZyPwAA2AgBBsI/AAEGkj8AANgIAQayPwABBpI/AADYCAEG4j8AAQayPwAA2AgBBtI/AAEGsj8AANgIAQcCPwABBtI/AADYCAEG8j8AAQbSPwAA2AgBByI/AAEG8j8AANgIAQcSPwABBvI/AADYCAEHQj8AAQcSPwAA2AgBBzI/AAEHEj8AANgIAQdiPwABBzI/AADYCAEHgj8AAQdSPwAA2AgBB1I/AAEHMj8AANgIAQeiPwABB3I/AADYCAEHcj8AAQdSPwAA2AgBB8I/AAEHkj8AANgIAQeSPwABB3I/AADYCAEH4j8AAQeyPwAA2AgBB7I/AAEHkj8AANgIAQYCQwABB9I/AADYCAEH0j8AAQeyPwAA2AgBBiJDAAEH8j8AANgIAQfyPwABB9I/AADYCAEGQkMAAQYSQwAA2AgBBhJDAAEH8j8AANgIAQZiQwABBjJDAADYCAEGMkMAAQYSQwAA2AgBBoJDAAEGUkMAANgIAQZSQwABBjJDAADYCAEGokMAAQZyQwAA2AgBBnJDAAEGUkMAANgIAQbCQwABBpJDAADYCAEGkkMAAQZyQwAA2AgBBuJDAAEGskMAANgIAQayQwABBpJDAADYCAEHAkMAAQbSQwAA2AgBBtJDAAEGskMAANgIAQciQwABBvJDAADYCAEG8kMAAQbSQwAA2AgBB0JDAAEHEkMAANgIAQcSQwABBvJDAADYCAEHMkMAAQcSQwAA2AgBBCEEIEDQhBUEUQQgQNCECQRBBCBA0IQFB6JDAACAIIAgQUiIAQQgQNCAAayIAEFAiAzYCAEHgkMAAIApBCGogASACIAVqaiAAamsiBTYCACADIAVBAXI2AgRBCEEIEDQhAkEUQQgQNCEBQRBBCBA0IQAgAyAFEFAgACABIAJBCGtqajYCBEH0kMAAQYCAgAE2AgALQQAhA0HgkMAAKAIAIgAgBE0NAEHgkMAAIAAgBGsiATYCAEHokMAAQeiQwAAoAgAiAiAEEFAiADYCACAAIAFBAXI2AgQgAiAEEEIgAhBSIQMLIAtBEGokACADC5gHAQV/IAAQUyIAIAAQSCIBEFAhAgJAAkACQCAAEEkNACAAKAIAIQMCQCAAEEFFBEAgASADaiEBIAAgAxBRIgBB5JDAACgCAEcNASACKAIEQQNxQQNHDQJB3JDAACABNgIAIAAgASACEC4PCyABIANqQRBqIQAMAgsgA0GAAk8EQCAAEA4MAQsgAEEMaigCACIEIABBCGooAgAiBUcEQCAFIAQ2AgwgBCAFNgIIDAELQdSQwABB1JDAACgCAEF+IANBA3Z3cTYCAAsCQCACED4EQCAAIAEgAhAuDAELAkACQAJAQeiQwAAoAgAgAkcEQCACQeSQwAAoAgBHDQFB5JDAACAANgIAQdyQwABB3JDAACgCACABaiICNgIAIAAgAhAzDwtB6JDAACAANgIAQeCQwABB4JDAACgCACABaiICNgIAIAAgAkEBcjYCBCAAQeSQwAAoAgBGDQEMAgsgAhBIIgMgAWohAQJAIANBgAJPBEAgAhAODAELIAJBDGooAgAiBCACQQhqKAIAIgJHBEAgAiAENgIMIAQgAjYCCAwBC0HUkMAAQdSQwAAoAgBBfiADQQN2d3E2AgALIAAgARAzIABB5JDAACgCAEcNAkHckMAAIAE2AgAMAwtB3JDAAEEANgIAQeSQwABBADYCAAtB9JDAACgCACACTw0BQQhBCBA0IQBBFEEIEDQhAkEQQQgQNCEDQQBBEEEIEDRBAnRrIgFBgIB8IAMgACACamprQXdxQQNrIgAgACABSxtFDQFB6JDAACgCAEUNAUEIQQgQNCEAQRRBCBA0IQJBEEEIEDQhAUEAIQMCQEHgkMAAKAIAIgQgASACIABBCGtqaiIATQ0AIAQgAGtB//8DakGAgHxxIgRBgIAEayECQeiQwAAoAgAhAUG8jsAAIQACQANAIAEgACgCAE8EQCAAEEMgAUsNAgsgACgCCCIADQALQQAhAAsgABBKDQAgAEEMaigCABoMAAsQEEEAIANrRw0BQeCQwAAoAgBB9JDAACgCAE0NAUH0kMAAQX82AgAPCyABQYACSQ0BIAAgARAPQfyQwABB/JDAACgCAEEBayIANgIAIAANABAQGg8LDwsgAUF4cUHMjsAAaiECAn9B1JDAACgCACIDQQEgAUEDdnQiAXEEQCACKAIIDAELQdSQwAAgASADcjYCACACCyEDIAIgADYCCCADIAA2AgwgACACNgIMIAAgAzYCCAvIDQEMfwJAAkAgACgCCCIKIAAoAhAiA3IEQAJAIANFDQAgASACaiEIIABBFGooAgBBAWohByABIQQDQAJAIAQhAyAHQQFrIgdFDQAgAyAIRg0CAn8gAywAACIEQQBOBEAgBEH/AXEhBSADQQFqDAELIAMtAAFBP3EhCSAEQR9xIQUgBEFfTQRAIAVBBnQgCXIhBSADQQJqDAELIAMtAAJBP3EgCUEGdHIhCSAEQXBJBEAgCSAFQQx0ciEFIANBA2oMAQsgBUESdEGAgPAAcSADLQADQT9xIAlBBnRyciIFQYCAxABGDQMgA0EEagsiBCAGIANraiEGIAVBgIDEAEcNAQwCCwsgAyAIRg0AIAMsAAAiBEEATiAEQWBJciAEQXBJckUEQCAEQf8BcUESdEGAgPAAcSADLQADQT9xIAMtAAJBP3FBBnQgAy0AAUE/cUEMdHJyckGAgMQARg0BCwJAAkAgBkUNACACIAZNBEBBACEDIAIgBkYNAQwCC0EAIQMgASAGaiwAAEFASA0BCyABIQMLIAYgAiADGyECIAMgASADGyEBCyAKRQ0CIABBDGooAgAhDAJAIAJBEE8EQAJ/QQAhBUEAIQcCQAJAIAEiA0EDakF8cSIEIANrIgggAksgCEEES3INACACIAhrIglBBEkNACAJQQNxIQpBACEGAkAgAyAERg0AIAhBA3EhBQJAIAQgA0F/c2pBA0kEQCADIQQMAQsgCEF8cSELIAMhBANAIAYgBCwAAEG/f0pqIAQsAAFBv39KaiAELAACQb9/SmogBCwAA0G/f0pqIQYgBEEEaiEEIAtBBGsiCw0ACwsgBUUNAANAIAYgBCwAAEG/f0pqIQYgBEEBaiEEIAVBAWsiBQ0ACwsgAyAIaiEDAkAgCkUNACADIAlBfHFqIgQsAABBv39KIQcgCkEBRg0AIAcgBCwAAUG/f0pqIQcgCkECRg0AIAcgBCwAAkG/f0pqIQcLIAlBAnYhCCAGIAdqIQUDQCADIQYgCEUNAkHAASAIIAhBwAFPGyIHQQNxIQkgB0ECdCELAkAgB0H8AXEiCkUEQEEAIQQMAQsgBiAKQQJ0aiENQQAhBANAIANFDQEgBCADKAIAIg5Bf3NBB3YgDkEGdnJBgYKECHFqIANBBGooAgAiBEF/c0EHdiAEQQZ2ckGBgoQIcWogA0EIaigCACIEQX9zQQd2IARBBnZyQYGChAhxaiADQQxqKAIAIgRBf3NBB3YgBEEGdnJBgYKECHFqIQQgA0EQaiIDIA1HDQALCyAIIAdrIQggBiALaiEDIARBCHZB/4H8B3EgBEH/gfwHcWpBgYAEbEEQdiAFaiEFIAlFDQALAn9BACAGRQ0AGiAGIApBAnRqIgMoAgAiBEF/c0EHdiAEQQZ2ckGBgoQIcSIEIAlBAUYNABogBCADKAIEIgZBf3NBB3YgBkEGdnJBgYKECHFqIgQgCUECRg0AGiAEIAMoAggiA0F/c0EHdiADQQZ2ckGBgoQIcWoLIgNBCHZB/4EccSADQf+B/AdxakGBgARsQRB2IAVqDAILQQAgAkUNARogAkEDcSEEIAJBBE8EQCACQXxxIQYDQCAFIAMsAABBv39KaiADLAABQb9/SmogAywAAkG/f0pqIAMsAANBv39KaiEFIANBBGohAyAGQQRrIgYNAAsLIARFDQADQCAFIAMsAABBv39KaiEFIANBAWohAyAEQQFrIgQNAAsLIAULIQQMAQsgAkUEQEEAIQQMAQsgAkEDcSEFAkAgAkEESQRAQQAhBCABIQMMAQsgAkF8cSEHQQAhBCABIQMDQCAEIAMsAABBv39KaiADLAABQb9/SmogAywAAkG/f0pqIAMsAANBv39KaiEEIANBBGohAyAHQQRrIgcNAAsLIAVFDQADQCAEIAMsAABBv39KaiEEIANBAWohAyAFQQFrIgUNAAsLIAQgDEkEQCAMIARrIgQhBgJAAkACQCAALQAgIgNBACADQQNHGyIDQQFrDgIAAQILQQAhBiAEIQMMAQsgBEEBdiEDIARBAWpBAXYhBgsgA0EBaiEDIABBBGooAgAhBCAAKAIcIQUgACgCACEAAkADQCADQQFrIgNFDQEgACAFIAQoAhARAABFDQALQQEPC0EBIQMgBUGAgMQARg0CIAAgASACIAQoAgwRAgANAkEAIQMDQCADIAZGBEBBAA8LIANBAWohAyAAIAUgBCgCEBEAAEUNAAsgA0EBayAGSQ8LDAILIAAoAgAgASACIAAoAgQoAgwRAgAhAwsgAw8LIAAoAgAgASACIAAoAgQoAgwRAgAL9wQBCn8jAEEwayIDJAAgA0EDOgAoIANCgICAgIAENwMgIANBADYCGCADQQA2AhAgAyABNgIMIAMgADYCCAJ/AkACQCACKAIAIgpFBEAgAkEUaigCACIARQ0BIAIoAhAhASAAQQN0IQUgAEEBa0H/////AXFBAWohByACKAIIIQADQCAAQQRqKAIAIgQEQCADKAIIIAAoAgAgBCADKAIMKAIMEQIADQQLIAEoAgAgA0EIaiABQQRqKAIAEQAADQMgAUEIaiEBIABBCGohACAFQQhrIgUNAAsMAQsgAigCBCIARQ0AIABBBXQhCyAAQQFrQf///z9xQQFqIQcgAigCCCEAA0AgAEEEaigCACIBBEAgAygCCCAAKAIAIAEgAygCDCgCDBECAA0DCyADIAUgCmoiBEEcai0AADoAKCADIARBFGopAgA3AyAgBEEQaigCACEGIAIoAhAhCEEAIQlBACEBAkACQAJAIARBDGooAgBBAWsOAgACAQsgBkEDdCAIaiIMQQRqKAIAQR5HDQEgDCgCACgCACEGC0EBIQELIAMgBjYCFCADIAE2AhAgBEEIaigCACEBAkACQAJAIARBBGooAgBBAWsOAgACAQsgAUEDdCAIaiIGQQRqKAIAQR5HDQEgBigCACgCACEBC0EBIQkLIAMgATYCHCADIAk2AhggCCAEKAIAQQN0aiIBKAIAIANBCGogASgCBBEAAA0CIABBCGohACALIAVBIGoiBUcNAAsLIAJBDGooAgAgB0sEQCADKAIIIAIoAgggB0EDdGoiACgCACAAKAIEIAMoAgwoAgwRAgANAQtBAAwBC0EBCyADQTBqJAALywQBBH8gACABEFAhAgJAAkACQCAAEEkNACAAKAIAIQMCQCAAEEFFBEAgASADaiEBIAAgAxBRIgBB5JDAACgCAEcNASACKAIEQQNxQQNHDQJB3JDAACABNgIAIAAgASACEC4PCyABIANqQRBqIQAMAgsgA0GAAk8EQCAAEA4MAQsgAEEMaigCACIEIABBCGooAgAiBUcEQCAFIAQ2AgwgBCAFNgIIDAELQdSQwABB1JDAACgCAEF+IANBA3Z3cTYCAAsgAhA+BEAgACABIAIQLgwCCwJAQeiQwAAoAgAgAkcEQCACQeSQwAAoAgBHDQFB5JDAACAANgIAQdyQwABB3JDAACgCACABaiIBNgIAIAAgARAzDwtB6JDAACAANgIAQeCQwABB4JDAACgCACABaiIBNgIAIAAgAUEBcjYCBCAAQeSQwAAoAgBHDQFB3JDAAEEANgIAQeSQwABBADYCAA8LIAIQSCIDIAFqIQECQCADQYACTwRAIAIQDgwBCyACQQxqKAIAIgQgAkEIaigCACICRwRAIAIgBDYCDCAEIAI2AggMAQtB1JDAAEHUkMAAKAIAQX4gA0EDdndxNgIACyAAIAEQMyAAQeSQwAAoAgBHDQFB3JDAACABNgIACw8LIAFBgAJPBEAgACABEA8PCyABQXhxQcyOwABqIQICf0HUkMAAKAIAIgNBASABQQN2dCIBcQRAIAIoAggMAQtB1JDAACABIANyNgIAIAILIQEgAiAANgIIIAEgADYCDCAAIAI2AgwgACABNgIIC/cCAQV/AkACQAJAAkAgAUEJTwRAQRBBCBA0IAFLDQEMAgsgABAFIQQMAgtBEEEIEDQhAQtBCEEIEDQhA0EUQQgQNCECQRBBCBA0IQVBAEEQQQgQNEECdGsiBkGAgHwgBSACIANqamtBd3FBA2siAyADIAZLGyABayAATQ0AIAFBECAAQQRqQRBBCBA0QQVrIABLG0EIEDQiA2pBEEEIEDRqQQRrEAUiAkUNACACEFMhAAJAIAFBAWsiBCACcUUEQCAAIQEMAQsgAiAEakEAIAFrcRBTIQJBEEEIEDQhBCAAEEggAiABQQAgAiAAayAETRtqIgEgAGsiAmshBCAAEEFFBEAgASAEECwgACACECwgACACEAkMAQsgACgCACEAIAEgBDYCBCABIAAgAmo2AgALIAEQQQ0BIAEQSCICQRBBCBA0IANqTQ0BIAEgAxBQIQAgASADECwgACACIANrIgMQLCAAIAMQCQwBCyAEDwsgARBSIAEQQRoL0gIBAn8jAEEQayICJAAgACgCACEAAkAgAUH/AE0EQCAAKAIIIgMgACgCAEYEfyAAIAMQFSAAKAIIBSADCyAAKAIEaiABOgAAIAAgACgCCEEBajYCCAwBCyACQQA2AgwCfyABQYAQTwRAIAFBgIAETwRAIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiACIAFBDHZBP3FBgAFyOgANIAIgAUESdkEHcUHwAXI6AAxBBAwCCyACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAELIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECCyEBIAEgACgCACAAKAIIIgNrSwRAIAAgAyABEBMgACgCCCEDCyAAKAIEIANqIAJBDGogARBOGiAAIAEgA2o2AggLIAJBEGokAEEAC9ACAQJ/IwBBEGsiAiQAIAAoAgAhAAJAIAFB/wBNBEAgACgCCCIDIAAoAgBGBEAgACADEBUgACgCCCEDCyAAIANBAWo2AgggACgCBCADaiABOgAADAELIAJBADYCDAJ/IAFBgBBPBEAgAUGAgARPBEAgAiABQT9xQYABcjoADyACIAFBBnZBP3FBgAFyOgAOIAIgAUEMdkE/cUGAAXI6AA0gAiABQRJ2QQdxQfABcjoADEEEDAILIAIgAUE/cUGAAXI6AA4gAiABQQx2QeABcjoADCACIAFBBnZBP3FBgAFyOgANQQMMAQsgAiABQT9xQYABcjoADSACIAFBBnZBwAFyOgAMQQILIQEgASAAKAIAIAAoAggiA2tLBEAgACADIAEQEyAAKAIIIQMLIAAoAgQgA2ogAkEMaiABEE4aIAAgASADajYCCAsgAkEQaiQAQQALywIBAn8jAEEQayICJAACQCABQf8ATQRAIAAoAggiAyAAKAIARgR/IAAgAxAVIAAoAggFIAMLIAAoAgRqIAE6AAAgACAAKAIIQQFqNgIIDAELIAJBADYCDAJ/IAFBgBBPBEAgAUGAgARPBEAgAiABQT9xQYABcjoADyACIAFBBnZBP3FBgAFyOgAOIAIgAUEMdkE/cUGAAXI6AA0gAiABQRJ2QQdxQfABcjoADEEEDAILIAIgAUE/cUGAAXI6AA4gAiABQQx2QeABcjoADCACIAFBBnZBP3FBgAFyOgANQQMMAQsgAiABQT9xQYABcjoADSACIAFBBnZBwAFyOgAMQQILIQEgASAAKAIAIAAoAggiA2tLBEAgACADIAEQEyAAKAIIIQMLIAAoAgQgA2ogAkEMaiABEE4aIAAgASADajYCCAsgAkEQaiQAQQALvAIBBX8gACgCGCEDAkACQCAAIAAoAgxGBEAgAEEUQRAgAEEUaiIBKAIAIgQbaigCACICDQFBACEBDAILIAAoAggiAiAAKAIMIgE2AgwgASACNgIIDAELIAEgAEEQaiAEGyEEA0AgBCEFIAIiAUEUaiICIAFBEGogAigCACICGyEEIAFBFEEQIAIbaigCACICDQALIAVBADYCAAsCQCADRQ0AAkAgACAAKAIcQQJ0QbyNwABqIgIoAgBHBEAgA0EQQRQgAygCECAARhtqIAE2AgAgAUUNAgwBCyACIAE2AgAgAQ0AQdiQwABB2JDAACgCAEF+IAAoAhx3cTYCAA8LIAEgAzYCGCAAKAIQIgIEQCABIAI2AhAgAiABNgIYCyAAQRRqKAIAIgBFDQAgAUEUaiAANgIAIAAgATYCGAsLoAIBBH8gAEIANwIQIAACf0EAIAFBgAJJDQAaQR8gAUH///8HSw0AGiABQQYgAUEIdmciAmt2QQFxIAJBAXRrQT5qCyIDNgIcIANBAnRBvI3AAGohAgJAAkACQAJAQdiQwAAoAgAiBEEBIAN0IgVxBEAgAigCACECIAMQMiEDIAIQSCABRw0BIAIhAwwCC0HYkMAAIAQgBXI2AgAgAiAANgIADAMLIAEgA3QhBANAIAIgBEEddkEEcWpBEGoiBSgCACIDRQ0CIARBAXQhBCADIgIQSCABRw0ACwsgAygCCCIBIAA2AgwgAyAANgIIIAAgAzYCDCAAIAE2AgggAEEANgIYDwsgBSAANgIACyAAIAI2AhggACAANgIIIAAgADYCDAtgAQx/QcSOwAAoAgAiAgRAQbyOwAAhBgNAIAIiASgCCCECIAEoAgQhAyABKAIAIQQgAUEMaigCABogASEGIAVBAWohBSACDQALC0H8kMAAQf8fIAUgBUH/H00bNgIAIAgLlgIBA38gACABaiEHAkACQAJAAkADQCAAIAdHBEAgAC0AACEFIABBAWoiASEAIAVBgAFGDQEgBcBBAE4EQEEAIQYDQCAAIAdGDQQgAiAETw0FIAIgA2ogAC0AADoAACACQQRqIQIgAEEBaiEAIAZB/wFxIAZBAWohBiAFSQ0ACwwCCyABIAdGDQVBASAFayEFIAFBAWohACABLQAAIQZBACEBA0AgAiAETw0FIAIgA2ogBjoAACACQQRqIQIgAUEBaiIBQf8BcSAFQf8BcUkNAAsMAQsLDwtBtIDAAEHBAEGIgcAAECAAC0GAgMAAQRlB+IDAABAgAAtBgIDAAEEZQdSBwAAQIAALQZiBwABBO0HkgcAAECAAC+oEAQt/IwBBEGsiESQAAkACQAJAIAQOAgEAAgtBASEPCwJAAkAgBw4CAQACC0EBIRALQQAhBAJAAkAgCg4CAQACC0EBIQQLQQEhBwJAAkACQCANDgIAAQILQQAhBwsgEUEIaiEYIAIhEiADIRMgDyENIAUhFCAGIRUgECEKIAghFiAJIRcgCyEPIAwhEAJAAkACQAJAAkAgAUECdCIORQRAQQEhAQwBCyAOQQBIDQEgDhArIgFFDQILAkAgDUUEQCATRQ0BQQAhDQNAIA0gDk8NBSABIA1qIBItAAA6AAAgDUEEaiENIBJBAWohEiATQQFrIhMNAAsMAQsgEiATQQAgASAOEBELAkAgCkUEQCAVRQ0BQQEhDQNAIA0gDk8NBSABIA1qIBQtAAA6AAAgDUEEaiENIBRBAWohFCAVQQFrIhUNAAsMAQsgFCAVQQEgASAOEBELAkAgBEUEQCAXRQ0BQQIhDQNAIA0gDk8NBSABIA1qIBYtAAA6AAAgDUEEaiENIBZBAWohFiAXQQFrIhcNAAsMAQsgFiAXQQIgASAOEBELAkAgB0UEQCAQRQ0BQQMhDQNAIA0gDk8NBSABIA1qIA8tAAA6AAAgDUEEaiENIA9BAWohDyAQQQFrIhANAAsMAQsgDyAQQQMgASAOEBELIBggDjYCBCAYIAE2AgAMAwsQJgALIA5BARBMAAtBgIDAAEEZQaSAwAAQIAALIBEoAgwhBCARKAIIIQEgDARAIAsQBgsgCQRAIAgQBgsgBgRAIAUQBgsgAwRAIAIQBgsgACABNgIAIAAgBDYCBCARQRBqJAAPCwsQRwALyQEBAn8jAEEgayIDJAACQAJAIAEgASACaiIBSw0AQQggACgCACICQQF0IgQgASABIARJGyIBIAFBCE0bIgFBf3NBH3YhBAJAIAIEQCADQQE2AhggAyACNgIUIAMgAEEEaigCADYCEAwBCyADQQA2AhgLIAMgASAEIANBEGoQGCADKAIEIQIgAygCAEUEQCAAIAE2AgAgACACNgIEDAILIANBCGooAgAiAEGBgICAeEYNASAARQ0AIAIgABBMAAsQJgALIANBIGokAAuDBAEKfyMAQRBrIg8kAAJAAkACQCAEDgIBAAILQQEhDQsCQAJAIAcOAgEAAgtBASEOC0EBIQQCQAJAAkAgCg4CAAECC0EAIQQLIA9BCGohEiACIQcgAyEKIA0hEyAFIQ0gBiEQIA4hFCAIIQ4gCSERAkACQAJAAkACQCABQQJ0IgtFBEBBASEBDAELIAtBAEgNASALQQEQPCIBRQ0CCyABQf8BIAsQTSEMAkAgE0UEQCAKRQ0BQQAhAQNAIAEgC08NBSABIAxqIActAAA6AAAgAUEEaiEBIAdBAWohByAKQQFrIgoNAAsMAQsgByAKQQAgDCALEBELAkAgFEUEQCAQRQ0BQQEhAQNAIAEgC08NBSABIAxqIA0tAAA6AAAgAUEEaiEBIA1BAWohDSAQQQFrIhANAAsMAQsgDSAQQQEgDCALEBELAkAgBEUEQCARRQ0BQQIhAQNAIAEgC08NBSABIAxqIA4tAAA6AAAgAUEEaiEBIA5BAWohDiARQQFrIhENAAsMAQsgDiARQQIgDCALEBELIBIgCzYCBCASIAw2AgAMAwsQJgALIAtBARBMAAtBgIDAAEEZQaSAwAAQIAALIA8oAgwhASAPKAIIIQQgCQRAIAgQBgsgBgRAIAUQBgsgAwRAIAIQBgsgACAENgIAIAAgATYCBCAPQRBqJAAPCwsQRwALxwEBA38jAEEgayICJAACQAJAIAFBAWoiAUUNAEEIIAAoAgAiA0EBdCIEIAEgASAESRsiASABQQhNGyIBQX9zQR92IQQCQCADBEAgAkEBNgIYIAIgAzYCFCACIABBBGooAgA2AhAMAQsgAkEANgIYCyACIAEgBCACQRBqEBggAigCBCEDIAIoAgBFBEAgACABNgIAIAAgAzYCBAwCCyACQQhqKAIAIgBBgYCAgHhGDQEgAEUNACADIAAQTAALECYACyACQSBqJAAL3AECA38BfiMAQSBrIgIkACABKAIERQRAIAEoAgwhAyACQRhqIgRBADYCACACQoCAgIAQNwMQIAIgAkEQajYCHCACQRxqQYCHwAAgAxAIGiABQQhqIAQoAgA2AgAgASACKQMQNwIACyABKQIAIQUgAUKAgICAEDcCACACQQhqIgMgAUEIaiIBKAIANgIAIAFBADYCACACIAU3AwBBDEEEEDwiAUUEQEEMQQQQTAALIAEgAikDADcCACABQQhqIAMoAgA2AgAgAEGoicAANgIEIAAgATYCACACQSBqJAAL7wEBAn8jAEEgayIFJABBuI3AAEG4jcAAKAIAIgZBAWo2AgACQAJAIAZBAEgNAEGAkcAAQYCRwAAoAgBBAWoiBjYCACAGQQJLDQAgBSAEOgAYIAUgAzYCFCAFIAI2AhAgBUHwicAANgIMIAVBmIfAADYCCEGojcAAKAIAIgJBAEgNAEGojcAAIAJBAWo2AgBBqI3AAEGwjcAAKAIABH8gBSAAIAEoAhARAQAgBSAFKQMANwMIQbCNwAAoAgAgBUEIakG0jcAAKAIAKAIUEQEAQaiNwAAoAgBBAWsFIAILNgIAIAZBAUsNACAEDQELAAsAC6sBAQF/AkAgAgRAAn8CQAJAAkAgAUEATgRAIAMoAghFDQIgAygCBCIEDQEgAQ0DIAIMBAsgAEEIakEANgIADAULIAMoAgAgBCACIAEQNQwCCyABDQAgAgwBCyABIAIQPAsiAwRAIAAgAzYCBCAAQQhqIAE2AgAgAEEANgIADwsgACABNgIEIABBCGogAjYCAAwBCyAAIAE2AgQgAEEIakEANgIACyAAQQE2AgALkQQBCX8jAEEQayIMJAACQAJAAkAgBA4CAgEACxBHAAtBASEIC0EBIQQCQAJAAkAgBw4CAAECC0EAIQQLIAxBCGohDyACIQsgAyEHIAUhDSAGIQ4gBCEQAkACQAJAAkACQCABQQJ0IglFBEBBASEKDAELIAlBAEgNASAJECsiCkUNAgsCQCAIRQRAIAdFDQFBACEIIAchASALIQQDQCAIIAlPDQUgCCAKaiAELQAAOgAAIAhBBGohCCAEQQFqIQQgAUEBayIBDQALIAchAUEBIQggCyEEA0AgCCAJTw0FIAggCmogBC0AADoAACAIQQRqIQggBEEBaiEEIAFBAWsiAQ0AC0ECIQgDQCAIIAlPDQUgCCAKaiALLQAAOgAAIAhBBGohCCALQQFqIQsgB0EBayIHDQALDAELIAsgB0EAIAogCRARIAsgB0EBIAogCRARIAsgB0ECIAogCRARCwJAIBBFBEAgDkUNAUEDIQgDQCAIIAlPDQUgCCAKaiANLQAAOgAAIAhBBGohCCANQQFqIQ0gDkEBayIODQALDAELIA0gDkEDIAogCRARCyAPIAk2AgQgDyAKNgIADAMLECYACyAJQQEQTAALQYCAwABBGUGkgMAAECAACyAMKAIMIQQgDCgCCCEBIAYEQCAFEAYLIAMEQCACEAYLIAAgATYCACAAIAQ2AgQgDEEQaiQADwsQRwALcQAjAEEwayIBJABBgI3AAC0AAARAIAFBFGpBAjYCACABQRxqQQE2AgAgAUHoh8AANgIQIAFBADYCCCABQQ82AiQgASAANgIsIAEgAUEgajYCGCABIAFBLGo2AiAgAUEIakGQiMAAECkACyABQTBqJAALpAMBB38jAEEQayIKJABBASEHAkACQAJAIAQOAgABAgtBACEHCyAKQQhqIQsgAiEEIAMhCAJAAkACQAJAAkAgAUECdCIGRQRAQQEhBQwBCyAGQQBIDQEgBkEBEDwiBUUNAgsgBUH/ASAGEE0hCQJAIAdFBEAgCEUNAUEAIQUgCCEHIAQhAQNAIAUgBk8NBSAFIAlqIAEtAAA6AAAgBUEEaiEFIAFBAWohASAHQQFrIgcNAAsgCCEHQQEhBSAEIQEDQCAFIAZPDQUgBSAJaiABLQAAOgAAIAVBBGohBSABQQFqIQEgB0EBayIHDQALQQIhBQNAIAUgBk8NBSAFIAlqIAQtAAA6AAAgBUEEaiEFIARBAWohBCAIQQFrIggNAAsMAQsgBCAIQQAgCSAGEBEgBCAIQQEgCSAGEBEgBCAIQQIgCSAGEBELIAsgBjYCBCALIAk2AgAMAwsQJgALIAZBARBMAAtBgIDAAEEZQaSAwAAQIAALIAooAgwhASAKKAIIIQQgAwRAIAIQBgsgACAENgIAIAAgATYCBCAKQRBqJAAPCxBHAAt5AQN/IwBBEGsiAiQAIAEoAgRFBEAgASgCDCEDIAJBCGoiBEEANgIAIAJCgICAgBA3AwAgAiACNgIMIAJBDGpBgIfAACADEAgaIAFBCGogBCgCADYCACABIAIpAwA3AgALIABBqInAADYCBCAAIAE2AgAgAkEQaiQAC10BAX8jAEEgayICJAAgACgCACEAIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAIgADYCBCACQQRqQaCFwAAgAkEIahAIIAJBIGokAAtdAQF/IwBBIGsiAiQAIAAoAgAhACACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACIAA2AgQgAkEEakGAh8AAIAJBCGoQCCACQSBqJAALVgEBfyMAQSBrIgIkACACIAA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGghcAAIAJBCGoQCCACQSBqJAALZQEBfyMAQTBrIgMkACADIAE2AgwgAyAANgIIIANBHGpBATYCACADQSRqQQE2AgAgA0HIisAANgIYIANBADYCECADQSA2AiwgAyADQShqNgIgIAMgA0EIajYCKCADQRBqIAIQKQALUQEBfyMAQSBrIgIkACACQQxqQQE2AgAgAkEUakEANgIAIAJByIrAADYCECACQQA2AgAgAkErNgIcIAIgADYCGCACIAJBGGo2AgggAiABECkAC0YBAX8gAiAAKAIAIgAoAgAgACgCCCIDa0sEQCAAIAMgAhATIAAoAgghAwsgACgCBCADaiABIAIQThogACACIANqNgIIQQALQQEBfyACIAAoAgAgACgCCCIDa0sEQCAAIAMgAhATIAAoAgghAwsgACgCBCADaiABIAIQThogACACIANqNgIIQQAL6QQBBn8jAEEQayIDJABBgY3AAC0AAEEDRwRAIANBAToACyADIANBC2o2AgwgA0EMaiEAIwBBIGsiASQAAkACQAJAAkACQAJAAkBBgY3AAC0AAEEBaw4DAgQBAAtBgY3AAEECOgAAIAFBgY3AADYCCCAAKAIAIgAtAAAgAEEAOgAARQ0CIwBBIGsiACQAAkACQAJAQbiNwAAoAgBB/////wdxBEAQT0UNAQtBqI3AACgCAEGojcAAQX82AgANAQJAAkBBuI3AACgCAEH/////B3FFBEBBtI3AACgCACECQbSNwABBjIPAADYCAEGwjcAAKAIAIQRBsI3AAEEBNgIADAELEE9BtI3AACgCACECQbSNwABBjIPAADYCAEGwjcAAKAIAIQRBsI3AAEEBNgIARQ0BC0G4jcAAKAIAQf////8HcUUNABBPDQBBrI3AAEEBOgAAC0GojcAAQQA2AgACQCAERQ0AIAQgAigCABEEACACQQRqKAIARQ0AIAJBCGooAgAaIAQQBgsgAEEgaiQADAILIABBFGpBATYCACAAQRxqQQA2AgAgAEHUiMAANgIQIABBmIfAADYCGCAAQQA2AgggAEEIakH4iMAAECkACwALIAFBAzoADCABQQhqIgAoAgAgAC0ABDoAAAsgAUEgaiQADAQLIAFBFGpBATYCACABQRxqQQA2AgAgAUGQhMAANgIQDAILQZiEwABBkIXAABAhAAsgAUEUakEBNgIAIAFBHGpBADYCACABQdyDwAA2AhALIAFBoIXAADYCGCABQQA2AgggAUEIakHggsAAECkACwsgA0EQaiQACzgBAX8CQCABaUEBRw0AQYCAgIB4IAFrIABJIgINACAABEAgAEEAIAEgAhsQPCIBRQ0BCyABDwsAC0kBAX8jAEEgayIAJAAgAEEUakEBNgIAIABBHGpBADYCACAAQbCKwAA2AhAgAEGAisAANgIYIABBADYCCCAAQQhqQbiKwAAQKQALRAECfyABKAIEIQIgASgCACEDQQhBBBA8IgFFBEBBCEEEEEwACyABIAI2AgQgASADNgIAIABBuInAADYCBCAAIAE2AgALOQACQAJ/IAJBgIDEAEcEQEEBIAAgAiABKAIQEQAADQEaCyADDQFBAAsPCyAAIANBACABKAIMEQIAC7kCAQJ/IwBBIGsiAiQAIAJBAToAGCACIAE2AhQgAiAANgIQIAJBjIvAADYCDCACQciKwAA2AggjAEEQayIAJAACQCACQQhqIgEoAgwiAgRAIAEoAggiA0UNASAAIAI2AgggACABNgIEIAAgAzYCACMAQRBrIgEkACAAKAIAIgJBFGooAgAhAwJAAn8CQAJAIAJBDGooAgAOAgABAwsgAw0CQQAhAkGYh8AADAELIAMNASACKAIIIgMoAgQhAiADKAIACyEDIAEgAjYCBCABIAM2AgAgAUHcicAAIAAoAgQiASgCCCAAKAIIIAEtABAQFwALIAFBADYCBCABIAI2AgwgAUHIicAAIAAoAgQiASgCCCAAKAIIIAEtABAQFwALQZiHwABBmInAABAhAAtBmIfAAEGIicAAECEACy0AAkAgA2lBAUdBgICAgHggA2sgAUlyRQRAIAAgASADIAIQNSIADQELAAsgAAslAQF/AkAgAEEBEAoiAUUNACABEFMQQQ0AIAFBACAAEE0aCyABCycAIAAgACgCBEEBcSABckECcjYCBCAAIAFqIgAgACgCBEEBcjYCBAsgAQF/AkAgAEEEaigCACIBRQ0AIAAoAgBFDQAgARAGCwsjACACIAIoAgRBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAseACAAIAFBA3I2AgQgACABaiIAIAAoAgRBAXI2AgQLFAAgACgCAARAIABBBGooAgAQBgsLGQEBfyAAKAIQIgEEfyABBSAAQRRqKAIACwsSAEEZIABBAXZrQQAgAEEfRxsLFgAgACABQQFyNgIEIAAgAWogATYCAAsQACAAIAFqQQFrQQAgAWtxC+oFAQZ/An8gACEFAkACQAJAIAJBCU8EQCADIAIQCiIHDQFBAAwEC0EIQQgQNCEAQRRBCBA0IQFBEEEIEDQhAkEAQRBBCBA0QQJ0ayIEQYCAfCACIAAgAWpqa0F3cUEDayIAIAAgBEsbIANNDQFBECADQQRqQRBBCBA0QQVrIANLG0EIEDQhAiAFEFMiACAAEEgiBBBQIQECQAJAAkACQAJAAkACQCAAEEFFBEAgAiAETQ0BIAFB6JDAACgCAEYNAiABQeSQwAAoAgBGDQMgARA+DQcgARBIIgYgBGoiCCACSQ0HIAggAmshBCAGQYACSQ0EIAEQDgwFCyAAEEghASACQYACSQ0GIAEgAmtBgYAISSACQQRqIAFNcQ0FIAEgACgCACIBakEQaiEEIAJBH2pBgIAEEDQhAgwGC0EQQQgQNCAEIAJrIgFLDQQgACACEFAhBCAAIAIQLCAEIAEQLCAEIAEQCQwEC0HgkMAAKAIAIARqIgQgAk0NBCAAIAIQUCEBIAAgAhAsIAEgBCACayICQQFyNgIEQeCQwAAgAjYCAEHokMAAIAE2AgAMAwtB3JDAACgCACAEaiIEIAJJDQMCQEEQQQgQNCAEIAJrIgFLBEAgACAEECxBACEBQQAhBAwBCyAAIAIQUCIEIAEQUCEGIAAgAhAsIAQgARAzIAYgBigCBEF+cTYCBAtB5JDAACAENgIAQdyQwAAgATYCAAwCCyABQQxqKAIAIgkgAUEIaigCACIBRwRAIAEgCTYCDCAJIAE2AggMAQtB1JDAAEHUkMAAKAIAQX4gBkEDdndxNgIAC0EQQQgQNCAETQRAIAAgAhBQIQEgACACECwgASAEECwgASAEEAkMAQsgACAIECwLIAANAwsgAxAFIgFFDQEgASAFIAAQSEF4QXwgABBBG2oiACADIAAgA0kbEE4gBRAGDAMLIAcgBSABIAMgASADSRsQThogBRAGCyAHDAELIAAQQRogABBSCwsLACABBEAgABAGCwsPACAAQQF0IgBBACAAa3ILFQAgASAAKAIAIgAoAgAgACgCBBAHCxkAIAEoAgBB+IzAAEEFIAEoAgQoAgwRAgALEwAgASgCACABKAIEIAAoAgAQCAsUACAAKAIAIAEgACgCBCgCDBEAAAsIACAAIAEQCgsTACAAQbiJwAA2AgQgACABNgIACw0AIAAtAARBAnFBAXYLEAAgASAAKAIAIAAoAgQQBwsKAEEAIABrIABxCwsAIAAtAARBA3FFCwwAIAAgAUEDcjYCBAsNACAAKAIAIAAoAgRqCw4AIAAoAgAaA0AMAAsAC9gGAgt/An4gADUCACENIwBBMGsiBCQAQSchAAJAIA1CkM4AVARAIA0hDgwBCwNAIARBCWogAGoiAkEEayANIA1CkM4AgCIOQpDOAH59pyIDQf//A3FB5ABuIgVBAXRBsIvAAGovAAA7AAAgAkECayADIAVB5ABsa0H//wNxQQF0QbCLwABqLwAAOwAAIABBBGshACANQv/B1y9WIA4hDQ0ACwsgDqciAkHjAEsEQCAAQQJrIgAgBEEJamogDqciAiACQf//A3FB5ABuIgJB5ABsa0H//wNxQQF0QbCLwABqLwAAOwAACwJAIAJBCk8EQCAAQQJrIgAgBEEJamogAkEBdEGwi8AAai8AADsAAAwBCyAAQQFrIgAgBEEJamogAkEwajoAAAsCfyAEQQlqIABqIQhBK0GAgMQAIAEoAhgiA0EBcSICGyEFIAJBJyAAayIJaiECQciKwABBACADQQRxGyEHAkACQCABKAIIRQRAQQEhACABKAIAIgMgAUEEaigCACICIAUgBxAoDQEMAgsCQAJAAkACQCACIAFBDGooAgAiBkkEQCADQQhxDQQgBiACayICIQNBASABLQAgIgAgAEEDRhsiAEEBaw4CAQIDC0EBIQAgASgCACIDIAFBBGooAgAiAiAFIAcQKA0EDAULQQAhAyACIQAMAQsgAkEBdiEAIAJBAWpBAXYhAwsgAEEBaiEAIAFBBGooAgAhAiABKAIcIQYgASgCACEBAkADQCAAQQFrIgBFDQEgASAGIAIoAhARAABFDQALQQEMBAtBASEAIAZBgIDEAEYNASABIAIgBSAHECgNASABIAggCSACKAIMEQIADQFBACEAAn8DQCADIAAgA0YNARogAEEBaiEAIAEgBiACKAIQEQAARQ0ACyAAQQFrCyADSSEADAELIAEoAhwhCyABQTA2AhwgAS0AICEMQQEhACABQQE6ACAgASgCACIDIAFBBGooAgAiCiAFIAcQKA0AIAYgAmtBAWohAAJAA0AgAEEBayIARQ0BIANBMCAKKAIQEQAARQ0AC0EBDAMLQQEhACADIAggCSAKKAIMEQIADQAgASAMOgAgIAEgCzYCHEEADAILIAAMAQsgAyAIIAkgAigCDBECAAsgBEEwaiQACwsAIAAjAGokACMACwwAQfCCwABBGRAEAAsKACAAKAIEQXhxCwoAIAAoAgRBAXELCgAgACgCDEEBcQsKACAAKAIMQQF2CxkAIAAgAUGkjcAAKAIAIgBBECAAGxEBAAALrwEBA38gASEFAkAgAkEPTQRAIAAhAQwBCyAAQQAgAGtBA3EiA2ohBCADBEAgACEBA0AgASAFOgAAIAFBAWoiASAESQ0ACwsgBCACIANrIgJBfHEiA2ohASADQQBKBEAgBUH/AXFBgYKECGwhAwNAIAQgAzYCACAEQQRqIgQgAUkNAAsLIAJBA3EhAgsgAgRAIAEgAmohAgNAIAEgBToAACABQQFqIgEgAkkNAAsLIAALswIBB38CQCACIgRBD00EQCAAIQIMAQsgAEEAIABrQQNxIgNqIQUgAwRAIAAhAiABIQYDQCACIAYtAAA6AAAgBkEBaiEGIAJBAWoiAiAFSQ0ACwsgBSAEIANrIghBfHEiB2ohAgJAIAEgA2oiA0EDcSIEBEAgB0EATA0BIANBfHEiBkEEaiEBQQAgBEEDdCIJa0EYcSEEIAYoAgAhBgNAIAUgBiAJdiABKAIAIgYgBHRyNgIAIAFBBGohASAFQQRqIgUgAkkNAAsMAQsgB0EATA0AIAMhAQNAIAUgASgCADYCACABQQRqIQEgBUEEaiIFIAJJDQALCyAIQQNxIQQgAyAHaiEBCyAEBEAgAiAEaiEDA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0kNAAsLIAALCwBBgJHAACgCAEULBwAgACABagsHACAAIAFrCwcAIABBCGoLBwAgAEEIawvDBwEFfwJAIwBB0ABrIgIkACACQQA2AhggAkKAgICAEDcDECACQSBqIgQiAEEDOgAgIABCgICAgIAENwIYIABBADYCECAAQQA2AgggAEG4hcAANgIEIAAgAkEQajYCACMAQUBqIgAkAEEBIQMCQCAEKAIAIgVB7IrAAEEMIAQoAgQiBCgCDBECAA0AAkAgASgCCCIDBEAgACADNgIMIABBITYCFCAAIABBDGo2AhBBASEDIABBATYCPCAAQQI2AjQgAEH8isAANgIwIABBADYCKCAAIABBEGo2AjggBSAEIABBKGoQCEUNAQwCCyABKAIAIgMgASgCBEEMaigCABEGAELB9/nozJOy0UFSDQAgACADNgIMIABBIjYCFCAAIABBDGo2AhBBASEDIABBATYCPCAAQQI2AjQgAEH8isAANgIwIABBADYCKCAAIABBEGo2AjggBSAEIABBKGoQCA0BCyABKAIMIQEgAEEkakEPNgIAIABBHGpBDzYCACAAIAFBDGo2AiAgACABQQhqNgIYIABBIDYCFCAAIAE2AhAgAEEDNgI8IABBAzYCNCAAQdSKwAA2AjAgAEEANgIoIAAgAEEQajYCOCAFIAQgAEEoahAIIQMLIABBQGskAAJAIANFBEAgAigCECACKAIYIgBrQQlNBEAgAkEQaiAAQQoQEyACKAIYIQALIAIoAhQgAGoiAUH0hsAAKQAANwAAIAFBCGpB/IbAAC8AADsAACACIABBCmo2AhggAkEIahAAIgQQASACKAIIIQYgAigCDCIFIAIoAhAgAigCGCIAa0sEQCACQRBqIAAgBRATIAIoAhghAAsgAigCFCAAaiAGIAUQThogAiAAIAVqIgA2AhggAigCECAAa0EBTQRAIAJBEGogAEECEBMgAigCGCEACyACKAIUIABqQYoUOwAAIAIgAEECaiIDNgIYIAIoAhQhAAJAIAMgAigCECIBTwRAIAAhAQwBCyADRQRAQQEhASAAEAYMAQsgACABQQEgAxA1IgFFDQILIAEgAxACIAUEQCAGEAYLIARBhAFPBEAgBBADCyACQdAAaiQADAILIwBBQGoiACQAIABBNzYCDCAAQdCFwAA2AgggAEGIhsAANgIUIAAgAkHIAGo2AhAgAEEkakECNgIAIABBLGpBAjYCACAAQTxqQR82AgAgAEGgi8AANgIgIABBADYCGCAAQSA2AjQgACAAQTBqNgIoIAAgAEEQajYCOCAAIABBCGo2AjAgAEEYakHkhsAAECkACyADQQEQTAALCwwAQsH3+ejMk7LRQQsNAEKy+KXLheeH1Jt/CwwAQuLnycndnOOADQsDAAELC4cNAQBBgIDAAAv9DG91dHB1dCBzbGljZSBpcyB0b28gc21hbGxzcmMvbGliLnJzABkAEAAKAAAAggAAAA4AAABpbnB1dCB0ZXJtaW5hdGVkIHdoaWxlIGRlY29kaW5nIHVuY29tcHJlc3NlZCBzZWdtZW50IGluIFJMRSBzbGljZQAAABkAEAAKAAAAmQAAABYAAAAZABAACgAAAJYAAAAWAAAAaW5wdXQgdGVybWluYXRlZCB3aGlsZSBkZWNvZGluZyByZXBlYXQgc2VnbWVudCBpbiBSTEUgc2xpY2UAGQAQAAoAAACmAAAAFgAAABkAEAAKAAAAoQAAABIAAAAvVXNlcnMveWhrYW5nLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvY29uc29sZV9lcnJvcl9wYW5pY19ob29rLTAuMS43L3NyYy9saWIucnP0ABAAbAAAAJUAAAAOAAAAaW52YWxpZCBlbnVtIHZhbHVlIHBhc3NlZAAAAAEAAAAAAAAAAQAAAAIAAAADAAAABAAAAG9uZS10aW1lIGluaXRpYWxpemF0aW9uIG1heSBub3QgYmUgcGVyZm9ybWVkIHJlY3Vyc2l2ZWx5pAEQADgAAABPbmNlIGluc3RhbmNlIGhhcyBwcmV2aW91c2x5IGJlZW4gcG9pc29uZWQAAOQBEAAqAAAAY2FsbGVkIGBPcHRpb246OnVud3JhcCgpYCBvbiBhIGBOb25lYCB2YWx1ZS9ydXN0Yy85MGM1NDE4MDZmMjNhMTI3MDAyZGU1YjQwMzhiZTczMWJhMTQ1OGNhL2xpYnJhcnkvc3RkL3NyYy9zeW5jL29uY2UucnMAQwIQAEwAAACVAAAAMgAAAAUAAAAEAAAABAAAAAYAAAAHAAAACAAAAAkAAAAMAAAABAAAAAoAAAALAAAADAAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkADQAAAAAAAAABAAAADgAAAC9ydXN0Yy85MGM1NDE4MDZmMjNhMTI3MDAyZGU1YjQwMzhiZTczMWJhMTQ1OGNhL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwAYAxAASwAAAN0JAAAOAAAACgpTdGFjazoKCgAAEQAAAAQAAAAEAAAAEgAAABMAAAAUAAAAY2FsbGVkIGBPcHRpb246OnVud3JhcCgpYCBvbiBhIGBOb25lYCB2YWx1ZW1lbW9yeSBhbGxvY2F0aW9uIG9mICBieXRlcyBmYWlsZWQAAADDAxAAFQAAANgDEAANAAAAbGlicmFyeS9zdGQvc3JjL2FsbG9jLnJz+AMQABgAAABVAQAACQAAAGNhbm5vdCBtb2RpZnkgdGhlIHBhbmljIGhvb2sgZnJvbSBhIHBhbmlja2luZyB0aHJlYWQgBBAANAAAAGxpYnJhcnkvc3RkL3NyYy9wYW5pY2tpbmcucnNcBBAAHAAAAIcAAAAJAAAAXAQQABwAAABBAgAAHgAAAFwEEAAcAAAAQAIAAB8AAAAVAAAADAAAAAQAAAAWAAAAEQAAAAgAAAAEAAAAFwAAABgAAAAQAAAABAAAABkAAAAaAAAAEQAAAAgAAAAEAAAAGwAAABwAAAARAAAAAAAAAAEAAAAdAAAAbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy5yc2NhcGFjaXR5IG92ZXJmbG93AAAAHAUQABEAAAAABRAAHAAAAAwCAAAFAAAASAUQAAAAAAA6AAAASAUQAAAAAABQBRAAAQAAAFAFEAABAAAAcGFuaWNrZWQgYXQgJycsIHgFEAABAAAAeQUQAAMAAAAjAAAAAAAAAAEAAAAkAAAAOiAAAEgFEAAAAAAAnAUQAAIAAAAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OUVycm9yAG8JcHJvZHVjZXJzAghsYW5ndWFnZQEEUnVzdAAMcHJvY2Vzc2VkLWJ5AwVydXN0Yx0xLjcwLjAgKDkwYzU0MTgwNiAyMDIzLTA1LTMxKQZ3YWxydXMGMC4xOS4wDHdhc20tYmluZGdlbgYwLjIuODcALA90YXJnZXRfZmVhdHVyZXMCKw9tdXRhYmxlLWdsb2JhbHMrCHNpZ24tZXh0",t=async(C={},E)=>{let I;if(E.startsWith("data:")){const M=E.replace(/^data:.*?base64,/,"");let k;if(typeof Buffer=="function"&&typeof Buffer.from=="function")k=Buffer.from(M,"base64");else if(typeof atob=="function"){const T=atob(M);k=new Uint8Array(T.length);for(let Q=0;Q<T.length;Q++)k[Q]=T.charCodeAt(Q)}else throw new Error("Cannot decode base64-encoded data URL");I=await WebAssembly.instantiate(k,C)}else{const M=await fetch(E),k=M.headers.get("Content-Type")||"";if("instantiateStreaming"in WebAssembly&&k.startsWith("application/wasm"))I=await WebAssembly.instantiateStreaming(M,C);else{const T=await M.arrayBuffer();I=await WebAssembly.instantiate(T,C)}}return I.instance.exports};let n;gp=function(C){n=C};const r=new Array(128).fill(void 0);r.push(void 0,null,!0,!1);function f(C){return r[C]}let p=r.length;function v(C){C<132||(r[C]=p,p=C)}function u(C){const E=f(C);return v(C),E}const o=typeof TextDecoder>"u"?(0,module.require)("util").TextDecoder:TextDecoder;let s=new o("utf-8",{ignoreBOM:!0,fatal:!0});s.decode();let c=null;function i(){return(c===null||c.byteLength===0)&&(c=new Uint8Array(n.memory.buffer)),c}function l(C,E){return C=C>>>0,s.decode(i().subarray(C,C+E))}let a=0;function h(C,E){const I=E(C.length*1,1)>>>0;return i().set(C,I/1),a=C.length,I}let g=null;function d(){return(g===null||g.byteLength===0)&&(g=new Int32Array(n.memory.buffer)),g}function A(C,E){return C=C>>>0,i().subarray(C/1,C/1+E)}Im=function(C,E,I,M,k,T,Q){try{const J=n.__wbindgen_add_to_stack_pointer(-16),tt=h(E,n.__wbindgen_malloc),F=a,L=h(M,n.__wbindgen_malloc),D=a,G=h(T,n.__wbindgen_malloc),z=a;n.decode_rgb(J,C,tt,F,I,L,D,k,G,z,Q);var H=d()[J/4+0],Y=d()[J/4+1],W=A(H,Y).slice();return n.__wbindgen_free(H,Y*1),W}finally{n.__wbindgen_add_to_stack_pointer(16)}},Om=function(C,E,I,M,k,T,Q,H,Y){try{const F=n.__wbindgen_add_to_stack_pointer(-16),L=h(E,n.__wbindgen_malloc),D=a,G=h(M,n.__wbindgen_malloc),z=a,X=h(T,n.__wbindgen_malloc),et=a,at=h(H,n.__wbindgen_malloc),lt=a;n.decode_rgba(F,C,L,D,I,G,z,k,X,et,Q,at,lt,Y);var W=d()[F/4+0],J=d()[F/4+1],tt=A(W,J).slice();return n.__wbindgen_free(W,J*1),tt}finally{n.__wbindgen_add_to_stack_pointer(16)}},Sm=function(C,E,I){try{const Q=n.__wbindgen_add_to_stack_pointer(-16),H=h(E,n.__wbindgen_malloc),Y=a;n.decode_grayscale(Q,C,H,Y,I);var M=d()[Q/4+0],k=d()[Q/4+1],T=A(M,k).slice();return n.__wbindgen_free(M,k*1),T}finally{n.__wbindgen_add_to_stack_pointer(16)}},xm=function(C,E,I,M,k){try{const Y=n.__wbindgen_add_to_stack_pointer(-16),W=h(E,n.__wbindgen_malloc),J=a,tt=h(M,n.__wbindgen_malloc),F=a;n.decode_grayscale_a(Y,C,W,J,I,tt,F,k);var T=d()[Y/4+0],Q=d()[Y/4+1],H=A(T,Q).slice();return n.__wbindgen_free(T,Q*1),H}finally{n.__wbindgen_add_to_stack_pointer(16)}};function y(C){p===r.length&&r.push(r.length+1);const E=p;return p=r[E],r[E]=C,E}const m=typeof TextEncoder>"u"?(0,module.require)("util").TextEncoder:TextEncoder;let _=new m("utf-8");const w=typeof _.encodeInto=="function"?function(C,E){return _.encodeInto(C,E)}:function(C,E){const I=_.encode(C);return E.set(I),{read:C.length,written:I.length}};function S(C,E,I){if(I===void 0){const H=_.encode(C),Y=E(H.length,1)>>>0;return i().subarray(Y,Y+H.length).set(H),a=H.length,Y}let M=C.length,k=E(M,1)>>>0;const T=i();let Q=0;for(;Q<M;Q++){const H=C.charCodeAt(Q);if(H>127)break;T[k+Q]=H}if(Q!==M){Q!==0&&(C=C.slice(Q)),k=I(k,M,M=Q+C.length*3,1)>>>0;const H=i().subarray(k+Q,k+M),Y=w(C,H);Q+=Y.written}return a=Q,k}dp=function(){const C=new Error;return y(C)},pp=function(C,E){const I=f(E).stack,M=S(I,n.__wbindgen_malloc,n.__wbindgen_realloc),k=a;d()[C/4+1]=k,d()[C/4+0]=M},fp=function(C,E){let I,M;try{I=C,M=E,console.error(l(C,E))}finally{n.__wbindgen_free(I,M,1)}},Ap=function(C){u(C)},vp=function(C,E){throw new Error(l(C,E))},URL=globalThis.URL;const O=await t({"./webtoon_psd_decoder_bg.js":{__wbg_new_abda76e883ba8a5f:dp,__wbg_stack_658279fe44541cf6:pp,__wbg_error_f851667af71bcfc6:fp,__wbindgen_object_drop_ref:Ap,__wbindgen_throw:vp}},e),P=O.memory,N=O.main_js,q=O.decode_rgb,Z=O.decode_rgba,K=O.decode_grayscale,rt=O.decode_grayscale_a,$=O.__wbindgen_add_to_stack_pointer,U=O.__wbindgen_malloc,j=O.__wbindgen_free,B=O.__wbindgen_realloc,x=O.__wbindgen_start,b=Object.freeze(Object.defineProperty({__proto__:null,__wbindgen_add_to_stack_pointer:$,__wbindgen_free:j,__wbindgen_malloc:U,__wbindgen_realloc:B,__wbindgen_start:x,decode_grayscale:K,decode_grayscale_a:rt,decode_rgb:q,decode_rgba:Z,main_js:N,memory:P},Symbol.toStringTag,{value:"Module"}));gp(b),x()})();async function Fj(e,t,n,r,f,p){const v=e*t;if(!(v>0&&Number.isInteger(v)))throw new Error(`Pixel count must be a positive integer, got ${v}`);let u;if(r&&f)u=await Lj(v,n,r,f,p);else if(!f&&!r)u=await Nu(v,n,p);else throw new Error(`Missing ${f?"green":"blue"} channel in RGB image`);return new Uint8ClampedArray(u.buffer,u.byteOffset,u.byteLength)}function Mr(e){switch(e){case gn.RawData:case gn.RleCompressed:return}throw new Am(`Unsupported compression method: ${e}`)}async function Lj(e,t,n,r,f){return await Bm,Mr(t.compression),Mr(r.compression),Mr(t.compression),f&&Mr(f.compression),f?Om(e,t.data,t.compression,n.data,n.compression,r.data,r.compression,f.data,f.compression):Im(e,t.data,t.compression,n.data,n.compression,r.data,r.compression)}async function Nu(e,t,n){return await Bm,Mr(t.compression),n&&Mr(n.compression),n?xm(e,t.data,t.compression,n.data,n.compression):Sm(e,t.data,t.compression)}function jj(e){const t=Bj(e),{fileHeader:n}=t,r=hf(n.version),f=FL(t.imageResources),p=Ij(t.layerAndMaskInformation,r),v=kL(t.imageData,n.depth,n.height,n.channelCount,r);return{fileHeader:n,colorModeData:void 0,imageResources:f,layerAndMaskInfo:p,imageData:v}}function wc(e){const t=e.readUnicodeString(0),n=e.readIdString(),r=e.read("u32"),f=new Map;for(;f.size<r;){const p=e.readIdString(),v=Uu(e);if(f.has(p))throw new lL(`Duplicate descriptor key: ${p}`);f.set(p,v)}return{name:t,classId:n,items:f}}function cn(e){const t=e.read("u32");if(t!==16)throw new cL(`Invalid descriptor version: ${t}`);const n=wc(e);return{descriptorVersion:t,descriptor:n}}function Uu(e){const t=e.readString(4);switch(t){case Qt.Alias:{const n=e.read("u32"),r=e.take(n);return{type:t,data:r}}case Qt.Boolean:{const n=!!e.read("u8");return{type:t,value:n}}case Qt.Class:case Qt.GlobalClass:{const n=e.readUnicodeString(0),r=e.readIdString();return{type:t,name:n,classId:r}}case Qt.Descriptor:case Qt.GlobalObject:{const n=wc(e);return{type:t,descriptor:n}}case Qt.Double:{const n=e.read("f64");return{type:t,value:n}}case Qt.Enumerated:{const n=e.readIdString(),r=e.readIdString();return{type:t,enumType:n,enumValue:r}}case Qt.Integer:{const n=e.read("i32");return{type:t,value:n}}case Qt.LargeInteger:{const n=e.read("i64");return{type:t,value:n}}case Qt.List:{const n=e.read("u32"),r=[];for(;r.length<n;)r.push(Uu(e));return{type:t,values:r}}case Qt.RawData:{const n=e.read("u32"),r=e.take(n);return{type:t,data:r}}case Qt.Reference:{const n=e.read("u32"),r=[];for(;r.length<n;)r.push(Nj(e));return{type:t,references:r}}case Qt.String:{const n=e.readUnicodeString(0);return{type:t,value:n}}case Qt.UnitFloat:{const n=yp(e.readString(4)),r=e.read("f64");return{type:t,unitType:n,value:r}}case Qt.ObjectArray:{e.read("u32");const n=e.readUnicodeString(0),r=e.readIdString(),f=e.read("u32"),p=Array.from(Array(f),()=>{const v=e.readIdString(),u=Uu(e);return{key:v,value:u}});return{type:t,classObj:{name:n,classId:r},items:p}}case Qt.UnitFloats:{const n=yp(e.readString(4)),r=e.read("u32"),f=Array.from(Array(r),()=>e.read("f64"));return{type:t,unitType:n,values:f}}default:throw new aL(`Unexpected descriptor type: ${t}`)}}function Nj(e){const t=e.readString(4);switch(t){case In.Class:{const n=e.readUnicodeString(0),r=e.readIdString();return{type:t,name:n,classId:r}}case In.Enumerated:{const n=e.readUnicodeString(0),r=e.readIdString(),f=e.readIdString(),p=e.readIdString();return{type:t,name:n,classId:r,typeId:f,enumValue:p}}case In.Identifier:{const n=e.readString(4);return{type:t,identifier:n}}case In.Index:{const n=e.read("u32");return{type:t,index:n}}case In.Name:{const n=e.readUnicodeString(0);return{type:t,name:n}}case In.Offset:{const n=e.readUnicodeString(0),r=e.readIdString(),f=e.read("u32");return{type:t,name:n,classId:r,offset:f}}case In.Property:{const n=e.readUnicodeString(0),r=e.readIdString(),f=e.readIdString();return{type:t,name:n,classId:r,keyId:f}}default:throw new fL(`Invalid reference type: ${t}`)}}function yp(e){if(!Object.values(Fu).includes(e))throw new dL(`Invalid Unit Float type: ${e}`);return e}var Vt;(function(e){e[e.String=0]="String",e[e.DictBeg=1]="DictBeg",e[e.DictEnd=2]="DictEnd",e[e.ArrBeg=3]="ArrBeg",e[e.ArrEnd=4]="ArrEnd",e[e.Name=5]="Name",e[e.Number=6]="Number",e[e.Boolean=7]="Boolean"})(Vt||(Vt={}));const Gu=new Set([0,9,12,32,10,13]),Uj=new Set([102,116]),dn={"(":40,")":41,"<":60,">":62,"[":91,"]":93,"/":47,"\\":92},Tm=new Set(Object.values(dn)),km=[];for(let e=0;e<256;e+=1)km[e]=Gu.has(e)||Tm.has(e);const Gj=new TextDecoder("utf-8");function $j(e){const t=e.position;let n=e.position;for(const r of e.iter()){if(km[r])break;n+=1}return Gj.decode(e.take(n-t))}class Hj{constructor(t){this.cursor=tr.from(t)}tokens(){const t=[];for(;!this.done();){const n=this.cursor.one();if(Gu.has(n)){for(;!this.done()&&Gu.has(this.cursor.peek());)this.cursor.pass(1);continue}if(Tm.has(n)){if(n===dn["("]){t.push({type:Vt.String,value:this.text()});continue}if(n===dn["["]){t.push({type:Vt.ArrBeg});continue}if(n===dn["]"]){t.push({type:Vt.ArrEnd});continue}if(n===dn["<"]){this.cursor.pass(1),t.push({type:Vt.DictBeg});continue}if(n===dn[">"]){this.cursor.pass(1),t.push({type:Vt.DictEnd});continue}if(n===dn["/"]){t.push({type:Vt.Name,value:this.string()});continue}console.assert(!1,"Unhandled delimiter: '%s'",String.fromCharCode(n));continue}this.cursor.unpass(1),Uj.has(n)?t.push({type:Vt.Boolean,value:this.boolean()}):t.push({type:Vt.Number,value:this.number()})}return t}done(){return this.cursor.position>=this.cursor.length}text(){const t=this.cursor.peek();if(t===dn[")"])return this.cursor.pass(1),"";const n=t===255||t===254;let r=new TextDecoder("utf-16be");n&&(r=this.textDecoderFromBOM());const f=[],p=this.cursor.clone();for(;p.peek()!==dn[")"];)if(p.pass(1),p.peek()===dn["\\"]){const o=p.position-this.cursor.position;f.push(r.decode(this.cursor.take(o),{stream:!0})),p.pass(2),this.cursor.pass(1),f.push(r.decode(this.cursor.take(1),{stream:!0}))}const v=p.position-this.cursor.position,u=this.cursor.take(v);return f.push(r.decode(u)),this.cursor.pass(1),f.join("")}textDecoderFromBOM(){const t=this.cursor.one(),n=this.cursor.one();if(t===255&&n===254)return new TextDecoder("utf-16le");if(t===254&&n===255)return new TextDecoder("utf-16be");throw new vL(`Unknown BOM value: [${t}, ${n}]`)}string(){return $j(this.cursor)}number(){const t=this.string(),n=Number(t);if(Number.isNaN(n))throw new pL(`parsing '${t}' as Number failed`);return n}boolean(){const t=this.string();if(t==="true")return!0;if(t==="false")return!1;throw new gL(`'${t}' is neither 'true' nor 'false'`)}}const Zl=Symbol(Vt[Vt.ArrBeg]),tu=Symbol(Vt[Vt.DictBeg]);class zj{constructor(t){this.tokens=t,this.stack=[]}parse(){this.runParser();const[t]=this.stack;if(typeof t=="object"&&!Array.isArray(t))return t;throw new AL(`EngineData top-level value is not a dict; is ${typeof t}`)}runParser(){for(const t of this.tokens)switch(t.type){case Vt.Name:case Vt.Number:case Vt.Boolean:case Vt.String:this.stack.push(t.value);continue;case Vt.DictBeg:this.stack.push(tu);continue;case Vt.ArrBeg:this.stack.push(Zl);continue;case Vt.DictEnd:this.stack.push(this.dict());continue;case Vt.ArrEnd:this.stack.push(this.array().reverse());continue}}dict(){const t={};for(;;){const n=this.stack.pop();if(n===void 0)throw new op("Stack empty when parsing dict");if(n===tu)return t;if(n===Zl)throw new Xl("Got ArrBeg while parsing a dict");const r=this.stack.pop();if(typeof r!="string")throw new Xl(`Dict key is not Name; is ${typeof r}`);t[r]=n}}array(){const t=[];for(;;){const n=this.stack.pop();if(n===void 0)throw new op("Stack empty when parsing array");if(n===tu)throw new Xl("Got DictBeg while parsing array");if(n===Zl)return t;t.push(n)}}}const Yj=new Set(["DocumentResources","EngineDict","ResourceDict"]);function Wj(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function qj(e){let t=!0;if(typeof e!="object"||!e)return!1;for(const n of Yj)if(Wj(e,n)){const r=e[n];t=t&&typeof r=="object"&&!Array.isArray(r)&&!!r}else return!1;return t}function Xj(e){const t=new zj(new Hj(e).tokens()).parse();if(qj(t))return t;throw new yL(`Object with keys ${JSON.stringify(Object.keys(t))} is not valid EngineData`)}class Dm{async composite(t=!0,n=!0){const{red:r,green:f,blue:p,alpha:v}=this.imageData,{width:u,height:o}=this,s=await Fj(u,o,r,f,p,v);if(t===!0)if(n===!0){const c=this.composedOpacity*255;return hp(s,c)}else return hp(s,this.opacity);return s}}class Vj extends Dm{constructor(t,n){super(),this.layerFrame=t,this.parent=n,this.type="Layer"}get name(){return this.layerFrame.layerProperties.name}get width(){return this.layerFrame.width}get height(){return this.layerFrame.height}get top(){return this.layerFrame.layerProperties.top}get left(){return this.layerFrame.layerProperties.left}get opacity(){return this.layerFrame.layerProperties.opacity}get composedOpacity(){return this.parent.composedOpacity*(this.opacity/255)}get maskData(){return this.layerFrame.layerProperties.maskData}async userMask(){const t=this.layerFrame.userMask;if(t)return Nu(sp(this.maskData),t)}async realUserMask(){const t=this.maskData.realData,n=this.layerFrame.realUserMask;if(!(!t||!n))return Nu(sp(t),n)}get isHidden(){return this.layerFrame.layerProperties.hidden}get isTransparencyLocked(){return this.layerFrame.layerProperties.transparencyLocked}get additionalProperties(){return this.layerFrame.layerProperties.additionalLayerProperties}get text(){return this.layerFrame.layerProperties.text}get textProperties(){return this.layerFrame.layerProperties.textProperties}get imageData(){const{red:t,green:n,blue:r,alpha:f}=this.layerFrame;return{red:t,green:n,blue:r,alpha:f}}}function Jj(e){return e.type==="Psd"||e.type==="Group"}function mp(e){if(!Jj(e))throw new bt(`Node (name = '${e.name}', type: '${e.type}') cannot be a parent node`)}class Kj{constructor(t,n,r,f,p){this.origin=t,this.left=n,this.top=r,this.right=f,this.bottom=p}}function Zj(e){if(e.resource.descriptor){const t=e.resource.descriptor.descriptor.items.get("slices");if(!(t&&t.type===Qt.List))throw new Ei('Missing key "slices" in slice descriptor');return t.values.reduce((n,r)=>{if(r.type!==Qt.Descriptor)throw new Ei(`Slice list contains a non-descriptor (type: ${r.type})`);return n.push(tN(r.descriptor)),n},[])}else throw new Ei("No slice descriptor in slice resource block")}function tN(e){const t=eN(e),n=kr(e,"bounds",Qt.Descriptor).descriptor,r=kr(n,"Top ",Qt.Integer).value,f=kr(n,"Left",Qt.Integer).value,p=kr(n,"Btom",Qt.Integer).value,v=kr(n,"Rght",Qt.Integer).value;return new Kj(t,f,r,v,p)}function eN(e){const t=kr(e,"origin",Qt.Enumerated);if(t.enumType!=="ESliceOrigin")throw new Ei(`Unexpected enum type for slice origin: got "${t.enumType}"`);switch(t.enumValue){case"layerGenerated":return Ur.LayerGenerated;case"userGenerated":return Ur.UserGenerated;case"autoGenerated":return Ur.AutoGenerated;default:throw new Ei(`Unexpected enum value for slice origin: got "${t.enumValue}"`)}}class ff extends Dm{static parse(t){const n=jj(t);return new ff(n)}constructor(t){super(),this.parsingResult=t,this.name="ROOT",this.type="Psd",this.opacity=255,this.composedOpacity=1,this.children=[],this.layers=[],this.guides=[],this.slices=[],this.icc_profile=void 0,this.globalLightAngle=void 0,this.globalLightAltitude=void 0,this.resolutionInfo=void 0,this.additionalLayerProperties={},this.buildTreeStructure(),this.additionalLayerProperties=t.layerAndMaskInfo.globalAdditionalLayerInformation;for(const n of t.imageResources.resources)if(n.resource!==null)switch(n.id){case Ce.GridAndGuides:this.guides=n.resource.guides;break;case Ce.Slices:this.slices=Zj(n);break;case Ce.ICCProfile:this.icc_profile=n.resource;break;case Ce.GlobalLightAltitude:this.globalLightAltitude=n.resource;break;case Ce.GlobalLightAngle:this.globalLightAngle=n.resource;break;case Ce.ResolutionInfo:this.resolutionInfo=n.resource;break}}get width(){return this.parsingResult.fileHeader.width}get height(){return this.parsingResult.fileHeader.height}get channelCount(){return this.parsingResult.fileHeader.channelCount}get depth(){return this.parsingResult.fileHeader.depth}get colorMode(){return this.parsingResult.fileHeader.colorMode}get imageData(){const{compression:t,red:n,green:r,blue:f,alpha:p}=this.parsingResult.imageData;return{red:{compression:t,data:n},green:r?{compression:t,data:r}:void 0,blue:f?{compression:t,data:f}:void 0,alpha:p?{compression:t,data:p}:void 0}}buildTreeStructure(){const{groups:t,layers:n,orders:r}=this.parsingResult.layerAndMaskInfo,f=[this];let p=0,v=0;r.forEach(u=>{const o=f[f.length-1];switch(u){case"G":{const s=t[p];mp(o);const c=new FF(s,o);f.push(c),o.children.push(c),p+=1;break}case"L":{const s=n[v];mp(o);const c=new Vj(s,o);this.layers.push(c),o.children.push(c),v+=1;break}case"D":f.pop()}}),f.length=0,this.children.forEach(u=>{var o,s;return(s=(o=u).freeze)===null||s===void 0?void 0:s.call(o)}),Object.freeze(this.children)}}const ka=class ka{constructor(t,n){this.canvas=t,this.editor=n}insertPSD(t){return new Promise((n,r)=>{ze.selectFiles({accept:".psd"}).then(f=>{if(f&&f.length>0){const p=f[0],v=new FileReader;v.readAsText(p,"UTF-8"),v.onload=async()=>{const u=await p.arrayBuffer(),o=ff.parse(u);console.log(o,"11111");const s=await TF(o);this.loadJSON(s,t),n("")}}}).catch(r)})}loadJSON(t,n){this.editor.loadJSON(t,n)}};ka.pluginName="PsdPlugin",ka.apis=["insertPSD"];let oa=ka;const df=e=>{const{left:t=0,top:n=0}=e;return{width:e.getScaledWidth(),height:e.getScaledHeight(),left:t,top:n}},Cc=(e,t)=>{eu(e),eu(e,"targetId",$i(t,"id")),eu(e,"targetType",$i(t,"type"))},eu=(e,t="clip",n=!0)=>{_y(e,t,n)},nN=(e,t)=>{const{width:n=0,height:r=0,left:f=0,top:p=0}=df(e),v=Math.round(n/2),u=Math.round(r/2),o=new V.fabric.Rect({width:v,height:u,fill:"rgba(0,0,0,0)",originX:"center",originY:"center",left:f+n/2,top:p+r/2});return Cc(o,e),{clipPath:new V.fabric.Rect({absolutePositioned:!0,width:o.width,height:o.height,originX:"center",originY:"center",left:o.left,top:o.top,inverted:t}),shell:o}},rN=(e,t)=>{const n=e.getCenterPoint(),{width:r}=df(e),f=new V.fabric.Ellipse({fill:"rgba(0,0,0,0)",originX:"center",originY:"center",left:n.x,top:n.y,rx:r/4,ry:r/4});Cc(f,e);const p=new V.fabric.Ellipse({absolutePositioned:!0,originX:"center",originY:"center",left:f.left,top:f.top,inverted:t,rx:f.rx,ry:f.ry});return{shell:f,clipPath:p}},iN=(e,t)=>{const n=e.getCenterPoint(),{width:r=0,height:f=0}=df(e),p=Math.round(r/2),v=Math.round(f/2),u=new V.fabric.Triangle({fill:"rgba(0,0,0,0)",originX:"center",originY:"center",left:n.x,top:n.y,width:p,height:v});Cc(u,e);const o=new V.fabric.Triangle({absolutePositioned:!0,originX:"center",originY:"center",left:u.left,top:u.top,width:u.width,height:u.height,inverted:t});return{shell:u,clipPath:o}},oN=(e,t)=>{const n=e.getCenterPoint(),r=l1.getPolygonVertices(5,200),f=new V.fabric.Polygon(r,{fill:"rgba(0,0,0,0)",originY:"center",originX:"center",left:n.x,top:n.y});Cc(f,e);const p=new V.fabric.Polygon([...r],{absolutePositioned:!0,originX:"center",originY:"center",left:f.left,top:f.top,inverted:t});return{shell:f,clipPath:p}},Da=class Da{constructor(t,n){this.canvas=t,this.editor=n}addClipPathToImage(t){const n=this.canvas.getActiveObjects()[0];if(n&&n.type==="image"){let r=null;const[f,p]=t.split("-"),v=!!p;switch(f){case"polygon":r=oN(n,v);break;case"rect":r=nN(n,v);break;case"circle":r=rN(n,v);break;case"triangle":r=iN(n,v);break}if(r==null)return;const{shell:u,clipPath:o}=r;u.on("moving",()=>{o.setPositionByOrigin(u.getCenterPoint(),"center","center"),n.set("dirty",!0)}),u.on("rotating",()=>{o.set({angle:u.angle}),n.set("dirty",!0)}),u.on("scaling",()=>{o.set({scaleX:u.scaleX,scaleY:u.scaleY}),o.setPositionByOrigin(u.getCenterPoint(),"center","center"),n.set("dirty",!0)}),u.on("deselected",()=>{if(o instanceof V.fabric.Ellipse&&u instanceof V.fabric.Ellipse)o.set({rx:u.getRx(),ry:u.getRy()}),this.correctPosition(n,u,o);else if(u instanceof V.fabric.Polygon){this.correctPosition(n,u,o);const{scaleX:s=1,scaleY:c=1}=o,{scaleX:i=1,scaleY:l=1}=u;o.set("scaleX",s*i),o.set("scaleY",c*l)}else this.correctPosition(n,u,o),o.set("width",u.getScaledWidth()),o.set("height",u.getScaledHeight());n.set("dirty",!0),this.canvas.remove(u),this.canvas.requestRenderAll()}),n.set({clipPath:o}),this.canvas.add(u),this.canvas.setActiveObject(u)}}correctPosition(t,n,r){const f=t.toLocalPoint(n.getCenterPoint(),"center","center"),{scaleX:p=1,scaleY:v=1}=t;r.set({absolutePositioned:!1,left:f.x/p,top:f.y/v,scaleX:1/p,scaleY:1/v})}removeClip(){const t=this.canvas.getActiveObjects()[0];t&&t.type==="image"&&(t.set({clipPath:void 0}),t.set("dirty",!0),this.canvas.requestRenderAll())}};Da.pluginName="SimpleClipImagePlugin",Da.apis=["addClipPathToImage","removeClip"];let sa=Da;var Co={},fi={},Eo={},_p;function Ue(){if(_p)return Eo;_p=1,Object.defineProperty(Eo,"__esModule",{value:!0});function e(n,r){if(!(n instanceof r))throw new TypeError("Cannot call a class as a function")}var t=function n(r,f){e(this,n),this.data=r,this.text=f.text||r,this.options=f};return Eo.default=t,Eo}var bp;function sN(){if(bp)return fi;bp=1,Object.defineProperty(fi,"__esModule",{value:!0}),fi.CODE39=void 0;var e=(function(){function g(d,A){for(var y=0;y<A.length;y++){var m=A[y];m.enumerable=m.enumerable||!1,m.configurable=!0,"value"in m&&(m.writable=!0),Object.defineProperty(d,m.key,m)}}return function(d,A,y){return A&&g(d.prototype,A),y&&g(d,y),d}})(),t=Ue(),n=r(t);function r(g){return g&&g.__esModule?g:{default:g}}function f(g,d){if(!(g instanceof d))throw new TypeError("Cannot call a class as a function")}function p(g,d){if(!g)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return d&&(typeof d=="object"||typeof d=="function")?d:g}function v(g,d){if(typeof d!="function"&&d!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof d);g.prototype=Object.create(d&&d.prototype,{constructor:{value:g,enumerable:!1,writable:!0,configurable:!0}}),d&&(Object.setPrototypeOf?Object.setPrototypeOf(g,d):g.__proto__=d)}var u=(function(g){v(d,g);function d(A,y){return f(this,d),A=A.toUpperCase(),y.mod43&&(A+=l(h(A))),p(this,(d.__proto__||Object.getPrototypeOf(d)).call(this,A,y))}return e(d,[{key:"encode",value:function(){for(var y=c("*"),m=0;m<this.data.length;m++)y+=c(this.data[m])+"0";return y+=c("*"),{data:y,text:this.text}}},{key:"valid",value:function(){return this.data.search(/^[0-9A-Z\-\.\ \$\/\+\%]+$/)!==-1}}]),d})(n.default),o=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","-","."," ","$","/","+","%","*"],s=[20957,29783,23639,30485,20951,29813,23669,20855,29789,23645,29975,23831,30533,22295,30149,24005,21623,29981,23837,22301,30023,23879,30545,22343,30161,24017,21959,30065,23921,22385,29015,18263,29141,17879,29045,18293,17783,29021,18269,17477,17489,17681,20753,35770];function c(g){return i(a(g))}function i(g){return s[g].toString(2)}function l(g){return o[g]}function a(g){return o.indexOf(g)}function h(g){for(var d=0,A=0;A<g.length;A++)d+=a(g[A]);return d=d%43,d}return fi.CODE39=u,fi}var en={},So={},xo={},Xt={},wp;function so(){if(wp)return Xt;wp=1,Object.defineProperty(Xt,"__esModule",{value:!0});var e;function t(o,s,c){return s in o?Object.defineProperty(o,s,{value:c,enumerable:!0,configurable:!0,writable:!0}):o[s]=c,o}var n=Xt.SET_A=0,r=Xt.SET_B=1,f=Xt.SET_C=2;Xt.SHIFT=98;var p=Xt.START_A=103,v=Xt.START_B=104,u=Xt.START_C=105;return Xt.MODULO=103,Xt.STOP=106,Xt.FNC1=207,Xt.SET_BY_CODE=(e={},t(e,p,n),t(e,v,r),t(e,u,f),e),Xt.SWAP={101:n,100:r,99:f},Xt.A_START_CHAR="Ð",Xt.B_START_CHAR="Ñ",Xt.C_START_CHAR="Ò",Xt.A_CHARS="[\0-_È-Ï]",Xt.B_CHARS="[ -È-Ï]",Xt.C_CHARS="(Ï*[0-9]{2}Ï*)",Xt.BARS=[11011001100,11001101100,11001100110,10010011e3,10010001100,10001001100,10011001e3,10011000100,10001100100,11001001e3,11001000100,11000100100,10110011100,10011011100,10011001110,10111001100,10011101100,10011100110,11001110010,11001011100,11001001110,11011100100,11001110100,11101101110,11101001100,11100101100,11100100110,11101100100,11100110100,11100110010,11011011e3,11011000110,11000110110,10100011e3,10001011e3,10001000110,10110001e3,10001101e3,10001100010,11010001e3,11000101e3,11000100010,10110111e3,10110001110,10001101110,10111011e3,10111000110,10001110110,11101110110,11010001110,11000101110,11011101e3,11011100010,11011101110,11101011e3,11101000110,11100010110,11101101e3,11101100010,11100011010,11101111010,11001000010,11110001010,1010011e4,10100001100,1001011e4,10010000110,10000101100,10000100110,1011001e4,10110000100,1001101e4,10011000010,10000110100,10000110010,11000010010,1100101e4,11110111010,11000010100,10001111010,10100111100,10010111100,10010011110,10111100100,10011110100,10011110010,11110100100,11110010100,11110010010,11011011110,11011110110,11110110110,10101111e3,10100011110,10001011110,10111101e3,10111100010,11110101e3,11110100010,10111011110,10111101110,11101011110,11110101110,11010000100,1101001e4,11010011100,1100011101011],Xt}var Cp;function Ec(){if(Cp)return xo;Cp=1,Object.defineProperty(xo,"__esModule",{value:!0});var e=(function(){function s(c,i){for(var l=0;l<i.length;l++){var a=i[l];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(c,a.key,a)}}return function(c,i,l){return i&&s(c.prototype,i),l&&s(c,l),c}})(),t=Ue(),n=f(t),r=so();function f(s){return s&&s.__esModule?s:{default:s}}function p(s,c){if(!(s instanceof c))throw new TypeError("Cannot call a class as a function")}function v(s,c){if(!s)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return c&&(typeof c=="object"||typeof c=="function")?c:s}function u(s,c){if(typeof c!="function"&&c!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof c);s.prototype=Object.create(c&&c.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}),c&&(Object.setPrototypeOf?Object.setPrototypeOf(s,c):s.__proto__=c)}var o=(function(s){u(c,s);function c(i,l){p(this,c);var a=v(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,i.substring(1),l));return a.bytes=i.split("").map(function(h){return h.charCodeAt(0)}),a}return e(c,[{key:"valid",value:function(){return/^[\x00-\x7F\xC8-\xD3]+$/.test(this.data)}},{key:"encode",value:function(){var l=this.bytes,a=l.shift()-105,h=r.SET_BY_CODE[a];if(h===void 0)throw new RangeError("The encoding does not start with a start character.");this.shouldEncodeAsEan128()===!0&&l.unshift(r.FNC1);var g=c.next(l,1,h);return{text:this.text===this.data?this.text.replace(/[^\x20-\x7E]/g,""):this.text,data:c.getBar(a)+g.result+c.getBar((g.checksum+a)%r.MODULO)+c.getBar(r.STOP)}}},{key:"shouldEncodeAsEan128",value:function(){var l=this.options.ean128||!1;return typeof l=="string"&&(l=l.toLowerCase()==="true"),l}}],[{key:"getBar",value:function(l){return r.BARS[l]?r.BARS[l].toString():""}},{key:"correctIndex",value:function(l,a){if(a===r.SET_A){var h=l.shift();return h<32?h+64:h-32}else return a===r.SET_B?l.shift()-32:(l.shift()-48)*10+l.shift()-48}},{key:"next",value:function(l,a,h){if(!l.length)return{result:"",checksum:0};var g=void 0,d=void 0;if(l[0]>=200){d=l.shift()-105;var A=r.SWAP[d];A!==void 0?g=c.next(l,a+1,A):((h===r.SET_A||h===r.SET_B)&&d===r.SHIFT&&(l[0]=h===r.SET_A?l[0]>95?l[0]-96:l[0]:l[0]<32?l[0]+96:l[0]),g=c.next(l,a+1,h))}else d=c.correctIndex(l,h),g=c.next(l,a+1,h);var y=c.getBar(d),m=d*a;return{result:y+g.result,checksum:m+g.checksum}}}]),c})(n.default);return xo.default=o,xo}var Io={},Ep;function aN(){if(Ep)return Io;Ep=1,Object.defineProperty(Io,"__esModule",{value:!0});var e=so(),t=function(u){return u.match(new RegExp("^"+e.A_CHARS+"*"))[0].length},n=function(u){return u.match(new RegExp("^"+e.B_CHARS+"*"))[0].length},r=function(u){return u.match(new RegExp("^"+e.C_CHARS+"*"))[0]};function f(v,u){var o=u?e.A_CHARS:e.B_CHARS,s=v.match(new RegExp("^("+o+"+?)(([0-9]{2}){2,})([^0-9]|$)"));if(s)return s[1]+"Ì"+p(v.substring(s[1].length));var c=v.match(new RegExp("^"+o+"+"))[0];return c.length===v.length?v:c+String.fromCharCode(u?205:206)+f(v.substring(c.length),!u)}function p(v){var u=r(v),o=u.length;if(o===v.length)return v;v=v.substring(o);var s=t(v)>=n(v);return u+String.fromCharCode(s?206:205)+f(v,s)}return Io.default=function(v){var u=void 0,o=r(v).length;if(o>=2)u=e.C_START_CHAR+p(v);else{var s=t(v)>n(v);u=(s?e.A_START_CHAR:e.B_START_CHAR)+f(v,s)}return u.replace(/[\xCD\xCE]([^])[\xCD\xCE]/,function(c,i){return"Ë"+i})},Io}var Sp;function cN(){if(Sp)return So;Sp=1,Object.defineProperty(So,"__esModule",{value:!0});var e=Ec(),t=f(e),n=aN(),r=f(n);function f(s){return s&&s.__esModule?s:{default:s}}function p(s,c){if(!(s instanceof c))throw new TypeError("Cannot call a class as a function")}function v(s,c){if(!s)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return c&&(typeof c=="object"||typeof c=="function")?c:s}function u(s,c){if(typeof c!="function"&&c!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof c);s.prototype=Object.create(c&&c.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}),c&&(Object.setPrototypeOf?Object.setPrototypeOf(s,c):s.__proto__=c)}var o=(function(s){u(c,s);function c(i,l){if(p(this,c),/^[\x00-\x7F\xC8-\xD3]+$/.test(i))var a=v(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,(0,r.default)(i),l));else var a=v(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,i,l));return v(a)}return c})(t.default);return So.default=o,So}var Oo={},xp;function lN(){if(xp)return Oo;xp=1,Object.defineProperty(Oo,"__esModule",{value:!0});var e=(function(){function s(c,i){for(var l=0;l<i.length;l++){var a=i[l];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(c,a.key,a)}}return function(c,i,l){return i&&s(c.prototype,i),l&&s(c,l),c}})(),t=Ec(),n=f(t),r=so();function f(s){return s&&s.__esModule?s:{default:s}}function p(s,c){if(!(s instanceof c))throw new TypeError("Cannot call a class as a function")}function v(s,c){if(!s)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return c&&(typeof c=="object"||typeof c=="function")?c:s}function u(s,c){if(typeof c!="function"&&c!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof c);s.prototype=Object.create(c&&c.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}),c&&(Object.setPrototypeOf?Object.setPrototypeOf(s,c):s.__proto__=c)}var o=(function(s){u(c,s);function c(i,l){return p(this,c),v(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,r.A_START_CHAR+i,l))}return e(c,[{key:"valid",value:function(){return new RegExp("^"+r.A_CHARS+"+$").test(this.data)}}]),c})(n.default);return Oo.default=o,Oo}var Bo={},Ip;function uN(){if(Ip)return Bo;Ip=1,Object.defineProperty(Bo,"__esModule",{value:!0});var e=(function(){function s(c,i){for(var l=0;l<i.length;l++){var a=i[l];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(c,a.key,a)}}return function(c,i,l){return i&&s(c.prototype,i),l&&s(c,l),c}})(),t=Ec(),n=f(t),r=so();function f(s){return s&&s.__esModule?s:{default:s}}function p(s,c){if(!(s instanceof c))throw new TypeError("Cannot call a class as a function")}function v(s,c){if(!s)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return c&&(typeof c=="object"||typeof c=="function")?c:s}function u(s,c){if(typeof c!="function"&&c!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof c);s.prototype=Object.create(c&&c.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}),c&&(Object.setPrototypeOf?Object.setPrototypeOf(s,c):s.__proto__=c)}var o=(function(s){u(c,s);function c(i,l){return p(this,c),v(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,r.B_START_CHAR+i,l))}return e(c,[{key:"valid",value:function(){return new RegExp("^"+r.B_CHARS+"+$").test(this.data)}}]),c})(n.default);return Bo.default=o,Bo}var To={},Op;function hN(){if(Op)return To;Op=1,Object.defineProperty(To,"__esModule",{value:!0});var e=(function(){function s(c,i){for(var l=0;l<i.length;l++){var a=i[l];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(c,a.key,a)}}return function(c,i,l){return i&&s(c.prototype,i),l&&s(c,l),c}})(),t=Ec(),n=f(t),r=so();function f(s){return s&&s.__esModule?s:{default:s}}function p(s,c){if(!(s instanceof c))throw new TypeError("Cannot call a class as a function")}function v(s,c){if(!s)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return c&&(typeof c=="object"||typeof c=="function")?c:s}function u(s,c){if(typeof c!="function"&&c!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof c);s.prototype=Object.create(c&&c.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}),c&&(Object.setPrototypeOf?Object.setPrototypeOf(s,c):s.__proto__=c)}var o=(function(s){u(c,s);function c(i,l){return p(this,c),v(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,r.C_START_CHAR+i,l))}return e(c,[{key:"valid",value:function(){return new RegExp("^"+r.C_CHARS+"+$").test(this.data)}}]),c})(n.default);return To.default=o,To}var Bp;function fN(){if(Bp)return en;Bp=1,Object.defineProperty(en,"__esModule",{value:!0}),en.CODE128C=en.CODE128B=en.CODE128A=en.CODE128=void 0;var e=cN(),t=o(e),n=lN(),r=o(n),f=uN(),p=o(f),v=hN(),u=o(v);function o(s){return s&&s.__esModule?s:{default:s}}return en.CODE128=t.default,en.CODE128A=r.default,en.CODE128B=p.default,en.CODE128C=u.default,en}var pe={},ko={},Sn={},Tp;function ao(){return Tp||(Tp=1,Object.defineProperty(Sn,"__esModule",{value:!0}),Sn.SIDE_BIN="101",Sn.MIDDLE_BIN="01010",Sn.BINARIES={L:["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],G:["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],R:["1110010","1100110","1101100","1000010","1011100","1001110","1010000","1000100","1001000","1110100"],O:["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],E:["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"]},Sn.EAN2_STRUCTURE=["LL","LG","GL","GG"],Sn.EAN5_STRUCTURE=["GGLLL","GLGLL","GLLGL","GLLLG","LGGLL","LLGGL","LLLGG","LGLGL","LGLLG","LLGLG"],Sn.EAN13_STRUCTURE=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"]),Sn}var Do={},Ro={},kp;function co(){if(kp)return Ro;kp=1,Object.defineProperty(Ro,"__esModule",{value:!0});var e=ao(),t=function(r,f,p){var v=r.split("").map(function(o,s){return e.BINARIES[f[s]]}).map(function(o,s){return o?o[r[s]]:""});if(p){var u=r.length-1;v=v.map(function(o,s){return s<u?o+p:o})}return v.join("")};return Ro.default=t,Ro}var Dp;function Rm(){if(Dp)return Do;Dp=1,Object.defineProperty(Do,"__esModule",{value:!0});var e=(function(){function i(l,a){for(var h=0;h<a.length;h++){var g=a[h];g.enumerable=g.enumerable||!1,g.configurable=!0,"value"in g&&(g.writable=!0),Object.defineProperty(l,g.key,g)}}return function(l,a,h){return a&&i(l.prototype,a),h&&i(l,h),l}})(),t=ao(),n=co(),r=v(n),f=Ue(),p=v(f);function v(i){return i&&i.__esModule?i:{default:i}}function u(i,l){if(!(i instanceof l))throw new TypeError("Cannot call a class as a function")}function o(i,l){if(!i)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return l&&(typeof l=="object"||typeof l=="function")?l:i}function s(i,l){if(typeof l!="function"&&l!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof l);i.prototype=Object.create(l&&l.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),l&&(Object.setPrototypeOf?Object.setPrototypeOf(i,l):i.__proto__=l)}var c=(function(i){s(l,i);function l(a,h){u(this,l);var g=o(this,(l.__proto__||Object.getPrototypeOf(l)).call(this,a,h));return g.fontSize=!h.flat&&h.fontSize>h.width*10?h.width*10:h.fontSize,g.guardHeight=h.height+g.fontSize/2+h.textMargin,g}return e(l,[{key:"encode",value:function(){return this.options.flat?this.encodeFlat():this.encodeGuarded()}},{key:"leftText",value:function(h,g){return this.text.substr(h,g)}},{key:"leftEncode",value:function(h,g){return(0,r.default)(h,g)}},{key:"rightText",value:function(h,g){return this.text.substr(h,g)}},{key:"rightEncode",value:function(h,g){return(0,r.default)(h,g)}},{key:"encodeGuarded",value:function(){var h={fontSize:this.fontSize},g={height:this.guardHeight};return[{data:t.SIDE_BIN,options:g},{data:this.leftEncode(),text:this.leftText(),options:h},{data:t.MIDDLE_BIN,options:g},{data:this.rightEncode(),text:this.rightText(),options:h},{data:t.SIDE_BIN,options:g}]}},{key:"encodeFlat",value:function(){var h=[t.SIDE_BIN,this.leftEncode(),t.MIDDLE_BIN,this.rightEncode(),t.SIDE_BIN];return{data:h.join(""),text:this.text}}}]),l})(p.default);return Do.default=c,Do}var Rp;function dN(){if(Rp)return ko;Rp=1,Object.defineProperty(ko,"__esModule",{value:!0});var e=(function(){function i(l,a){for(var h=0;h<a.length;h++){var g=a[h];g.enumerable=g.enumerable||!1,g.configurable=!0,"value"in g&&(g.writable=!0),Object.defineProperty(l,g.key,g)}}return function(l,a,h){return a&&i(l.prototype,a),h&&i(l,h),l}})(),t=function i(l,a,h){l===null&&(l=Function.prototype);var g=Object.getOwnPropertyDescriptor(l,a);if(g===void 0){var d=Object.getPrototypeOf(l);return d===null?void 0:i(d,a,h)}else{if("value"in g)return g.value;var A=g.get;return A===void 0?void 0:A.call(h)}},n=ao(),r=Rm(),f=p(r);function p(i){return i&&i.__esModule?i:{default:i}}function v(i,l){if(!(i instanceof l))throw new TypeError("Cannot call a class as a function")}function u(i,l){if(!i)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return l&&(typeof l=="object"||typeof l=="function")?l:i}function o(i,l){if(typeof l!="function"&&l!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof l);i.prototype=Object.create(l&&l.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),l&&(Object.setPrototypeOf?Object.setPrototypeOf(i,l):i.__proto__=l)}var s=function(l){var a=l.substr(0,12).split("").map(function(h){return+h}).reduce(function(h,g,d){return d%2?h+g*3:h+g},0);return(10-a%10)%10},c=(function(i){o(l,i);function l(a,h){v(this,l),a.search(/^[0-9]{12}$/)!==-1&&(a+=s(a));var g=u(this,(l.__proto__||Object.getPrototypeOf(l)).call(this,a,h));return g.lastChar=h.lastChar,g}return e(l,[{key:"valid",value:function(){return this.data.search(/^[0-9]{13}$/)!==-1&&+this.data[12]===s(this.data)}},{key:"leftText",value:function(){return t(l.prototype.__proto__||Object.getPrototypeOf(l.prototype),"leftText",this).call(this,1,6)}},{key:"leftEncode",value:function(){var h=this.data.substr(1,6),g=n.EAN13_STRUCTURE[this.data[0]];return t(l.prototype.__proto__||Object.getPrototypeOf(l.prototype),"leftEncode",this).call(this,h,g)}},{key:"rightText",value:function(){return t(l.prototype.__proto__||Object.getPrototypeOf(l.prototype),"rightText",this).call(this,7,6)}},{key:"rightEncode",value:function(){var h=this.data.substr(7,6);return t(l.prototype.__proto__||Object.getPrototypeOf(l.prototype),"rightEncode",this).call(this,h,"RRRRRR")}},{key:"encodeGuarded",value:function(){var h=t(l.prototype.__proto__||Object.getPrototypeOf(l.prototype),"encodeGuarded",this).call(this);return this.options.displayValue&&(h.unshift({data:"000000000000",text:this.text.substr(0,1),options:{textAlign:"left",fontSize:this.fontSize}}),this.options.lastChar&&(h.push({data:"00"}),h.push({data:"00000",text:this.options.lastChar,options:{fontSize:this.fontSize}}))),h}}]),l})(f.default);return ko.default=c,ko}var Mo={},Mp;function gN(){if(Mp)return Mo;Mp=1,Object.defineProperty(Mo,"__esModule",{value:!0});var e=(function(){function c(i,l){for(var a=0;a<l.length;a++){var h=l[a];h.enumerable=h.enumerable||!1,h.configurable=!0,"value"in h&&(h.writable=!0),Object.defineProperty(i,h.key,h)}}return function(i,l,a){return l&&c(i.prototype,l),a&&c(i,a),i}})(),t=function c(i,l,a){i===null&&(i=Function.prototype);var h=Object.getOwnPropertyDescriptor(i,l);if(h===void 0){var g=Object.getPrototypeOf(i);return g===null?void 0:c(g,l,a)}else{if("value"in h)return h.value;var d=h.get;return d===void 0?void 0:d.call(a)}},n=Rm(),r=f(n);function f(c){return c&&c.__esModule?c:{default:c}}function p(c,i){if(!(c instanceof i))throw new TypeError("Cannot call a class as a function")}function v(c,i){if(!c)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return i&&(typeof i=="object"||typeof i=="function")?i:c}function u(c,i){if(typeof i!="function"&&i!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof i);c.prototype=Object.create(i&&i.prototype,{constructor:{value:c,enumerable:!1,writable:!0,configurable:!0}}),i&&(Object.setPrototypeOf?Object.setPrototypeOf(c,i):c.__proto__=i)}var o=function(i){var l=i.substr(0,7).split("").map(function(a){return+a}).reduce(function(a,h,g){return g%2?a+h:a+h*3},0);return(10-l%10)%10},s=(function(c){u(i,c);function i(l,a){return p(this,i),l.search(/^[0-9]{7}$/)!==-1&&(l+=o(l)),v(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,l,a))}return e(i,[{key:"valid",value:function(){return this.data.search(/^[0-9]{8}$/)!==-1&&+this.data[7]===o(this.data)}},{key:"leftText",value:function(){return t(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"leftText",this).call(this,0,4)}},{key:"leftEncode",value:function(){var a=this.data.substr(0,4);return t(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"leftEncode",this).call(this,a,"LLLL")}},{key:"rightText",value:function(){return t(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"rightText",this).call(this,4,4)}},{key:"rightEncode",value:function(){var a=this.data.substr(4,4);return t(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"rightEncode",this).call(this,a,"RRRR")}}]),i})(r.default);return Mo.default=s,Mo}var Po={},Pp;function pN(){if(Pp)return Po;Pp=1,Object.defineProperty(Po,"__esModule",{value:!0});var e=(function(){function l(a,h){for(var g=0;g<h.length;g++){var d=h[g];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(a,h,g){return h&&l(a.prototype,h),g&&l(a,g),a}})(),t=ao(),n=co(),r=v(n),f=Ue(),p=v(f);function v(l){return l&&l.__esModule?l:{default:l}}function u(l,a){if(!(l instanceof a))throw new TypeError("Cannot call a class as a function")}function o(l,a){if(!l)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return a&&(typeof a=="object"||typeof a=="function")?a:l}function s(l,a){if(typeof a!="function"&&a!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof a);l.prototype=Object.create(a&&a.prototype,{constructor:{value:l,enumerable:!1,writable:!0,configurable:!0}}),a&&(Object.setPrototypeOf?Object.setPrototypeOf(l,a):l.__proto__=a)}var c=function(a){var h=a.split("").map(function(g){return+g}).reduce(function(g,d,A){return A%2?g+d*9:g+d*3},0);return h%10},i=(function(l){s(a,l);function a(h,g){return u(this,a),o(this,(a.__proto__||Object.getPrototypeOf(a)).call(this,h,g))}return e(a,[{key:"valid",value:function(){return this.data.search(/^[0-9]{5}$/)!==-1}},{key:"encode",value:function(){var g=t.EAN5_STRUCTURE[c(this.data)];return{data:"1011"+(0,r.default)(this.data,g,"01"),text:this.text}}}]),a})(p.default);return Po.default=i,Po}var Qo={},Qp;function AN(){if(Qp)return Qo;Qp=1,Object.defineProperty(Qo,"__esModule",{value:!0});var e=(function(){function i(l,a){for(var h=0;h<a.length;h++){var g=a[h];g.enumerable=g.enumerable||!1,g.configurable=!0,"value"in g&&(g.writable=!0),Object.defineProperty(l,g.key,g)}}return function(l,a,h){return a&&i(l.prototype,a),h&&i(l,h),l}})(),t=ao(),n=co(),r=v(n),f=Ue(),p=v(f);function v(i){return i&&i.__esModule?i:{default:i}}function u(i,l){if(!(i instanceof l))throw new TypeError("Cannot call a class as a function")}function o(i,l){if(!i)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return l&&(typeof l=="object"||typeof l=="function")?l:i}function s(i,l){if(typeof l!="function"&&l!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof l);i.prototype=Object.create(l&&l.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),l&&(Object.setPrototypeOf?Object.setPrototypeOf(i,l):i.__proto__=l)}var c=(function(i){s(l,i);function l(a,h){return u(this,l),o(this,(l.__proto__||Object.getPrototypeOf(l)).call(this,a,h))}return e(l,[{key:"valid",value:function(){return this.data.search(/^[0-9]{2}$/)!==-1}},{key:"encode",value:function(){var h=t.EAN2_STRUCTURE[parseInt(this.data)%4];return{data:"1011"+(0,r.default)(this.data,h,"01"),text:this.text}}}]),l})(p.default);return Qo.default=c,Qo}var di={},Fp;function Mm(){if(Fp)return di;Fp=1,Object.defineProperty(di,"__esModule",{value:!0});var e=(function(){function i(l,a){for(var h=0;h<a.length;h++){var g=a[h];g.enumerable=g.enumerable||!1,g.configurable=!0,"value"in g&&(g.writable=!0),Object.defineProperty(l,g.key,g)}}return function(l,a,h){return a&&i(l.prototype,a),h&&i(l,h),l}})();di.checksum=c;var t=co(),n=p(t),r=Ue(),f=p(r);function p(i){return i&&i.__esModule?i:{default:i}}function v(i,l){if(!(i instanceof l))throw new TypeError("Cannot call a class as a function")}function u(i,l){if(!i)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return l&&(typeof l=="object"||typeof l=="function")?l:i}function o(i,l){if(typeof l!="function"&&l!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof l);i.prototype=Object.create(l&&l.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),l&&(Object.setPrototypeOf?Object.setPrototypeOf(i,l):i.__proto__=l)}var s=(function(i){o(l,i);function l(a,h){v(this,l),a.search(/^[0-9]{11}$/)!==-1&&(a+=c(a));var g=u(this,(l.__proto__||Object.getPrototypeOf(l)).call(this,a,h));return g.displayValue=h.displayValue,h.fontSize>h.width*10?g.fontSize=h.width*10:g.fontSize=h.fontSize,g.guardHeight=h.height+g.fontSize/2+h.textMargin,g}return e(l,[{key:"valid",value:function(){return this.data.search(/^[0-9]{12}$/)!==-1&&this.data[11]==c(this.data)}},{key:"encode",value:function(){return this.options.flat?this.flatEncoding():this.guardedEncoding()}},{key:"flatEncoding",value:function(){var h="";return h+="101",h+=(0,n.default)(this.data.substr(0,6),"LLLLLL"),h+="01010",h+=(0,n.default)(this.data.substr(6,6),"RRRRRR"),h+="101",{data:h,text:this.text}}},{key:"guardedEncoding",value:function(){var h=[];return this.displayValue&&h.push({data:"00000000",text:this.text.substr(0,1),options:{textAlign:"left",fontSize:this.fontSize}}),h.push({data:"101"+(0,n.default)(this.data[0],"L"),options:{height:this.guardHeight}}),h.push({data:(0,n.default)(this.data.substr(1,5),"LLLLL"),text:this.text.substr(1,5),options:{fontSize:this.fontSize}}),h.push({data:"01010",options:{height:this.guardHeight}}),h.push({data:(0,n.default)(this.data.substr(6,5),"RRRRR"),text:this.text.substr(6,5),options:{fontSize:this.fontSize}}),h.push({data:(0,n.default)(this.data[11],"R")+"101",options:{height:this.guardHeight}}),this.displayValue&&h.push({data:"00000000",text:this.text.substr(11,1),options:{textAlign:"right",fontSize:this.fontSize}}),h}}]),l})(f.default);function c(i){var l=0,a;for(a=1;a<11;a+=2)l+=parseInt(i[a]);for(a=0;a<11;a+=2)l+=parseInt(i[a])*3;return(10-l%10)%10}return di.default=s,di}var Fo={},Lp;function vN(){if(Lp)return Fo;Lp=1,Object.defineProperty(Fo,"__esModule",{value:!0});var e=(function(){function h(g,d){for(var A=0;A<d.length;A++){var y=d[A];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(g,y.key,y)}}return function(g,d,A){return d&&h(g.prototype,d),A&&h(g,A),g}})(),t=co(),n=v(t),r=Ue(),f=v(r),p=Mm();function v(h){return h&&h.__esModule?h:{default:h}}function u(h,g){if(!(h instanceof g))throw new TypeError("Cannot call a class as a function")}function o(h,g){if(!h)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return g&&(typeof g=="object"||typeof g=="function")?g:h}function s(h,g){if(typeof g!="function"&&g!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof g);h.prototype=Object.create(g&&g.prototype,{constructor:{value:h,enumerable:!1,writable:!0,configurable:!0}}),g&&(Object.setPrototypeOf?Object.setPrototypeOf(h,g):h.__proto__=g)}var c=["XX00000XXX","XX10000XXX","XX20000XXX","XXX00000XX","XXXX00000X","XXXXX00005","XXXXX00006","XXXXX00007","XXXXX00008","XXXXX00009"],i=[["EEEOOO","OOOEEE"],["EEOEOO","OOEOEE"],["EEOOEO","OOEEOE"],["EEOOOE","OOEEEO"],["EOEEOO","OEOOEE"],["EOOEEO","OEEOOE"],["EOOOEE","OEEEOO"],["EOEOEO","OEOEOE"],["EOEOOE","OEOEEO"],["EOOEOE","OEEOEO"]],l=(function(h){s(g,h);function g(d,A){u(this,g);var y=o(this,(g.__proto__||Object.getPrototypeOf(g)).call(this,d,A));if(y.isValid=!1,d.search(/^[0-9]{6}$/)!==-1)y.middleDigits=d,y.upcA=a(d,"0"),y.text=A.text||""+y.upcA[0]+d+y.upcA[y.upcA.length-1],y.isValid=!0;else if(d.search(/^[01][0-9]{7}$/)!==-1)if(y.middleDigits=d.substring(1,d.length-1),y.upcA=a(y.middleDigits,d[0]),y.upcA[y.upcA.length-1]===d[d.length-1])y.isValid=!0;else return o(y);else return o(y);return y.displayValue=A.displayValue,A.fontSize>A.width*10?y.fontSize=A.width*10:y.fontSize=A.fontSize,y.guardHeight=A.height+y.fontSize/2+A.textMargin,y}return e(g,[{key:"valid",value:function(){return this.isValid}},{key:"encode",value:function(){return this.options.flat?this.flatEncoding():this.guardedEncoding()}},{key:"flatEncoding",value:function(){var A="";return A+="101",A+=this.encodeMiddleDigits(),A+="010101",{data:A,text:this.text}}},{key:"guardedEncoding",value:function(){var A=[];return this.displayValue&&A.push({data:"00000000",text:this.text[0],options:{textAlign:"left",fontSize:this.fontSize}}),A.push({data:"101",options:{height:this.guardHeight}}),A.push({data:this.encodeMiddleDigits(),text:this.text.substring(1,7),options:{fontSize:this.fontSize}}),A.push({data:"010101",options:{height:this.guardHeight}}),this.displayValue&&A.push({data:"00000000",text:this.text[7],options:{textAlign:"right",fontSize:this.fontSize}}),A}},{key:"encodeMiddleDigits",value:function(){var A=this.upcA[0],y=this.upcA[this.upcA.length-1],m=i[parseInt(y)][parseInt(A)];return(0,n.default)(this.middleDigits,m)}}]),g})(f.default);function a(h,g){for(var d=parseInt(h[h.length-1]),A=c[d],y="",m=0,_=0;_<A.length;_++){var w=A[_];w==="X"?y+=h[m++]:y+=w}return y=""+g+y,""+y+(0,p.checksum)(y)}return Fo.default=l,Fo}var jp;function yN(){if(jp)return pe;jp=1,Object.defineProperty(pe,"__esModule",{value:!0}),pe.UPCE=pe.UPC=pe.EAN2=pe.EAN5=pe.EAN8=pe.EAN13=void 0;var e=dN(),t=l(e),n=gN(),r=l(n),f=pN(),p=l(f),v=AN(),u=l(v),o=Mm(),s=l(o),c=vN(),i=l(c);function l(a){return a&&a.__esModule?a:{default:a}}return pe.EAN13=t.default,pe.EAN8=r.default,pe.EAN5=p.default,pe.EAN2=u.default,pe.UPC=s.default,pe.UPCE=i.default,pe}var ar={},Lo={},xr={},Np;function mN(){return Np||(Np=1,Object.defineProperty(xr,"__esModule",{value:!0}),xr.START_BIN="1010",xr.END_BIN="11101",xr.BINARIES=["00110","10001","01001","11000","00101","10100","01100","00011","10010","01010"]),xr}var Up;function Pm(){if(Up)return Lo;Up=1,Object.defineProperty(Lo,"__esModule",{value:!0});var e=(function(){function s(c,i){for(var l=0;l<i.length;l++){var a=i[l];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(c,a.key,a)}}return function(c,i,l){return i&&s(c.prototype,i),l&&s(c,l),c}})(),t=mN(),n=Ue(),r=f(n);function f(s){return s&&s.__esModule?s:{default:s}}function p(s,c){if(!(s instanceof c))throw new TypeError("Cannot call a class as a function")}function v(s,c){if(!s)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return c&&(typeof c=="object"||typeof c=="function")?c:s}function u(s,c){if(typeof c!="function"&&c!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof c);s.prototype=Object.create(c&&c.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}),c&&(Object.setPrototypeOf?Object.setPrototypeOf(s,c):s.__proto__=c)}var o=(function(s){u(c,s);function c(){return p(this,c),v(this,(c.__proto__||Object.getPrototypeOf(c)).apply(this,arguments))}return e(c,[{key:"valid",value:function(){return this.data.search(/^([0-9]{2})+$/)!==-1}},{key:"encode",value:function(){var l=this,a=this.data.match(/.{2}/g).map(function(h){return l.encodePair(h)}).join("");return{data:t.START_BIN+a+t.END_BIN,text:this.text}}},{key:"encodePair",value:function(l){var a=t.BINARIES[l[1]];return t.BINARIES[l[0]].split("").map(function(h,g){return(h==="1"?"111":"1")+(a[g]==="1"?"000":"0")}).join("")}}]),c})(r.default);return Lo.default=o,Lo}var jo={},Gp;function _N(){if(Gp)return jo;Gp=1,Object.defineProperty(jo,"__esModule",{value:!0});var e=(function(){function s(c,i){for(var l=0;l<i.length;l++){var a=i[l];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(c,a.key,a)}}return function(c,i,l){return i&&s(c.prototype,i),l&&s(c,l),c}})(),t=Pm(),n=r(t);function r(s){return s&&s.__esModule?s:{default:s}}function f(s,c){if(!(s instanceof c))throw new TypeError("Cannot call a class as a function")}function p(s,c){if(!s)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return c&&(typeof c=="object"||typeof c=="function")?c:s}function v(s,c){if(typeof c!="function"&&c!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof c);s.prototype=Object.create(c&&c.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}),c&&(Object.setPrototypeOf?Object.setPrototypeOf(s,c):s.__proto__=c)}var u=function(c){var i=c.substr(0,13).split("").map(function(l){return parseInt(l,10)}).reduce(function(l,a,h){return l+a*(3-h%2*2)},0);return Math.ceil(i/10)*10-i},o=(function(s){v(c,s);function c(i,l){return f(this,c),i.search(/^[0-9]{13}$/)!==-1&&(i+=u(i)),p(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,i,l))}return e(c,[{key:"valid",value:function(){return this.data.search(/^[0-9]{14}$/)!==-1&&+this.data[13]===u(this.data)}}]),c})(n.default);return jo.default=o,jo}var $p;function bN(){if($p)return ar;$p=1,Object.defineProperty(ar,"__esModule",{value:!0}),ar.ITF14=ar.ITF=void 0;var e=Pm(),t=f(e),n=_N(),r=f(n);function f(p){return p&&p.__esModule?p:{default:p}}return ar.ITF=t.default,ar.ITF14=r.default,ar}var Me={},No={},Hp;function lo(){if(Hp)return No;Hp=1,Object.defineProperty(No,"__esModule",{value:!0});var e=(function(){function s(c,i){for(var l=0;l<i.length;l++){var a=i[l];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(c,a.key,a)}}return function(c,i,l){return i&&s(c.prototype,i),l&&s(c,l),c}})(),t=Ue(),n=r(t);function r(s){return s&&s.__esModule?s:{default:s}}function f(s,c){if(!(s instanceof c))throw new TypeError("Cannot call a class as a function")}function p(s,c){if(!s)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return c&&(typeof c=="object"||typeof c=="function")?c:s}function v(s,c){if(typeof c!="function"&&c!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof c);s.prototype=Object.create(c&&c.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}),c&&(Object.setPrototypeOf?Object.setPrototypeOf(s,c):s.__proto__=c)}var u=(function(s){v(c,s);function c(i,l){return f(this,c),p(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,i,l))}return e(c,[{key:"encode",value:function(){for(var l="110",a=0;a<this.data.length;a++){var h=parseInt(this.data[a]),g=h.toString(2);g=o(g,4-g.length);for(var d=0;d<g.length;d++)l+=g[d]=="0"?"100":"110"}return l+="1001",{data:l,text:this.text}}},{key:"valid",value:function(){return this.data.search(/^[0-9]+$/)!==-1}}]),c})(n.default);function o(s,c){for(var i=0;i<c;i++)s="0"+s;return s}return No.default=u,No}var Uo={},gi={},zp;function Sc(){if(zp)return gi;zp=1,Object.defineProperty(gi,"__esModule",{value:!0}),gi.mod10=e,gi.mod11=t;function e(n){for(var r=0,f=0;f<n.length;f++){var p=parseInt(n[f]);(f+n.length)%2===0?r+=p:r+=p*2%10+Math.floor(p*2/10)}return(10-r%10)%10}function t(n){for(var r=0,f=[2,3,4,5,6,7],p=0;p<n.length;p++){var v=parseInt(n[n.length-1-p]);r+=f[p%f.length]*v}return(11-r%11)%11}return gi}var Yp;function wN(){if(Yp)return Uo;Yp=1,Object.defineProperty(Uo,"__esModule",{value:!0});var e=lo(),t=r(e),n=Sc();function r(o){return o&&o.__esModule?o:{default:o}}function f(o,s){if(!(o instanceof s))throw new TypeError("Cannot call a class as a function")}function p(o,s){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return s&&(typeof s=="object"||typeof s=="function")?s:o}function v(o,s){if(typeof s!="function"&&s!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof s);o.prototype=Object.create(s&&s.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),s&&(Object.setPrototypeOf?Object.setPrototypeOf(o,s):o.__proto__=s)}var u=(function(o){v(s,o);function s(c,i){return f(this,s),p(this,(s.__proto__||Object.getPrototypeOf(s)).call(this,c+(0,n.mod10)(c),i))}return s})(t.default);return Uo.default=u,Uo}var Go={},Wp;function CN(){if(Wp)return Go;Wp=1,Object.defineProperty(Go,"__esModule",{value:!0});var e=lo(),t=r(e),n=Sc();function r(o){return o&&o.__esModule?o:{default:o}}function f(o,s){if(!(o instanceof s))throw new TypeError("Cannot call a class as a function")}function p(o,s){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return s&&(typeof s=="object"||typeof s=="function")?s:o}function v(o,s){if(typeof s!="function"&&s!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof s);o.prototype=Object.create(s&&s.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),s&&(Object.setPrototypeOf?Object.setPrototypeOf(o,s):o.__proto__=s)}var u=(function(o){v(s,o);function s(c,i){return f(this,s),p(this,(s.__proto__||Object.getPrototypeOf(s)).call(this,c+(0,n.mod11)(c),i))}return s})(t.default);return Go.default=u,Go}var $o={},qp;function EN(){if(qp)return $o;qp=1,Object.defineProperty($o,"__esModule",{value:!0});var e=lo(),t=r(e),n=Sc();function r(o){return o&&o.__esModule?o:{default:o}}function f(o,s){if(!(o instanceof s))throw new TypeError("Cannot call a class as a function")}function p(o,s){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return s&&(typeof s=="object"||typeof s=="function")?s:o}function v(o,s){if(typeof s!="function"&&s!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof s);o.prototype=Object.create(s&&s.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),s&&(Object.setPrototypeOf?Object.setPrototypeOf(o,s):o.__proto__=s)}var u=(function(o){v(s,o);function s(c,i){return f(this,s),c+=(0,n.mod10)(c),c+=(0,n.mod10)(c),p(this,(s.__proto__||Object.getPrototypeOf(s)).call(this,c,i))}return s})(t.default);return $o.default=u,$o}var Ho={},Xp;function SN(){if(Xp)return Ho;Xp=1,Object.defineProperty(Ho,"__esModule",{value:!0});var e=lo(),t=r(e),n=Sc();function r(o){return o&&o.__esModule?o:{default:o}}function f(o,s){if(!(o instanceof s))throw new TypeError("Cannot call a class as a function")}function p(o,s){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return s&&(typeof s=="object"||typeof s=="function")?s:o}function v(o,s){if(typeof s!="function"&&s!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof s);o.prototype=Object.create(s&&s.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),s&&(Object.setPrototypeOf?Object.setPrototypeOf(o,s):o.__proto__=s)}var u=(function(o){v(s,o);function s(c,i){return f(this,s),c+=(0,n.mod11)(c),c+=(0,n.mod10)(c),p(this,(s.__proto__||Object.getPrototypeOf(s)).call(this,c,i))}return s})(t.default);return Ho.default=u,Ho}var Vp;function xN(){if(Vp)return Me;Vp=1,Object.defineProperty(Me,"__esModule",{value:!0}),Me.MSI1110=Me.MSI1010=Me.MSI11=Me.MSI10=Me.MSI=void 0;var e=lo(),t=c(e),n=wN(),r=c(n),f=CN(),p=c(f),v=EN(),u=c(v),o=SN(),s=c(o);function c(i){return i&&i.__esModule?i:{default:i}}return Me.MSI=t.default,Me.MSI10=r.default,Me.MSI11=p.default,Me.MSI1010=u.default,Me.MSI1110=s.default,Me}var pi={},Jp;function IN(){if(Jp)return pi;Jp=1,Object.defineProperty(pi,"__esModule",{value:!0}),pi.pharmacode=void 0;var e=(function(){function o(s,c){for(var i=0;i<c.length;i++){var l=c[i];l.enumerable=l.enumerable||!1,l.configurable=!0,"value"in l&&(l.writable=!0),Object.defineProperty(s,l.key,l)}}return function(s,c,i){return c&&o(s.prototype,c),i&&o(s,i),s}})(),t=Ue(),n=r(t);function r(o){return o&&o.__esModule?o:{default:o}}function f(o,s){if(!(o instanceof s))throw new TypeError("Cannot call a class as a function")}function p(o,s){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return s&&(typeof s=="object"||typeof s=="function")?s:o}function v(o,s){if(typeof s!="function"&&s!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof s);o.prototype=Object.create(s&&s.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),s&&(Object.setPrototypeOf?Object.setPrototypeOf(o,s):o.__proto__=s)}var u=(function(o){v(s,o);function s(c,i){f(this,s);var l=p(this,(s.__proto__||Object.getPrototypeOf(s)).call(this,c,i));return l.number=parseInt(c,10),l}return e(s,[{key:"encode",value:function(){for(var i=this.number,l="";!isNaN(i)&&i!=0;)i%2===0?(l="11100"+l,i=(i-2)/2):(l="100"+l,i=(i-1)/2);return l=l.slice(0,-2),{data:l,text:this.text}}},{key:"valid",value:function(){return this.number>=3&&this.number<=131070}}]),s})(n.default);return pi.pharmacode=u,pi}var Ai={},Kp;function ON(){if(Kp)return Ai;Kp=1,Object.defineProperty(Ai,"__esModule",{value:!0}),Ai.codabar=void 0;var e=(function(){function o(s,c){for(var i=0;i<c.length;i++){var l=c[i];l.enumerable=l.enumerable||!1,l.configurable=!0,"value"in l&&(l.writable=!0),Object.defineProperty(s,l.key,l)}}return function(s,c,i){return c&&o(s.prototype,c),i&&o(s,i),s}})(),t=Ue(),n=r(t);function r(o){return o&&o.__esModule?o:{default:o}}function f(o,s){if(!(o instanceof s))throw new TypeError("Cannot call a class as a function")}function p(o,s){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return s&&(typeof s=="object"||typeof s=="function")?s:o}function v(o,s){if(typeof s!="function"&&s!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof s);o.prototype=Object.create(s&&s.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),s&&(Object.setPrototypeOf?Object.setPrototypeOf(o,s):o.__proto__=s)}var u=(function(o){v(s,o);function s(c,i){f(this,s),c.search(/^[0-9\-\$\:\.\+\/]+$/)===0&&(c="A"+c+"A");var l=p(this,(s.__proto__||Object.getPrototypeOf(s)).call(this,c.toUpperCase(),i));return l.text=l.options.text||l.text.replace(/[A-D]/g,""),l}return e(s,[{key:"valid",value:function(){return this.data.search(/^[A-D][0-9\-\$\:\.\+\/]+[A-D]$/)!==-1}},{key:"encode",value:function(){for(var i=[],l=this.getEncodings(),a=0;a<this.data.length;a++)i.push(l[this.data.charAt(a)]),a!==this.data.length-1&&i.push("0");return{text:this.text,data:i.join("")}}},{key:"getEncodings",value:function(){return{0:"101010011",1:"101011001",2:"101001011",3:"110010101",4:"101101001",5:"110101001",6:"100101011",7:"100101101",8:"100110101",9:"110100101","-":"101001101",$:"101100101",":":"1101011011","/":"1101101011",".":"1101101101","+":"1011011011",A:"1011001001",B:"1001001011",C:"1010010011",D:"1010011001"}}}]),s})(n.default);return Ai.codabar=u,Ai}var cr={},zo={},Ir={},Zp;function BN(){return Zp||(Zp=1,Object.defineProperty(Ir,"__esModule",{value:!0}),Ir.SYMBOLS=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","-","."," ","$","/","+","%","($)","(%)","(/)","(+)","ÿ"],Ir.BINARIES=["100010100","101001000","101000100","101000010","100101000","100100100","100100010","101010000","100010010","100001010","110101000","110100100","110100010","110010100","110010010","110001010","101101000","101100100","101100010","100110100","100011010","101011000","101001100","101000110","100101100","100010110","110110100","110110010","110101100","110100110","110010110","110011010","101101100","101100110","100110110","100111010","100101110","111010100","111010010","111001010","101101110","101110110","110101110","100100110","111011010","111010110","100110010","101011110"],Ir.MULTI_SYMBOLS={"\0":["(%)","U"],"":["($)","A"],"":["($)","B"],"":["($)","C"],"":["($)","D"],"":["($)","E"],"":["($)","F"],"\x07":["($)","G"],"\b":["($)","H"]," ":["($)","I"],"\n":["($)","J"],"\v":["($)","K"],"\f":["($)","L"],"\r":["($)","M"],"":["($)","N"],"":["($)","O"],"":["($)","P"],"":["($)","Q"],"":["($)","R"],"":["($)","S"],"":["($)","T"],"":["($)","U"],"":["($)","V"],"":["($)","W"],"":["($)","X"],"":["($)","Y"],"":["($)","Z"],"\x1B":["(%)","A"],"":["(%)","B"],"":["(%)","C"],"":["(%)","D"],"":["(%)","E"],"!":["(/)","A"],'"':["(/)","B"],"#":["(/)","C"],"&":["(/)","F"],"'":["(/)","G"],"(":["(/)","H"],")":["(/)","I"],"*":["(/)","J"],",":["(/)","L"],":":["(/)","Z"],";":["(%)","F"],"<":["(%)","G"],"=":["(%)","H"],">":["(%)","I"],"?":["(%)","J"],"@":["(%)","V"],"[":["(%)","K"],"\\":["(%)","L"],"]":["(%)","M"],"^":["(%)","N"],_:["(%)","O"],"`":["(%)","W"],a:["(+)","A"],b:["(+)","B"],c:["(+)","C"],d:["(+)","D"],e:["(+)","E"],f:["(+)","F"],g:["(+)","G"],h:["(+)","H"],i:["(+)","I"],j:["(+)","J"],k:["(+)","K"],l:["(+)","L"],m:["(+)","M"],n:["(+)","N"],o:["(+)","O"],p:["(+)","P"],q:["(+)","Q"],r:["(+)","R"],s:["(+)","S"],t:["(+)","T"],u:["(+)","U"],v:["(+)","V"],w:["(+)","W"],x:["(+)","X"],y:["(+)","Y"],z:["(+)","Z"],"{":["(%)","P"],"|":["(%)","Q"],"}":["(%)","R"],"~":["(%)","S"],"":["(%)","T"]}),Ir}var tA;function Qm(){if(tA)return zo;tA=1,Object.defineProperty(zo,"__esModule",{value:!0});var e=(function(){function s(c,i){for(var l=0;l<i.length;l++){var a=i[l];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(c,a.key,a)}}return function(c,i,l){return i&&s(c.prototype,i),l&&s(c,l),c}})(),t=BN(),n=Ue(),r=f(n);function f(s){return s&&s.__esModule?s:{default:s}}function p(s,c){if(!(s instanceof c))throw new TypeError("Cannot call a class as a function")}function v(s,c){if(!s)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return c&&(typeof c=="object"||typeof c=="function")?c:s}function u(s,c){if(typeof c!="function"&&c!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof c);s.prototype=Object.create(c&&c.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}),c&&(Object.setPrototypeOf?Object.setPrototypeOf(s,c):s.__proto__=c)}var o=(function(s){u(c,s);function c(i,l){return p(this,c),v(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,i,l))}return e(c,[{key:"valid",value:function(){return/^[0-9A-Z\-. $/+%]+$/.test(this.data)}},{key:"encode",value:function(){var l=this.data.split("").flatMap(function(d){return t.MULTI_SYMBOLS[d]||d}),a=l.map(function(d){return c.getEncoding(d)}).join(""),h=c.checksum(l,20),g=c.checksum(l.concat(h),15);return{text:this.text,data:c.getEncoding("ÿ")+a+c.getEncoding(h)+c.getEncoding(g)+c.getEncoding("ÿ")+"1"}}}],[{key:"getEncoding",value:function(l){return t.BINARIES[c.symbolValue(l)]}},{key:"getSymbol",value:function(l){return t.SYMBOLS[l]}},{key:"symbolValue",value:function(l){return t.SYMBOLS.indexOf(l)}},{key:"checksum",value:function(l,a){var h=l.slice().reverse().reduce(function(g,d,A){var y=A%a+1;return g+c.symbolValue(d)*y},0);return c.getSymbol(h%47)}}]),c})(r.default);return zo.default=o,zo}var Yo={},eA;function TN(){if(eA)return Yo;eA=1,Object.defineProperty(Yo,"__esModule",{value:!0});var e=(function(){function o(s,c){for(var i=0;i<c.length;i++){var l=c[i];l.enumerable=l.enumerable||!1,l.configurable=!0,"value"in l&&(l.writable=!0),Object.defineProperty(s,l.key,l)}}return function(s,c,i){return c&&o(s.prototype,c),i&&o(s,i),s}})(),t=Qm(),n=r(t);function r(o){return o&&o.__esModule?o:{default:o}}function f(o,s){if(!(o instanceof s))throw new TypeError("Cannot call a class as a function")}function p(o,s){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return s&&(typeof s=="object"||typeof s=="function")?s:o}function v(o,s){if(typeof s!="function"&&s!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof s);o.prototype=Object.create(s&&s.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),s&&(Object.setPrototypeOf?Object.setPrototypeOf(o,s):o.__proto__=s)}var u=(function(o){v(s,o);function s(c,i){return f(this,s),p(this,(s.__proto__||Object.getPrototypeOf(s)).call(this,c,i))}return e(s,[{key:"valid",value:function(){return/^[\x00-\x7f]+$/.test(this.data)}}]),s})(n.default);return Yo.default=u,Yo}var nA;function kN(){if(nA)return cr;nA=1,Object.defineProperty(cr,"__esModule",{value:!0}),cr.CODE93FullASCII=cr.CODE93=void 0;var e=Qm(),t=f(e),n=TN(),r=f(n);function f(p){return p&&p.__esModule?p:{default:p}}return cr.CODE93=t.default,cr.CODE93FullASCII=r.default,cr}var vi={},rA;function DN(){if(rA)return vi;rA=1,Object.defineProperty(vi,"__esModule",{value:!0}),vi.GenericBarcode=void 0;var e=(function(){function o(s,c){for(var i=0;i<c.length;i++){var l=c[i];l.enumerable=l.enumerable||!1,l.configurable=!0,"value"in l&&(l.writable=!0),Object.defineProperty(s,l.key,l)}}return function(s,c,i){return c&&o(s.prototype,c),i&&o(s,i),s}})(),t=Ue(),n=r(t);function r(o){return o&&o.__esModule?o:{default:o}}function f(o,s){if(!(o instanceof s))throw new TypeError("Cannot call a class as a function")}function p(o,s){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return s&&(typeof s=="object"||typeof s=="function")?s:o}function v(o,s){if(typeof s!="function"&&s!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof s);o.prototype=Object.create(s&&s.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),s&&(Object.setPrototypeOf?Object.setPrototypeOf(o,s):o.__proto__=s)}var u=(function(o){v(s,o);function s(c,i){return f(this,s),p(this,(s.__proto__||Object.getPrototypeOf(s)).call(this,c,i))}return e(s,[{key:"encode",value:function(){return{data:"10101010101010101010101010101010101010101",text:this.text}}},{key:"valid",value:function(){return!0}}]),s})(n.default);return vi.GenericBarcode=u,vi}var iA;function RN(){if(iA)return Co;iA=1,Object.defineProperty(Co,"__esModule",{value:!0});var e=sN(),t=fN(),n=yN(),r=bN(),f=xN(),p=IN(),v=ON(),u=kN(),o=DN();return Co.default={CODE39:e.CODE39,CODE128:t.CODE128,CODE128A:t.CODE128A,CODE128B:t.CODE128B,CODE128C:t.CODE128C,EAN13:n.EAN13,EAN8:n.EAN8,EAN5:n.EAN5,EAN2:n.EAN2,UPC:n.UPC,UPCE:n.UPCE,ITF14:r.ITF14,ITF:r.ITF,MSI:f.MSI,MSI10:f.MSI10,MSI11:f.MSI11,MSI1010:f.MSI1010,MSI1110:f.MSI1110,pharmacode:p.pharmacode,codabar:v.codabar,CODE93:u.CODE93,CODE93FullASCII:u.CODE93FullASCII,GenericBarcode:o.GenericBarcode},Co}var Wo={},oA;function xc(){if(oA)return Wo;oA=1,Object.defineProperty(Wo,"__esModule",{value:!0});var e=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var f in r)Object.prototype.hasOwnProperty.call(r,f)&&(t[f]=r[f])}return t};return Wo.default=function(t,n){return e({},t,n)},Wo}var qo={},sA;function MN(){if(sA)return qo;sA=1,Object.defineProperty(qo,"__esModule",{value:!0}),qo.default=e;function e(t){var n=[];function r(f){if(Array.isArray(f))for(var p=0;p<f.length;p++)r(f[p]);else f.text=f.text||"",f.data=f.data||"",n.push(f)}return r(t),n}return qo}var Xo={},aA;function PN(){if(aA)return Xo;aA=1,Object.defineProperty(Xo,"__esModule",{value:!0}),Xo.default=e;function e(t){return t.marginTop=t.marginTop||t.margin,t.marginBottom=t.marginBottom||t.margin,t.marginRight=t.marginRight||t.margin,t.marginLeft=t.marginLeft||t.margin,t}return Xo}var Vo={},Jo={},Ko={},cA;function Fm(){if(cA)return Ko;cA=1,Object.defineProperty(Ko,"__esModule",{value:!0}),Ko.default=e;function e(t){var n=["width","height","textMargin","fontSize","margin","marginTop","marginBottom","marginLeft","marginRight"];for(var r in n)n.hasOwnProperty(r)&&(r=n[r],typeof t[r]=="string"&&(t[r]=parseInt(t[r],10)));return typeof t.displayValue=="string"&&(t.displayValue=t.displayValue!="false"),t}return Ko}var Zo={},lA;function Lm(){if(lA)return Zo;lA=1,Object.defineProperty(Zo,"__esModule",{value:!0});var e={width:2,height:100,format:"auto",displayValue:!0,fontOptions:"",font:"monospace",text:void 0,textAlign:"center",textPosition:"bottom",textMargin:2,fontSize:20,background:"#ffffff",lineColor:"#000000",margin:10,marginTop:void 0,marginBottom:void 0,marginLeft:void 0,marginRight:void 0,valid:function(){}};return Zo.default=e,Zo}var uA;function QN(){if(uA)return Jo;uA=1,Object.defineProperty(Jo,"__esModule",{value:!0});var e=Fm(),t=f(e),n=Lm(),r=f(n);function f(v){return v&&v.__esModule?v:{default:v}}function p(v){var u={};for(var o in r.default)r.default.hasOwnProperty(o)&&(v.hasAttribute("jsbarcode-"+o.toLowerCase())&&(u[o]=v.getAttribute("jsbarcode-"+o.toLowerCase())),v.hasAttribute("data-"+o.toLowerCase())&&(u[o]=v.getAttribute("data-"+o.toLowerCase())));return u.value=v.getAttribute("jsbarcode-value")||v.getAttribute("data-value"),u=(0,t.default)(u),u}return Jo.default=p,Jo}var ts={},es={},Pe={},hA;function jm(){if(hA)return Pe;hA=1,Object.defineProperty(Pe,"__esModule",{value:!0}),Pe.getTotalWidthOfEncodings=Pe.calculateEncodingAttributes=Pe.getBarcodePadding=Pe.getEncodingHeight=Pe.getMaximumHeightOfEncodings=void 0;var e=xc(),t=n(e);function n(s){return s&&s.__esModule?s:{default:s}}function r(s,c){return c.height+(c.displayValue&&s.text.length>0?c.fontSize+c.textMargin:0)+c.marginTop+c.marginBottom}function f(s,c,i){if(i.displayValue&&c<s){if(i.textAlign=="center")return Math.floor((s-c)/2);if(i.textAlign=="left")return 0;if(i.textAlign=="right")return Math.floor(s-c)}return 0}function p(s,c,i){for(var l=0;l<s.length;l++){var a=s[l],h=(0,t.default)(c,a.options),g;h.displayValue?g=o(a.text,h,i):g=0;var d=a.data.length*h.width;a.width=Math.ceil(Math.max(g,d)),a.height=r(a,h),a.barcodePadding=f(g,d,h)}}function v(s){for(var c=0,i=0;i<s.length;i++)c+=s[i].width;return c}function u(s){for(var c=0,i=0;i<s.length;i++)s[i].height>c&&(c=s[i].height);return c}function o(s,c,i){var l;if(i)l=i;else if(typeof document<"u")l=document.createElement("canvas").getContext("2d");else return 0;l.font=c.fontOptions+" "+c.fontSize+"px "+c.font;var a=l.measureText(s);if(!a)return 0;var h=a.width;return h}return Pe.getMaximumHeightOfEncodings=u,Pe.getEncodingHeight=r,Pe.getBarcodePadding=f,Pe.calculateEncodingAttributes=p,Pe.getTotalWidthOfEncodings=v,Pe}var fA;function FN(){if(fA)return es;fA=1,Object.defineProperty(es,"__esModule",{value:!0});var e=(function(){function u(o,s){for(var c=0;c<s.length;c++){var i=s[c];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(o,i.key,i)}}return function(o,s,c){return s&&u(o.prototype,s),c&&u(o,c),o}})(),t=xc(),n=f(t),r=jm();function f(u){return u&&u.__esModule?u:{default:u}}function p(u,o){if(!(u instanceof o))throw new TypeError("Cannot call a class as a function")}var v=(function(){function u(o,s,c){p(this,u),this.canvas=o,this.encodings=s,this.options=c}return e(u,[{key:"render",value:function(){if(!this.canvas.getContext)throw new Error("The browser does not support canvas.");this.prepareCanvas();for(var s=0;s<this.encodings.length;s++){var c=(0,n.default)(this.options,this.encodings[s].options);this.drawCanvasBarcode(c,this.encodings[s]),this.drawCanvasText(c,this.encodings[s]),this.moveCanvasDrawing(this.encodings[s])}this.restoreCanvas()}},{key:"prepareCanvas",value:function(){var s=this.canvas.getContext("2d");s.save(),(0,r.calculateEncodingAttributes)(this.encodings,this.options,s);var c=(0,r.getTotalWidthOfEncodings)(this.encodings),i=(0,r.getMaximumHeightOfEncodings)(this.encodings);this.canvas.width=c+this.options.marginLeft+this.options.marginRight,this.canvas.height=i,s.clearRect(0,0,this.canvas.width,this.canvas.height),this.options.background&&(s.fillStyle=this.options.background,s.fillRect(0,0,this.canvas.width,this.canvas.height)),s.translate(this.options.marginLeft,0)}},{key:"drawCanvasBarcode",value:function(s,c){var i=this.canvas.getContext("2d"),l=c.data,a;s.textPosition=="top"?a=s.marginTop+s.fontSize+s.textMargin:a=s.marginTop,i.fillStyle=s.lineColor;for(var h=0;h<l.length;h++){var g=h*s.width+c.barcodePadding;l[h]==="1"?i.fillRect(g,a,s.width,s.height):l[h]&&i.fillRect(g,a,s.width,s.height*l[h])}}},{key:"drawCanvasText",value:function(s,c){var i=this.canvas.getContext("2d"),l=s.fontOptions+" "+s.fontSize+"px "+s.font;if(s.displayValue){var a,h;s.textPosition=="top"?h=s.marginTop+s.fontSize-s.textMargin:h=s.height+s.textMargin+s.marginTop+s.fontSize,i.font=l,s.textAlign=="left"||c.barcodePadding>0?(a=0,i.textAlign="left"):s.textAlign=="right"?(a=c.width-1,i.textAlign="right"):(a=c.width/2,i.textAlign="center"),i.fillText(c.text,a,h)}}},{key:"moveCanvasDrawing",value:function(s){var c=this.canvas.getContext("2d");c.translate(s.width,0)}},{key:"restoreCanvas",value:function(){var s=this.canvas.getContext("2d");s.restore()}}]),u})();return es.default=v,es}var ns={},dA;function LN(){if(dA)return ns;dA=1,Object.defineProperty(ns,"__esModule",{value:!0});var e=(function(){function o(s,c){for(var i=0;i<c.length;i++){var l=c[i];l.enumerable=l.enumerable||!1,l.configurable=!0,"value"in l&&(l.writable=!0),Object.defineProperty(s,l.key,l)}}return function(s,c,i){return c&&o(s.prototype,c),i&&o(s,i),s}})(),t=xc(),n=f(t),r=jm();function f(o){return o&&o.__esModule?o:{default:o}}function p(o,s){if(!(o instanceof s))throw new TypeError("Cannot call a class as a function")}var v="http://www.w3.org/2000/svg",u=(function(){function o(s,c,i){p(this,o),this.svg=s,this.encodings=c,this.options=i,this.document=i.xmlDocument||document}return e(o,[{key:"render",value:function(){var c=this.options.marginLeft;this.prepareSVG();for(var i=0;i<this.encodings.length;i++){var l=this.encodings[i],a=(0,n.default)(this.options,l.options),h=this.createGroup(c,a.marginTop,this.svg);this.setGroupOptions(h,a),this.drawSvgBarcode(h,a,l),this.drawSVGText(h,a,l),c+=l.width}}},{key:"prepareSVG",value:function(){for(;this.svg.firstChild;)this.svg.removeChild(this.svg.firstChild);(0,r.calculateEncodingAttributes)(this.encodings,this.options);var c=(0,r.getTotalWidthOfEncodings)(this.encodings),i=(0,r.getMaximumHeightOfEncodings)(this.encodings),l=c+this.options.marginLeft+this.options.marginRight;this.setSvgAttributes(l,i),this.options.background&&this.drawRect(0,0,l,i,this.svg).setAttribute("style","fill:"+this.options.background+";")}},{key:"drawSvgBarcode",value:function(c,i,l){var a=l.data,h;i.textPosition=="top"?h=i.fontSize+i.textMargin:h=0;for(var g=0,d=0,A=0;A<a.length;A++)d=A*i.width+l.barcodePadding,a[A]==="1"?g++:g>0&&(this.drawRect(d-i.width*g,h,i.width*g,i.height,c),g=0);g>0&&this.drawRect(d-i.width*(g-1),h,i.width*g,i.height,c)}},{key:"drawSVGText",value:function(c,i,l){var a=this.document.createElementNS(v,"text");if(i.displayValue){var h,g;a.setAttribute("style","font:"+i.fontOptions+" "+i.fontSize+"px "+i.font),i.textPosition=="top"?g=i.fontSize-i.textMargin:g=i.height+i.textMargin+i.fontSize,i.textAlign=="left"||l.barcodePadding>0?(h=0,a.setAttribute("text-anchor","start")):i.textAlign=="right"?(h=l.width-1,a.setAttribute("text-anchor","end")):(h=l.width/2,a.setAttribute("text-anchor","middle")),a.setAttribute("x",h),a.setAttribute("y",g),a.appendChild(this.document.createTextNode(l.text)),c.appendChild(a)}}},{key:"setSvgAttributes",value:function(c,i){var l=this.svg;l.setAttribute("width",c+"px"),l.setAttribute("height",i+"px"),l.setAttribute("x","0px"),l.setAttribute("y","0px"),l.setAttribute("viewBox","0 0 "+c+" "+i),l.setAttribute("xmlns",v),l.setAttribute("version","1.1"),l.setAttribute("style","transform: translate(0,0)")}},{key:"createGroup",value:function(c,i,l){var a=this.document.createElementNS(v,"g");return a.setAttribute("transform","translate("+c+", "+i+")"),l.appendChild(a),a}},{key:"setGroupOptions",value:function(c,i){c.setAttribute("style","fill:"+i.lineColor+";")}},{key:"drawRect",value:function(c,i,l,a,h){var g=this.document.createElementNS(v,"rect");return g.setAttribute("x",c),g.setAttribute("y",i),g.setAttribute("width",l),g.setAttribute("height",a),h.appendChild(g),g}}]),o})();return ns.default=u,ns}var rs={},gA;function jN(){if(gA)return rs;gA=1,Object.defineProperty(rs,"__esModule",{value:!0});var e=(function(){function r(f,p){for(var v=0;v<p.length;v++){var u=p[v];u.enumerable=u.enumerable||!1,u.configurable=!0,"value"in u&&(u.writable=!0),Object.defineProperty(f,u.key,u)}}return function(f,p,v){return p&&r(f.prototype,p),v&&r(f,v),f}})();function t(r,f){if(!(r instanceof f))throw new TypeError("Cannot call a class as a function")}var n=(function(){function r(f,p,v){t(this,r),this.object=f,this.encodings=p,this.options=v}return e(r,[{key:"render",value:function(){this.object.encodings=this.encodings}}]),r})();return rs.default=n,rs}var pA;function NN(){if(pA)return ts;pA=1,Object.defineProperty(ts,"__esModule",{value:!0});var e=FN(),t=v(e),n=LN(),r=v(n),f=jN(),p=v(f);function v(u){return u&&u.__esModule?u:{default:u}}return ts.default={CanvasRenderer:t.default,SVGRenderer:r.default,ObjectRenderer:p.default},ts}var Or={},AA;function Nm(){if(AA)return Or;AA=1,Object.defineProperty(Or,"__esModule",{value:!0});function e(v,u){if(!(v instanceof u))throw new TypeError("Cannot call a class as a function")}function t(v,u){if(!v)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return u&&(typeof u=="object"||typeof u=="function")?u:v}function n(v,u){if(typeof u!="function"&&u!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof u);v.prototype=Object.create(u&&u.prototype,{constructor:{value:v,enumerable:!1,writable:!0,configurable:!0}}),u&&(Object.setPrototypeOf?Object.setPrototypeOf(v,u):v.__proto__=u)}var r=(function(v){n(u,v);function u(o,s){e(this,u);var c=t(this,(u.__proto__||Object.getPrototypeOf(u)).call(this));return c.name="InvalidInputException",c.symbology=o,c.input=s,c.message='"'+c.input+'" is not a valid input for '+c.symbology,c}return u})(Error),f=(function(v){n(u,v);function u(){e(this,u);var o=t(this,(u.__proto__||Object.getPrototypeOf(u)).call(this));return o.name="InvalidElementException",o.message="Not supported type to render on",o}return u})(Error),p=(function(v){n(u,v);function u(){e(this,u);var o=t(this,(u.__proto__||Object.getPrototypeOf(u)).call(this));return o.name="NoElementException",o.message="No element to render on.",o}return u})(Error);return Or.InvalidInputException=r,Or.InvalidElementException=f,Or.NoElementException=p,Or}var vA;function UN(){if(vA)return Vo;vA=1,Object.defineProperty(Vo,"__esModule",{value:!0});var e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(c){return typeof c}:function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},t=QN(),n=v(t),r=NN(),f=v(r),p=Nm();function v(c){return c&&c.__esModule?c:{default:c}}function u(c){if(typeof c=="string")return o(c);if(Array.isArray(c)){for(var i=[],l=0;l<c.length;l++)i.push(u(c[l]));return i}else{if(typeof HTMLCanvasElement<"u"&&c instanceof HTMLImageElement)return s(c);if(c&&c.nodeName&&c.nodeName.toLowerCase()==="svg"||typeof SVGElement<"u"&&c instanceof SVGElement)return{element:c,options:(0,n.default)(c),renderer:f.default.SVGRenderer};if(typeof HTMLCanvasElement<"u"&&c instanceof HTMLCanvasElement)return{element:c,options:(0,n.default)(c),renderer:f.default.CanvasRenderer};if(c&&c.getContext)return{element:c,renderer:f.default.CanvasRenderer};if(c&&(typeof c>"u"?"undefined":e(c))==="object"&&!c.nodeName)return{element:c,renderer:f.default.ObjectRenderer};throw new p.InvalidElementException}}function o(c){var i=document.querySelectorAll(c);if(i.length!==0){for(var l=[],a=0;a<i.length;a++)l.push(u(i[a]));return l}}function s(c){var i=document.createElement("canvas");return{element:i,options:(0,n.default)(c),renderer:f.default.CanvasRenderer,afterRender:function(){c.setAttribute("src",i.toDataURL())}}}return Vo.default=u,Vo}var is={},yA;function GN(){if(yA)return is;yA=1,Object.defineProperty(is,"__esModule",{value:!0});var e=(function(){function r(f,p){for(var v=0;v<p.length;v++){var u=p[v];u.enumerable=u.enumerable||!1,u.configurable=!0,"value"in u&&(u.writable=!0),Object.defineProperty(f,u.key,u)}}return function(f,p,v){return p&&r(f.prototype,p),v&&r(f,v),f}})();function t(r,f){if(!(r instanceof f))throw new TypeError("Cannot call a class as a function")}var n=(function(){function r(f){t(this,r),this.api=f}return e(r,[{key:"handleCatch",value:function(p){if(p.name==="InvalidInputException")if(this.api._options.valid!==this.api._defaults.valid)this.api._options.valid(!1);else throw p.message;else throw p;this.api.render=function(){}}},{key:"wrapBarcodeCall",value:function(p){try{var v=p.apply(void 0,arguments);return this.api._options.valid(!0),v}catch(u){return this.handleCatch(u),this.api}}}]),r})();return is.default=n,is}var nu,mA;function $N(){if(mA)return nu;mA=1;var e=RN(),t=A(e),n=xc(),r=A(n),f=MN(),p=A(f),v=PN(),u=A(v),o=UN(),s=A(o),c=Fm(),i=A(c),l=GN(),a=A(l),h=Nm(),g=Lm(),d=A(g);function A(N){return N&&N.__esModule?N:{default:N}}var y=function(){},m=function(q,Z,K){var rt=new y;if(typeof q>"u")throw Error("No element to render on was provided.");return rt._renderProperties=(0,s.default)(q),rt._encodings=[],rt._options=d.default,rt._errorHandler=new a.default(rt),typeof Z<"u"&&(K=K||{},K.format||(K.format=O()),rt.options(K)[K.format](Z,K).render()),rt};m.getModule=function(N){return t.default[N]};for(var _ in t.default)t.default.hasOwnProperty(_)&&w(t.default,_);function w(N,q){y.prototype[q]=y.prototype[q.toUpperCase()]=y.prototype[q.toLowerCase()]=function(Z,K){var rt=this;return rt._errorHandler.wrapBarcodeCall(function(){K.text=typeof K.text>"u"?void 0:""+K.text;var $=(0,r.default)(rt._options,K);$=(0,i.default)($);var U=N[q],j=S(Z,U,$);return rt._encodings.push(j),rt})}}function S(N,q,Z){N=""+N;var K=new q(N,Z);if(!K.valid())throw new h.InvalidInputException(K.constructor.name,N);var rt=K.encode();rt=(0,p.default)(rt);for(var $=0;$<rt.length;$++)rt[$].options=(0,r.default)(Z,rt[$].options);return rt}function O(){return t.default.CODE128?"CODE128":Object.keys(t.default)[0]}y.prototype.options=function(N){return this._options=(0,r.default)(this._options,N),this},y.prototype.blank=function(N){var q=new Array(N+1).join("0");return this._encodings.push({data:q}),this},y.prototype.init=function(){if(this._renderProperties){Array.isArray(this._renderProperties)||(this._renderProperties=[this._renderProperties]);var N;for(var q in this._renderProperties){N=this._renderProperties[q];var Z=(0,r.default)(this._options,N.options);Z.format=="auto"&&(Z.format=O()),this._errorHandler.wrapBarcodeCall(function(){var K=Z.value,rt=t.default[Z.format.toUpperCase()],$=S(K,rt,Z);P(N,$,Z)})}}},y.prototype.render=function(){if(!this._renderProperties)throw new h.NoElementException;if(Array.isArray(this._renderProperties))for(var N=0;N<this._renderProperties.length;N++)P(this._renderProperties[N],this._encodings,this._options);else P(this._renderProperties,this._encodings,this._options);return this},y.prototype._defaults=d.default;function P(N,q,Z){q=(0,p.default)(q);for(var K=0;K<q.length;K++)q[K].options=(0,r.default)(Z,q[K].options),(0,u.default)(q[K].options);(0,u.default)(Z);var rt=N.renderer,$=new rt(N.element,q,Z);$.render(),N.afterRender&&N.afterRender()}return typeof window<"u"&&(window.JsBarcode=m),typeof jQuery<"u"&&(jQuery.fn.JsBarcode=function(N,q){var Z=[];return jQuery(this).each(function(){Z.push(this)}),m(Z,N,q)}),nu=m,nu}var HN=$N();const zN=mc(HN);var Um=(e=>(e.CODE128="CODE128",e.EAN8="EAN8",e.EAN13="EAN13",e.ITF14="ITF14",e.codabar="codabar",e.pharmacode="pharmacode",e))(Um||{});const Ra=class Ra{constructor(t,n){this.canvas=t,this.editor=n,this._updateBarcodeImageDebounced=new Map}async hookTransform(t){if(t.extensionType==="barcode"){const n=t.extension||{},r=this._mergeBarcodeOptions(n),f=await this._getBase64Str(r);t.src=f,t.extension=r}}_bindBarcodeEvents(t){t.off("modified"),t.off("scaled"),t._barcodeZoomHandler&&this.canvas.off("mouse:wheel",t._barcodeZoomHandler),t.on("modified",async r=>{const f=r.target||t;await this._updateBarcodeImage(f,!0)}),t.on("scaled",async()=>{await this._updateBarcodeImage(t,!0)});const n=()=>{this._updateBarcodeImage(t,!1)};this.canvas.on("mouse:wheel",n),t._barcodeZoomHandler=n}hookImportAfter(){return new Promise(async t=>{const n=[];this.canvas.getObjects().forEach(r=>{r.type==="image"&&r.extensionType==="barcode"&&(n.push(r),this._bindBarcodeEvents(r))}),await Promise.all(n.map(async r=>{const f=r.get("extension");if(!f)return;const p=this._mergeBarcodeOptions(f);try{const v=await this._getBase64Str(p),u=r.getScaledWidth(),o=r.getScaledHeight();await new Promise(s=>{r.setSrc(v,()=>{this._setImageScale(r,u,o),s()})})}catch(v){console.error("重新生成条形码失败:",v)}})),this.canvas.renderAll(),t()})}hookSaveBefore(){return new Promise(t=>{this.canvas.getObjects().forEach(n=>{if(n.type==="image"&&n.extensionType==="barcode"){const r=n,f=r.get("extension");if(f){const p=this._defaultBarcodeOption(),v={...f,boxWidth:f.boxWidth!==void 0?f.boxWidth:p.boxWidth,height:f.height!==void 0?f.height:p.height};r.set("extension",v)}}}),t()})}async _getBase64Str(t){const n=this.canvas.getZoom()||1,r=window.devicePixelRatio||1;let f=n*r;const p=Math.min(t.boxWidth||60,t.height||30);p<100?f=Math.max(f,3):p<200&&(f=Math.max(f,2)),f=Math.min(f,5);const u=document.createElementNS("http://www.w3.org/2000/svg","svg"),{fontSize:o,textAlign:s,textPosition:c,displayValue:i,charSpacing:l,lineHeight:a,fontFamily:h,...g}=t,d=g.width||1,A=p<100?Math.max(d,2):d;zN(u,t.value,{...g,width:A,displayValue:!1});const y=new XMLSerializer().serializeToString(u),m="data:image/svg+xml;base64,"+btoa(y);if(!i)return m;const _=await this._loadImage(m),w=_.naturalWidth||_.width;_.naturalHeight||_.height;const S=await this._loadImageToCanvas(m,f),O=this._drawText(t.value,{fontSize:o||12,textAlign:s||"center",boxWidth:t.boxWidth||w,scale:f,textPosition:c||"bottom",charSpacing:typeof l=="number"?l:t.textSpacing??0,lineHeight:a||1,fontFamily:h||"Arial"});return this._mergeBarcodeAndText(S,O,c||"bottom",f,t.height,t.boxWidth).toDataURL("image/png")}_loadImage(t){return new Promise((n,r)=>{const f=new Image;f.crossOrigin="anonymous",f.onload=()=>n(f),f.onerror=r,f.src=t})}_loadImageToCanvas(t,n){return new Promise((r,f)=>{const p=new Image;p.crossOrigin="anonymous",p.onload=()=>{const v=document.createElement("canvas"),u=v.getContext("2d");if(!u){f(new Error("无法创建 canvas 上下文"));return}const o=p.naturalWidth||p.width,s=p.naturalHeight||p.height;v.width=o*n,v.height=s*n,v.width<300||v.height<300?u.imageSmoothingEnabled=!1:(u.imageSmoothingEnabled=!0,u.imageSmoothingQuality="high"),u.drawImage(p,0,0,v.width,v.height),r(v)},p.onerror=f,p.src=t})}_drawText(t,n){const r=document.createElement("canvas"),f=r.getContext("2d");if(!f)throw new Error("无法创建 canvas 上下文");const p=n.boxWidth*n.scale,v=n.fontSize*n.scale,u=(n.charSpacing??0)*n.scale,o=n.lineHeight??1,s=String(t).split(`
474
+ `),c=v*o,l=c*s.length;r.width=p,r.height=l,r.style.width=`${n.boxWidth}px`,r.style.height=`${l/n.scale}px`,f.scale(n.scale,n.scale),f.font=`${n.fontSize}px ${n.fontFamily||"Arial"}`,f.textAlign="left",f.textBaseline="top",f.fillStyle="#000";const h=Math.max(0,c-v)/2/n.scale,g=d=>{if(u<=0)return f.measureText(d).width;let A=0;for(let y=0;y<d.length;y++)A+=f.measureText(d[y]).width,y>0&&(A+=u/n.scale);return A};return s.forEach((d,A)=>{const y=g(d);let m=0;n.textAlign==="center"?m=(n.boxWidth-y)/2:n.textAlign==="right"?m=n.boxWidth-y:m=0;const _=h+A*(c/n.scale);if(u<=0)f.fillText(d,m,_);else{let w=m;for(let S=0;S<d.length;S++){const O=d[S];f.fillText(O,w,_);const P=f.measureText(O).width;w+=P+u/n.scale}}}),r}_mergeBarcodeAndText(t,n,r,f,p,v){const u=document.createElement("canvas"),o=u.getContext("2d");if(!o)throw new Error("无法创建 canvas 上下文");const s=t.width,c=t.height,i=n.height,l=n.width,a=v!==void 0&&v>0?v*f:Math.max(s,l);let h,g;if(p!==void 0&&p>0){const m=p*f;if(i>m)h=i,g=0;else{const _=m-i;c+i<m?(h=m,g=_):(h=m,g=Math.min(c,_))}}else h=c+i,g=c;u.width=a,u.height=h,u.style.width=`${a/f}px`,u.style.height=`${h/f}px`,o.fillStyle="#fff",o.fillRect(0,0,u.width,u.height);const d=(a-l)/2,A=v!==void 0&&v>0?v*f:s,y=(a-A)/2;if(r==="top"){let m=0;o.drawImage(n,0,0,l,n.height,d,m,l,n.height),m+=n.height;const _=v!==void 0&&v>0?v*f:s;g>0&&m<h&&o.drawImage(t,0,0,s,c,y,m,_,g)}else{let m=0;const _=v!==void 0&&v>0?v*f:s;g>0&&(o.drawImage(t,0,0,s,c,y,m,_,g),m+=g),o.drawImage(n,0,0,l,n.height,d,m,l,n.height)}return u}_defaultBarcodeOption(){return{value:"123456",format:"CODE128",textAlign:"center",textPosition:"bottom",fontSize:12,background:"#fff",lineColor:"#000",displayValue:!0,margin:0,width:1,height:30,boxWidth:60}}_mergeBarcodeOptions(t){const n=this._defaultBarcodeOption();return{...n,...t,boxWidth:t.boxWidth!==void 0?t.boxWidth:n.boxWidth,height:t.height!==void 0?t.height:n.height}}_setImageScale(t,n,r){const f=t.width||0,p=t.height||0;if(f>0&&p>0){const v=n/f,u=r/p;t.set({scaleX:v,scaleY:u})}}async _updateBarcodeImage(t,n=!1){const r=t.get("extension");if(!r)return;const f=this._updateBarcodeImageDebounced.get(t);f&&clearTimeout(f);const p=async()=>{const v=t,u=v.getScaledWidth(),o=v.getScaledHeight(),s={...r,boxWidth:u,height:o};try{const c=await this._getBase64Str(s);t.setSrc(c,()=>{this._setImageScale(t,u,o),t.set("extension",s),this.canvas.renderAll(),this._updateBarcodeImageDebounced.delete(t)})}catch(c){console.error("更新条形码失败:",c),this._updateBarcodeImageDebounced.delete(t)}};if(n)await p();else{const v=setTimeout(p,300);this._updateBarcodeImageDebounced.set(t,v)}}async addBarcode(t,n,r){const f={...this._defaultBarcodeOption(),...n||{},...t?{value:t}:{}};f.type&&!f.format&&(f.format=f.type);const p=ue(this.editor),{processed:v,originByUnit:u}=Qe(f,p,r),o={...f,...v},s=await this._getBase64Str(JSON.parse(JSON.stringify(o)));return new Promise(c=>{V.fabric.Image.fromURL(s,i=>{const l=typeof v.left=="number"?v.left:typeof n?.left=="number"?n.left:0,a=typeof v.top=="number"?v.top:typeof n?.top=="number"?n.top:0;i.set({left:l,top:a}),i.extensionType="barcode",i.extension=o;const h=typeof o.boxWidth=="number"?o.boxWidth:i.width??0,g=typeof o.height=="number"?o.height:i.height??0;this._setImageScale(i,h,g);const d=ue(this.editor),y={...u[d]||{}};y.boxWidth!==void 0&&(y.width=y.boxWidth,delete y.boxWidth),i._originSize={[d]:y},i.setExtension=async m=>{const w={...i.get("extension")||{},...m||{}};i.set("extension",w),await this._updateBarcodeImage(i,!0)},i.setExtensionByUnit=async(m,_)=>{const w=ue(this.editor),{processed:S,originByUnit:O}=Qe(m||{},w,_),P=this.editor.getPrecision?.(),N=Ae(O[w]||{},P),q=i._originSize||{},Z=q[w]||{};Z.extension={...Z.extension||{},...N},i._originSize={...q,[w]:Z};const rt={...i.get("extension")||{},...S};i.set("extension",rt),await this._updateBarcodeImage(i,!0)},this._bindBarcodeEvents(i),c(i)},{crossOrigin:"anonymous"})})}async setBarcode(t){try{const n=await this._getBase64Str(t),r=this.canvas.getActiveObjects()[0];V.fabric.Image.fromURL(n,f=>{f.set({left:r.left,top:r.top,extensionType:"barcode",extension:{...t}}),f.scaleToWidth(r.getScaledWidth()),this._bindBarcodeEvents(f),this.editor.del(),this.canvas.add(f),this.canvas.setActiveObject(f)},{crossOrigin:"anonymous"})}catch(n){console.log(n)}}getBarcodeTypes(){return Object.values(Um)}destroy(){console.log("pluginDestroy")}};Ra.pluginName="BarCodePlugin",Ra.apis=["addBarcode","setBarcode","getBarcodeTypes"];let aa=Ra;var ps={exports:{}},YN=ps.exports,_A;function WN(){return _A||(_A=1,(function(e,t){(function(n,r){e.exports=r()})(YN,(()=>(()=>{var n={873:(v,u)=>{var o,s,c=(function(){var i=function($,U){var j=$,B=A[U],x=null,b=0,C=null,E=[],I={},M=function(F,L){x=(function(D){for(var G=new Array(D),z=0;z<D;z+=1){G[z]=new Array(D);for(var X=0;X<D;X+=1)G[z][X]=null}return G})(b=4*j+17),k(0,0),k(b-7,0),k(0,b-7),Q(),T(),Y(F,L),j>=7&&H(F),C==null&&(C=J(j,B,E)),W(C,L)},k=function(F,L){for(var D=-1;D<=7;D+=1)if(!(F+D<=-1||b<=F+D))for(var G=-1;G<=7;G+=1)L+G<=-1||b<=L+G||(x[F+D][L+G]=0<=D&&D<=6&&(G==0||G==6)||0<=G&&G<=6&&(D==0||D==6)||2<=D&&D<=4&&2<=G&&G<=4)},T=function(){for(var F=8;F<b-8;F+=1)x[F][6]==null&&(x[F][6]=F%2==0);for(var L=8;L<b-8;L+=1)x[6][L]==null&&(x[6][L]=L%2==0)},Q=function(){for(var F=y.getPatternPosition(j),L=0;L<F.length;L+=1)for(var D=0;D<F.length;D+=1){var G=F[L],z=F[D];if(x[G][z]==null)for(var X=-2;X<=2;X+=1)for(var et=-2;et<=2;et+=1)x[G+X][z+et]=X==-2||X==2||et==-2||et==2||X==0&&et==0}},H=function(F){for(var L=y.getBCHTypeNumber(j),D=0;D<18;D+=1){var G=!F&&(L>>D&1)==1;x[Math.floor(D/3)][D%3+b-8-3]=G}for(D=0;D<18;D+=1)G=!F&&(L>>D&1)==1,x[D%3+b-8-3][Math.floor(D/3)]=G},Y=function(F,L){for(var D=B<<3|L,G=y.getBCHTypeInfo(D),z=0;z<15;z+=1){var X=!F&&(G>>z&1)==1;z<6?x[z][8]=X:z<8?x[z+1][8]=X:x[b-15+z][8]=X}for(z=0;z<15;z+=1)X=!F&&(G>>z&1)==1,z<8?x[8][b-z-1]=X:z<9?x[8][15-z-1+1]=X:x[8][15-z-1]=X;x[b-8][8]=!F},W=function(F,L){for(var D=-1,G=b-1,z=7,X=0,et=y.getMaskFunction(L),at=b-1;at>0;at-=2)for(at==6&&(at-=1);;){for(var lt=0;lt<2;lt+=1)if(x[G][at-lt]==null){var ct=!1;X<F.length&&(ct=(F[X]>>>z&1)==1),et(G,at-lt)&&(ct=!ct),x[G][at-lt]=ct,(z-=1)==-1&&(X+=1,z=7)}if((G+=D)<0||b<=G){G-=D,D=-D;break}}},J=function(F,L,D){for(var G=w.getRSBlocks(F,L),z=S(),X=0;X<D.length;X+=1){var et=D[X];z.put(et.getMode(),4),z.put(et.getLength(),y.getLengthInBits(et.getMode(),F)),et.write(z)}var at=0;for(X=0;X<G.length;X+=1)at+=G[X].dataCount;if(z.getLengthInBits()>8*at)throw"code length overflow. ("+z.getLengthInBits()+">"+8*at+")";for(z.getLengthInBits()+4<=8*at&&z.put(0,4);z.getLengthInBits()%8!=0;)z.putBit(!1);for(;!(z.getLengthInBits()>=8*at||(z.put(236,8),z.getLengthInBits()>=8*at));)z.put(17,8);return(function(lt,ct){for(var it=0,ut=0,ft=0,dt=new Array(ct.length),pt=new Array(ct.length),ht=0;ht<ct.length;ht+=1){var Et=ct[ht].dataCount,yt=ct[ht].totalCount-Et;ut=Math.max(ut,Et),ft=Math.max(ft,yt),dt[ht]=new Array(Et);for(var At=0;At<dt[ht].length;At+=1)dt[ht][At]=255&lt.getBuffer()[At+it];it+=Et;var Yt=y.getErrorCorrectPolynomial(yt),Ft=_(dt[ht],Yt.getLength()-1).mod(Yt);for(pt[ht]=new Array(Yt.getLength()-1),At=0;At<pt[ht].length;At+=1){var te=At+Ft.getLength()-pt[ht].length;pt[ht][At]=te>=0?Ft.getAt(te):0}}var Ze=0;for(At=0;At<ct.length;At+=1)Ze+=ct[At].totalCount;var Ge=new Array(Ze),nt=0;for(At=0;At<ut;At+=1)for(ht=0;ht<ct.length;ht+=1)At<dt[ht].length&&(Ge[nt]=dt[ht][At],nt+=1);for(At=0;At<ft;At+=1)for(ht=0;ht<ct.length;ht+=1)At<pt[ht].length&&(Ge[nt]=pt[ht][At],nt+=1);return Ge})(z,G)};I.addData=function(F,L){var D=null;switch(L=L||"Byte"){case"Numeric":D=O(F);break;case"Alphanumeric":D=P(F);break;case"Byte":D=N(F);break;case"Kanji":D=q(F);break;default:throw"mode:"+L}E.push(D),C=null},I.isDark=function(F,L){if(F<0||b<=F||L<0||b<=L)throw F+","+L;return x[F][L]},I.getModuleCount=function(){return b},I.make=function(){if(j<1){for(var F=1;F<40;F++){for(var L=w.getRSBlocks(F,B),D=S(),G=0;G<E.length;G++){var z=E[G];D.put(z.getMode(),4),D.put(z.getLength(),y.getLengthInBits(z.getMode(),F)),z.write(D)}var X=0;for(G=0;G<L.length;G++)X+=L[G].dataCount;if(D.getLengthInBits()<=8*X)break}j=F}M(!1,(function(){for(var et=0,at=0,lt=0;lt<8;lt+=1){M(!0,lt);var ct=y.getLostPoint(I);(lt==0||et>ct)&&(et=ct,at=lt)}return at})())},I.createTableTag=function(F,L){F=F||2;var D="";D+='<table style="',D+=" border-width: 0px; border-style: none;",D+=" border-collapse: collapse;",D+=" padding: 0px; margin: "+(L=L===void 0?4*F:L)+"px;",D+='">',D+="<tbody>";for(var G=0;G<I.getModuleCount();G+=1){D+="<tr>";for(var z=0;z<I.getModuleCount();z+=1)D+='<td style="',D+=" border-width: 0px; border-style: none;",D+=" border-collapse: collapse;",D+=" padding: 0px; margin: 0px;",D+=" width: "+F+"px;",D+=" height: "+F+"px;",D+=" background-color: ",D+=I.isDark(G,z)?"#000000":"#ffffff",D+=";",D+='"/>';D+="</tr>"}return(D+="</tbody>")+"</table>"},I.createSvgTag=function(F,L,D,G){var z={};typeof arguments[0]=="object"&&(F=(z=arguments[0]).cellSize,L=z.margin,D=z.alt,G=z.title),F=F||2,L=L===void 0?4*F:L,(D=typeof D=="string"?{text:D}:D||{}).text=D.text||null,D.id=D.text?D.id||"qrcode-description":null,(G=typeof G=="string"?{text:G}:G||{}).text=G.text||null,G.id=G.text?G.id||"qrcode-title":null;var X,et,at,lt,ct=I.getModuleCount()*F+2*L,it="";for(lt="l"+F+",0 0,"+F+" -"+F+",0 0,-"+F+"z ",it+='<svg version="1.1" xmlns="http://www.w3.org/2000/svg"',it+=z.scalable?"":' width="'+ct+'px" height="'+ct+'px"',it+=' viewBox="0 0 '+ct+" "+ct+'" ',it+=' preserveAspectRatio="xMinYMin meet"',it+=G.text||D.text?' role="img" aria-labelledby="'+tt([G.id,D.id].join(" ").trim())+'"':"",it+=">",it+=G.text?'<title id="'+tt(G.id)+'">'+tt(G.text)+"</title>":"",it+=D.text?'<description id="'+tt(D.id)+'">'+tt(D.text)+"</description>":"",it+='<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>',it+='<path d="',et=0;et<I.getModuleCount();et+=1)for(at=et*F+L,X=0;X<I.getModuleCount();X+=1)I.isDark(et,X)&&(it+="M"+(X*F+L)+","+at+lt);return(it+='" stroke="transparent" fill="black"/>')+"</svg>"},I.createDataURL=function(F,L){F=F||2,L=L===void 0?4*F:L;var D=I.getModuleCount()*F+2*L,G=L,z=D-L;return rt(D,D,(function(X,et){if(G<=X&&X<z&&G<=et&&et<z){var at=Math.floor((X-G)/F),lt=Math.floor((et-G)/F);return I.isDark(lt,at)?0:1}return 1}))},I.createImgTag=function(F,L,D){F=F||2,L=L===void 0?4*F:L;var G=I.getModuleCount()*F+2*L,z="";return z+="<img",z+=' src="',z+=I.createDataURL(F,L),z+='"',z+=' width="',z+=G,z+='"',z+=' height="',z+=G,z+='"',D&&(z+=' alt="',z+=tt(D),z+='"'),z+"/>"};var tt=function(F){for(var L="",D=0;D<F.length;D+=1){var G=F.charAt(D);switch(G){case"<":L+="&lt;";break;case">":L+="&gt;";break;case"&":L+="&amp;";break;case'"':L+="&quot;";break;default:L+=G}}return L};return I.createASCII=function(F,L){if((F=F||1)<2)return(function(dt){dt=dt===void 0?2:dt;var pt,ht,Et,yt,At,Yt=1*I.getModuleCount()+2*dt,Ft=dt,te=Yt-dt,Ze={"██":"█","█ ":"▀"," █":"▄"," ":" "},Ge={"██":"▀","█ ":"▀"," █":" "," ":" "},nt="";for(pt=0;pt<Yt;pt+=2){for(Et=Math.floor((pt-Ft)/1),yt=Math.floor((pt+1-Ft)/1),ht=0;ht<Yt;ht+=1)At="█",Ft<=ht&&ht<te&&Ft<=pt&&pt<te&&I.isDark(Et,Math.floor((ht-Ft)/1))&&(At=" "),Ft<=ht&&ht<te&&Ft<=pt+1&&pt+1<te&&I.isDark(yt,Math.floor((ht-Ft)/1))?At+=" ":At+="█",nt+=dt<1&&pt+1>=te?Ge[At]:Ze[At];nt+=`
475
+ `}return Yt%2&&dt>0?nt.substring(0,nt.length-Yt-1)+Array(Yt+1).join("▀"):nt.substring(0,nt.length-1)})(L);F-=1,L=L===void 0?2*F:L;var D,G,z,X,et=I.getModuleCount()*F+2*L,at=L,lt=et-L,ct=Array(F+1).join("██"),it=Array(F+1).join(" "),ut="",ft="";for(D=0;D<et;D+=1){for(z=Math.floor((D-at)/F),ft="",G=0;G<et;G+=1)X=1,at<=G&&G<lt&&at<=D&&D<lt&&I.isDark(z,Math.floor((G-at)/F))&&(X=0),ft+=X?ct:it;for(z=0;z<F;z+=1)ut+=ft+`
476
+ `}return ut.substring(0,ut.length-1)},I.renderTo2dContext=function(F,L){L=L||2;for(var D=I.getModuleCount(),G=0;G<D;G++)for(var z=0;z<D;z++)F.fillStyle=I.isDark(G,z)?"black":"white",F.fillRect(G*L,z*L,L,L)},I};i.stringToBytes=(i.stringToBytesFuncs={default:function($){for(var U=[],j=0;j<$.length;j+=1){var B=$.charCodeAt(j);U.push(255&B)}return U}}).default,i.createStringToBytes=function($,U){var j=(function(){for(var x=K($),b=function(){var T=x.read();if(T==-1)throw"eof";return T},C=0,E={};;){var I=x.read();if(I==-1)break;var M=b(),k=b()<<8|b();E[String.fromCharCode(I<<8|M)]=k,C+=1}if(C!=U)throw C+" != "+U;return E})(),B=63;return function(x){for(var b=[],C=0;C<x.length;C+=1){var E=x.charCodeAt(C);if(E<128)b.push(E);else{var I=j[x.charAt(C)];typeof I=="number"?(255&I)==I?b.push(I):(b.push(I>>>8),b.push(255&I)):b.push(B)}}return b}};var l,a,h,g,d,A={L:1,M:0,Q:3,H:2},y=(l=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],a=1335,h=7973,d=function($){for(var U=0;$!=0;)U+=1,$>>>=1;return U},(g={}).getBCHTypeInfo=function($){for(var U=$<<10;d(U)-d(a)>=0;)U^=a<<d(U)-d(a);return 21522^($<<10|U)},g.getBCHTypeNumber=function($){for(var U=$<<12;d(U)-d(h)>=0;)U^=h<<d(U)-d(h);return $<<12|U},g.getPatternPosition=function($){return l[$-1]},g.getMaskFunction=function($){switch($){case 0:return function(U,j){return(U+j)%2==0};case 1:return function(U,j){return U%2==0};case 2:return function(U,j){return j%3==0};case 3:return function(U,j){return(U+j)%3==0};case 4:return function(U,j){return(Math.floor(U/2)+Math.floor(j/3))%2==0};case 5:return function(U,j){return U*j%2+U*j%3==0};case 6:return function(U,j){return(U*j%2+U*j%3)%2==0};case 7:return function(U,j){return(U*j%3+(U+j)%2)%2==0};default:throw"bad maskPattern:"+$}},g.getErrorCorrectPolynomial=function($){for(var U=_([1],0),j=0;j<$;j+=1)U=U.multiply(_([1,m.gexp(j)],0));return U},g.getLengthInBits=function($,U){if(1<=U&&U<10)switch($){case 1:return 10;case 2:return 9;case 4:case 8:return 8;default:throw"mode:"+$}else if(U<27)switch($){case 1:return 12;case 2:return 11;case 4:return 16;case 8:return 10;default:throw"mode:"+$}else{if(!(U<41))throw"type:"+U;switch($){case 1:return 14;case 2:return 13;case 4:return 16;case 8:return 12;default:throw"mode:"+$}}},g.getLostPoint=function($){for(var U=$.getModuleCount(),j=0,B=0;B<U;B+=1)for(var x=0;x<U;x+=1){for(var b=0,C=$.isDark(B,x),E=-1;E<=1;E+=1)if(!(B+E<0||U<=B+E))for(var I=-1;I<=1;I+=1)x+I<0||U<=x+I||E==0&&I==0||C==$.isDark(B+E,x+I)&&(b+=1);b>5&&(j+=3+b-5)}for(B=0;B<U-1;B+=1)for(x=0;x<U-1;x+=1){var M=0;$.isDark(B,x)&&(M+=1),$.isDark(B+1,x)&&(M+=1),$.isDark(B,x+1)&&(M+=1),$.isDark(B+1,x+1)&&(M+=1),M!=0&&M!=4||(j+=3)}for(B=0;B<U;B+=1)for(x=0;x<U-6;x+=1)$.isDark(B,x)&&!$.isDark(B,x+1)&&$.isDark(B,x+2)&&$.isDark(B,x+3)&&$.isDark(B,x+4)&&!$.isDark(B,x+5)&&$.isDark(B,x+6)&&(j+=40);for(x=0;x<U;x+=1)for(B=0;B<U-6;B+=1)$.isDark(B,x)&&!$.isDark(B+1,x)&&$.isDark(B+2,x)&&$.isDark(B+3,x)&&$.isDark(B+4,x)&&!$.isDark(B+5,x)&&$.isDark(B+6,x)&&(j+=40);var k=0;for(x=0;x<U;x+=1)for(B=0;B<U;B+=1)$.isDark(B,x)&&(k+=1);return j+Math.abs(100*k/U/U-50)/5*10},g),m=(function(){for(var $=new Array(256),U=new Array(256),j=0;j<8;j+=1)$[j]=1<<j;for(j=8;j<256;j+=1)$[j]=$[j-4]^$[j-5]^$[j-6]^$[j-8];for(j=0;j<255;j+=1)U[$[j]]=j;return{glog:function(B){if(B<1)throw"glog("+B+")";return U[B]},gexp:function(B){for(;B<0;)B+=255;for(;B>=256;)B-=255;return $[B]}}})();function _($,U){if($.length===void 0)throw $.length+"/"+U;var j=(function(){for(var x=0;x<$.length&&$[x]==0;)x+=1;for(var b=new Array($.length-x+U),C=0;C<$.length-x;C+=1)b[C]=$[C+x];return b})(),B={getAt:function(x){return j[x]},getLength:function(){return j.length},multiply:function(x){for(var b=new Array(B.getLength()+x.getLength()-1),C=0;C<B.getLength();C+=1)for(var E=0;E<x.getLength();E+=1)b[C+E]^=m.gexp(m.glog(B.getAt(C))+m.glog(x.getAt(E)));return _(b,0)},mod:function(x){if(B.getLength()-x.getLength()<0)return B;for(var b=m.glog(B.getAt(0))-m.glog(x.getAt(0)),C=new Array(B.getLength()),E=0;E<B.getLength();E+=1)C[E]=B.getAt(E);for(E=0;E<x.getLength();E+=1)C[E]^=m.gexp(m.glog(x.getAt(E))+b);return _(C,0).mod(x)}};return B}var w=(function(){var $=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],U=function(B,x){var b={};return b.totalCount=B,b.dataCount=x,b},j={getRSBlocks:function(B,x){var b=(function(H,Y){switch(Y){case A.L:return $[4*(H-1)+0];case A.M:return $[4*(H-1)+1];case A.Q:return $[4*(H-1)+2];case A.H:return $[4*(H-1)+3];default:return}})(B,x);if(b===void 0)throw"bad rs block @ typeNumber:"+B+"/errorCorrectionLevel:"+x;for(var C=b.length/3,E=[],I=0;I<C;I+=1)for(var M=b[3*I+0],k=b[3*I+1],T=b[3*I+2],Q=0;Q<M;Q+=1)E.push(U(k,T));return E}};return j})(),S=function(){var $=[],U=0,j={getBuffer:function(){return $},getAt:function(B){var x=Math.floor(B/8);return($[x]>>>7-B%8&1)==1},put:function(B,x){for(var b=0;b<x;b+=1)j.putBit((B>>>x-b-1&1)==1)},getLengthInBits:function(){return U},putBit:function(B){var x=Math.floor(U/8);$.length<=x&&$.push(0),B&&($[x]|=128>>>U%8),U+=1}};return j},O=function($){var U=$,j={getMode:function(){return 1},getLength:function(b){return U.length},write:function(b){for(var C=U,E=0;E+2<C.length;)b.put(B(C.substring(E,E+3)),10),E+=3;E<C.length&&(C.length-E==1?b.put(B(C.substring(E,E+1)),4):C.length-E==2&&b.put(B(C.substring(E,E+2)),7))}},B=function(b){for(var C=0,E=0;E<b.length;E+=1)C=10*C+x(b.charAt(E));return C},x=function(b){if("0"<=b&&b<="9")return b.charCodeAt(0)-48;throw"illegal char :"+b};return j},P=function($){var U=$,j={getMode:function(){return 2},getLength:function(x){return U.length},write:function(x){for(var b=U,C=0;C+1<b.length;)x.put(45*B(b.charAt(C))+B(b.charAt(C+1)),11),C+=2;C<b.length&&x.put(B(b.charAt(C)),6)}},B=function(x){if("0"<=x&&x<="9")return x.charCodeAt(0)-48;if("A"<=x&&x<="Z")return x.charCodeAt(0)-65+10;switch(x){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw"illegal char :"+x}};return j},N=function($){var U=i.stringToBytes($);return{getMode:function(){return 4},getLength:function(j){return U.length},write:function(j){for(var B=0;B<U.length;B+=1)j.put(U[B],8)}}},q=function($){var U=i.stringToBytesFuncs.SJIS;if(!U)throw"sjis not supported.";(function(){var x=U("友");if(x.length!=2||(x[0]<<8|x[1])!=38726)throw"sjis not supported."})();var j=U($),B={getMode:function(){return 8},getLength:function(x){return~~(j.length/2)},write:function(x){for(var b=j,C=0;C+1<b.length;){var E=(255&b[C])<<8|255&b[C+1];if(33088<=E&&E<=40956)E-=33088;else{if(!(57408<=E&&E<=60351))throw"illegal char at "+(C+1)+"/"+E;E-=49472}E=192*(E>>>8&255)+(255&E),x.put(E,13),C+=2}if(C<b.length)throw"illegal char at "+(C+1)}};return B},Z=function(){var $=[],U={writeByte:function(j){$.push(255&j)},writeShort:function(j){U.writeByte(j),U.writeByte(j>>>8)},writeBytes:function(j,B,x){B=B||0,x=x||j.length;for(var b=0;b<x;b+=1)U.writeByte(j[b+B])},writeString:function(j){for(var B=0;B<j.length;B+=1)U.writeByte(j.charCodeAt(B))},toByteArray:function(){return $},toString:function(){var j="";j+="[";for(var B=0;B<$.length;B+=1)B>0&&(j+=","),j+=$[B];return j+"]"}};return U},K=function($){var U=$,j=0,B=0,x=0,b={read:function(){for(;x<8;){if(j>=U.length){if(x==0)return-1;throw"unexpected end of file./"+x}var E=U.charAt(j);if(j+=1,E=="=")return x=0,-1;E.match(/^\s$/)||(B=B<<6|C(E.charCodeAt(0)),x+=6)}var I=B>>>x-8&255;return x-=8,I}},C=function(E){if(65<=E&&E<=90)return E-65;if(97<=E&&E<=122)return E-97+26;if(48<=E&&E<=57)return E-48+52;if(E==43)return 62;if(E==47)return 63;throw"c:"+E};return b},rt=function($,U,j){for(var B=(function(k,T){var Q=k,H=T,Y=new Array(k*T),W={setPixel:function(F,L,D){Y[L*Q+F]=D},write:function(F){F.writeString("GIF87a"),F.writeShort(Q),F.writeShort(H),F.writeByte(128),F.writeByte(0),F.writeByte(0),F.writeByte(0),F.writeByte(0),F.writeByte(0),F.writeByte(255),F.writeByte(255),F.writeByte(255),F.writeString(","),F.writeShort(0),F.writeShort(0),F.writeShort(Q),F.writeShort(H),F.writeByte(0);var L=J(2);F.writeByte(2);for(var D=0;L.length-D>255;)F.writeByte(255),F.writeBytes(L,D,255),D+=255;F.writeByte(L.length-D),F.writeBytes(L,D,L.length-D),F.writeByte(0),F.writeString(";")}},J=function(F){for(var L=1<<F,D=1+(1<<F),G=F+1,z=tt(),X=0;X<L;X+=1)z.add(String.fromCharCode(X));z.add(String.fromCharCode(L)),z.add(String.fromCharCode(D));var et,at,lt,ct=Z(),it=(et=ct,at=0,lt=0,{write:function(pt,ht){if(pt>>>ht)throw"length over";for(;at+ht>=8;)et.writeByte(255&(pt<<at|lt)),ht-=8-at,pt>>>=8-at,lt=0,at=0;lt|=pt<<at,at+=ht},flush:function(){at>0&&et.writeByte(lt)}});it.write(L,G);var ut=0,ft=String.fromCharCode(Y[ut]);for(ut+=1;ut<Y.length;){var dt=String.fromCharCode(Y[ut]);ut+=1,z.contains(ft+dt)?ft+=dt:(it.write(z.indexOf(ft),G),z.size()<4095&&(z.size()==1<<G&&(G+=1),z.add(ft+dt)),ft=dt)}return it.write(z.indexOf(ft),G),it.write(D,G),it.flush(),ct.toByteArray()},tt=function(){var F={},L=0,D={add:function(G){if(D.contains(G))throw"dup key:"+G;F[G]=L,L+=1},size:function(){return L},indexOf:function(G){return F[G]},contains:function(G){return F[G]!==void 0}};return D};return W})($,U),x=0;x<U;x+=1)for(var b=0;b<$;b+=1)B.setPixel(b,x,j(b,x));var C=Z();B.write(C);for(var E=(function(){var k=0,T=0,Q=0,H="",Y={},W=function(tt){H+=String.fromCharCode(J(63&tt))},J=function(tt){if(!(tt<0)){if(tt<26)return 65+tt;if(tt<52)return tt-26+97;if(tt<62)return tt-52+48;if(tt==62)return 43;if(tt==63)return 47}throw"n:"+tt};return Y.writeByte=function(tt){for(k=k<<8|255&tt,T+=8,Q+=1;T>=6;)W(k>>>T-6),T-=6},Y.flush=function(){if(T>0&&(W(k<<6-T),k=0,T=0),Q%3!=0)for(var tt=3-Q%3,F=0;F<tt;F+=1)H+="="},Y.toString=function(){return H},Y})(),I=C.toByteArray(),M=0;M<I.length;M+=1)E.writeByte(I[M]);return E.flush(),"data:image/gif;base64,"+E};return i})();c.stringToBytesFuncs["UTF-8"]=function(i){return(function(l){for(var a=[],h=0;h<l.length;h++){var g=l.charCodeAt(h);g<128?a.push(g):g<2048?a.push(192|g>>6,128|63&g):g<55296||g>=57344?a.push(224|g>>12,128|g>>6&63,128|63&g):(h++,g=65536+((1023&g)<<10|1023&l.charCodeAt(h)),a.push(240|g>>18,128|g>>12&63,128|g>>6&63,128|63&g))}return a})(i)},(s=typeof(o=function(){return c})=="function"?o.apply(u,[]):o)===void 0||(v.exports=s)}},r={};function f(v){var u=r[v];if(u!==void 0)return u.exports;var o=r[v]={exports:{}};return n[v](o,o.exports,f),o.exports}f.n=v=>{var u=v&&v.__esModule?()=>v.default:()=>v;return f.d(u,{a:u}),u},f.d=(v,u)=>{for(var o in u)f.o(u,o)&&!f.o(v,o)&&Object.defineProperty(v,o,{enumerable:!0,get:u[o]})},f.o=(v,u)=>Object.prototype.hasOwnProperty.call(v,u);var p={};return(()=>{f.d(p,{default:()=>U});const v=j=>!!j&&typeof j=="object"&&!Array.isArray(j);function u(j,...B){if(!B.length)return j;const x=B.shift();return x!==void 0&&v(j)&&v(x)?(j=Object.assign({},j),Object.keys(x).forEach((b=>{const C=j[b],E=x[b];Array.isArray(C)&&Array.isArray(E)?j[b]=E:v(C)&&v(E)?j[b]=u(Object.assign({},C),E):j[b]=E})),u(j,...B)):j}function o(j,B){const x=document.createElement("a");x.download=B,x.href=j,document.body.appendChild(x),x.click(),document.body.removeChild(x)}const s={L:.07,M:.15,Q:.25,H:.3};class c{constructor({svg:B,type:x,window:b}){this._svg=B,this._type=x,this._window=b}draw(B,x,b,C){let E;switch(this._type){case"dots":E=this._drawDot;break;case"classy":E=this._drawClassy;break;case"classy-rounded":E=this._drawClassyRounded;break;case"rounded":E=this._drawRounded;break;case"extra-rounded":E=this._drawExtraRounded;break;default:E=this._drawSquare}E.call(this,{x:B,y:x,size:b,getNeighbor:C})}_rotateFigure({x:B,y:x,size:b,rotation:C=0,draw:E}){var I;const M=B+b/2,k=x+b/2;E(),(I=this._element)===null||I===void 0||I.setAttribute("transform",`rotate(${180*C/Math.PI},${M},${k})`)}_basicDot(B){const{size:x,x:b,y:C}=B;this._rotateFigure(Object.assign(Object.assign({},B),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",String(b+x/2)),this._element.setAttribute("cy",String(C+x/2)),this._element.setAttribute("r",String(x/2))}}))}_basicSquare(B){const{size:x,x:b,y:C}=B;this._rotateFigure(Object.assign(Object.assign({},B),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",String(b)),this._element.setAttribute("y",String(C)),this._element.setAttribute("width",String(x)),this._element.setAttribute("height",String(x))}}))}_basicSideRounded(B){const{size:x,x:b,y:C}=B;this._rotateFigure(Object.assign(Object.assign({},B),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${b} ${C}v ${x}h `+x/2+`a ${x/2} ${x/2}, 0, 0, 0, 0 ${-x}`)}}))}_basicCornerRounded(B){const{size:x,x:b,y:C}=B;this._rotateFigure(Object.assign(Object.assign({},B),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${b} ${C}v ${x}h ${x}v `+-x/2+`a ${x/2} ${x/2}, 0, 0, 0, ${-x/2} ${-x/2}`)}}))}_basicCornerExtraRounded(B){const{size:x,x:b,y:C}=B;this._rotateFigure(Object.assign(Object.assign({},B),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${b} ${C}v ${x}h ${x}a ${x} ${x}, 0, 0, 0, ${-x} ${-x}`)}}))}_basicCornersRounded(B){const{size:x,x:b,y:C}=B;this._rotateFigure(Object.assign(Object.assign({},B),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${b} ${C}v `+x/2+`a ${x/2} ${x/2}, 0, 0, 0, ${x/2} ${x/2}h `+x/2+"v "+-x/2+`a ${x/2} ${x/2}, 0, 0, 0, ${-x/2} ${-x/2}`)}}))}_drawDot({x:B,y:x,size:b}){this._basicDot({x:B,y:x,size:b,rotation:0})}_drawSquare({x:B,y:x,size:b}){this._basicSquare({x:B,y:x,size:b,rotation:0})}_drawRounded({x:B,y:x,size:b,getNeighbor:C}){const E=C?+C(-1,0):0,I=C?+C(1,0):0,M=C?+C(0,-1):0,k=C?+C(0,1):0,T=E+I+M+k;if(T!==0)if(T>2||E&&I||M&&k)this._basicSquare({x:B,y:x,size:b,rotation:0});else{if(T===2){let Q=0;return E&&M?Q=Math.PI/2:M&&I?Q=Math.PI:I&&k&&(Q=-Math.PI/2),void this._basicCornerRounded({x:B,y:x,size:b,rotation:Q})}if(T===1){let Q=0;return M?Q=Math.PI/2:I?Q=Math.PI:k&&(Q=-Math.PI/2),void this._basicSideRounded({x:B,y:x,size:b,rotation:Q})}}else this._basicDot({x:B,y:x,size:b,rotation:0})}_drawExtraRounded({x:B,y:x,size:b,getNeighbor:C}){const E=C?+C(-1,0):0,I=C?+C(1,0):0,M=C?+C(0,-1):0,k=C?+C(0,1):0,T=E+I+M+k;if(T!==0)if(T>2||E&&I||M&&k)this._basicSquare({x:B,y:x,size:b,rotation:0});else{if(T===2){let Q=0;return E&&M?Q=Math.PI/2:M&&I?Q=Math.PI:I&&k&&(Q=-Math.PI/2),void this._basicCornerExtraRounded({x:B,y:x,size:b,rotation:Q})}if(T===1){let Q=0;return M?Q=Math.PI/2:I?Q=Math.PI:k&&(Q=-Math.PI/2),void this._basicSideRounded({x:B,y:x,size:b,rotation:Q})}}else this._basicDot({x:B,y:x,size:b,rotation:0})}_drawClassy({x:B,y:x,size:b,getNeighbor:C}){const E=C?+C(-1,0):0,I=C?+C(1,0):0,M=C?+C(0,-1):0,k=C?+C(0,1):0;E+I+M+k!==0?E||M?I||k?this._basicSquare({x:B,y:x,size:b,rotation:0}):this._basicCornerRounded({x:B,y:x,size:b,rotation:Math.PI/2}):this._basicCornerRounded({x:B,y:x,size:b,rotation:-Math.PI/2}):this._basicCornersRounded({x:B,y:x,size:b,rotation:Math.PI/2})}_drawClassyRounded({x:B,y:x,size:b,getNeighbor:C}){const E=C?+C(-1,0):0,I=C?+C(1,0):0,M=C?+C(0,-1):0,k=C?+C(0,1):0;E+I+M+k!==0?E||M?I||k?this._basicSquare({x:B,y:x,size:b,rotation:0}):this._basicCornerExtraRounded({x:B,y:x,size:b,rotation:Math.PI/2}):this._basicCornerExtraRounded({x:B,y:x,size:b,rotation:-Math.PI/2}):this._basicCornersRounded({x:B,y:x,size:b,rotation:Math.PI/2})}}const i={dot:"dot",square:"square",extraRounded:"extra-rounded"},l=Object.values(i);class a{constructor({svg:B,type:x,window:b}){this._svg=B,this._type=x,this._window=b}draw(B,x,b,C){let E;switch(this._type){case i.square:E=this._drawSquare;break;case i.extraRounded:E=this._drawExtraRounded;break;default:E=this._drawDot}E.call(this,{x:B,y:x,size:b,rotation:C})}_rotateFigure({x:B,y:x,size:b,rotation:C=0,draw:E}){var I;const M=B+b/2,k=x+b/2;E(),(I=this._element)===null||I===void 0||I.setAttribute("transform",`rotate(${180*C/Math.PI},${M},${k})`)}_basicDot(B){const{size:x,x:b,y:C}=B,E=x/7;this._rotateFigure(Object.assign(Object.assign({},B),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",`M ${b+x/2} ${C}a ${x/2} ${x/2} 0 1 0 0.1 0zm 0 ${E}a ${x/2-E} ${x/2-E} 0 1 1 -0.1 0Z`)}}))}_basicSquare(B){const{size:x,x:b,y:C}=B,E=x/7;this._rotateFigure(Object.assign(Object.assign({},B),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",`M ${b} ${C}v ${x}h ${x}v `+-x+`zM ${b+E} ${C+E}h `+(x-2*E)+"v "+(x-2*E)+"h "+(2*E-x)+"z")}}))}_basicExtraRounded(B){const{size:x,x:b,y:C}=B,E=x/7;this._rotateFigure(Object.assign(Object.assign({},B),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",`M ${b} ${C+2.5*E}v `+2*E+`a ${2.5*E} ${2.5*E}, 0, 0, 0, ${2.5*E} ${2.5*E}h `+2*E+`a ${2.5*E} ${2.5*E}, 0, 0, 0, ${2.5*E} ${2.5*-E}v `+-2*E+`a ${2.5*E} ${2.5*E}, 0, 0, 0, ${2.5*-E} ${2.5*-E}h `+-2*E+`a ${2.5*E} ${2.5*E}, 0, 0, 0, ${2.5*-E} ${2.5*E}M ${b+2.5*E} ${C+E}h `+2*E+`a ${1.5*E} ${1.5*E}, 0, 0, 1, ${1.5*E} ${1.5*E}v `+2*E+`a ${1.5*E} ${1.5*E}, 0, 0, 1, ${1.5*-E} ${1.5*E}h `+-2*E+`a ${1.5*E} ${1.5*E}, 0, 0, 1, ${1.5*-E} ${1.5*-E}v `+-2*E+`a ${1.5*E} ${1.5*E}, 0, 0, 1, ${1.5*E} ${1.5*-E}`)}}))}_drawDot({x:B,y:x,size:b,rotation:C}){this._basicDot({x:B,y:x,size:b,rotation:C})}_drawSquare({x:B,y:x,size:b,rotation:C}){this._basicSquare({x:B,y:x,size:b,rotation:C})}_drawExtraRounded({x:B,y:x,size:b,rotation:C}){this._basicExtraRounded({x:B,y:x,size:b,rotation:C})}}const h={dot:"dot",square:"square"},g=Object.values(h);class d{constructor({svg:B,type:x,window:b}){this._svg=B,this._type=x,this._window=b}draw(B,x,b,C){let E;E=this._type===h.square?this._drawSquare:this._drawDot,E.call(this,{x:B,y:x,size:b,rotation:C})}_rotateFigure({x:B,y:x,size:b,rotation:C=0,draw:E}){var I;const M=B+b/2,k=x+b/2;E(),(I=this._element)===null||I===void 0||I.setAttribute("transform",`rotate(${180*C/Math.PI},${M},${k})`)}_basicDot(B){const{size:x,x:b,y:C}=B;this._rotateFigure(Object.assign(Object.assign({},B),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",String(b+x/2)),this._element.setAttribute("cy",String(C+x/2)),this._element.setAttribute("r",String(x/2))}}))}_basicSquare(B){const{size:x,x:b,y:C}=B;this._rotateFigure(Object.assign(Object.assign({},B),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",String(b)),this._element.setAttribute("y",String(C)),this._element.setAttribute("width",String(x)),this._element.setAttribute("height",String(x))}}))}_drawDot({x:B,y:x,size:b,rotation:C}){this._basicDot({x:B,y:x,size:b,rotation:C})}_drawSquare({x:B,y:x,size:b,rotation:C}){this._basicSquare({x:B,y:x,size:b,rotation:C})}}const A="circle",y=[[1,1,1,1,1,1,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,1,1,1,1,1,1]],m=[[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]];class _{constructor(B,x){this._roundSize=b=>this._options.dotsOptions.roundSize?Math.floor(b):b,this._window=x,this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("width",String(B.width)),this._element.setAttribute("height",String(B.height)),this._element.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),B.dotsOptions.roundSize||this._element.setAttribute("shape-rendering","crispEdges"),this._element.setAttribute("viewBox",`0 0 ${B.width} ${B.height}`),this._defs=this._window.document.createElementNS("http://www.w3.org/2000/svg","defs"),this._element.appendChild(this._defs),this._imageUri=B.image,this._instanceId=_.instanceCount++,this._options=B}get width(){return this._options.width}get height(){return this._options.height}getElement(){return this._element}async drawQR(B){const x=B.getModuleCount(),b=Math.min(this._options.width,this._options.height)-2*this._options.margin,C=this._options.shape===A?b/Math.sqrt(2):b,E=this._roundSize(C/x);let I={hideXDots:0,hideYDots:0,width:0,height:0};if(this._qr=B,this._options.image){if(await this.loadImage(),!this._image)return;const{imageOptions:M,qrOptions:k}=this._options,T=M.imageSize*s[k.errorCorrectionLevel],Q=Math.floor(T*x*x);I=(function({originalHeight:H,originalWidth:Y,maxHiddenDots:W,maxHiddenAxisDots:J,dotSize:tt}){const F={x:0,y:0},L={x:0,y:0};if(H<=0||Y<=0||W<=0||tt<=0)return{height:0,width:0,hideYDots:0,hideXDots:0};const D=H/Y;return F.x=Math.floor(Math.sqrt(W/D)),F.x<=0&&(F.x=1),J&&J<F.x&&(F.x=J),F.x%2==0&&F.x--,L.x=F.x*tt,F.y=1+2*Math.ceil((F.x*D-1)/2),L.y=Math.round(L.x*D),(F.y*F.x>W||J&&J<F.y)&&(J&&J<F.y?(F.y=J,F.y%2==0&&F.x--):F.y-=2,L.y=F.y*tt,F.x=1+2*Math.ceil((F.y/D-1)/2),L.x=Math.round(L.y/D)),{height:L.y,width:L.x,hideYDots:F.y,hideXDots:F.x}})({originalWidth:this._image.width,originalHeight:this._image.height,maxHiddenDots:Q,maxHiddenAxisDots:x-14,dotSize:E})}this.drawBackground(),this.drawDots(((M,k)=>{var T,Q,H,Y,W,J;return!(this._options.imageOptions.hideBackgroundDots&&M>=(x-I.hideYDots)/2&&M<(x+I.hideYDots)/2&&k>=(x-I.hideXDots)/2&&k<(x+I.hideXDots)/2||!((T=y[M])===null||T===void 0)&&T[k]||!((Q=y[M-x+7])===null||Q===void 0)&&Q[k]||!((H=y[M])===null||H===void 0)&&H[k-x+7]||!((Y=m[M])===null||Y===void 0)&&Y[k]||!((W=m[M-x+7])===null||W===void 0)&&W[k]||!((J=m[M])===null||J===void 0)&&J[k-x+7])})),this.drawCorners(),this._options.image&&await this.drawImage({width:I.width,height:I.height,count:x,dotSize:E})}drawBackground(){var B,x,b;const C=this._element,E=this._options;if(C){const I=(B=E.backgroundOptions)===null||B===void 0?void 0:B.gradient,M=(x=E.backgroundOptions)===null||x===void 0?void 0:x.color;let k=E.height,T=E.width;if(I||M){const Q=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect");this._backgroundClipPath=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),this._backgroundClipPath.setAttribute("id",`clip-path-background-color-${this._instanceId}`),this._defs.appendChild(this._backgroundClipPath),!((b=E.backgroundOptions)===null||b===void 0)&&b.round&&(k=T=Math.min(E.width,E.height),Q.setAttribute("rx",String(k/2*E.backgroundOptions.round))),Q.setAttribute("x",String(this._roundSize((E.width-T)/2))),Q.setAttribute("y",String(this._roundSize((E.height-k)/2))),Q.setAttribute("width",String(T)),Q.setAttribute("height",String(k)),this._backgroundClipPath.appendChild(Q),this._createColor({options:I,color:M,additionalRotation:0,x:0,y:0,height:E.height,width:E.width,name:`background-color-${this._instanceId}`})}}}drawDots(B){var x,b;if(!this._qr)throw"QR code is not defined";const C=this._options,E=this._qr.getModuleCount();if(E>C.width||E>C.height)throw"The canvas is too small.";const I=Math.min(C.width,C.height)-2*C.margin,M=C.shape===A?I/Math.sqrt(2):I,k=this._roundSize(M/E),T=this._roundSize((C.width-E*k)/2),Q=this._roundSize((C.height-E*k)/2),H=new c({svg:this._element,type:C.dotsOptions.type,window:this._window});this._dotsClipPath=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),this._dotsClipPath.setAttribute("id",`clip-path-dot-color-${this._instanceId}`),this._defs.appendChild(this._dotsClipPath),this._createColor({options:(x=C.dotsOptions)===null||x===void 0?void 0:x.gradient,color:C.dotsOptions.color,additionalRotation:0,x:0,y:0,height:C.height,width:C.width,name:`dot-color-${this._instanceId}`});for(let Y=0;Y<E;Y++)for(let W=0;W<E;W++)B&&!B(Y,W)||!((b=this._qr)===null||b===void 0)&&b.isDark(Y,W)&&(H.draw(T+W*k,Q+Y*k,k,((J,tt)=>!(W+J<0||Y+tt<0||W+J>=E||Y+tt>=E)&&!(B&&!B(Y+tt,W+J))&&!!this._qr&&this._qr.isDark(Y+tt,W+J))),H._element&&this._dotsClipPath&&this._dotsClipPath.appendChild(H._element));if(C.shape===A){const Y=this._roundSize((I/k-E)/2),W=E+2*Y,J=T-Y*k,tt=Q-Y*k,F=[],L=this._roundSize(W/2);for(let D=0;D<W;D++){F[D]=[];for(let G=0;G<W;G++)D>=Y-1&&D<=W-Y&&G>=Y-1&&G<=W-Y||Math.sqrt((D-L)*(D-L)+(G-L)*(G-L))>L?F[D][G]=0:F[D][G]=this._qr.isDark(G-2*Y<0?G:G>=E?G-2*Y:G-Y,D-2*Y<0?D:D>=E?D-2*Y:D-Y)?1:0}for(let D=0;D<W;D++)for(let G=0;G<W;G++)F[D][G]&&(H.draw(J+G*k,tt+D*k,k,((z,X)=>{var et;return!!(!((et=F[D+X])===null||et===void 0)&&et[G+z])})),H._element&&this._dotsClipPath&&this._dotsClipPath.appendChild(H._element))}}drawCorners(){if(!this._qr)throw"QR code is not defined";const B=this._element,x=this._options;if(!B)throw"Element code is not defined";const b=this._qr.getModuleCount(),C=Math.min(x.width,x.height)-2*x.margin,E=x.shape===A?C/Math.sqrt(2):C,I=this._roundSize(E/b),M=7*I,k=3*I,T=this._roundSize((x.width-b*I)/2),Q=this._roundSize((x.height-b*I)/2);[[0,0,0],[1,0,Math.PI/2],[0,1,-Math.PI/2]].forEach((([H,Y,W])=>{var J,tt,F,L,D,G,z,X,et,at,lt,ct,it,ut;const ft=T+H*I*(b-7),dt=Q+Y*I*(b-7);let pt=this._dotsClipPath,ht=this._dotsClipPath;if((!((J=x.cornersSquareOptions)===null||J===void 0)&&J.gradient||!((tt=x.cornersSquareOptions)===null||tt===void 0)&&tt.color)&&(pt=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),pt.setAttribute("id",`clip-path-corners-square-color-${H}-${Y}-${this._instanceId}`),this._defs.appendChild(pt),this._cornersSquareClipPath=this._cornersDotClipPath=ht=pt,this._createColor({options:(F=x.cornersSquareOptions)===null||F===void 0?void 0:F.gradient,color:(L=x.cornersSquareOptions)===null||L===void 0?void 0:L.color,additionalRotation:W,x:ft,y:dt,height:M,width:M,name:`corners-square-color-${H}-${Y}-${this._instanceId}`})),((D=x.cornersSquareOptions)===null||D===void 0?void 0:D.type)&&l.includes(x.cornersSquareOptions.type)){const Et=new a({svg:this._element,type:x.cornersSquareOptions.type,window:this._window});Et.draw(ft,dt,M,W),Et._element&&pt&&pt.appendChild(Et._element)}else{const Et=new c({svg:this._element,type:((G=x.cornersSquareOptions)===null||G===void 0?void 0:G.type)||x.dotsOptions.type,window:this._window});for(let yt=0;yt<y.length;yt++)for(let At=0;At<y[yt].length;At++)!((z=y[yt])===null||z===void 0)&&z[At]&&(Et.draw(ft+At*I,dt+yt*I,I,((Yt,Ft)=>{var te;return!!(!((te=y[yt+Ft])===null||te===void 0)&&te[At+Yt])})),Et._element&&pt&&pt.appendChild(Et._element))}if((!((X=x.cornersDotOptions)===null||X===void 0)&&X.gradient||!((et=x.cornersDotOptions)===null||et===void 0)&&et.color)&&(ht=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),ht.setAttribute("id",`clip-path-corners-dot-color-${H}-${Y}-${this._instanceId}`),this._defs.appendChild(ht),this._cornersDotClipPath=ht,this._createColor({options:(at=x.cornersDotOptions)===null||at===void 0?void 0:at.gradient,color:(lt=x.cornersDotOptions)===null||lt===void 0?void 0:lt.color,additionalRotation:W,x:ft+2*I,y:dt+2*I,height:k,width:k,name:`corners-dot-color-${H}-${Y}-${this._instanceId}`})),((ct=x.cornersDotOptions)===null||ct===void 0?void 0:ct.type)&&g.includes(x.cornersDotOptions.type)){const Et=new d({svg:this._element,type:x.cornersDotOptions.type,window:this._window});Et.draw(ft+2*I,dt+2*I,k,W),Et._element&&ht&&ht.appendChild(Et._element)}else{const Et=new c({svg:this._element,type:((it=x.cornersDotOptions)===null||it===void 0?void 0:it.type)||x.dotsOptions.type,window:this._window});for(let yt=0;yt<m.length;yt++)for(let At=0;At<m[yt].length;At++)!((ut=m[yt])===null||ut===void 0)&&ut[At]&&(Et.draw(ft+At*I,dt+yt*I,I,((Yt,Ft)=>{var te;return!!(!((te=m[yt+Ft])===null||te===void 0)&&te[At+Yt])})),Et._element&&ht&&ht.appendChild(Et._element))}}))}loadImage(){return new Promise(((B,x)=>{var b;const C=this._options;if(!C.image)return x("Image is not defined");if(!((b=C.nodeCanvas)===null||b===void 0)&&b.loadImage)C.nodeCanvas.loadImage(C.image).then((E=>{var I,M;if(this._image=E,this._options.imageOptions.saveAsBlob){const k=(I=C.nodeCanvas)===null||I===void 0?void 0:I.createCanvas(this._image.width,this._image.height);(M=k?.getContext("2d"))===null||M===void 0||M.drawImage(E,0,0),this._imageUri=k?.toDataURL()}B()})).catch(x);else{const E=new this._window.Image;typeof C.imageOptions.crossOrigin=="string"&&(E.crossOrigin=C.imageOptions.crossOrigin),this._image=E,E.onload=async()=>{this._options.imageOptions.saveAsBlob&&(this._imageUri=await(async function(I,M){return new Promise((k=>{const T=new M.XMLHttpRequest;T.onload=function(){const Q=new M.FileReader;Q.onloadend=function(){k(Q.result)},Q.readAsDataURL(T.response)},T.open("GET",I),T.responseType="blob",T.send()}))})(C.image||"",this._window)),B()},E.src=C.image}}))}async drawImage({width:B,height:x,count:b,dotSize:C}){const E=this._options,I=this._roundSize((E.width-b*C)/2),M=this._roundSize((E.height-b*C)/2),k=I+this._roundSize(E.imageOptions.margin+(b*C-B)/2),T=M+this._roundSize(E.imageOptions.margin+(b*C-x)/2),Q=B-2*E.imageOptions.margin,H=x-2*E.imageOptions.margin,Y=this._window.document.createElementNS("http://www.w3.org/2000/svg","image");Y.setAttribute("href",this._imageUri||""),Y.setAttribute("xlink:href",this._imageUri||""),Y.setAttribute("x",String(k)),Y.setAttribute("y",String(T)),Y.setAttribute("width",`${Q}px`),Y.setAttribute("height",`${H}px`),this._element.appendChild(Y)}_createColor({options:B,color:x,additionalRotation:b,x:C,y:E,height:I,width:M,name:k}){const T=M>I?M:I,Q=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect");if(Q.setAttribute("x",String(C)),Q.setAttribute("y",String(E)),Q.setAttribute("height",String(I)),Q.setAttribute("width",String(M)),Q.setAttribute("clip-path",`url('#clip-path-${k}')`),B){let H;if(B.type==="radial")H=this._window.document.createElementNS("http://www.w3.org/2000/svg","radialGradient"),H.setAttribute("id",k),H.setAttribute("gradientUnits","userSpaceOnUse"),H.setAttribute("fx",String(C+M/2)),H.setAttribute("fy",String(E+I/2)),H.setAttribute("cx",String(C+M/2)),H.setAttribute("cy",String(E+I/2)),H.setAttribute("r",String(T/2));else{const Y=((B.rotation||0)+b)%(2*Math.PI),W=(Y+2*Math.PI)%(2*Math.PI);let J=C+M/2,tt=E+I/2,F=C+M/2,L=E+I/2;W>=0&&W<=.25*Math.PI||W>1.75*Math.PI&&W<=2*Math.PI?(J-=M/2,tt-=I/2*Math.tan(Y),F+=M/2,L+=I/2*Math.tan(Y)):W>.25*Math.PI&&W<=.75*Math.PI?(tt-=I/2,J-=M/2/Math.tan(Y),L+=I/2,F+=M/2/Math.tan(Y)):W>.75*Math.PI&&W<=1.25*Math.PI?(J+=M/2,tt+=I/2*Math.tan(Y),F-=M/2,L-=I/2*Math.tan(Y)):W>1.25*Math.PI&&W<=1.75*Math.PI&&(tt+=I/2,J+=M/2/Math.tan(Y),L-=I/2,F-=M/2/Math.tan(Y)),H=this._window.document.createElementNS("http://www.w3.org/2000/svg","linearGradient"),H.setAttribute("id",k),H.setAttribute("gradientUnits","userSpaceOnUse"),H.setAttribute("x1",String(Math.round(J))),H.setAttribute("y1",String(Math.round(tt))),H.setAttribute("x2",String(Math.round(F))),H.setAttribute("y2",String(Math.round(L)))}B.colorStops.forEach((({offset:Y,color:W})=>{const J=this._window.document.createElementNS("http://www.w3.org/2000/svg","stop");J.setAttribute("offset",100*Y+"%"),J.setAttribute("stop-color",W),H.appendChild(J)})),Q.setAttribute("fill",`url('#${k}')`),this._defs.appendChild(H)}else x&&Q.setAttribute("fill",x);this._element.appendChild(Q)}}_.instanceCount=0;const w=_,S="canvas",O={};for(let j=0;j<=40;j++)O[j]=j;const P={type:S,shape:"square",width:300,height:300,data:"",margin:0,qrOptions:{typeNumber:O[0],mode:void 0,errorCorrectionLevel:"Q"},imageOptions:{saveAsBlob:!0,hideBackgroundDots:!0,imageSize:.4,crossOrigin:void 0,margin:0},dotsOptions:{type:"square",color:"#000",roundSize:!0},backgroundOptions:{round:0,color:"#fff"}};function N(j){const B=Object.assign({},j);if(!B.colorStops||!B.colorStops.length)throw"Field 'colorStops' is required in gradient";return B.rotation?B.rotation=Number(B.rotation):B.rotation=0,B.colorStops=B.colorStops.map((x=>Object.assign(Object.assign({},x),{offset:Number(x.offset)}))),B}function q(j){const B=Object.assign({},j);return B.width=Number(B.width),B.height=Number(B.height),B.margin=Number(B.margin),B.imageOptions=Object.assign(Object.assign({},B.imageOptions),{hideBackgroundDots:!!B.imageOptions.hideBackgroundDots,imageSize:Number(B.imageOptions.imageSize),margin:Number(B.imageOptions.margin)}),B.margin>Math.min(B.width,B.height)&&(B.margin=Math.min(B.width,B.height)),B.dotsOptions=Object.assign({},B.dotsOptions),B.dotsOptions.gradient&&(B.dotsOptions.gradient=N(B.dotsOptions.gradient)),B.cornersSquareOptions&&(B.cornersSquareOptions=Object.assign({},B.cornersSquareOptions),B.cornersSquareOptions.gradient&&(B.cornersSquareOptions.gradient=N(B.cornersSquareOptions.gradient))),B.cornersDotOptions&&(B.cornersDotOptions=Object.assign({},B.cornersDotOptions),B.cornersDotOptions.gradient&&(B.cornersDotOptions.gradient=N(B.cornersDotOptions.gradient))),B.backgroundOptions&&(B.backgroundOptions=Object.assign({},B.backgroundOptions),B.backgroundOptions.gradient&&(B.backgroundOptions.gradient=N(B.backgroundOptions.gradient))),B}var Z=f(873),K=f.n(Z);function rt(j){if(!j)throw new Error("Extension must be defined");j[0]==="."&&(j=j.substring(1));const B={bmp:"image/bmp",gif:"image/gif",ico:"image/vnd.microsoft.icon",jpeg:"image/jpeg",jpg:"image/jpeg",png:"image/png",svg:"image/svg+xml",tif:"image/tiff",tiff:"image/tiff",webp:"image/webp",pdf:"application/pdf"}[j.toLowerCase()];if(!B)throw new Error(`Extension "${j}" is not supported`);return B}class ${constructor(B){B?.jsdom?this._window=new B.jsdom("",{resources:"usable"}).window:this._window=window,this._options=B?q(u(P,B)):P,this.update()}static _clearContainer(B){B&&(B.innerHTML="")}_setupSvg(){if(!this._qr)return;const B=new w(this._options,this._window);this._svg=B.getElement(),this._svgDrawingPromise=B.drawQR(this._qr).then((()=>{var x;this._svg&&((x=this._extension)===null||x===void 0||x.call(this,B.getElement(),this._options))}))}_setupCanvas(){var B,x;this._qr&&(!((B=this._options.nodeCanvas)===null||B===void 0)&&B.createCanvas?(this._nodeCanvas=this._options.nodeCanvas.createCanvas(this._options.width,this._options.height),this._nodeCanvas.width=this._options.width,this._nodeCanvas.height=this._options.height):(this._domCanvas=document.createElement("canvas"),this._domCanvas.width=this._options.width,this._domCanvas.height=this._options.height),this._setupSvg(),this._canvasDrawingPromise=(x=this._svgDrawingPromise)===null||x===void 0?void 0:x.then((()=>{var b;if(!this._svg)return;const C=this._svg,E=new this._window.XMLSerializer().serializeToString(C),I=btoa(E),M=`data:${rt("svg")};base64,${I}`;if(!((b=this._options.nodeCanvas)===null||b===void 0)&&b.loadImage)return this._options.nodeCanvas.loadImage(M).then((k=>{var T,Q;k.width=this._options.width,k.height=this._options.height,(Q=(T=this._nodeCanvas)===null||T===void 0?void 0:T.getContext("2d"))===null||Q===void 0||Q.drawImage(k,0,0)}));{const k=new this._window.Image;return new Promise((T=>{k.onload=()=>{var Q,H;(H=(Q=this._domCanvas)===null||Q===void 0?void 0:Q.getContext("2d"))===null||H===void 0||H.drawImage(k,0,0),T()},k.src=M}))}})))}async _getElement(B="png"){if(!this._qr)throw"QR code is empty";return B.toLowerCase()==="svg"?(this._svg&&this._svgDrawingPromise||this._setupSvg(),await this._svgDrawingPromise,this._svg):((this._domCanvas||this._nodeCanvas)&&this._canvasDrawingPromise||this._setupCanvas(),await this._canvasDrawingPromise,this._domCanvas||this._nodeCanvas)}update(B){$._clearContainer(this._container),this._options=B?q(u(this._options,B)):this._options,this._options.data&&(this._qr=K()(this._options.qrOptions.typeNumber,this._options.qrOptions.errorCorrectionLevel),this._qr.addData(this._options.data,this._options.qrOptions.mode||(function(x){switch(!0){case/^[0-9]*$/.test(x):return"Numeric";case/^[0-9A-Z $%*+\-./:]*$/.test(x):return"Alphanumeric";default:return"Byte"}})(this._options.data)),this._qr.make(),this._options.type===S?this._setupCanvas():this._setupSvg(),this.append(this._container))}append(B){if(B){if(typeof B.appendChild!="function")throw"Container should be a single DOM node";this._options.type===S?this._domCanvas&&B.appendChild(this._domCanvas):this._svg&&B.appendChild(this._svg),this._container=B}}applyExtension(B){if(!B)throw"Extension function should be defined.";this._extension=B,this.update()}deleteExtension(){this._extension=void 0,this.update()}async getRawData(B="png"){if(!this._qr)throw"QR code is empty";const x=await this._getElement(B),b=rt(B);if(!x)return null;if(B.toLowerCase()==="svg"){const C=`<?xml version="1.0" standalone="no"?>\r
477
+ ${new this._window.XMLSerializer().serializeToString(x)}`;return typeof Blob>"u"||this._options.jsdom?Buffer.from(C):new Blob([C],{type:b})}return new Promise((C=>{const E=x;if("toBuffer"in E)if(b==="image/png")C(E.toBuffer(b));else if(b==="image/jpeg")C(E.toBuffer(b));else{if(b!=="application/pdf")throw Error("Unsupported extension");C(E.toBuffer(b))}else"toBlob"in E&&E.toBlob(C,b,1)}))}async download(B){if(!this._qr)throw"QR code is empty";if(typeof Blob>"u")throw"Cannot download in Node.js, call getRawData instead.";let x="png",b="qr";typeof B=="string"?(x=B,console.warn("Extension is deprecated as argument for 'download' method, please pass object { name: '...', extension: '...' } as argument")):typeof B=="object"&&B!==null&&(B.name&&(b=B.name),B.extension&&(x=B.extension));const C=await this._getElement(x);if(C)if(x.toLowerCase()==="svg"){let E=new XMLSerializer().serializeToString(C);E=`<?xml version="1.0" standalone="no"?>\r
478
+ `+E,o(`data:${rt(x)};charset=utf-8,${encodeURIComponent(E)}`,`${b}.svg`)}else o(C.toDataURL(rt(x)),`${b}.${x}`)}}const U=$})(),p.default})()))})(ps)),ps.exports}var qN=WN();const XN=mc(qN);var Gm=(e=>(e.rounded="rounded",e.dots="dots",e.classy="classy",e.classy_rounded="classy-rounded",e.square="square",e.extra_rounded="extra-rounded",e))(Gm||{}),$m=(e=>(e.dot="dot",e.square="square",e.extra_rounded="extra-rounded",e))($m||{}),Hm=(e=>(e.dot="dot",e.square="square",e))(Hm||{}),zm=(e=>(e.L="L",e.M="M",e.Q="Q",e.H="H",e))(zm||{});class VN{constructor(){this.width=300,this.height=300,this.type="canvas",this.data=" ",this.margin=10,this.qrOptions={errorCorrectionLevel:"M"},this.dotsOptions={color:"#000000",type:"square"},this.cornersSquareOptions={color:"#000000",type:"square"},this.cornersDotOptions={color:"#000000",type:"square"},this.backgroundOptions={color:"#ffffff"}}}const Ma=class Ma{constructor(t,n){this.canvas=t,this.editor=n}async hookTransform(t){if(t.extensionType==="qrcode"){const n=this._paramsToOption(t.extension),r=await this._getBase64Str(n);t.src=r}}async _getBase64Str(t){const n=this.canvas.getZoom()||1,r=window&&window.devicePixelRatio||1;let f=n*r;const p=4;(!Number.isFinite(f)||f<=0)&&(f=1),f=Math.min(f,p);const v={...t,width:Math.round((t.width||300)*f),height:Math.round((t.height||t.width||300)*f),margin:Math.round((t.margin||0)*f)},o=await new XN(v).getRawData("png");return o&&await ze.blobToBase64(o)||""}_defaultBarcodeOption(){return{value:"https://kuaitu.cc",width:300,margin:10,errorCorrectionLevel:"M",dotsColor:"#000000",dotsType:"square",cornersSquareColor:"#000000",cornersSquareType:"square",cornersDotColor:"#000000",cornersDotType:"square",background:"#ffffff"}}_paramsToOption(t){const n=Number.isFinite(t.width),r=Number.isFinite(t.height),f=n&&r?Math.max(t.width,t.height):n?t.width:r?t.height:void 0,p={width:f,height:f??t.width,type:"canvas",data:t.value!=null?String(t.value):void 0,margin:t.margin,qrOptions:{errorCorrectionLevel:t.errorCorrectionLevel},dotsOptions:{color:t.dotsColor,type:t.dotsType},cornersSquareOptions:{color:t.cornersSquareColor,type:t.cornersSquareType},cornersDotOptions:{color:t.cornersDotColor,type:t.cornersDotType},backgroundOptions:{color:t.background}},v=new VN,u=Object.assign({},v,p);return u.qrOptions=Object.assign({},v.qrOptions,p.qrOptions),u.dotsOptions=Object.assign({},v.dotsOptions,p.dotsOptions),u.cornersSquareOptions=Object.assign({},v.cornersSquareOptions,p.cornersSquareOptions),u.cornersDotOptions=Object.assign({},v.cornersDotOptions,p.cornersDotOptions),u.backgroundOptions=Object.assign({},v.backgroundOptions,p.backgroundOptions),(!u.data||typeof u.data=="string"&&u.data.trim()==="")&&(u.data=v.data),u}async _updateQrCodeImage(t,n=!1){const r=t.get("extension");if(!r)return;const f=async()=>{const p=t.getScaledWidth(),v=t.getScaledHeight(),u=Math.max(p,v),o={...r,width:u,height:u},s=this._paramsToOption(o);try{const c=await this._getBase64Str(s);await new Promise(i=>{t.setSrc(c,()=>{this._setImageScale(t,p,v),t.set("extension",o),this.canvas.renderAll(),i()})})}catch(c){console.error(c)}};n?await f():setTimeout(f,300)}_setImageScale(t,n,r){const f=t.width||0,p=t.height||0;if(f>0&&p>0){const v=n/f,u=r/p;t.set({scaleX:v,scaleY:u})}}async addQrCode(t,n,r){const f={...this._defaultBarcodeOption(),...n||{},...t?{value:t}:{}},p=ue(this.editor),{processed:v,originByUnit:u}=Qe(f,p,r,["left","top","width","height","margin"]),o={...f,...v},s={...o,width:Number.isFinite(o.width)&&o.width>0?o.width:this._defaultBarcodeOption().width,height:Number.isFinite(o.height)&&o.height>0?o.height:o.width,margin:Number.isFinite(o.margin)&&o.margin>=0?o.margin:this._defaultBarcodeOption().margin},c=this._paramsToOption(s),i=await this._getBase64Str(c);return new Promise(l=>{V.fabric.Image.fromURL(i,a=>{const h=Number.isFinite(v.left)?v.left:0,g=Number.isFinite(v.top)?v.top:0;a.set({left:h,top:g,extensionType:"qrcode",extension:s,imageSmoothing:!1});const d=typeof s.width=="number"?s.width:a.width??0,A=typeof s.height=="number"?s.height:d;this._setImageScale(a,d,A);const m={...u[p]||{}};m.height===void 0&&m.width!==void 0&&(m.height=m.width),a._originSize={[p]:m},a.setExtension=async _=>{const S={...a.get("extension")||{},..._||{}};a.set("extension",S),await this._updateQrCodeImage(a,!0)},a.setExtensionByUnit=async(_,w)=>{const S=ue(this.editor),{processed:O,originByUnit:P}=Qe(_||{},S,w),N=this.editor.getPrecision?.(),q=Ae(P[S]||{},N),Z=a._originSize||{},K=Z[S]||{};K.extension={...K.extension||{},...q},a._originSize={...Z,[S]:K};const $={...a.get("extension")||{},...O};a.set("extension",$),await this._updateQrCodeImage(a,!0)},a.off?.("modified"),a.off?.("scaled"),a.on("modified",async _=>{const w=_?.target||a;await this._updateQrCodeImage(w,!0)}),a.on("scaled",async()=>{await this._updateQrCodeImage(a,!0)}),l(a)},{crossOrigin:"anonymous"})})}async setQrCode(t){try{const n=this._paramsToOption(t),r=await this._getBase64Str(n),f=this.canvas.getActiveObjects()[0];V.fabric.Image.fromURL(r,p=>{p.set({left:f.left,top:f.top,extensionType:"qrcode",extension:{...t}}),p.scaleToWidth(f.getScaledWidth()),p.off("modified"),p.off("scaled"),p.on("modified",async v=>{const u=v?.target||p;await this._updateQrCodeImage(u,!0)}),p.on("scaled",async()=>{await this._updateQrCodeImage(p,!0)}),this.editor.del(),this.canvas.add(p),this.canvas.setActiveObject(p)},{crossOrigin:"anonymous"})}catch(n){console.log(n)}}getQrCodeTypes(){return{DotsType:Object.values(Gm),CornersType:Object.values($m),cornersDotType:Object.values(Hm),errorCorrectionLevelType:Object.values(zm)}}destroy(){console.log("pluginDestroy")}};Ma.pluginName="QrCodePlugin",Ma.apis=["addQrCode","setQrCode","getQrCodeTypes"];let ca=Ma;const Pa=class Pa{constructor(t,n){this.canvas=t,this.editor=n}addImage(t){return new Promise((n,r)=>{const f=new Image;f.crossOrigin="anonymous",f.onload=()=>n(f),f.onerror=()=>r(),f.src=t})}async imageStrokeDraw(t,n,r="source-over"){const f=this.canvas.getActiveObject();if(!f)return;const p=f.originWidth||0,v=f.originHeight||0,u=f?.originSrc||f.getSrc();let o=document.createElement("canvas");const s=o.getContext("2d");if(!s)return;if(n===0){f.setSrc(u,()=>{f.canvas?.renderAll()});return}s.save(),s.clearRect(0,0,o.width,o.height),s.restore(),o.width=p+n*2,o.height=v+n*2;const c=[-1,-1,0,-1,1,-1,-1,0,1,0,-1,1,0,1,1,1],i=await this.addImage(u);if(!i)return;for(let a=0;a<c.length;a+=2)s.drawImage(i,n+c[a]*n,n+c[a+1]*n,p,v);s.globalCompositeOperation="source-in",s.fillStyle=t,s.fillRect(0,0,p+n*2,v+n*2),s.globalCompositeOperation=r,s.drawImage(i,n,n,p,v);const l=o?.toDataURL();o=null,l&&f.setSrc(l,()=>{f.canvas?.renderAll()})}destroy(){}};Pa.pluginName="ImageStroke",Pa.apis=["imageStrokeDraw"];let la=Pa;const Bi=class Bi{constructor(t,n){this.canvas=t,this.editor=n,this.minSize={width:1,height:1},this.barOpts={bWidth:30,bHeight:6,bPadding:10},this.hasCreatedBar=!1,this.isDragging=!1,this.dragEl=null,this.startPoints={x:0,y:0},this.barOffset={x:0,y:0},this.wsOffset={left:0,top:0,width:0,height:0},this.eventHandler={render:Bn(this.renderBars.bind(this),50),onDragging:Bn(this.onDragging.bind(this),30)},this._init(),this._initResizeObserve(),this._addListeners()}_init(){const t=document.querySelector("#workspace");if(!t)throw new Error("element #workspace is missing, plz check!");this.workspaceEl=t}_initResizeObserve(){new ResizeObserver(Bn(()=>{this.renderBars()},50)).observe(this.workspaceEl)}renderBars(){const t=this.canvas.viewportTransform,[n,,,r,f,p]=t||[],v=this.getWorkspase(),u=v.width*n,o=v.height*r,s=v.left*n,c=v.top*r,{bWidth:i,bHeight:l,bPadding:a}=this.barOpts;if(!t)return;const h=this._getBarFromType("left");h.style.left=`${f+s-l-a}px`,h.style.top=`${p+c+o/2-i/2}px`;const g=this._getBarFromType("right");g.style.left=`${f+s+u+a}px`,g.style.top=`${p+c+o/2-i/2}px`;const d=this._getBarFromType("top");d.style.left=`${f+s+u/2-i/2}px`,d.style.top=`${p+c-l-a}px`;const A=this._getBarFromType("bottom");A.style.left=`${f+s+u/2-i/2}px`,A.style.top=`${p+c+o+a}px`,this.hasCreatedBar||(this.hasCreatedBar=!0,this._watchDrag())}_getBarFromType(t){let n=document.querySelector(`#resize-${t}-bar`);return n||(n=document.createElement("div"),n.id=`resize-${t}-bar`,n.className="resize-bar",["left","right"].includes(t)?n.classList.add("horizontal"):n.classList.add("vertical"),this.workspaceEl.appendChild(n),n)}_watchDrag(){Array.from(document.getElementsByClassName("resize-bar")).forEach(n=>{n.addEventListener("mousedown",r=>{this.isDragging=!0,this.dragEl=n,this.dragEl.classList.add("active"),this.startPoints={x:r.clientX,y:r.clientY},this.barOffset={x:n.offsetLeft,y:n.offsetTop};const f=this.getWorkspase(),{width:p,height:v,left:u,top:o}=f;this.wsOffset={width:p,height:v,left:u,top:o}})}),document.addEventListener("mousemove",this.eventHandler.onDragging),document.addEventListener("mouseup",()=>{this.isDragging&&this.dragEl&&(this.isDragging=!1,this.dragEl.classList.remove("active"),this.dragEl=null,this.canvas.defaultCursor="default")})}onDragging(t){if(this.isDragging&&this.dragEl){const n=this.getWorkspase(),r=this.canvas.viewportTransform,[f,,,p]=r||[],v=t.clientX-this.startPoints.x,u=t.clientY-this.startPoints.y,o=v/f,s=u/p,c=this.dragEl.id.split("-")[1];let i=0;switch(c){case"left":i=Math.round(this.wsOffset.width-o*2),i>=this.minSize.width?(this.dragEl.style.left=`${this.barOffset.x+v}px`,n.set("left",this.wsOffset.left+o*2),n.set("width",i),this.editor.syncOriginSizeByUnit(i,void 0)):(n.set("left",this.wsOffset.left+this.wsOffset.width-this.minSize.width),n.set("width",this.minSize.width),this.editor.syncOriginSizeByUnit(this.minSize.width,void 0));break;case"right":i=Math.round(this.wsOffset.width+o*2),i>=this.minSize.width?(this.dragEl.style.left=`${this.barOffset.x+v}px`,n.set("width",i),this.editor.syncOriginSizeByUnit(i,void 0)):(n.set("width",this.minSize.width),this.editor.syncOriginSizeByUnit(this.minSize.width,void 0));break;case"top":i=Math.round(this.wsOffset.height-s*2),i>=this.minSize.height?(this.dragEl.style.top=`${this.barOffset.y+u}px`,n.set("top",this.wsOffset.top+s*2),n.set("height",i),this.editor.syncOriginSizeByUnit(void 0,i)):(n.set("top",this.wsOffset.top+this.wsOffset.height-this.minSize.height),n.set("height",this.minSize.height),this.editor.syncOriginSizeByUnit(void 0,this.minSize.height));break;case"bottom":i=Math.round(this.wsOffset.height+s*2),i>=this.minSize.height?(this.dragEl.style.top=`${this.barOffset.y+u}px`,n.set("height",i),this.editor.syncOriginSizeByUnit(void 0,i)):(n.set("height",this.minSize.height),this.editor.syncOriginSizeByUnit(void 0,this.minSize.height));break}this.editor.setCenterFromObject(n),n.clone(h=>{this.canvas.clipPath=h,this.canvas.requestRenderAll()}),["left","right"].includes(c)?this.canvas.defaultCursor="ew-resize":this.canvas.defaultCursor="ns-resize";let l=n.width,a=n.height;this.editor.getUnit()!=="px"&&({width:l,height:a}=this.editor.getOriginSize()),this.editor.emit("sizeChange",{width:l,height:a})}}_addListeners(){this.canvas.on("after:render",this.eventHandler.render)}getWorkspase(){return this.canvas.getObjects().find(t=>t.id==="workspace")}destroy(){console.log("pluginDestroy")}};Bi.pluginName="ResizePlugin",Bi.events=[],Bi.apis=[];let ua=Bi;const JN="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12%2022C17.5228%2022%2022%2017.5228%2022%2012C22%206.47715%2017.5228%202%2012%202C6.47715%202%202%206.47715%202%2012C2%2017.5228%206.47715%2022%2012%2022Z'%20stroke='black'%20fill='white'%20stroke-opacity='0.3'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M9%2011V10C9%208.34%209.5%207%2012%207C14.5%207%2015%208.34%2015%2010V11'%20stroke='%23292D32'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M12%2014.6C12.3314%2014.6%2012.6%2014.3314%2012.6%2014C12.6%2013.6687%2012.3314%2013.4%2012%2013.4C11.6686%2013.4%2011.4%2013.6687%2011.4%2014C11.4%2014.3314%2011.6686%2014.6%2012%2014.6Z'%20stroke='%23292D32'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M14.5%2017H9.5C7.5%2017%207%2016.5%207%2014.5V13.5C7%2011.5%207.5%2011%209.5%2011H14.5C16.5%2011%2017%2011.5%2017%2013.5V14.5C17%2016.5%2016.5%2017%2014.5%2017Z'%20stroke='%23292D32'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e";var $u=(e=>(e.lockMovementX="lockMovementX",e.lockMovementY="lockMovementY",e.lockRotation="lockRotation",e.lockScalingX="lockScalingX",e.lockScalingY="lockScalingY",e))($u||{}),Ym=(e=>(e.bl="bl",e.br="br",e.mb="mb",e.ml="ml",e.mr="mr",e.mt="mt",e.tl="tl",e.tr="tr",e.mtr="mtr",e.lock="lock",e))(Ym||{});const Qa=class Qa{constructor(t,n){this.canvas=t,this.editor=n,this.init()}init(){const t=document.createElement("img");t.src=JN;const n=this;function r(p,v,u,o,s){p.save(),p.translate(v,u);const i=s.angle;p.rotate(V.fabric.util.degreesToRadians(i)),p.drawImage(t,-25/2,-25/2,25,25),p.restore()}function f(p,v){return n.unLock(),!0}V.fabric.Object.prototype.controls.lock=new V.fabric.Control({x:.5,y:.5,offsetY:0,cursorStyle:"pointer",mouseUpHandler:f,render:r}),V.fabric.Textbox.prototype.controls.lock=new V.fabric.Control({x:.5,y:.5,offsetY:0,cursorStyle:"pointer",mouseUpHandler:f,render:r}),this.canvas.on("selection:created",()=>this.renderCornerByActiveObj()),this.canvas.on("selection:updated",()=>this.renderCornerByActiveObj()),V.fabric.Canvas.prototype._groupSelectedObjects=function(p){const v=this._collectObjects(p);let u;for(let o=v.length-1;o>=0;o--)v[o].lockMovementX&&v.splice(o,1);v.length===1?this.setActiveObject(v[0],p):v.length>1&&(u=new V.fabric.ActiveSelection(v.reverse(),{canvas:this}),this.setActiveObject(u,p))},V.fabric.Canvas.prototype._handleGrouping=function(p,v){const u=this._activeObject;u.__corner||v.lockMovementX||u.lockMovementX||v===u&&(v=this.findTarget(p,!0),!v||!v.selectable||v.lockMovementX)||(u&&u.type==="activeSelection"?this._updateActiveSelection(v,p):this._createActiveSelection(v,p))}}controlCornersVisible(t){const n=t.lockMovementX;Object.values(Ym).forEach(r=>{r==="lock"?t.setControlVisible(r,n):t.setControlVisible(r,!n)})}renderCornerByActiveObj(){const t=this.canvas.getActiveObjects().filter(n=>!(n instanceof V.fabric.GuideLine));if(t&&t.length===1){const n=t[0];this.controlCornersVisible(n)}else if(t&&t.length>1){const n=this.canvas.getActiveObject();n&&this.controlCornersVisible(n)}}hookImportAfter(){return this.canvas.forEachObject(t=>{t.hasControls===!1&&t.selectable===!1&&(this.canvas.setActiveObject(t),this.lock())}),Promise.resolve()}lock(){const t=this.canvas.getActiveObject();t&&(Object.values($u).forEach(n=>{t[n]=!0}),this.controlCornersVisible(t),this.canvas.renderAll(),this.editor.emit(_s.ONE,[t]))}unLock(){const t=this.canvas.getActiveObject();t&&(t.hasControls=!0,t.selectable=!0,t.evented=!0,Object.values($u).forEach(n=>{t[n]=!1}),this.controlCornersVisible(t),this.canvas.renderAll(),this.editor.emit(_s.ONE,[t]))}contextMenu(){const t=this.editor.getSelectMode(),n=this.canvas.getActiveObject();if(t===ja.ONE&&n)return n.selectable?[{text:"锁定",hotkey:"",onclick:()=>this.lock()}]:[{text:"解锁",hotkey:"",onclick:()=>this.unLock()}]}destroy(){console.log("pluginDestroy")}};Qa.pluginName="LockPlugin",Qa.apis=["lock","unLock"];let ha=Qa;const Fa=class Fa{constructor(t,n){this.canvas=t,this.editor=n,this.editor=n,this.canvas=t}addObject(t,n){const{event:r=!1,scale:f=!1,center:p=!0}=n||{};t.set({id:re()}),f&&this._toScale(t),r&&this._toEvent(t,r),this.canvas.add(t),!r&&p&&this._toCenter(t),t.syncOriginSizeByUnit(["left","top"]),this.canvas.setActiveObject(t),this.canvas.renderAll(),this.editor.saveState()}_toEvent(t,n){const{left:r,top:f}=this.canvas.getSelectionElement().getBoundingClientRect();if(n.x<r||n.y<f||t.width===void 0)return;const p={x:n.x-r,y:n.y-f},v=this.canvas.restorePointerVpt(p);t.set({left:v.x,top:v.y})}_toCenter(t){this.editor.positionV2(t,"center")}_toScale(t){const{width:n}=this.editor.getWorkspase();n!==void 0&&t.scaleToWidth(n/2)}createImgByElement(t){return new Promise(n=>{this.getImageExtension(t.src)==="svg"?V.fabric.loadSVGFromURL(t.src,f=>{const p=V.fabric.util.groupSVGElements(f,{shadow:"",fontFamily:"arial",name:"svg元素"});n(p)}):V.fabric.Image.fromURL(t.src,f=>{n(f)},{crossOrigin:"anonymous"})})}getImageExtension(t){const n=t.split("/"),f=n[n.length-1].split(".");return f[f.length-1]}destroy(){console.log("pluginDestroy")}};Fa.pluginName="AddBaseTypePlugin",Fa.apis=["addObject","createImgByElement"];let fa=Fa;const yn=Object.create(null);yn.open="0";yn.close="1";yn.ping="2";yn.pong="3";yn.message="4";yn.upgrade="5";yn.noop="6";const As=Object.create(null);Object.keys(yn).forEach(e=>{As[yn[e]]=e});const Hu={type:"error",data:"parser error"},Wm=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",qm=typeof ArrayBuffer=="function",Xm=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,gf=({type:e,data:t},n,r)=>Wm&&t instanceof Blob?n?r(t):bA(t,r):qm&&(t instanceof ArrayBuffer||Xm(t))?n?r(t):bA(new Blob([t]),r):r(yn[e]+(t||"")),bA=(e,t)=>{const n=new FileReader;return n.onload=function(){const r=n.result.split(",")[1];t("b"+(r||""))},n.readAsDataURL(e)};function wA(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}let ru;function KN(e,t){if(Wm&&e.data instanceof Blob)return e.data.arrayBuffer().then(wA).then(t);if(qm&&(e.data instanceof ArrayBuffer||Xm(e.data)))return t(wA(e.data));gf(e,!1,n=>{ru||(ru=new TextEncoder),t(ru.encode(n))})}const CA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",mi=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let e=0;e<CA.length;e++)mi[CA.charCodeAt(e)]=e;const ZN=e=>{let t=e.length*.75,n=e.length,r,f=0,p,v,u,o;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);const s=new ArrayBuffer(t),c=new Uint8Array(s);for(r=0;r<n;r+=4)p=mi[e.charCodeAt(r)],v=mi[e.charCodeAt(r+1)],u=mi[e.charCodeAt(r+2)],o=mi[e.charCodeAt(r+3)],c[f++]=p<<2|v>>4,c[f++]=(v&15)<<4|u>>2,c[f++]=(u&3)<<6|o&63;return s},t3=typeof ArrayBuffer=="function",pf=(e,t)=>{if(typeof e!="string")return{type:"message",data:Vm(e,t)};const n=e.charAt(0);return n==="b"?{type:"message",data:e3(e.substring(1),t)}:As[n]?e.length>1?{type:As[n],data:e.substring(1)}:{type:As[n]}:Hu},e3=(e,t)=>{if(t3){const n=ZN(e);return Vm(n,t)}else return{base64:!0,data:e}},Vm=(e,t)=>{switch(t){case"blob":return e instanceof Blob?e:new Blob([e]);case"arraybuffer":default:return e instanceof ArrayBuffer?e:e.buffer}},Jm="",n3=(e,t)=>{const n=e.length,r=new Array(n);let f=0;e.forEach((p,v)=>{gf(p,!1,u=>{r[v]=u,++f===n&&t(r.join(Jm))})})},r3=(e,t)=>{const n=e.split(Jm),r=[];for(let f=0;f<n.length;f++){const p=pf(n[f],t);if(r.push(p),p.type==="error")break}return r};function i3(){return new TransformStream({transform(e,t){KN(e,n=>{const r=n.length;let f;if(r<126)f=new Uint8Array(1),new DataView(f.buffer).setUint8(0,r);else if(r<65536){f=new Uint8Array(3);const p=new DataView(f.buffer);p.setUint8(0,126),p.setUint16(1,r)}else{f=new Uint8Array(9);const p=new DataView(f.buffer);p.setUint8(0,127),p.setBigUint64(1,BigInt(r))}e.data&&typeof e.data!="string"&&(f[0]|=128),t.enqueue(f),t.enqueue(n)})}})}let iu;function os(e){return e.reduce((t,n)=>t+n.length,0)}function ss(e,t){if(e[0].length===t)return e.shift();const n=new Uint8Array(t);let r=0;for(let f=0;f<t;f++)n[f]=e[0][r++],r===e[0].length&&(e.shift(),r=0);return e.length&&r<e[0].length&&(e[0]=e[0].slice(r)),n}function o3(e,t){iu||(iu=new TextDecoder);const n=[];let r=0,f=-1,p=!1;return new TransformStream({transform(v,u){for(n.push(v);;){if(r===0){if(os(n)<1)break;const o=ss(n,1);p=(o[0]&128)===128,f=o[0]&127,f<126?r=3:f===126?r=1:r=2}else if(r===1){if(os(n)<2)break;const o=ss(n,2);f=new DataView(o.buffer,o.byteOffset,o.length).getUint16(0),r=3}else if(r===2){if(os(n)<8)break;const o=ss(n,8),s=new DataView(o.buffer,o.byteOffset,o.length),c=s.getUint32(0);if(c>Math.pow(2,21)-1){u.enqueue(Hu);break}f=c*Math.pow(2,32)+s.getUint32(4),r=3}else{if(os(n)<f)break;const o=ss(n,f);u.enqueue(pf(p?o:iu.decode(o),t)),r=0}if(f===0||f>e){u.enqueue(Hu);break}}}})}const Km=4;function ee(e){if(e)return s3(e)}function s3(e){for(var t in ee.prototype)e[t]=ee.prototype[t];return e}ee.prototype.on=ee.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this};ee.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this};ee.prototype.off=ee.prototype.removeListener=ee.prototype.removeAllListeners=ee.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks["$"+e];if(!n)return this;if(arguments.length==1)return delete this._callbacks["$"+e],this;for(var r,f=0;f<n.length;f++)if(r=n[f],r===t||r.fn===t){n.splice(f,1);break}return n.length===0&&delete this._callbacks["$"+e],this};ee.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),n=this._callbacks["$"+e],r=1;r<arguments.length;r++)t[r-1]=arguments[r];if(n){n=n.slice(0);for(var r=0,f=n.length;r<f;++r)n[r].apply(this,t)}return this};ee.prototype.emitReserved=ee.prototype.emit;ee.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]};ee.prototype.hasListeners=function(e){return!!this.listeners(e).length};const Ic=typeof Promise=="function"&&typeof Promise.resolve=="function"?t=>Promise.resolve().then(t):(t,n)=>n(t,0),He=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),a3="arraybuffer";function Zm(e,...t){return t.reduce((n,r)=>(e.hasOwnProperty(r)&&(n[r]=e[r]),n),{})}const c3=He.setTimeout,l3=He.clearTimeout;function Oc(e,t){t.useNativeTimers?(e.setTimeoutFn=c3.bind(He),e.clearTimeoutFn=l3.bind(He)):(e.setTimeoutFn=He.setTimeout.bind(He),e.clearTimeoutFn=He.clearTimeout.bind(He))}const u3=1.33;function h3(e){return typeof e=="string"?f3(e):Math.ceil((e.byteLength||e.size)*u3)}function f3(e){let t=0,n=0;for(let r=0,f=e.length;r<f;r++)t=e.charCodeAt(r),t<128?n+=1:t<2048?n+=2:t<55296||t>=57344?n+=3:(r++,n+=4);return n}function t1(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function d3(e){let t="";for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t}function g3(e){let t={},n=e.split("&");for(let r=0,f=n.length;r<f;r++){let p=n[r].split("=");t[decodeURIComponent(p[0])]=decodeURIComponent(p[1])}return t}class p3 extends Error{constructor(t,n,r){super(t),this.description=n,this.context=r,this.type="TransportError"}}class Af extends ee{constructor(t){super(),this.writable=!1,Oc(this,t),this.opts=t,this.query=t.query,this.socket=t.socket,this.supportsBinary=!t.forceBase64}onError(t,n,r){return super.emitReserved("error",new p3(t,n,r)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(t){this.readyState==="open"&&this.write(t)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(t){const n=pf(t,this.socket.binaryType);this.onPacket(n)}onPacket(t){super.emitReserved("packet",t)}onClose(t){this.readyState="closed",super.emitReserved("close",t)}pause(t){}createUri(t,n={}){return t+"://"+this._hostname()+this._port()+this.opts.path+this._query(n)}_hostname(){const t=this.opts.hostname;return t.indexOf(":")===-1?t:"["+t+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(t){const n=d3(t);return n.length?"?"+n:""}}class A3 extends Af{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(t){this.readyState="pausing";const n=()=>{this.readyState="paused",t()};if(this._polling||!this.writable){let r=0;this._polling&&(r++,this.once("pollComplete",function(){--r||n()})),this.writable||(r++,this.once("drain",function(){--r||n()}))}else n()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){const n=r=>{if(this.readyState==="opening"&&r.type==="open"&&this.onOpen(),r.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(r)};r3(t,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,n3(t,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const t=this.opts.secure?"https":"http",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=t1()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(t,n)}}let e1=!1;try{e1=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const v3=e1;function y3(){}class m3 extends A3{constructor(t){if(super(t),typeof location<"u"){const n=location.protocol==="https:";let r=location.port;r||(r=n?"443":"80"),this.xd=typeof location<"u"&&t.hostname!==location.hostname||r!==t.port}}doWrite(t,n){const r=this.request({method:"POST",data:t});r.on("success",n),r.on("error",(f,p)=>{this.onError("xhr post error",f,p)})}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(n,r)=>{this.onError("xhr poll error",n,r)}),this.pollXhr=t}}class pn extends ee{constructor(t,n,r){super(),this.createRequest=t,Oc(this,r),this._opts=r,this._method=r.method||"GET",this._uri=n,this._data=r.data!==void 0?r.data:null,this._create()}_create(){var t;const n=Zm(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;const r=this._xhr=this.createRequest(n);try{r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let f in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(f)&&r.setRequestHeader(f,this._opts.extraHeaders[f])}}catch{}if(this._method==="POST")try{r.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{r.setRequestHeader("Accept","*/*")}catch{}(t=this._opts.cookieJar)===null||t===void 0||t.addCookies(r),"withCredentials"in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var f;r.readyState===3&&((f=this._opts.cookieJar)===null||f===void 0||f.parseCookies(r.getResponseHeader("set-cookie"))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status=="number"?r.status:0)},0))},r.send(this._data)}catch(f){this.setTimeoutFn(()=>{this._onError(f)},0);return}typeof document<"u"&&(this._index=pn.requestsCount++,pn.requests[this._index]=this)}_onError(t){this.emitReserved("error",t,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=y3,t)try{this._xhr.abort()}catch{}typeof document<"u"&&delete pn.requests[this._index],this._xhr=null}}_onLoad(){const t=this._xhr.responseText;t!==null&&(this.emitReserved("data",t),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}pn.requestsCount=0;pn.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",EA);else if(typeof addEventListener=="function"){const e="onpagehide"in He?"pagehide":"unload";addEventListener(e,EA,!1)}}function EA(){for(let e in pn.requests)pn.requests.hasOwnProperty(e)&&pn.requests[e].abort()}const _3=(function(){const e=n1({xdomain:!1});return e&&e.responseType!==null})();class b3 extends m3{constructor(t){super(t);const n=t&&t.forceBase64;this.supportsBinary=_3&&!n}request(t={}){return Object.assign(t,{xd:this.xd},this.opts),new pn(n1,this.uri(),t)}}function n1(e){const t=e.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!t||v3))return new XMLHttpRequest}catch{}if(!t)try{return new He[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const r1=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class w3 extends Af{get name(){return"websocket"}doOpen(){const t=this.uri(),n=this.opts.protocols,r=r1?{}:Zm(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,n,r)}catch(f){return this.emitReserved("error",f)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let n=0;n<t.length;n++){const r=t[n],f=n===t.length-1;gf(r,this.supportsBinary,p=>{try{this.doWrite(r,p)}catch{}f&&Ic(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const t=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=t1()),this.supportsBinary||(n.b64=1),this.createUri(t,n)}}const ou=He.WebSocket||He.MozWebSocket;class C3 extends w3{createSocket(t,n,r){return r1?new ou(t,n,r):n?new ou(t,n):new ou(t)}doWrite(t,n){this.ws.send(n)}}class E3 extends Af{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(t){return this.emitReserved("error",t)}this._transport.closed.then(()=>{this.onClose()}).catch(t=>{this.onError("webtransport error",t)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(t=>{const n=o3(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=t.readable.pipeThrough(n).getReader(),f=i3();f.readable.pipeTo(t.writable),this._writer=f.writable.getWriter();const p=()=>{r.read().then(({done:u,value:o})=>{u||(this.onPacket(o),p())}).catch(u=>{})};p();const v={type:"open"};this.query.sid&&(v.data=`{"sid":"${this.query.sid}"}`),this._writer.write(v).then(()=>this.onOpen())})})}write(t){this.writable=!1;for(let n=0;n<t.length;n++){const r=t[n],f=n===t.length-1;this._writer.write(r).then(()=>{f&&Ic(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var t;(t=this._transport)===null||t===void 0||t.close()}}const S3={websocket:C3,webtransport:E3,polling:b3},x3=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,I3=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function zu(e){if(e.length>8e3)throw"URI too long";const t=e,n=e.indexOf("["),r=e.indexOf("]");n!=-1&&r!=-1&&(e=e.substring(0,n)+e.substring(n,r).replace(/:/g,";")+e.substring(r,e.length));let f=x3.exec(e||""),p={},v=14;for(;v--;)p[I3[v]]=f[v]||"";return n!=-1&&r!=-1&&(p.source=t,p.host=p.host.substring(1,p.host.length-1).replace(/;/g,":"),p.authority=p.authority.replace("[","").replace("]","").replace(/;/g,":"),p.ipv6uri=!0),p.pathNames=O3(p,p.path),p.queryKey=B3(p,p.query),p}function O3(e,t){const n=/\/{2,9}/g,r=t.replace(n,"/").split("/");return(t.slice(0,1)=="/"||t.length===0)&&r.splice(0,1),t.slice(-1)=="/"&&r.splice(r.length-1,1),r}function B3(e,t){const n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,f,p){f&&(n[f]=p)}),n}const Yu=typeof addEventListener=="function"&&typeof removeEventListener=="function",vs=[];Yu&&addEventListener("offline",()=>{vs.forEach(e=>e())},!1);class qn extends ee{constructor(t,n){if(super(),this.binaryType=a3,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,t&&typeof t=="object"&&(n=t,t=null),t){const r=zu(t);n.hostname=r.host,n.secure=r.protocol==="https"||r.protocol==="wss",n.port=r.port,r.query&&(n.query=r.query)}else n.host&&(n.hostname=zu(n.host).host);Oc(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},n.transports.forEach(r=>{const f=r.prototype.name;this.transports.push(f),this._transportsByName[f]=r}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=g3(this.opts.query)),Yu&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},vs.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(t){const n=Object.assign({},this.opts.query);n.EIO=Km,n.transport=t,this.id&&(n.sid=this.id);const r=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new this._transportsByName[t](r)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const t=this.opts.rememberUpgrade&&qn.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const n=this.createTransport(t);n.open(),this.setTransport(n)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",n=>this._onClose("transport close",n))}onOpen(){this.readyState="open",qn.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const n=new Error("server error");n.code=t.data,this._onError(n);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data);break}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this._pingInterval=t.pingInterval,this._pingTimeout=t.pingTimeout,this._maxPayload=t.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const t=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+t,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},t),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this._getWritablePackets();this.transport.send(t),this._prevBufferLen=t.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let r=0;r<this.writeBuffer.length;r++){const f=this.writeBuffer[r].data;if(f&&(n+=h3(f)),r>0&&n>this._maxPayload)return this.writeBuffer.slice(0,r);n+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const t=Date.now()>this._pingTimeoutTime;return t&&(this._pingTimeoutTime=0,Ic(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),t}write(t,n,r){return this._sendPacket("message",t,n,r),this}send(t,n,r){return this._sendPacket("message",t,n,r),this}_sendPacket(t,n,r,f){if(typeof n=="function"&&(f=n,n=void 0),typeof r=="function"&&(f=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;const p={type:t,data:n,options:r};this.emitReserved("packetCreate",p),this.writeBuffer.push(p),f&&this.once("flush",f),this.flush()}close(){const t=()=>{this._onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),t()},r=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():t()}):this.upgrading?r():t()),this}_onError(t){if(qn.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",t),this._onClose("transport error",t)}_onClose(t,n){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),Yu&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const r=vs.indexOf(this._offlineEventListener);r!==-1&&vs.splice(r,1)}this.readyState="closed",this.id=null,this.emitReserved("close",t,n),this.writeBuffer=[],this._prevBufferLen=0}}}qn.protocol=Km;class T3 extends qn{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let t=0;t<this._upgrades.length;t++)this._probe(this._upgrades[t])}_probe(t){let n=this.createTransport(t),r=!1;qn.priorWebsocketSuccess=!1;const f=()=>{r||(n.send([{type:"ping",data:"probe"}]),n.once("packet",i=>{if(!r)if(i.type==="pong"&&i.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;qn.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{r||this.readyState!=="closed"&&(c(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const l=new Error("probe error");l.transport=n.name,this.emitReserved("upgradeError",l)}}))};function p(){r||(r=!0,c(),n.close(),n=null)}const v=i=>{const l=new Error("probe error: "+i);l.transport=n.name,p(),this.emitReserved("upgradeError",l)};function u(){v("transport closed")}function o(){v("socket closed")}function s(i){n&&i.name!==n.name&&p()}const c=()=>{n.removeListener("open",f),n.removeListener("error",v),n.removeListener("close",u),this.off("close",o),this.off("upgrading",s)};n.once("open",f),n.once("error",v),n.once("close",u),this.once("close",o),this.once("upgrading",s),this._upgrades.indexOf("webtransport")!==-1&&t!=="webtransport"?this.setTimeoutFn(()=>{r||n.open()},200):n.open()}onHandshake(t){this._upgrades=this._filterUpgrades(t.upgrades),super.onHandshake(t)}_filterUpgrades(t){const n=[];for(let r=0;r<t.length;r++)~this.transports.indexOf(t[r])&&n.push(t[r]);return n}}let k3=class extends T3{constructor(t,n={}){const r=typeof t=="object"?t:n;(!r.transports||r.transports&&typeof r.transports[0]=="string")&&(r.transports=(r.transports||["polling","websocket","webtransport"]).map(f=>S3[f]).filter(f=>!!f)),super(t,r)}};function D3(e,t="",n){let r=e;n=n||typeof location<"u"&&location,e==null&&(e=n.protocol+"//"+n.host),typeof e=="string"&&(e.charAt(0)==="/"&&(e.charAt(1)==="/"?e=n.protocol+e:e=n.host+e),/^(https?|wss?):\/\//.test(e)||(typeof n<"u"?e=n.protocol+"//"+e:e="https://"+e),r=zu(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";const p=r.host.indexOf(":")!==-1?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+p+":"+r.port+t,r.href=r.protocol+"://"+p+(n&&n.port===r.port?"":":"+r.port),r}const R3=typeof ArrayBuffer=="function",M3=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,i1=Object.prototype.toString,P3=typeof Blob=="function"||typeof Blob<"u"&&i1.call(Blob)==="[object BlobConstructor]",Q3=typeof File=="function"||typeof File<"u"&&i1.call(File)==="[object FileConstructor]";function vf(e){return R3&&(e instanceof ArrayBuffer||M3(e))||P3&&e instanceof Blob||Q3&&e instanceof File}function ys(e,t){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let n=0,r=e.length;n<r;n++)if(ys(e[n]))return!0;return!1}if(vf(e))return!0;if(e.toJSON&&typeof e.toJSON=="function"&&arguments.length===1)return ys(e.toJSON(),!0);for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&ys(e[n]))return!0;return!1}function F3(e){const t=[],n=e.data,r=e;return r.data=Wu(n,t),r.attachments=t.length,{packet:r,buffers:t}}function Wu(e,t){if(!e)return e;if(vf(e)){const n={_placeholder:!0,num:t.length};return t.push(e),n}else if(Array.isArray(e)){const n=new Array(e.length);for(let r=0;r<e.length;r++)n[r]=Wu(e[r],t);return n}else if(typeof e=="object"&&!(e instanceof Date)){const n={};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=Wu(e[r],t));return n}return e}function L3(e,t){return e.data=qu(e.data,t),delete e.attachments,e}function qu(e,t){if(!e)return e;if(e&&e._placeholder===!0){if(typeof e.num=="number"&&e.num>=0&&e.num<t.length)return t[e.num];throw new Error("illegal attachments")}else if(Array.isArray(e))for(let n=0;n<e.length;n++)e[n]=qu(e[n],t);else if(typeof e=="object")for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(e[n]=qu(e[n],t));return e}const j3=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],N3=5;var Tt;(function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"})(Tt||(Tt={}));class U3{constructor(t){this.replacer=t}encode(t){return(t.type===Tt.EVENT||t.type===Tt.ACK)&&ys(t)?this.encodeAsBinary({type:t.type===Tt.EVENT?Tt.BINARY_EVENT:Tt.BINARY_ACK,nsp:t.nsp,data:t.data,id:t.id}):[this.encodeAsString(t)]}encodeAsString(t){let n=""+t.type;return(t.type===Tt.BINARY_EVENT||t.type===Tt.BINARY_ACK)&&(n+=t.attachments+"-"),t.nsp&&t.nsp!=="/"&&(n+=t.nsp+","),t.id!=null&&(n+=t.id),t.data!=null&&(n+=JSON.stringify(t.data,this.replacer)),n}encodeAsBinary(t){const n=F3(t),r=this.encodeAsString(n.packet),f=n.buffers;return f.unshift(r),f}}function SA(e){return Object.prototype.toString.call(e)==="[object Object]"}class yf extends ee{constructor(t){super(),this.reviver=t}add(t){let n;if(typeof t=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");n=this.decodeString(t);const r=n.type===Tt.BINARY_EVENT;r||n.type===Tt.BINARY_ACK?(n.type=r?Tt.EVENT:Tt.ACK,this.reconstructor=new G3(n),n.attachments===0&&super.emitReserved("decoded",n)):super.emitReserved("decoded",n)}else if(vf(t)||t.base64)if(this.reconstructor)n=this.reconstructor.takeBinaryData(t),n&&(this.reconstructor=null,super.emitReserved("decoded",n));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+t)}decodeString(t){let n=0;const r={type:Number(t.charAt(0))};if(Tt[r.type]===void 0)throw new Error("unknown packet type "+r.type);if(r.type===Tt.BINARY_EVENT||r.type===Tt.BINARY_ACK){const p=n+1;for(;t.charAt(++n)!=="-"&&n!=t.length;);const v=t.substring(p,n);if(v!=Number(v)||t.charAt(n)!=="-")throw new Error("Illegal attachments");r.attachments=Number(v)}if(t.charAt(n+1)==="/"){const p=n+1;for(;++n&&!(t.charAt(n)===","||n===t.length););r.nsp=t.substring(p,n)}else r.nsp="/";const f=t.charAt(n+1);if(f!==""&&Number(f)==f){const p=n+1;for(;++n;){const v=t.charAt(n);if(v==null||Number(v)!=v){--n;break}if(n===t.length)break}r.id=Number(t.substring(p,n+1))}if(t.charAt(++n)){const p=this.tryParse(t.substr(n));if(yf.isPayloadValid(r.type,p))r.data=p;else throw new Error("invalid payload")}return r}tryParse(t){try{return JSON.parse(t,this.reviver)}catch{return!1}}static isPayloadValid(t,n){switch(t){case Tt.CONNECT:return SA(n);case Tt.DISCONNECT:return n===void 0;case Tt.CONNECT_ERROR:return typeof n=="string"||SA(n);case Tt.EVENT:case Tt.BINARY_EVENT:return Array.isArray(n)&&(typeof n[0]=="number"||typeof n[0]=="string"&&j3.indexOf(n[0])===-1);case Tt.ACK:case Tt.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class G3{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const n=L3(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const $3=Object.freeze(Object.defineProperty({__proto__:null,Decoder:yf,Encoder:U3,get PacketType(){return Tt},protocol:N3},Symbol.toStringTag,{value:"Module"}));function rn(e,t,n){return e.on(t,n),function(){e.off(t,n)}}const H3=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class o1 extends ee{constructor(t,n,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=n,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[rn(t,"open",this.onopen.bind(this)),rn(t,"packet",this.onpacket.bind(this)),rn(t,"error",this.onerror.bind(this)),rn(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...n){var r,f,p;if(H3.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(n.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;const v={type:Tt.EVENT,data:n};if(v.options={},v.options.compress=this.flags.compress!==!1,typeof n[n.length-1]=="function"){const c=this.ids++,i=n.pop();this._registerAckCallback(c,i),v.id=c}const u=(f=(r=this.io.engine)===null||r===void 0?void 0:r.transport)===null||f===void 0?void 0:f.writable,o=this.connected&&!(!((p=this.io.engine)===null||p===void 0)&&p._hasPingExpired());return this.flags.volatile&&!u||(o?(this.notifyOutgoingListeners(v),this.packet(v)):this.sendBuffer.push(v)),this.flags={},this}_registerAckCallback(t,n){var r;const f=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(f===void 0){this.acks[t]=n;return}const p=this.io.setTimeoutFn(()=>{delete this.acks[t];for(let u=0;u<this.sendBuffer.length;u++)this.sendBuffer[u].id===t&&this.sendBuffer.splice(u,1);n.call(this,new Error("operation has timed out"))},f),v=(...u)=>{this.io.clearTimeoutFn(p),n.apply(this,u)};v.withError=!0,this.acks[t]=v}emitWithAck(t,...n){return new Promise((r,f)=>{const p=(v,u)=>v?f(v):r(u);p.withError=!0,n.push(p),this.emit(t,...n)})}_addToQueue(t){let n;typeof t[t.length-1]=="function"&&(n=t.pop());const r={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((f,...p)=>r!==this._queue[0]?void 0:(f!==null?r.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(f)):(this._queue.shift(),n&&n(null,...p)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||this._queue.length===0)return;const n=this._queue[0];n.pending&&!t||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:Tt.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,n),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(t=>{if(!this.sendBuffer.some(r=>String(r.id)===t)){const r=this.acks[t];delete this.acks[t],r.withError&&r.call(this,new Error("socket has been disconnected"))}})}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case Tt.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case Tt.EVENT:case Tt.BINARY_EVENT:this.onevent(t);break;case Tt.ACK:case Tt.BINARY_ACK:this.onack(t);break;case Tt.DISCONNECT:this.ondisconnect();break;case Tt.CONNECT_ERROR:this.destroy();const r=new Error(t.data.message);r.data=t.data.data,this.emitReserved("connect_error",r);break}}onevent(t){const n=t.data||[];t.id!=null&&n.push(this.ack(t.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const r of n)r.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){const n=this;let r=!1;return function(...f){r||(r=!0,n.packet({type:Tt.ACK,id:t,data:f}))}}onack(t){const n=this.acks[t.id];typeof n=="function"&&(delete this.acks[t.id],n.withError&&t.data.unshift(null),n.apply(this,t.data))}onconnect(t,n){this.id=t,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:Tt.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const n=this._anyListeners;for(let r=0;r<n.length;r++)if(t===n[r])return n.splice(r,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(t),this}prependAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(t),this}offAnyOutgoing(t){if(!this._anyOutgoingListeners)return this;if(t){const n=this._anyOutgoingListeners;for(let r=0;r<n.length;r++)if(t===n[r])return n.splice(r,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(t){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const n=this._anyOutgoingListeners.slice();for(const r of n)r.apply(this,t.data)}}}function oi(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}oi.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=(Math.floor(t*10)&1)==0?e-n:e+n}return Math.min(e,this.max)|0};oi.prototype.reset=function(){this.attempts=0};oi.prototype.setMin=function(e){this.ms=e};oi.prototype.setMax=function(e){this.max=e};oi.prototype.setJitter=function(e){this.jitter=e};class Xu extends ee{constructor(t,n){var r;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(n=t,t=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,Oc(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((r=n.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new oi({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=t;const f=n.parser||$3;this.encoder=new f.Encoder,this.decoder=new f.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,t||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var n;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(n=this.backoff)===null||n===void 0||n.setMin(t),this)}randomizationFactor(t){var n;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(n=this.backoff)===null||n===void 0||n.setJitter(t),this)}reconnectionDelayMax(t){var n;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(n=this.backoff)===null||n===void 0||n.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new k3(this.uri,this.opts);const n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const f=rn(n,"open",function(){r.onopen(),t&&t()}),p=u=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",u),t?t(u):this.maybeReconnectOnOpen()},v=rn(n,"error",p);if(this._timeout!==!1){const u=this._timeout,o=this.setTimeoutFn(()=>{f(),p(new Error("timeout")),n.close()},u);this.opts.autoUnref&&o.unref(),this.subs.push(()=>{this.clearTimeoutFn(o)})}return this.subs.push(f),this.subs.push(v),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(rn(t,"ping",this.onping.bind(this)),rn(t,"data",this.ondata.bind(this)),rn(t,"error",this.onerror.bind(this)),rn(t,"close",this.onclose.bind(this)),rn(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(n){this.onclose("parse error",n)}}ondecoded(t){Ic(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,n){let r=this.nsps[t];return r?this._autoConnect&&!r.active&&r.connect():(r=new o1(this,t,n),this.nsps[t]=r),r}_destroy(t){const n=Object.keys(this.nsps);for(const r of n)if(this.nsps[r].active)return;this._close()}_packet(t){const n=this.encoder.encode(t);for(let r=0;r<n.length;r++)this.engine.write(n[r],t.options)}cleanup(){this.subs.forEach(t=>t()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(t,n){var r;this.cleanup(),(r=this.engine)===null||r===void 0||r.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),!t.skipReconnect&&t.open(f=>{f?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",f)):t.onreconnect()}))},n);this.opts.autoUnref&&r.unref(),this.subs.push(()=>{this.clearTimeoutFn(r)})}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const yi={};function ms(e,t){typeof e=="object"&&(t=e,e=void 0),t=t||{};const n=D3(e,t.path||"/socket.io"),r=n.source,f=n.id,p=n.path,v=yi[f]&&p in yi[f].nsps,u=t.forceNew||t["force new connection"]||t.multiplex===!1||v;let o;return u?o=new Xu(r,t):(yi[f]||(yi[f]=new Xu(r,t)),o=yi[f]),n.query&&!t.query&&(t.query=n.queryKey),o.socket(n.path,t)}Object.assign(ms,{Manager:Xu,Socket:o1,io:ms,connect:ms});const La=class La{constructor(t,n){this.canvas=t,this.editor=n,this.isConnect=!1,this.printerList=[],this.editor=n,this.canvas=t,this.socket=ms("http://localhost:17521",{transports:["websocket"],auth:{token:"vue-plugin-hiprint"}}),this.socket.on("connect",()=>{this.isConnect=!0}),this.socket.on("printerList",r=>{console.log("printerList",r),this.printerList=r})}printPDF(t){this.socket.emit("printPDF",{...t,unit:"mm"})}getPrinterList(){return this.printerList}destroy(){console.log("pluginDestroy")}};La.pluginName="PrintPlugin",La.apis=["printPDF","getPrinterList"];let da=La;const le=class le{constructor(t,n){this.canvas=t,this.editor=n}_processPoints(t,n){const r=le.lengthFieldConfigs.some(u=>u.field==="points"&&u.dealMethod==="points"),f=ue(this.editor);if(!r)return{processed:t,originByUnit:{[f]:{}}};const p=t.map(u=>({x:fn(u.x,f,n),y:fn(u.y,f,n)})),v={points:t};return{processed:p,originByUnit:{[f]:v}}}addSetAndSyncByUnit(t){const n=t.set.bind(t),r=this.editor,f=le.lengthFieldConfigs.filter(u=>u.dealMethod==="single").map(u=>u.field),p=le.lengthFieldConfigs.some(u=>u.field==="points"&&u.dealMethod==="points"),v=(u,o,s)=>{const c=u._originSize||{},i=r.getPrecision?.(),l=Ae(s,i),a={...c[o]||{},...l};u._originSize={...c,[o]:a}};t.setByUnit=function(u,o){const s=ue(r),c=96,i=!!(this.canvas&&this.canvas._currentTransform);if(typeof u=="string"){const l=u;if(f.includes(l)){if(i)return n(l,o);if(o!==void 0){const a=fn(o,s,c);return v(this,s,{[l]:o}),n(l,a)}}if(l==="points"&&p&&Array.isArray(o)){if(i)return n(l,o);const a=o.map(h=>({x:fn(h.x,s,c),y:fn(h.y,s,c)}));return v(this,s,{points:o}),n(l,a)}return n(u,o)}if(u&&typeof u=="object"){const l={...u};if(p&&Array.isArray(l.points)){if(i)return n(l);const d=l.points.map(A=>({x:fn(A.x,s,c),y:fn(A.y,s,c)}));v(this,s,{points:l.points}),l.points=d}if(i)return n(l);const{processed:a,originByUnit:h}=Qe(l,s,c,f),g=h[s]||{};return Object.keys(g).length&&v(this,s,g),n({...l,...a})}return n(u,o)},t.syncOriginSizeByUnit=function(u,o){const s=ue(r);if(s==="px")return;const c=Array.isArray(u),l=fn(1,s,c?o??96:u??96)||1,a={};if((c&&u?.length?u:f).forEach(d=>{if(d==="points")return;const A=this.get?this.get(d):this[d];typeof A=="number"&&!isNaN(A)&&(a[d]=r.getSizeByUnit(A))}),p&&Array.isArray(this.points)&&(c&&u.includes("points")||!c)){const d=this.points.map(A=>({x:A.x/l,y:A.y/l}));a.points=d}Object.keys(a).length&&v(this,s,a)}}createRect(t,n){const r=ue(this.editor),f=le.lengthFieldConfigs.filter(c=>c.dealMethod==="single").map(c=>c.field),{processed:p,originByUnit:v}=Qe(t,r,n,f),u=this.editor.getPrecision?.(),o={[r]:Ae(v[r]||{},u)},s=new V.fabric.Rect({...t,...p});return s._originSize=o,this.addSetAndSyncByUnit(s),s}createText(t,n,r){const f=ue(this.editor),p=le.lengthFieldConfigs.filter(i=>i.dealMethod==="single").map(i=>i.field),{processed:v,originByUnit:u}=Qe(n,f,r,p),o=this.editor.getPrecision?.(),s={[f]:Ae(u[f]||{},o)},c=new V.fabric.Textbox(t,{...n,...v});return c._originSize=s,this.addSetAndSyncByUnit(c),c}createIText(t,n,r){const f=ue(this.editor),p=le.lengthFieldConfigs.filter(i=>i.dealMethod==="single").map(i=>i.field),{processed:v,originByUnit:u}=Qe(n,f,r,p),o=this.editor.getPrecision?.(),s={[f]:Ae(u[f]||{},o)},c=new V.fabric.IText(t,{...n,...v});return c._originSize=s,this.addSetAndSyncByUnit(c),c}createLine(t,n,r){const f=ue(this.editor),{processed:p,originByUnit:v}=this._processPoints(t,r),u=le.lengthFieldConfigs.filter(a=>a.dealMethod==="single").map(a=>a.field),{processed:o,originByUnit:s}=Qe(n||{},f,r,u),c=new V.fabric.Line([p[0].x,p[0].y,p[1].x,p[1].y],{...n,strokeWidth:o.strokeWidth!==void 0?o.strokeWidth:void 0}),i=this.editor.getPrecision?.(),l={[f]:{...Ae(s[f]||{},i),...Ae(v[f]||{},i)}};return c._originSize=l,this.addSetAndSyncByUnit(c),c}createEllipse(t,n){const r=ue(this.editor),f=le.lengthFieldConfigs.filter(c=>c.dealMethod==="single").map(c=>c.field),{processed:p,originByUnit:v}=Qe(t,r,n,f),u=this.editor.getPrecision?.(),o={[r]:Ae(v[r]||{},u)},s=new V.fabric.Ellipse({...t,...p});return s._originSize=o,this.addSetAndSyncByUnit(s),s}createPolygon(t,n,r){const f=ue(this.editor),{processed:p,originByUnit:v}=this._processPoints(t,r),u=le.lengthFieldConfigs.filter(a=>a.dealMethod==="single").map(a=>a.field),{processed:o,originByUnit:s}=Qe(n||{},f,r,u),c=new V.fabric.Polygon(p,{fill:n?.fill});if(n?.strokeWidth!==void 0){const a=fn(n.strokeWidth,f,r);c.set("strokeWidth",a)}c.set({...n||{},...o});const i=this.editor.getPrecision?.(),l={[f]:{...Ae(s[f]||{},i),...Ae(v[f]||{},i)}};return c._originSize=l,this.addSetAndSyncByUnit(c),c}async createImageFromURL(t,n,r){return new Promise(f=>{V.fabric.Image.fromURL(t,p=>{const v=ue(this.editor),u=this.editor.getPrecision?.();if(this.addSetAndSyncByUnit(p),n){const c=le.lengthFieldConfigs.filter(a=>a.dealMethod==="single").map(a=>a.field),{originByUnit:i}=Qe(n,v,r,c);p.set({...n});const l={[v]:Ae(i[v]||{},u)};p._originSize=l}const o=!n?.width,s=!n?.height;if(o&&s){const i=this.editor.getWorkspase?.()?.width??this.canvas.getWidth()??p.width??0,l=p.width??0,a=p.height??0,h=i/2,g=l>0?h/l:1;p.set({scaleX:g,scaleY:g});const d={width:this.editor.getSizeByUnit?.(h),height:this.editor.getSizeByUnit?.(a*g)},A={[v]:Ae(d,u)};p._originSize=A}f(p)},{crossOrigin:"anonymous"})})}async createImage(t,n,r){return new Promise(f=>{let p,v=!1;if(typeof t=="string"){const o=t.trim();o.startsWith("data:")?p=o:p="data:image/png;base64,"+o}else p=URL.createObjectURL(t),v=!0;const u=typeof t=="string"?{crossOrigin:"anonymous"}:void 0;V.fabric.Image.fromURL(p,o=>{const s=ue(this.editor),c=this.editor.getPrecision?.();if(this.addSetAndSyncByUnit(o),n){const a=le.lengthFieldConfigs.filter(d=>d.dealMethod==="single").map(d=>d.field),{originByUnit:h}=Qe(n,s,r,a);o.set({...n});const g={[s]:Ae(h[s]||{},c)};o._originSize=g}const i=!n?.width,l=!n?.height;if(i&&l){const h=this.editor.getWorkspase?.()?.width??this.canvas.getWidth()??o.width??0,g=o.width??0,d=o.height??0,A=h/2,y=g>0?A/g:1;o.set({scaleX:y,scaleY:y});const m={width:this.editor.getSizeByUnit?.(A),height:this.editor.getSizeByUnit?.(d*y)},_={[s]:Ae(m,c)};o._originSize=_}if(v)try{URL.revokeObjectURL(p)}catch{}f(o)},u)})}async createBarcode(t,n,r){const f=await this.editor.addBarcode?.(t,n,r);return f&&this.addSetAndSyncByUnit(f),f}async createQrcode(t,n,r){const f=await this.editor.addQrCode?.(t,n,r);return f&&this.addSetAndSyncByUnit(f),f}destroy(){console.log("pluginDestroy")}};le.pluginName="CreateElementPlugin",le.apis=["createRect","createText","createLine","createIText","createEllipse","createPolygon","createImageFromURL","createImage","createBarcode","createQrcode"],le.lengthFieldConfigs=[{field:"left",dealMethod:"single"},{field:"top",dealMethod:"single"},{field:"width",dealMethod:"single"},{field:"height",dealMethod:"single"},{field:"fontSize",dealMethod:"single"},{field:"strokeWidth",dealMethod:"single"},{field:"rx",dealMethod:"single"},{field:"ry",dealMethod:"single"},{field:"boxWidth",dealMethod:"single"},{field:"points",dealMethod:"points"}];let ga=le;const z3={UnitPlugin:Ts,DringPlugin:ks,AlignGuidLinePlugin:Ds,ControlsPlugin:Ms,ControlsRotatePlugin:Ps,CenterAlignPlugin:Qs,LayerPlugin:Fs,CopyPlugin:Ls,MoveHotKeyPlugin:js,DeleteHotKeyPlugin:Ns,GroupPlugin:Us,DrawLinePlugin:Gs,GroupTextEditorPlugin:$s,GroupAlignPlugin:Hs,WorkspacePlugin:zs,MaskPlugin:Ys,HistoryPlugin:Ws,FlipPlugin:qs,RulerPlugin:Xs,MaterialPlugin:Js,WaterMarkPlugin:Ks,FontPlugin:Zs,PolygonModifyPlugin:ta,DrawPolygonPlugin:ea,FreeDrawPlugin:na,PathTextPlugin:ra,PsdPlugin:oa,SimpleClipImagePlugin:sa,BarCodePlugin:aa,QrCodePlugin:ca,ImageStroke:la,ResizePlugin:ua,LockPlugin:ha,AddBaseTypePlugin:fa,PrintPlugin:da,CreateElementPlugin:ga},Y3=[Ts,ks,Ds,Ms,Ps,Qs,Fs,Ls,js,Ns,Us,Gs,$s,Hs,zs,Ys,Ws,qs,Xs,Js,Ks,Zs,ta,ea,na,ra,oa,sa,aa,ca,la,ua,ha,fa,da,ga];exports.SelectEvent=_s;exports.SelectMode=ja;exports.pluginsList=Y3;exports.pluginsObject=z3;