@sekyro/web 0.0.0-stage → 0.1.0-rc.2

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 (68) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +20 -0
  3. package/README.md +92 -2
  4. package/dist/capture-constraints-BujkZcfb.d.cts +21 -0
  5. package/dist/capture-constraints-BujkZcfb.d.ts +21 -0
  6. package/dist/capture-session-v3-BJ8ciaWl.d.ts +457 -0
  7. package/dist/capture-session-v3-CAoWM8iT.d.cts +457 -0
  8. package/dist/chunk-BPYVZUJA.js +852 -0
  9. package/dist/chunk-BPYVZUJA.js.map +1 -0
  10. package/dist/chunk-LOTAJDRE.js +1094 -0
  11. package/dist/chunk-LOTAJDRE.js.map +1 -0
  12. package/dist/chunk-MWNFSNMP.js +52 -0
  13. package/dist/chunk-MWNFSNMP.js.map +1 -0
  14. package/dist/chunk-NILNKLK6.js +50 -0
  15. package/dist/chunk-NILNKLK6.js.map +1 -0
  16. package/dist/chunk-NWF46H7K.js +359 -0
  17. package/dist/chunk-NWF46H7K.js.map +1 -0
  18. package/dist/chunk-WY6U7AIK.js +193 -0
  19. package/dist/chunk-WY6U7AIK.js.map +1 -0
  20. package/dist/chunk-YVFF4Q4G.js +327 -0
  21. package/dist/chunk-YVFF4Q4G.js.map +1 -0
  22. package/dist/client/index.cjs +357 -0
  23. package/dist/client/index.cjs.map +1 -0
  24. package/dist/client/index.d.cts +39 -0
  25. package/dist/client/index.d.ts +39 -0
  26. package/dist/client/index.js +15 -0
  27. package/dist/client/index.js.map +1 -0
  28. package/dist/core/index.cjs +1605 -0
  29. package/dist/core/index.cjs.map +1 -0
  30. package/dist/core/index.d.cts +87 -0
  31. package/dist/core/index.d.ts +87 -0
  32. package/dist/core/index.js +139 -0
  33. package/dist/core/index.js.map +1 -0
  34. package/dist/core/v3/detect-worker.cjs +392 -0
  35. package/dist/core/v3/detect-worker.cjs.map +1 -0
  36. package/dist/core/v3/detect-worker.d.cts +1 -0
  37. package/dist/core/v3/detect-worker.d.ts +1 -0
  38. package/dist/core/v3/detect-worker.js +13 -0
  39. package/dist/core/v3/detect-worker.js.map +1 -0
  40. package/dist/create-verification-CjLnJ0w6.d.ts +348 -0
  41. package/dist/create-verification-EnZ13uY4.d.cts +348 -0
  42. package/dist/detect-worker-CKXHlXx9.d.cts +105 -0
  43. package/dist/detect-worker-CKXHlXx9.d.ts +105 -0
  44. package/dist/detector-scanic-4C6IEW2K.js +787 -0
  45. package/dist/detector-scanic-4C6IEW2K.js.map +1 -0
  46. package/dist/hosted-client-BpvBqu9f.d.cts +408 -0
  47. package/dist/hosted-client-BpvBqu9f.d.ts +408 -0
  48. package/dist/index.cjs +2636 -0
  49. package/dist/index.cjs.map +1 -0
  50. package/dist/index.d.cts +6 -0
  51. package/dist/index.d.ts +6 -0
  52. package/dist/index.js +28 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/internal/index.cjs +4166 -0
  55. package/dist/internal/index.cjs.map +1 -0
  56. package/dist/internal/index.d.cts +431 -0
  57. package/dist/internal/index.d.ts +431 -0
  58. package/dist/internal/index.js +647 -0
  59. package/dist/internal/index.js.map +1 -0
  60. package/dist/popup/index.cjs +76 -0
  61. package/dist/popup/index.cjs.map +1 -0
  62. package/dist/popup/index.d.cts +66 -0
  63. package/dist/popup/index.d.ts +66 -0
  64. package/dist/popup/index.js +11 -0
  65. package/dist/popup/index.js.map +1 -0
  66. package/dist/scanic-ml-stub-S2OZ6HEF.js +10 -0
  67. package/dist/scanic-ml-stub-S2OZ6HEF.js.map +1 -0
  68. package/package.json +118 -4
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../vendor/scanic/scanic.js","../src/core/doc/detector-scanic.ts"],"sourcesContent":["var A,I=1e3,g=10;function B(A,B={}){const t=B.width||Math.sqrt(A.length),i=B.height||A.length/t,E=void 0!==B.mode?B.mode:1,e=void 0!==B.method?B.method:2,o=B.minArea||I,n=t+2,a=i+2,s=new Int32Array(n*a);for(let I=0;I<i;I++)for(let g=0;g<t;g++)A[I*t+g]>0&&(s[(I+1)*n+(g+1)]=1);const c=[];let r=2;for(let I=1;I<=i;I++)for(let A=1;A<=t;A++){const B=s[I*n+A],t=s[I*n+(A-1)];let i=null,o=!1,h=-1;if(1===B&&0===t?(o=!0,i={x:A,y:I},h=2):0===B&&t>=1&&-1!==t&&1===t&&(o=!1,i={x:A-1,y:I},h=6),i){if(0===E&&!o){s[i.y*n+i.x]=-1;continue}const A=r++,I=C(s,n,a,i,h,A);if(I&&I.length>0){let B=I;2===e&&(B=Q(I));const C=B.map(A=>({x:A.x-1,y:A.y-1}));if(C.length>=(2===e?4:g)){const I={id:A,points:C,isOuter:o};c.push(I)}}else 1===s[i.y*n+i.x]&&(s[i.y*n+i.x]=A)}}c.forEach(A=>{A.area=function(A){let I=0;const g=A.length;if(g<3)return 0;for(let B=0;B<g;B++){const C=(B+1)%g;I+=A[B].x*A[C].y,I-=A[C].x*A[B].y}return Math.abs(I)/2}(A.points),A.boundingBox=function(A){if(0===A.length)return{minX:0,minY:0,maxX:0,maxY:0};let I=A[0].x,g=A[0].y,B=A[0].x,C=A[0].y;for(let Q=1;Q<A.length;Q++){const t=A[Q];I=Math.min(I,t.x),g=Math.min(g,t.y),B=Math.max(B,t.x),C=Math.max(C,t.y)}return{minX:I,minY:g,maxX:B,maxY:C}}(A.points)});const h=c.filter(A=>A.area>=o);return h.sort((A,I)=>I.area-A.area),B.debug&&(B.debug.labels=s,B.debug.rawContours=c,B.debug.finalContours=h),h}function C(A,I,g,B,C,Q){const t=[],i=/* @__PURE__ */new Set;let E=B.x,e=B.y;const o=E,n=e;let a=-1;A[n*I+o]=Q;let s=0;const c=I*g,r=[0,1,1,1,0,-1,-1,-1],h=[-1,-1,0,1,1,1,0,-1];for(;s++<c;){let B;if(-1===a){let Q=!1;for(let t=0;t<8;t++){B=C+t&7;const i=E+r[B],o=e+h[B];if(i>=0&&i<I&&o>=0&&o<g&&A[o*I+i]>0){Q=!0;break}}if(!Q)return null}else B=a+2&7;let s=-1,c=-1;for(let C=0;C<8;C++){const Q=B+C&7,t=E+r[Q],i=e+h[Q];if(t>=0&&t<I&&i>=0&&i<g&&A[i*I+t]>0){s=t,c=i,a=Q+4&7;break}}if(-1===s){0===t.length&&t.push({x:E,y:e});break}const l=e*I+E;if(i.has(l))return t;t.push({x:E,y:e}),i.add(l);const y=c*I+s;if(1===A[y]&&(A[y]=Q),E=s,e=c,E===o&&e===n)break}return s>=c?null:t}function Q(A){const I=A.length;if(I<=2)return A;const g=[],B=A[I-1],C=A[0];let Q=B,t=C,i=A[1],E=t.x-Q.x,e=t.y-Q.y,o=i.x-t.x,n=i.y-t.y;E*n!==e*o&&g.push(t);for(let a=1;a<I-1;a++)Q=A[a-1],t=A[a],i=A[a+1],E=t.x-Q.x,e=t.y-Q.y,o=i.x-t.x,n=i.y-t.y,E*n!==e*o&&g.push(t);if(Q=A[I-2],t=B,i=C,E=t.x-Q.x,e=t.y-Q.y,o=i.x-t.x,n=i.y-t.y,E*n!==e*o&&g.push(t),0===g.length){if(1===I)return[A[0]];if(2===I)return A;let g=0,B=1;const Q=C.x,t=C.y;for(let C=1;C<I;C++){const I=A[C],i=I.x-Q,E=I.y-t,e=i*i+E*E;e>g&&(g=e,B=C)}return[C,A[B]]}return g}function t(A,I=1){if(A.length<=2)return A;let g=0,B=0;const C=A[0],Q=A[A.length-1];for(let t=1;t<A.length-1;t++){const I=i(A[t],C,Q);I>g&&(g=I,B=t)}if(g>I){const g=t(A.slice(0,B+1),I),C=t(A.slice(B),I);return g.slice(0,-1).concat(C)}return[C,Q]}function i(A,I,g){const B=g.x-I.x,C=g.y-I.y,Q=B*B+C*C;if(0===Q)return Math.sqrt(Math.pow(A.x-I.x,2)+Math.pow(A.y-I.y,2));const t=((A.x-I.x)*B+(A.y-I.y)*C)/Q;let i,E;t<0?(i=I.x,E=I.y):t>1?(i=g.x,E=g.y):(i=I.x+t*B,E=I.y+t*C);const e=A.x-i,o=A.y-E;return Math.sqrt(e*e+o*o)}function E(A,I=.02){return t(A,I*function(A){let I=0;const g=A.length;if(g<2)return 0;for(let B=0;B<g;B++){const C=(B+1)%g,Q=A[B].x-A[C].x,t=A[B].y-A[C].y;I+=Math.sqrt(Q*Q+t*t)}return I}(A))}function e(A,I){return Math.hypot(I.x-A.x,I.y-A.y)}function o(A){let I=0,g=0;for(const B of A)I+=B.x,g+=B.y;return{x:I/A.length,y:g/A.length}}function n(A,I={}){if(!A||!A.points||A.points.length<4)return null;const g=I.epsilon||.02,B=function(A,I){if(!A||A.length<4)return null;const g=[I,1.3*I,1.6*I,2*I],B=/* @__PURE__ */new Set;for(const C of g){const I=Math.min(.12,C),g=I.toFixed(4);if(B.has(g))continue;B.add(g);const Q=a(E(A,I));if(Q&&4===Q.length)return Q}return null}(A.points,g);let C;return B&&4===B.length?C=function(A){if(4!==A.length)return null;const I=o(A),g=[...A].sort((A,g)=>Math.atan2(A.y-I.y,A.x-I.x)-Math.atan2(g.y-I.y,g.x-I.x));let B=1/0,C=0;for(let t=0;t<4;t++){const A=g[t].x+g[t].y;A<B&&(B=A,C=t)}const Q=[g[C],g[(C+1)%4],g[(C+2)%4],g[(C+3)%4]];return{topLeft:Q[0],topRight:Q[1],bottomRight:Q[2],bottomLeft:Q[3]}}(B):(C=function(A){if(!A||A.length<4)return null;const I=o(A);let g=null,B=null,C=null,Q=null,t=0,i=0,E=0,n=0;for(const o of A){const A=e(o,I);o.x<I.x&&o.y<I.y?A>t&&(g=o,t=A):o.x>I.x&&o.y<I.y?A>i&&(B=o,i=A):o.x>I.x&&o.y>I.y?A>E&&(C=o,E=A):o.x<I.x&&o.y>I.y&&A>n&&(Q=o,n=A)}return g&&B&&C&&Q?{topLeft:g,topRight:B,bottomRight:C,bottomLeft:Q}:null}(A.points),C&&C.topLeft&&C.topRight&&C.bottomRight&&C.bottomLeft||(C=function(A){if(!A||0===A.length)return null;let I=A[0],g=A[0],B=A[0],C=A[0],Q=I.x+I.y,t=g.x-g.y,i=B.x+B.y,E=C.x-C.y;for(let e=1;e<A.length;e++){const o=A[e],n=o.x+o.y,a=o.x-o.y;n<Q&&(Q=n,I=o),n>i&&(i=n,B=o),a>t&&(t=a,g=o),a<E&&(E=a,C=o)}return{topLeft:I,topRight:g,bottomRight:B,bottomLeft:C}}(A.points))),C&&C.topLeft&&C.topRight&&C.bottomRight&&C.bottomLeft?C:null}function a(A){if(!A||A.length<4)return null;if(4===A.length)return A;if(A.length>8)return null;let I=function(A,I){if(!A||0===A.length)return[];const g=[];for(const B of A)(0===g.length||e(B,g[g.length-1])>I)&&g.push(B);g.length>2&&e(g[0],g[g.length-1])<=I&&g.pop();return g}(A,6);return 4===I.length?I:(I.length,null)}var s=null;function c(){return null!==s&&0!==s.byteLength||(s=new Uint8Array(A.memory.buffer)),s}var r=0;function h(A,I){const g=I(1*A.length,1)>>>0;return c().set(A,g/1),r=A.length,g}function l(A,I){return A>>>=0,c().subarray(A/1,A/1+I)}var y=null;function D(){return null!==y&&0!==y.byteLength||(y=new Float32Array(A.memory.buffer)),y}function w(I,g,B,C,Q){const t=function(A,I){const g=I(4*A.length,4)>>>0;return D().set(A,g/4),r=A.length,g}(I,A.__wbindgen_malloc),i=r,E=A.hysteresis_thresholding(t,i,g,B,C,Q);var e=l(E[0],E[1]).slice();return A.__wbindgen_free(E[0],1*E[1],1),e}var d=null;function f(I,g){const B=g(2*I.length,2)>>>0;return(null!==d&&0!==d.byteLength||(d=new Uint16Array(A.memory.buffer)),d).set(I,B/2),r=I.length,B}function u(I,g,B,C,Q){const t=f(I,A.__wbindgen_malloc),i=r,E=f(g,A.__wbindgen_malloc),e=r,o=A.non_maximum_suppression(t,i,E,e,B,C,Q);var n,a,s=(n=o[0],a=o[1],n>>>=0,D().subarray(n/4,n/4+a)).slice();return A.__wbindgen_free(o[0],4*o[1],4),s}async function m(I){if(void 0!==A)return A;if(void 0!==I&&Object.getPrototypeOf(I)===Object.prototype&&({module_or_path:I}=I),void 0===I)throw new Error(\"scanic: WASM module bytes must be passed to init().\");const g=function(){const I={wbg:{}};return I.wbg.__wbindgen_init_externref_table=function(){const I=A.__wbindgen_export_0,g=I.grow(4);I.set(0,void 0),I.set(g+0,void 0),I.set(g+1,null),I.set(g+2,!0),I.set(g+3,!1)},I}();(\"string\"==typeof I||\"function\"==typeof Request&&I instanceof Request||\"function\"==typeof URL&&I instanceof URL)&&(I=fetch(I));const{instance:B,module:C}=await async function(A,I){if(\"function\"==typeof Response&&A instanceof Response){if(\"function\"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(A,I)}catch(g){if(\"application/wasm\"==A.headers.get(\"Content-Type\"))throw g}const B=await A.arrayBuffer();return await WebAssembly.instantiate(B,I)}{const g=await WebAssembly.instantiate(A,I);return g instanceof WebAssembly.Instance?{instance:g,module:A}:g}}(await I,g);return function(I,g){return A=I.exports,m.__wbindgen_wasm_module=g,y=null,d=null,s=null,A.__wbindgen_start(),A}(B,C)}var N=null,R=!1,p=null;function F(A){if(\"function\"==typeof atob){const I=atob(A),g=new Uint8Array(I.length);for(let A=0;A<I.length;A++)g[A]=I.charCodeAt(A);return g}return Uint8Array.from(Buffer.from(A,\"base64\"))}async function J(){if(!function(){if(null!==p)return p;let A=!1;if(\"object\"==typeof WebAssembly&&\"function\"==typeof WebAssembly.validate){const I=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]),g=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,111,3,2,1,0,10,6,1,4,0,208,111,11]);try{A=WebAssembly.validate(I)&&WebAssembly.validate(g)}catch{A=!1}}return p=A,A}())throw new Error(\"scanic: WebAssembly features required by the WASM module (reference-types, SIMD) are unavailable in this engine; using the JavaScript fallback.\");return await m({module_or_path:F(\"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JAAgAiABIAJqIgFLBEBBAEEAEC0ACyADQQRqIAAoAgAiAiAAKAIEQQggASACQQF0IgIgASACSxsiASABQQhNGyIBQQFBARARIAMoAgRBAUYEQCADKAIIIAMoAgwQLQALIAMoAgghAiAAIAE2AgAgACACNgIEIANBEGokAAt5AQF/IwBBIGsiAiQAAn8gACgCAEGAgICAeEcEQCABIAAoAgQgACgCCBAwDAELIAJBEGogACgCDCgCACIAQQhqKQIANwMAIAJBGGogAEEQaikCADcDACACIAApAgA3AwggASgCACABKAIEIAJBCGoQBwsgAkEgaiQAC2kBA38jAEEQayIBJAAgAUEEaiAAKAIAIgIgACgCBEEEIAJBAXQiAiACQQRNGyICQQRBBBARIAEoAgRBAUYEQCABKAIIIAEoAgwQLQALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtpAQN/IwBBEGsiASQAIAFBBGogACgCACICIAAoAgRBBCACQQF0IgIgAkEETRsiAkEEQQgQESABKAIEQQFGBEAgASgCCCABKAIMEC0ACyABKAIIIQMgACACNgIAIAAgAzYCBCABQRBqJAALaQEDfyMAQRBrIgEkACABQQRqIAAoAgAiAiAAKAIEQQQgAkEBdCICIAJBBE0bIgJBAkECEBEgASgCBEEBRgRAIAEoAgggASgCDBAtAAsgASgCCCEDIAAgAjYCACAAIAM2AgQgAUEQaiQACxIAIwBBMGsiACQAIABBMGokAAtoAgF/AX4jAEEwayIDJAAgAyABNgIEIAMgADYCACADQQI2AgwgA0Hkl8AANgIIIANCAjcCFCADQoCAgIAwIgQgA62ENwMoIAMgBCADQQRqrYQ3AyAgAyADQSBqNgIQIANBCGogAhAmAAtHAQF/IAAoAgAgACgCCCIDayACSQRAIAAgAyACEBIgACgCCCEDCyACBEAgACgCBCADaiABIAL8CgAACyAAIAIgA2o2AghBAAtEAQJ/IAEoAgQhAiABKAIAIQNBCEEEEDUiAUUEQEEEQQgQOQALIAEgAjYCBCABIAM2AgAgAEHcksAANgIEIAAgATYCAAvGAgACQCAAIAJNBEAgACABTSABIAJLcg0BIwBBMGsiAiQAIAIgATYCBCACIAA2AgAgAkECNgIMIAJB2JbAADYCCCACQgI3AhQgAiACQQRqrUKAgICAMIQ3AyggAiACrUKAgICAMIQ3AyAgAiACQSBqNgIQIAJBCGogAxAmAAsjAEEwayIBJAAgASACNgIEIAEgADYCACABQQI2AgwgAUH8lsAANgIIIAFCAjcCFCABIAFBBGqtQoCAgIAwhDcDKCABIAGtQoCAgIAwhDcDICABIAFBIGo2AhAgAUEIaiADECYACyMAQTBrIgAkACAAIAI2AgQgACABNgIAIABBAjYCDCAAQaSWwAA2AgggAEICNwIUIAAgAEEEaq1CgICAgDCENwMoIAAgAK1CgICAgDCENwMgIAAgAEEgajYCECAAQQhqIAMQJgALQQEBfyMAQSBrIgMkACADQQA2AhAgA0EBNgIEIANCBDcCCCADIAE2AhwgAyAANgIYIAMgA0EYajYCACADIAIQJgALywwBD38jAEEQayIOJAAgCCEMIAkhFiAKIRdBACEIQQAhCSMAQdAAayILJAAgC0EIaiAAIhggASITIAIiCiADIAYgBxAEIAtBFGogCygCDCIZIAsoAhAgAiADEAUgAiADbCIBQQF0IQACfwJAAkAgAUEASCAAQf7///8HS3JFBEAgAEUNAUECIQggAEECEDUiAg0CCyAIIAAQLQALIAtBADYCKCALQoCAgIAgNwIgIAtBADYCNCALQoCAgIAgNwIsQQIhCEEBDAELIAtBADYCKCALIAI2AiQgCyABNgIgAkACQCAAQQIQNSIIBEAgC0EANgI0IAsgCDYCMCALIAE2AixBASABRQ0DGkEAIQAgCygCGCEIIAsoAhwhBiABIQIDQCAAIAZJBEAgCC8BACENIAsoAigiCSALKAIgRgRAIAtBIGoQFgsgCygCJCAJQQF0aiANOwEAIAsgCUEBajYCKCAAQQFqIAZPDQMgCEECai8BACENIAsoAjQiCSALKAIsRgRAIAtBLGoQFgsgCygCMCAJQQF0aiANOwEAIAsgCUEBaiIJNgI0IAhBBGohCCAAQQJqIQAgAkEBayICDQEMBAsLIAAgBkGckMAAEBgAC0ECIAAQLQALIABBAWogBkGskMAAEBgACyALKAIwIQhBAAshECALQThqIAsoAiQgCygCKCAIIAkgCiADIAxBAEcQAyALKAJAIQ8gCygCPCEUAkACQAJ/IBAEQEEBIQ1BAAwBCyABQQEQNiINRQ0BIAELIRUgC0EANgJMIAtCgICAgMAANwJEAkACQAJAAkACQCAKQQNrQX1LDQAgA0EBayIRQQJJDQAgBSAFlCAFIAwbIQUgBCAElCAEIAwbIQRBAiEAQQEhCQNAIAAhAiAJIApsIQxBAiEAQQEhCANAIAghBiAAIQggBiAMaiIAIA9PDQUCQCAFIBQgAEECdGoqAgAiB18EQCAAIAFPDQUgACANakECOgAAIAsoAkwiACALKAJERgRAIAtBxABqEBULIAsoAkggAEEDdGoiEiAJNgIEIBIgBjYCACALIABBAWo2AkwMAQsgBCAHX0UNACAAIAFPDQUgACANakEBOgAACyAIQQFqIgAgCkcNAAsgAiACIBFJIgZqIQAgAiEJIAYNAAsgCygCTCICRQ0AA0BBfyEJIAsgAkEBayICNgJMIAsoAkggAkEDdGoiACgCBCEPIAAoAgAhEQNAAkAgCSAPaiIGRSADIAZNcg0AIAYgCmwhEkF/IQADQAJAIAAgCXJFDQAgACARaiIIRSAIIApPcg0AIAEgCCASaiIMSwRAIAwgDWoiDC0AAEEBRw0BIAxBAjoAACALKAJMIgIgCygCREYEQCALQcQAahAVCyALKAJIIAJBA3RqIgwgBjYCBCAMIAg2AgAgCyACQQFqIgI2AkwMAQsgDCABQdyPwAAQGAALIABBAUYiCA0BQQEgAEEBaiAIGyIAQQFMDQALCyAJQQFGIgBFBEBBASAJQQFqIAAbIglBAUwNAQsLIAINAAsLIBAEQEEAIQhBASEJDAQLIAFBARA2IgkEQEEAIQAgAUEBRwRAIAFB/v///wdxIQIDQCAAIA1qIgYtAABBAkYEQCAAIAlqQf8BOgAACyAGQQFqLQAAQQJGBEAgACAJakEBakH/AToAAAsgAiAAQQJqIgBHDQALCwJAIAFBAXFFDQAgACANai0AAEECRw0AIAAgCWpB/wE6AAALIAEhCAwECwwECyAAIAFBjJDAABAYAAsgACABQfyPwAAQGAALIAAgD0Hsj8AAEBgACyALKAJEIgAEQCALKAJIIABBA3QQNAsgFQRAIA0gFRA0CwJAAkAgFkUEQCAJIQAMAQtBASEAIBBFBEAgAUEBEDYiAEUNAgsgCSABIAogAyAXIAAgARACIAhFDQAgCSAIEDQLIAsoAjgiAgRAIBQgAkECdBA0CyALKAIsIgIEQCALKAIwIAJBAXQQNAsgCygCICICBEAgCygCJCACQQF0EDQLIAsoAhQiAgRAIAsoAhggAkEBdBA0CyALKAIIIgIEQCAZIAIQNAsgEwRAIBggExA0CyAOIAE2AgQgDiAANgIAIAtB0ABqJAAMAgsLQQEgARAtAAsgDigCACAOKAIEIA5BEGokAAs4AAJAIAJBgIDEAEYNACAAIAIgASgCEBECAEUNAEEBDwsgA0UEQEEADwsgACADQQAgASgCDBEDAAs2AQF/IwBBIGsiASQAIAFBADYCGCABQQE2AgwgAUGol8AANgIIIAFCBDcCECABQQhqIAAQJgALyAEBAn8jAEEQayIIJAAjAEEQayIHJAAgB0EEaiAAIAEgAiADIAQgBSAGQQBHEAMgAwRAIAIgA0EBdBA0CyABBEAgACABQQF0EDQLAkAgBygCBCIBIAcoAgwiAE0EQCAHKAIIIQEMAQsgAUECdCECIAcoAgghAyAARQRAQQQhASADIAIQNAwBCyADIAJBBCAAQQJ0IgIQMSIBDQBBBCACEC0ACyAIIAA2AgQgCCABNgIAIAdBEGokACAIKAIAIAgoAgQgCEEQaiQAC6YBAQJ/IwBBEGsiByQAIwBBEGsiBiQAIAZBBGogACABIAIgAyAEIAUQBCABBEAgACABEDQLAkAgBigCBCICIAYoAgwiAE0EQCAGKAIIIQEMAQsgBigCCCEDIABFBEBBASEBIAMgAhA0DAELIAMgAkEBIAAQMSIBDQBBASAAEC0ACyAHIAA2AgQgByABNgIAIAZBEGokACAHKAIAIAcoAgQgB0EQaiQAC9YVAhZ/AX0jAEEQayITJAAgACEWIAEhEkEAIQAjAEEQayIGJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADIAIiCGwiCUEASA0AQQEhCiAJBEBBASEAIAlBARA1IgpFDQELIAkEQCAKQQEgCfwLAAtBgMAAQQQQNSIRBEAgBkEANgIMIAYgETYCCCAGQYAINgIEIANBAWsiGEECSQ0LIAhBAWshFyAIQQJrIg5BAnYhGSAOQXxxIhtBAXIhFCAOQQRPBEAgCEECdCIaIBlBBHRqIBZqQQRqIQ8gCCAKaiELIBYgGmohDEEAIQJBAiEAQQEhBwNAIAAhECAHIAhsIgEgF2oiACABQQFqIgNJIAAgEktyDQsgACAJSw0JQQAhAEEBIQEgDCEDA0AgACAOTw0IIA4gAGsiDUEAIA0gDk0bQQFqIQ0CQCAFIANBBGoqAgAiHF8EQCAAIAtqQQFqQQI6AAAgBigCBCACRgRAIAZBBGoQFSAGKAIIIRELIBEgAkEDdGoiFSAHNgIEIBUgAEEBajYCACAGIAJBAWoiAjYCDAwBCyAEIBxfRQ0AIAAgC2pBAWpBADoAAAsgDUECRg0HAkAgBSADQQhqKgIAIhxfBEAgACALakECakECOgAAIAYoAgQgAkYEQCAGQQRqEBULIAYoAggiESACQQN0aiIVIAc2AgQgFSAAQQJqNgIAIAYgAkEBaiICNgIMDAELIAQgHF9FDQAgACALakECakEAOgAACyANQQNGDQUCQCAFIANBDGoqAgAiHF8EQCAAIAtqQQNqQQI6AAAgBigCBCACRgRAIAZBBGoQFQsgBigCCCIRIAJBA3RqIhUgBzYCBCAVIABBA2o2AgAgBiACQQFqIgI2AgwMAQsgBCAcX0UNACAAIAtqQQNqQQA6AAALIA1BBEYNBiABIQ0CQCAFIANBEGoiAyoCACIcXwRAIAAgC2pBBGpBAjoAACAGKAIEIAJGBEAgBkEEahAVCyAGKAIIIhEgAkEDdGoiASAHNgIEIAEgAEEEajYCACAGIAJBAWoiAjYCDAwBCyAEIBxfRQ0AIAAgC2pBBGpBADoAAAsgDUEBaiEBIABBBGohACANIBlJDQALIA8hAyAUIQEgDiAbRwRAA0AgASEAAkAgBSADKgIAIhxfBEAgACALakECOgAAIAYoAgQgAkYEQCAGQQRqEBULIAYoAggiESACQQN0aiIBIAc2AgQgASAANgIAIAYgAkEBaiICNgIMDAELIAQgHF9FDQAgACALakEAOgAACyADQQRqIQMgAEEBaiEBIAAgDkkNAAsLIA8gGmohDyAIIAtqIQsgDCAaaiEMIBAgECAYSSIBaiEAIBAhByABDQALDAsLAkAgDiAbRwRAIAhBAnQiDCAZQQR0aiAWakEEaiEHIAggCmohC0EAIQJBAiEAQQEhDwwBCyAIQQFqIQMgCEEBdEEBayEHQQAhAkECIQADQCACIAdqIgEgAiADakkgASASS3INCiABIAlLDQggAiAIaiECIAAgGEkgAEEBaiEADQALDAwLA0AgACEQIAggD2wiASAXaiIAIAFBAWoiA0kgACASS3INCiAAIAlLDQggByEDIBQhAQNAIAEhAAJAIAMqAgAiHCAFYEUEQCAEIBxfRQ0BIAAgC2pBADoAAAwBCyAAIAtqQQI6AAAgBigCBCACRgRAIAZBBGoQFSAGKAIIIRELIBEgAkEDdGoiASAPNgIEIAEgADYCACAGIAJBAWoiAjYCDAsgA0EEaiEDIABBAWohASAAIA5JDQALIAcgDGohByAIIAtqIQsgECAQIBhJIgFqIQAgECEPIAENAAsMCgtBBEGAwAAQLQALIAAgCRAtAAsgAEECaiEADAILIABBA2ohAAwBCyAAQQFqIQALIAAgDkHQicAAEBgACyACIAhqQQFqIQMgCEEBdCACakEBayEACyADIAAgCUHAicAAEBsACyACIAhqQQFqIQMgCEEBdCACakEBayEACyADIAAgEkHgicAAEBsACyACRQ0AIAhBAWohD0EBIAhrIRAgCEF/cyEUIAgEQCAGKAIIIQEDQCAGIAJBAWsiADYCDCAGKAIEIQwCQCABIABBA3QiDWoiAygCBCAIbCADKAIAaiIDIBRqIgcgCU8NACAHIApqIgstAAANACALQQI6AAAgASANaiIAIAcgCG4iDTYCBCAAIAcgCCANbGs2AgAgBiACNgIMIAIhAAsCQCADIAhrIgIgCU8NACACIApqIgctAAANACAHQQI6AAAgAiACIAhuIgIgCGxrIQcgACAMRgRAIAZBBGoQFSAGKAIIIQELIAEgAEEDdGoiDCACNgIEIAwgBzYCACAGIABBAWoiADYCDAsCQCADIBBqIgIgCU8NACACIApqIgctAAANACAHQQI6AAAgAiACIAhuIgIgCGxrIQcgBigCBCAARgRAIAZBBGoQFQsgBigCCCIBIABBA3RqIgwgAjYCBCAMIAc2AgAgBiAAQQFqIgA2AgwLAkAgA0EBayICIAlPDQAgAiAKaiIHLQAADQAgB0ECOgAAIAIgAiAIbiICIAhsayEHIAYoAgQgAEYEQCAGQQRqEBULIAYoAggiASAAQQN0aiIMIAI2AgQgDCAHNgIAIAYgAEEBaiIANgIMCwJAIANBAWoiAiAJTw0AIAIgCmoiBy0AAA0AIAdBAjoAACACIAIgCG4iAiAIbGshByAGKAIEIABGBEAgBkEEahAVCyAGKAIIIgEgAEEDdGoiDCACNgIEIAwgBzYCACAGIABBAWoiADYCDAsCQCADIBdqIgIgCU8NACACIApqIgctAAANACAHQQI6AAAgAiACIAhuIgIgCGxrIQcgBigCBCAARgRAIAZBBGoQFQsgBigCCCIBIABBA3RqIgwgAjYCBCAMIAc2AgAgBiAAQQFqIgA2AgwLAkAgAyAIaiICIAlPDQAgAiAKaiIHLQAADQAgB0ECOgAAIAIgAiAIbiICIAhsayEHIAYoAgQgAEYEQCAGQQRqEBULIAYoAggiASAAQQN0aiIMIAI2AgQgDCAHNgIAIAYgAEEBaiIANgIMCyAJIAMgD2oiAk0EQCAAIgINAQwDCyACIApqIgMtAAAEQCAAIgINAQwDCyADQQI6AAAgAiACIAhuIgIgCGxrIQMgBigCBCAARgRAIAZBBGoQFQsgBigCCCIBIABBA3RqIgcgAjYCBCAHIAM2AgAgBiAAQQFqIgI2AgwgAg0ACwwBCyAGKAIIIAJBA3RqQQhrIQEDQCAJIAEoAgAiACAUaiIDSwRAIAMgCmoiAy0AAEUNAwsgACAJTyIHRQRAIAAgCmoiAy0AAEUNAwsgCSAAIBBqIgNLBEAgAyAKaiIDLQAARQ0DCyAJIABBAWsiA0sEQCADIApqIgMtAABFDQMLIAkgAEEBaiIDSwRAIAMgCmoiAy0AAEUNAwsgCSAAIBdqIgNLBEAgAyAKaiIDLQAARQ0DCyAHRQRAIAAgCmoiAy0AAEUNAwsgCSAAIA9qIgBLBEAgACAKaiIDLQAARQ0DCyABQQhrIQEgAkEBayICDQALCyAGKAIEIgAEQCAGKAIIIABBA3QQNAsgEgRAIBYgEkECdBA0CyATIAk2AgQgEyAKNgIAIAZBEGokAAwBCyADQQI6AABBsInAABAfAAsgEygCACATKAIEIBNBEGokAAvoDgIUfwF9IwBBEGsiEiQAIAAhFSABIRNBACEBIwBBEGsiByQAAkACQAJAAkACQAJAAkACQAJAIAIgA2wiCEEASA0AQQEhDEEBIQkCQCAIBEBBASENIAhBARA2IgxFDQIgCEEBEDUiCUUNAQsgCARAIAlBASAI/AsAC0GAwABBBBA1IgsEQCAHQQA2AgwgByALNgIIIAdBgAg2AgQgAkEBayIWQQJJDQcgA0EBayIXQQJJDQcgAiAMaiEUIAIgCWohD0ECIAJrIRggAkECdCIZIBVqQQRqIRAgAiERQQIhAEEBIQoDQCAAIQMgECENQQEhAANAIAAgEWoiDiATTw0HAkAgBSANKgIAIhpfBEAgCCAOTQ0HIAAgD2pBAjoAACAAIBRqQf8BOgAAIAcoAgQgBkYEQCAHQQRqEBUgBygCCCELCyALIAZBA3RqIgEgCjYCBCABIAA2AgAgByAGQQFqIgY2AgwgBiEBDAELIAQgGl9FDQAgCCAOTQ0HIAAgD2pBADoAAAsgDUEEaiENIBggAEEBaiIAakEBRw0ACyAQIBlqIRAgAiAUaiEUIAIgD2ohDyACIBFqIREgAyADIBdJIg1qIQAgAyEKIA0NAAsgAUUNByACQQFqIQ1BASACayEQIAJBf3MhESACRQ0GA0AgByABQQFrIgA2AgwgBygCBCEKAkAgCyAAQQN0Ig5qIgMoAgQgAmwgAygCAGoiAyARaiIGIAhPDQAgBiAJaiIPLQAADQAgD0ECOgAAIAYgDGpB/wE6AAAgBygCCCILIA5qIgAgBiACbiIONgIEIAAgBiACIA5sazYCACAHIAE2AgwgASEACwJAIAMgAmsiASAITw0AIAEgCWoiBi0AAA0AIAZBAjoAACABIAxqQf8BOgAAIAEgASACbiIBIAJsayEGIAAgCkYEQCAHQQRqEBULIAcoAggiCyAAQQN0aiIKIAE2AgQgCiAGNgIAIAcgAEEBaiIANgIMCwJAIAMgEGoiASAITw0AIAEgCWoiBi0AAA0AIAZBAjoAACABIAxqQf8BOgAAIAEgASACbiIBIAJsayEGIAcoAgQgAEYEQCAHQQRqEBULIAcoAggiCyAAQQN0aiIKIAE2AgQgCiAGNgIAIAcgAEEBaiIANgIMCwJAIANBAWsiASAITw0AIAEgCWoiBi0AAA0AIAZBAjoAACABIAxqQf8BOgAAIAEgASACbiIBIAJsayEGIAcoAgQgAEYEQCAHQQRqEBULIAcoAggiCyAAQQN0aiIKIAE2AgQgCiAGNgIAIAcgAEEBaiIANgIMCwJAIANBAWoiASAITw0AIAEgCWoiBi0AAA0AIAZBAjoAACABIAxqQf8BOgAAIAEgASACbiIBIAJsayEGIAcoAgQgAEYEQCAHQQRqEBULIAcoAggiCyAAQQN0aiIKIAE2AgQgCiAGNgIAIAcgAEEBaiIANgIMCwJAIAMgFmoiASAITw0AIAEgCWoiBi0AAA0AIAZBAjoAACABIAxqQf8BOgAAIAEgASACbiIBIAJsayEGIAcoAgQgAEYEQCAHQQRqEBULIAcoAggiCyAAQQN0aiIKIAE2AgQgCiAGNgIAIAcgAEEBaiIANgIMCwJAIAIgA2oiASAITw0AIAEgCWoiBi0AAA0AIAZBAjoAACABIAxqQf8BOgAAIAEgASACbiIBIAJsayEGIAcoAgQgAEYEQCAHQQRqEBULIAcoAggiCyAAQQN0aiIKIAE2AgQgCiAGNgIAIAcgAEEBaiIANgIMCyAIIAMgDWoiAU0EQCAAIgENAQwJCyABIAlqIgMtAAAEQCAAIgENAQwJCyADQQI6AAAgASAMakH/AToAACABIAEgAm4iASACbGshAyAHKAIEIABGBEAgB0EEahAVCyAHKAIIIgsgAEEDdGoiBiABNgIEIAYgAzYCACAHIABBAWoiATYCDCABDQALDAcLQQRBgMAAEC0AC0EBIAgQLQALIA0gCBAtAAsgDiAIQaCKwAAQGAALIA4gCEGQisAAEBgACyAOIBNBgIrAABAYAAsgCyABQQN0akEIayEKA0AgByABQQFrIgE2AgwgCCAKKAIAIgIgEWoiAEsEQCAAIAlqIgYtAABFDQQLIAIgCE8iA0UEQCACIAlqIgYtAABFDQMLIAggAiAQaiIASwRAIAAgCWoiBi0AAEUNBAsgCCACQQFrIgBLBEAgACAJaiIGLQAARQ0ECyAIIAJBAWoiAEsEQCAAIAlqIgYtAABFDQQLIAggAiAWaiIASwRAIAAgCWoiBi0AAEUNBAsgA0UEQCACIAlqIgYtAABFDQMLIAggAiANaiIASwRAIAAgCWoiBi0AAEUNBAsgCkEIayEKIAENAAsLIAcoAgQiAARAIAcoAgggAEEDdBA0CyAIBEAgCSAIEDQLIBMEQCAVIBNBAnQQNAsgEiAINgIEIBIgDDYCACAHQRBqJAAMAgsgAiEACyAGQQI6AAAgACAMakH/AToAAEHwicAAEB8ACyASKAIAIBIoAgQgEkEQaiQACy8AAkAgAWlBAUYgAEGAgICAeCABa01xRQ0AIAAEQCAAIAEQNSIBRQ0BCyABDwsAC4ABAQR/IwBBEGsiBSQAAkACQCACIANsIgZBAEgNAAJAIAZFBEBBASEHDAELQQEhCCAGQQEQNiIHRQ0BCyAAIAEgAiADIAQgByAGEAIgAQRAIAAgARA0CyAFIAY2AgQgBSAHNgIADAELIAggBhAtAAsgBSgCACAFKAIEIAVBEGokAAv6AQICfwF+IwBBEGsiAiQAIAJBATsBDCACIAE2AgggAiAANgIEIwBBEGsiASQAIAJBBGoiACkCACEEIAEgADYCDCABIAQ3AgQjAEEQayIAJAAgAUEEaiIBKAIAIgIoAgwhAwJAAkACQAJAIAIoAgQOAgABAgsgAw0BQQEhAkEAIQMMAgsgAw0AIAIoAgAiAigCBCEDIAIoAgAhAgwBCyAAQYCAgIB4NgIAIAAgATYCDCAAQcCSwAAgASgCBCABKAIIIgAtAAggAC0ACRAPAAsgACADNgIEIAAgAjYCACAAQaSSwAAgASgCBCABKAIIIgAtAAggAC0ACRAPAAuuAQECfyMAQRBrIgUkACMAQRBrIgQkACAEQQRqIAAgASACIAMQBSABBEAgACABEDQLAkAgBCgCBCIBIAQoAgwiAE0EQCAEKAIIIQEMAQsgAUEBdCECIAQoAgghAyAARQRAQQIhASADIAIQNAwBCyADIAJBAiAAQQF0IgIQMSIBDQBBAiACEC0ACyAFIAA2AgQgBSABNgIAIARBEGokACAFKAIAIAUoAgQgBUEQaiQAC6AEAQd/IwBBEGsiBCQAIAAhBkEAIQACQCABRQRAQQEhBQwBCyABQQEQNiIFBEAgAUEISQ0BIAFBA3YhBwNAAkACQCAAIAFPDQAgACAFaiICQX9BACAAIAZqIgMtAABBAkYbOgAAIAEgAEEBaksEQCACQQFqQX9BACADQQFqLQAAQQJGGzoAACABIABBAmpLBEAgAkECakF/QQAgA0ECai0AAEECRhs6AAAgASAAQQNqSwRAIAJBA2pBf0EAIANBA2otAABBAkYbOgAAIAEgAEEEaksEQCACQQRqQX9BACADQQRqLQAAQQJGGzoAACABIABBBWpLBEAgAkEFakF/QQAgA0EFai0AAEECRhs6AAAgASAAQQZqSwRAIAJBBmpBf0EAIANBBmotAABBAkYbOgAAIABBB2oiCCABSQ0HIAghAAwGCyAAQQZqIQAMBQsgAEEFaiEADAQLIABBBGohAAwDCyAAQQNqIQAMAgsgAEECaiEADAELIABBAWohAAsgACABQaCJwAAQGAALIAJBB2pBf0EAIANBB2otAABBAkYbOgAAIABBCGohACAHQQFrIgcNAAsMAQtBASABEC0ACyABIAFB+P///wdxIgBHBEADQCAAIAVqQX9BACAAIAZqLQAAQQJGGzoAACAAQQFqIgAgAUkNAAsLIAEEQCAGIAEQNAsgBCABNgIEIAQgBTYCACAEKAIAIAQoAgQgBEEQaiQACyUBAX8gACgCACIBQYCAgIB4ckGAgICAeEcEQCAAKAIEIAEQNAsLFwEBfyAAKAIAIgEEQCAAKAIEIAEQNAsLHwAgAEEIakGwkcAAKQIANwIAIABBqJHAACkCADcCAAsfACAAQQhqQcCRwAApAgA3AgAgAEG4kcAAKQIANwIAC0MAIAAEQCAAIAEQOQALIwBBIGsiACQAIABBADYCGCAAQQE2AgwgAEGQlMAANgIIIABCBDcCECAAQQhqQZiUwAAQJgALHAAgAEEANgIQIABCADcCCCAAQoCAgIDAADcCAAsNACABBEAgACABEDQLCxYAIAAoAgAgASACIAAoAgQoAgwRAwAL5wYBBX8CfwJAAkACQAJAAkACQAJAIABBBGsiBygCACIIQXhxIgRBBEEIIAhBA3EiBRsgAWpPBEAgBUEAIAFBJ2oiBiAESRsNAQJAIAJBCU8EQCACIAMQCSICDQFBAAwKC0EAIQIgA0HM/3tLDQhBECADQQtqQXhxIANBC0kbIQEgAEEIayEGIAVFBEAgBkUgAUGAAklyIAQgAWtBgIAISyABIARPcnINByAADAoLIAQgBmohBQJAIAEgBEsEQCAFQcybwAAoAgBGDQFByJvAACgCACAFRwRAIAUoAgQiCEECcQ0JIAhBeHEiCCAEaiIEIAFJDQkgBSAIEAogBCABayIFQRBPBEAgByABIAcoAgBBAXFyQQJyNgIAIAEgBmoiASAFQQNyNgIEIAQgBmoiBCAEKAIEQQFyNgIEIAEgBRAIDAkLIAcgBCAHKAIAQQFxckECcjYCACAEIAZqIgEgASgCBEEBcjYCBAwIC0HAm8AAKAIAIARqIgQgAUkNCAJAIAQgAWsiBUEPTQRAIAcgCEEBcSAEckECcjYCACAEIAZqIgEgASgCBEEBcjYCBEEAIQVBACEBDAELIAcgASAIQQFxckECcjYCACABIAZqIgEgBUEBcjYCBCAEIAZqIgQgBTYCACAEIAQoAgRBfnE2AgQLQcibwAAgATYCAEHAm8AAIAU2AgAMBwsgBCABayIEQQ9NDQYgByABIAhBAXFyQQJyNgIAIAEgBmoiASAEQQNyNgIEIAUgBSgCBEEBcjYCBCABIAQQCAwGC0HEm8AAKAIAIARqIgQgAUsNBAwGCyADIAEgASADSxsiAwRAIAIgACAD/AoAAAsgBygCACIDQXhxIgcgAUEEQQggA0EDcSIDG2pJDQIgA0UgBiAHT3INBkGsk8AAQS5B3JPAABAcAAtB7JLAAEEuQZyTwAAQHAALQayTwABBLkHck8AAEBwAC0HsksAAQS5BnJPAABAcAAsgByABIAhBAXFyQQJyNgIAIAEgBmoiBSAEIAFrIgFBAXI2AgRBxJvAACABNgIAQcybwAAgBTYCAAsgBkUNACAADAMLIAMQASIBRQ0BIANBfEF4IAcoAgAiAkEDcRsgAkF4cWoiAiACIANLGyICBEAgASAAIAL8CgAACyABIQILIAAQBgsgAgsLEAAgASAAKAIAIAAoAgQQMAsTACAAQdySwAA2AgQgACABNgIAC18BAn8CQAJAIABBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAFqTwRAIAJBACADIAFBJ2pLGw0BIAAQBgwCC0HsksAAQS5BnJPAABAcAAtBrJPAAEEuQdyTwAAQHAALCxkAAn8gAUEJTwRAIAEgABAJDAELIAAQAQsLPgACQAJ/IAFBCU8EQCABIAAQCQwBCyAAEAELIgFFDQAgAUEEay0AAEEDcUUgAEVyDQAgAUEAIAD8CwALIAELDQAgAEGMksAAIAEQBwsMACAAIAEpAgA3AwALGQAgACABQeSbwAAoAgAiAEECIAAbEQAAAAsJACAAQQA2AgALC48YAgBBgIDAAAv8F2Fzc2VydGlvbiBmYWlsZWQ6IG1pbiA8PSBtYXhzcmMvY2FubnkucnMAc3JjL2h5c3RlcmVzaXMucnMAc3JjL2dhdXNzaWFuX2JsdXIucnMAL3J1c3RjL2RlZDVjMDZjZjIxZDJiOTNiZmZkNWQ4ODRhYTZlOTY5MzRlZTQyMzQvbGlicmFyeS9jb3JlL3NyYy9jbXAucnMAc3JjL2dyYWRpZW50X2NhbGN1bGF0aW9uLnJzAHNyYy9kaWxhdGlvbi5ycwBzcmMvbm9uX21heGltdW1fc3VwcHJlc3Npb24ucnMAbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuMTAvc3JjL2RsbWFsbG9jLnJzAGxpYnJhcnkvc3RkL3NyYy9hbGxvYy5ycwAvdXNyL2xvY2FsL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9vbmNlX2NlbGwtMS4yMS4zL3NyYy9saWIucnMAAFAAEABHAAAAQgQAAAkAAAA7ABAAFAAAAPsAAAAfAAAAOwAQABQAAAAtAQAAGQAAADsAEAAUAAAAHwEAAA0AAAA7ABAAFAAAACABAAANAAAAOwAQABQAAAAhAQAADQAAADsAEAAUAAAAIgEAAA0AAAA7ABAAFAAAAE8AAAAbAAAAOwAQABQAAABQAAAAHwAAADsAEAAUAAAAeAAAABkAAAA7ABAAFAAAAGIAAAAhAAAAOwAQABQAAABFAQAAHwAAADsAEAAUAAAAfAEAAB8AAAA7ABAAFAAAAH4BAAAdAAAAOwAQABQAAAB/AQAAHAAAADsAEAAUAAAAUAEAAB8AAAA7ABAAFAAAAHIBAAAdAAAAOwAQABQAAABzAQAAHAAAADsAEAAUAAAAdAEAABwAAAA7ABAAFAAAAGgBAAANAAAAOwAQABQAAABpAQAADQAAADsAEAAUAAAAagEAAA0AAAA7ABAAFAAAAGsBAAANAAAAOwAQABQAAABHAQAAHQAAADsAEAAUAAAASQEAABwAAAA7ABAAFAAAAI8AAAAbAAAAOwAQABQAAACQAAAAHwAAADsAEAAUAAAAkwAAACIAAAA7ABAAFAAAAJUAAAAiAAAAOwAQABQAAAC9AAAALwAAADsAEAAUAAAAvgAAAC0AAAA7ABAAFAAAAL8AAAAtAAAAOwAQABQAAACfAAAAEQAAADsAEAAUAAAAoAAAABEAAAA7ABAAFAAAAKEAAAARAAAAOwAQABQAAACnAAAAEQAAADsAEAAUAAAA2AAAABsAAAA7ABAAFAAAANkAAAAfAAAAOwAQABQAAADgAAAAGQAAAEtlcm5lbCBzaXplIG11c3QgYmUgb2RkIGFuZCBncmVhdGVyIHRoYW4gMAAAFAQQACoAAAA7ABAAFAAAAJQBAAAJAAAASW5wdXQgYXJyYXkgc2l6ZSBkb2Vzbid0IG1hdGNoIHdpZHRoICogaGVpZ2h0AAAAWAQQAC0AAAA7ABAAFAAAAJEBAAAJAAAAKQAQABEAAACHAAAAHgAAACkAEAARAAAAaAAAABoAAAApABAAEQAAACQAAAAnAAAAKQAQABEAAAAtAAAAGwAAACkAEAARAAAAIwAAACQAAAApABAAEQAAANkAAAAaAAAAKQAQABEAAACyAAAAFwAAACkAEAARAAAAuwAAABkAAAApABAAEQAAALYAAAAZAAAAYXNzZXJ0aW9uIGZhaWxlZDogbWluIDw9IG1heFAAEABHAAAAQgQAAAkAAACYABAAGwAAAA8AAAAWAAAAmAAQABsAAAAQAAAAFgAAAJgAEAAbAAAAEQAAABYAAACYABAAGwAAABIAAAAWAAAAmAAQABsAAAATAAAAFgAAAJgAEAAbAAAAFAAAABYAAACYABAAGwAAABUAAAAWAAAAmAAQABsAAAAWAAAAFgAAAJgAEAAbAAAAHAAAABMAAACYABAAGwAAAB0AAAATAAAAtAAQAA8AAABkAAAADQAAALQAEAAPAAAAXwAAAB8AAAC0ABAADwAAAFQAAAANAAAAtAAQAA8AAABPAAAAHwAAALQAEAAPAAAAMwAAAA0AAAC0ABAADwAAAC4AAAAfAAAAtAAQAA8AAAAeAAAAEQAAALQAEAAPAAAAGQAAABsAAADEABAAHgAAAFoAAAAgAAAAxAAQAB4AAABhAAAAFgAAAMQAEAAeAAAAYgAAABYAAADEABAAHgAAAHkAAAAqAAAAxAAQAB4AAAB6AAAAKgAAAMQAEAAeAAAAdgAAACoAAADEABAAHgAAAHcAAAAqAAAAxAAQAB4AAABxAAAAJgAAAMQAEAAeAAAAcgAAACYAAADEABAAHgAAAG4AAAAmAAAAxAAQAB4AAABvAAAAJgAAAMQAEAAeAAAALgAAABIAAADEABAAHgAAADIAAAANAAAAxAAQAB4AAAAwAAAADQAAAMQAEAAeAAAAEwAAABMAAADEABAAHgAAABQAAAATAAAAxAAQAB4AAAAVAAAAEwAAAMQAEAAeAAAAFgAAABMAAADEABAAHgAAABkAAAATAAAAxAAQAB4AAAAaAAAAEwAAAMQAEAAeAAAAGwAAABMAAADEABAAHgAAABwAAAATAAAAHAAQAAwAAAAoAAAAIAAAABwAEAAMAAAAEgAAABcAAAAcABAADAAAABcAAAAZAAAAHAAQAAwAAAAUAAAAGQAAABwAEAAMAAAAUQAAAB4AAAAcABAADAAAAFIAAAAeAAAATGF6eSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAA8CBAAKgAAAEgBEABaAAAACAMAABkAAAByZWVudHJhbnQgaW5pdAAAgAgQAA4AAABIARAAWgAAAHoCAAANAAAAfP2LMlfmV/kC30S/40jnr21dy9YsUOtjeEGmV3Ebi7ltZW1vcnkgYWxsb2NhdGlvbiBvZiAgYnl0ZXMgZmFpbGVkAADICBAAFQAAAN0IEAANAAAALwEQABgAAABkAQAACQAAAAQAAAAMAAAABAAAAAUAAAAGAAAABwAAAAAAAAAIAAAABAAAAAgAAAAJAAAACgAAAAsAAAAMAAAAEAAAAAQAAAANAAAADgAAAA8AAAAQAAAAAAAAAAgAAAAEAAAAEQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAAAQBEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAAAEARAAKgAAALcEAAANAAAABAAAAAwAAAAEAAAAEgAAAGNhcGFjaXR5IG92ZXJmbG93AAAA/AkQABEAAADjABAAIAAAABwAAAAFAAAAMDAwMTAyMDMwNDA1MDYwNzA4MDkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OTgwODE4MjgzODQ4NTg2ODc4ODg5OTA5MTkyOTM5NDk1OTY5Nzk4OTlyYW5nZSBlbmQgaW5kZXggIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIAAA8AoQABAAAAAACxAAIgAAAHNsaWNlIGluZGV4IHN0YXJ0cyBhdCAgYnV0IGVuZHMgYXQgADQLEAAWAAAASgsQAA0AAAByYW5nZSBzdGFydCBpbmRleCAAAGgLEAASAAAAAAsQACIAAABhdHRlbXB0IHRvIGRpdmlkZSBieSB6ZXJvAAAAjAsQABkAAABpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzICBidXQgdGhlIGluZGV4IGlzIAAAsAsQACAAAADQCxAAEgAAAAAAAD8AAAC/AEGUmMAACwEBAHwJcHJvZHVjZXJzAghsYW5ndWFnZQEEUnVzdAAMcHJvY2Vzc2VkLWJ5AwVydXN0Yx0xLjkyLjAgKGRlZDVjMDZjZiAyMDI1LTEyLTA4KQZ3YWxydXMGMC4yMy4zDHdhc20tYmluZGdlbhMwLjIuMTAwICgyNDA1ZWMyYjQpAHQPdGFyZ2V0X2ZlYXR1cmVzBysPbXV0YWJsZS1nbG9iYWxzKxNub250cmFwcGluZy1mcHRvaW50KwdzaW1kMTI4KwtidWxrLW1lbW9yeSsIc2lnbi1leHQrD3JlZmVyZW5jZS10eXBlcysKbXVsdGl2YWx1ZQ==\")})}function G(){return N||(N=J().catch(A=>{throw N=null,A})),N}function k(A,I,g,B=5,C=0){0===C&&(C=.3*(.5*(B-1)-1)+.8);const Q=Math.floor(B/2),t=function(A,I){const g=new Float32Array(A),B=Math.floor(A/2);let C=0;for(let Q=0;Q<A;Q++){const A=Q-B;g[Q]=Math.exp(-A*A/(2*I*I)),C+=g[Q]}for(let Q=0;Q<A;Q++)g[Q]/=C;return g}(B,C),i=new Uint8ClampedArray(I*g),E=new Uint8ClampedArray(I*g);for(let e=0;e<g;e++){const g=e*I;for(let B=0;B<I;B++){let C=0;for(let i=-Q;i<=Q;i++){C+=A[g+Math.min(I-1,Math.max(0,B+i))]*t[Q+i]}i[g+B]=C}}for(let e=0;e<I;e++)for(let A=0;A<g;A++){let B=0;for(let C=-Q;C<=Q;C++){B+=i[Math.min(g-1,Math.max(0,A+C))*I+e]*t[Q+C]}E[A*I+e]=Math.round(B)}return E}function S(A,I,g,B,C){const Q=new Uint8Array(I*g),t=[];for(let e=1;e<g-1;e++)for(let g=1;g<I-1;g++){const i=e*I+g,E=A[i];E>=C?(Q[i]=2,t.push({x:g,y:e})):Q[i]=E>=B?0:1}for(let e=0;e<I;e++)Q[e]=1,Q[(g-1)*I+e]=1;for(let e=1;e<g-1;e++)Q[e*I]=1,Q[e*I+I-1]=1;const i=[-1,0,1,-1,1,-1,0,1],E=[-1,-1,-1,0,0,1,1,1];for(;t.length>0;){const{x:A,y:g}=t.pop();for(let B=0;B<8;B++){const C=A+i[B],e=g+E[B],o=e*I+C;0===Q[o]&&(Q[o]=2,t.push({x:C,y:e}))}}return Q}async function M(I,g={}){const B=!(!g.debug||g.debug._timingsOnly),C=[],Q=performance.now();let t,i,E;if(g.skipGrayscale||!1)t=g.width,i=g.height,E=I,B&&(g.debug.grayscale=E);else{t=I.width,i=I.height;let A=performance.now();E=function(A){const{width:I,height:g,data:B}=A,C=new Uint8ClampedArray(I*g);for(let Q=0,t=0;Q<B.length;Q+=4,t++)C[t]=54*B[Q]+183*B[Q+1]+19*B[Q+2]>>8;return C}(I);let Q=performance.now();C.push({step:\"Grayscale\",ms:(Q-A).toFixed(2)}),B&&(g.debug.grayscale=E)}let e=void 0!==g.lowThreshold?g.lowThreshold:null,o=void 0!==g.highThreshold?g.highThreshold:null;if(null===e||null===o){const A=1024,I=new Uint32Array(A);let g=0;for(let e=1;e<i-1;e++)for(let B=1;B<t-1;B++){const C=e*t+B,Q=-E[C-t-1]+E[C-t+1]-2*E[C-1]+2*E[C+1]-E[C+t-1]+E[C+t+1],i=-E[C-t-1]-2*E[C-t]-E[C-t+1]+E[C+t-1]+2*E[C+t]+E[C+t+1];let o=Math.abs(Q)+Math.abs(i);o>=A&&(o=A-1),o>0&&(I[o]++,g++)}const B=Math.round(.7*g);let C=0,Q=75;for(let t=1;t<A;t++)if(C+=I[t],C>=B){Q=t;break}null===e&&(e=Math.max(5,Math.round(.5*Q))),null===o&&(o=Math.min(500,Math.round(1.5*Q)))}const n=g.kernelSize||5,a=g.sigma||0,s=void 0!==g.L2gradient&&g.L2gradient,c=void 0===g.applyDilation||g.applyDilation,y=g.dilationKernelSize||5,D=void 0!==g.useWasmHysteresis&&g.useWasmHysteresis,d=void 0!==g.useWasmFullCanny&&g.useWasmFullCanny;if(e>=o&&([e,o]=[o,e]),d)try{await G();const I=performance.now(),D=new Uint8ClampedArray(function(I,g,B,C,Q,t,i,E,e,o){const n=h(I,A.__wbindgen_malloc),a=r,s=A.canny_edge_detector_full(n,a,g,B,C,Q,t,i,E,e,o);var c=l(s[0],s[1]).slice();return A.__wbindgen_free(s[0],1*s[1],1),c}(E,t,i,e,o,n,a,s,c,y)),w=(performance.now()-I).toFixed(2);C.push({step:\"Edge Processing (WASM)\",ms:w}),B&&(g.debug.finalEdges=D),g.debug?g.debug.timings=C:g.debug={timings:C};const d=performance.now();return C.unshift({step:\"Edge Detection Total\",ms:(d-Q).toFixed(2)}),D}catch(Y){if(!R){R=!0;Y instanceof Error?Y.message:String(Y)}}let f,m,N,p,F,J;f=performance.now();try{await G(),N=function(I,g,B,C,Q){const t=h(I,A.__wbindgen_malloc),i=r,E=A.blur(t,i,g,B,C,Q);var e=l(E[0],E[1]).slice();return A.__wbindgen_free(E[0],1*E[1],1),e}(E,t,i,n,a)}catch{N=k(E,t,i,n,a)}m=performance.now(),C.push({step:\"Gaussian Blur\",ms:(m-f).toFixed(2)}),B&&(g.debug.blurred=N),f=performance.now();{const A=function(A,I,g){const B=new Int16Array(I*g),C=new Int16Array(I*g);for(let Q=1;Q<g-1;Q++){const g=Q*I,t=(Q-1)*I,i=(Q+1)*I;for(let Q=1;Q<I-1;Q++){const I=g+Q,E=A[t+Q-1],e=A[t+Q],o=A[t+Q+1],n=A[g+Q-1],a=A[g+Q+1],s=A[i+Q-1],c=A[i+Q],r=A[i+Q+1],h=o-E+2*(a-n)+(r-s),l=s+2*c+r-(E+2*e+o);B[I]=h,C[I]=l}}return{dx:B,dy:C}}(N,t,i);p=A.dx,F=A.dy}m=performance.now(),C.push({step:\"Gradients\",ms:(m-f).toFixed(2)}),f=performance.now();try{await G(),J=await u(p,F,t,i,s)}catch{J=function(A,I,g,B,C){const Q=new Float32Array(g*B),t=new Float32Array(g*B);for(let i=0;i<A.length;i++){const g=A[i],B=I[i];Q[i]=C?Math.sqrt(g*g+B*B):Math.abs(g)+Math.abs(B)}for(let i=1;i<B-1;i++)for(let B=1;B<g-1;B++){const C=i*g+B,E=Q[C];if(0===E){t[C]=0;continue}const e=A[C],o=I[C];let n=0,a=0;const s=Math.abs(e),c=Math.abs(o);if(c>2.4142*s)n=Q[C-g],a=Q[C+g];else if(s>2.4142*c)n=Q[C-1],a=Q[C+1];else{const A=(e^o)<0?-1:1;o>0?(n=Q[(i-1)*g+(B-A)],a=Q[(i+1)*g+(B+A)]):(n=Q[(i+1)*g+(B-A)],a=Q[(i-1)*g+(B+A)]),e>0&&o>0||e<0&&o<0?(n=Q[(i-1)*g+(B+1)],a=Q[(i+1)*g+(B-1)]):(n=Q[(i-1)*g+(B-1)],a=Q[(i+1)*g+(B+1)])}t[C]=E>=n&&E>=a?E:0}return t}(p,F,t,i,s)}m=performance.now(),C.push({step:\"Non-Max Suppression\",ms:(m-f).toFixed(2)}),f=performance.now();const M=s?e*e:e,b=s?o*o:o;let L;if(D)try{await G(),L=w(J,t,i,M,b)}catch(q){L=S(J,t,i,M,b)}else L=S(J,t,i,M,b);m=performance.now(),C.push({step:\"Hysteresis\",ms:(m-f).toFixed(2)}),f=performance.now();const x=new Uint8ClampedArray(t*i);for(let A=0;A<L.length;A++)x[A]=2===L[A]?255:0;m=performance.now(),C.push({step:\"Binary Image\",ms:(m-f).toFixed(2)}),f=performance.now();let U=x;if(c)try{await G(),U=function(I,g,B,C){const Q=h(I,A.__wbindgen_malloc),t=r,i=A.dilate(Q,t,g,B,C);var E=l(i[0],i[1]).slice();return A.__wbindgen_free(i[0],1*i[1],1),E}(x,t,i,y)}catch{U=function(A,I,g,B=5){const C=Math.floor(B/2),Q=new Uint8ClampedArray(I*g),t=new Uint8ClampedArray(I*g);for(let i=0;i<g;i++){const g=i*I;for(let B=0;B<I;B++){let t=0;for(let Q=-C;Q<=C;Q++){const C=B+Q;if(C>=0&&C<I){const I=A[g+C];I>t&&(t=I)}}Q[g+B]=t}}for(let i=0;i<I;i++)for(let A=0;A<g;A++){let B=0;for(let t=-C;t<=C;t++){const C=A+t;if(C>=0&&C<g){const A=Q[C*I+i];A>B&&(B=A)}}t[A*I+i]=B}return t}(x,t,i,y)}if(m=performance.now(),C.push({step:\"Dilation\",ms:(m-f).toFixed(2)}),B){g.debug.dx=p,g.debug.dy=F;const A=new Float32Array(t*i);for(let I=0;I<p.length;I++){const g=p[I],B=F[I];A[I]=s?Math.sqrt(g*g+B*B):Math.abs(g)+Math.abs(B)}g.debug.magnitude=A,g.debug.suppressed=J,g.debug.edgeMap=L,g.debug.cannyEdges=x,g.debug.finalEdges=U}g.debug?g.debug.timings=C:g.debug||(g.debug={timings:C});const H=performance.now();return C.unshift({step:\"Edge Detection Total\",ms:(H-Q).toFixed(2)}),U}function b(A){return{topLeft:{x:A.topLeft.x,y:A.topLeft.y},topRight:{x:A.topRight.x,y:A.topRight.y},bottomRight:{x:A.bottomRight.x,y:A.bottomRight.y},bottomLeft:{x:A.bottomLeft.x,y:A.bottomLeft.y}}}function L(A,I){return Math.hypot(A.x-I.x,A.y-I.y)}function x(A,I=4){const g=[A?.topLeft,A?.topRight,A?.bottomRight,A?.bottomLeft];if(g.some(A=>!A||!Number.isFinite(A.x)||!Number.isFinite(A.y)))return!1;for(let B=0;B<g.length;B++)for(let A=B+1;A<g.length;A++)if(L(g[B],g[A])<I)return!1;return!0}function U(A){const I=[A.topLeft,A.topRight,A.bottomRight,A.bottomLeft],g=[];for(let C=0;C<I.length;C++){const A=I[C],B=I[(C+1)%I.length],Q=I[(C+2)%I.length],t=(B.x-A.x)*(Q.y-B.y)-(B.y-A.y)*(Q.x-B.x);Math.abs(t)<1e-6||g.push(Math.sign(t))}if(g.length<3)return!1;const B=g[0];return g.every(A=>A===B)}var H=\"scanic-corner-editor-styles\",Y='<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"3 4 3 10 9 10\"/><path d=\"M3.5 14a8.5 8.5 0 1 0 2-7.4L3 10\"/></svg>',q='<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"/></svg>',v='<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"/></svg>',K='<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"4\" y1=\"21\" x2=\"4\" y2=\"14\"/><line x1=\"4\" y1=\"10\" x2=\"4\" y2=\"3\"/><line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"12\"/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"3\"/><line x1=\"20\" y1=\"21\" x2=\"20\" y2=\"16\"/><line x1=\"20\" y1=\"12\" x2=\"20\" y2=\"3\"/><line x1=\"1\" y1=\"14\" x2=\"7\" y2=\"14\"/><line x1=\"9\" y1=\"8\" x2=\"15\" y2=\"8\"/><line x1=\"17\" y1=\"16\" x2=\"23\" y2=\"16\"/></svg>';function T(A={}){const I=A.container;if(!I||\"function\"!=typeof I.appendChild)throw new Error(\"createCornerEditor requires a valid container element\");const g=I.ownerDocument||(\"undefined\"!=typeof document?document:null),B=\"undefined\"!=typeof window?window:globalThis,C=()=>B.performance&&\"function\"==typeof B.performance.now?B.performance.now():Date.now();!1!==A.injectStyles&&function(A){if(!A||\"function\"!=typeof A.getElementById)return;if(A.getElementById(H))return;const I=A.createElement(\"style\");I.id=H,I.textContent=\"\\n.scanic-corner-editor {\\n --scanic-accent: #6366f1;\\n --scanic-mask: rgba(15, 23, 42, 0.45);\\n --scanic-edge-color: var(--scanic-accent);\\n --scanic-edge-width: 2.5;\\n --scanic-handle-size: 20px;\\n --scanic-handle-hit: 44px;\\n --scanic-handle-color: #ffffff;\\n --scanic-handle-ring: 2px;\\n --scanic-handle-ring-color: var(--scanic-accent);\\n --scanic-handle-shadow: 0 1px 4px rgba(15, 23, 42, 0.45);\\n --scanic-handle-active-shadow: 0 8px 22px rgba(15, 23, 42, 0.5);\\n --scanic-handle-active-scale: 1.28;\\n --scanic-surface: rgba(15, 23, 42, 0.92);\\n --scanic-surface-fg: #e2e8f0;\\n --scanic-surface-radius: 12px;\\n}\\n.scanic-handle {\\n position: absolute;\\n box-sizing: border-box;\\n width: var(--scanic-handle-size);\\n height: var(--scanic-handle-size);\\n margin: 0;\\n padding: 0;\\n border: var(--scanic-handle-ring) solid var(--scanic-handle-ring-color);\\n border-radius: 50%;\\n background: var(--scanic-handle-color);\\n box-shadow: var(--scanic-handle-shadow);\\n transform: translate(-50%, -50%);\\n cursor: grab;\\n touch-action: none;\\n z-index: 2;\\n transition: transform 0.12s ease, box-shadow 0.12s ease,\\n background 0.12s ease, border-color 0.12s ease;\\n}\\n/* Enlarges the pointer/touch target without changing the visual size. */\\n.scanic-handle::after {\\n content: '';\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n width: var(--scanic-handle-hit);\\n height: var(--scanic-handle-hit);\\n transform: translate(-50%, -50%);\\n border-radius: 50%;\\n}\\n/* Soft accent halo that blooms when a handle is grabbed. This is the \\\"depth\\\" layer. */\\n.scanic-handle::before {\\n content: '';\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n width: 0;\\n height: 0;\\n border-radius: 50%;\\n background: var(--scanic-accent);\\n opacity: 0;\\n transform: translate(-50%, -50%);\\n transition: opacity 0.15s ease, width 0.15s ease, height 0.15s ease;\\n pointer-events: none;\\n}\\n.scanic-handle:hover {\\n transform: translate(-50%, -50%) scale(1.12);\\n}\\n.scanic-handle:focus-visible {\\n outline: none;\\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--scanic-accent) 45%, transparent),\\n var(--scanic-handle-shadow);\\n}\\n/* The currently selected corner: the target of nudges / keyboard. */\\n.scanic-handle.is-selected {\\n border-color: var(--scanic-accent);\\n transform: translate(-50%, -50%) scale(1.12);\\n}\\n.scanic-handle.is-selected::before {\\n opacity: 0.16;\\n width: calc(var(--scanic-handle-size) * 2);\\n height: calc(var(--scanic-handle-size) * 2);\\n}\\n.scanic-handle.is-active {\\n cursor: grabbing;\\n background: var(--scanic-accent);\\n border-color: #ffffff;\\n transform: translate(-50%, -50%) scale(var(--scanic-handle-active-scale));\\n box-shadow: var(--scanic-handle-active-shadow);\\n}\\n.scanic-handle.is-active::before {\\n opacity: 0.22;\\n width: calc(var(--scanic-handle-size) * 2.8);\\n height: calc(var(--scanic-handle-size) * 2.8);\\n}\\n.scanic-toolbar,\\n.scanic-nudges {\\n position: absolute;\\n z-index: 3;\\n display: flex;\\n gap: 4px;\\n padding: 5px;\\n background: var(--scanic-surface);\\n border-radius: var(--scanic-surface-radius);\\n -webkit-backdrop-filter: blur(8px);\\n backdrop-filter: blur(8px);\\n box-shadow: 0 6px 20px rgba(15, 23, 42, 0.35);\\n}\\n.scanic-toolbar {\\n left: 50%;\\n bottom: 12px;\\n transform: translateX(-50%);\\n}\\n.scanic-nudges {\\n top: 10px;\\n right: 10px;\\n display: grid;\\n grid-template-columns: repeat(4, auto);\\n gap: 3px;\\n}\\n.scanic-toolbar button,\\n.scanic-nudges button {\\n display: grid;\\n place-items: center;\\n margin: 0;\\n padding: 0;\\n font-family: inherit;\\n font-size: 15px;\\n font-weight: 600;\\n line-height: 1;\\n color: var(--scanic-surface-fg);\\n background: transparent;\\n border: 0;\\n border-radius: 8px;\\n cursor: pointer;\\n transition: background 0.12s ease, color 0.12s ease, filter 0.12s ease;\\n}\\n.scanic-toolbar button {\\n width: 34px;\\n height: 34px;\\n}\\n.scanic-nudges button {\\n width: 30px;\\n height: 30px;\\n}\\n.scanic-toolbar button svg {\\n width: 18px;\\n height: 18px;\\n display: block;\\n}\\n.scanic-toolbar button:hover,\\n.scanic-nudges button:hover {\\n background: rgba(255, 255, 255, 0.14);\\n}\\n.scanic-toolbar button:focus-visible,\\n.scanic-nudges button:focus-visible {\\n outline: 2px solid var(--scanic-accent);\\n outline-offset: 1px;\\n}\\n.scanic-toolbar .scanic-btn-apply {\\n background: var(--scanic-accent);\\n color: #ffffff;\\n}\\n.scanic-toolbar .scanic-btn-apply:hover {\\n background: var(--scanic-accent);\\n filter: brightness(1.1);\\n}\\n.scanic-toolbar .scanic-btn-expert.is-on {\\n background: color-mix(in srgb, var(--scanic-accent) 32%, transparent);\\n color: #ffffff;\\n}\\n\",(A.head||A.documentElement).appendChild(I)}(g);const{canvas:Q,width:t,height:i}=function(A){if(!A)throw new Error(\"No image provided\");const I=A&&\"number\"==typeof A.width&&\"number\"==typeof A.height&&A.data;let g=0,B=0;if(I?(g=A.width,B=A.height):(g=A.width||A.naturalWidth,B=A.height||A.naturalHeight),!g||!B)throw new Error(\"Image must be loaded before creating the corner editor\");const C=document.createElement(\"canvas\");C.width=g,C.height=B;const Q=C.getContext(\"2d\",{willReadFrequently:!0});if(!Q)throw new Error(\"Failed to create 2D canvas context for source image\");return I?Q.putImageData(A,0,0):Q.drawImage(A,0,0,g,B),{canvas:C,width:g,height:B}}(A.image),E=!I.classList.contains(\"scanic-corner-editor\");I.classList.add(\"scanic-corner-editor\"),A.classNames?.root&&I.classList.add(A.classNames.root);const e={position:I.style.position,minHeight:I.style.minHeight};let o=!1,n=!1;\"static\"===getComputedStyle(I).position&&(I.style.position=\"relative\",o=!0),P(A.theme);const a=g.createElement(\"canvas\");a.style.position=\"absolute\",a.style.top=\"0\",a.style.left=\"0\",a.style.display=\"block\",a.style.touchAction=\"none\",a.style.userSelect=\"none\",a.style.webkitUserSelect=\"none\",a.style.cursor=\"default\",I.appendChild(a);const s=a.getContext(\"2d\");if(!s)throw new Error(\"Failed to create 2D canvas context for corner editor\");const c={enabled:!1!==A.magnifier?.enabled,size:A.magnifier?.size||120,zoom:A.magnifier?.zoom||2,margin:A.magnifier?.margin||8,borderColor:A.magnifier?.borderColor||\"#ffffff\",borderWidth:A.magnifier?.borderWidth||2,crosshairColor:A.magnifier?.crosshairColor||\"#ffffff\",crosshairSize:A.magnifier?.crosshairSize||18},r={enabled:!!A.nudges?.enabled,steps:(A.nudges?.steps&&A.nudges.steps.length?A.nudges.steps:[1,10]).map(A=>Math.max(1,Math.round(A)))},h={enabled:!1!==A.toolbar?.enabled,reset:!1!==A.toolbar?.reset,cancel:!1!==A.toolbar?.cancel,apply:!1!==A.toolbar?.apply,labels:{reset:A.toolbar?.labels?.reset||\"Reset\",cancel:A.toolbar?.labels?.cancel||\"Cancel\",apply:A.toolbar?.labels?.apply||\"Apply\"}},l=!1!==A.keyboard,y=function(A,I,g=.08){const B=Math.max(8,Math.min(A,I)*g);return{topLeft:{x:B,y:B},topRight:{x:A-B,y:B},bottomRight:{x:A-B,y:I-B},bottomLeft:{x:B,y:I-B}}}(t,i),D=A.corners?b(A.corners):y;let w=x(D)&&U(D)?D:y;const d=b(w);let f=!1,u=null,m=\"topLeft\",N=null,R=null,p=null,F=null;const J=Math.max(24,A.handleHitArea||44);A.handleHitArea&&I.style.setProperty(\"--scanic-handle-hit\",J+\"px\");const G=[\"topLeft\",\"topRight\",\"bottomRight\",\"bottomLeft\"],k={topLeft:\"Top-left corner\",topRight:\"Top-right corner\",bottomRight:\"Bottom-right corner\",bottomLeft:\"Bottom-left corner\"};let S={scale:1,offsetX:0,offsetY:0,width:1,height:1};const M={mask:\"rgba(15,23,42,0.45)\",edgeColor:\"#6366f1\",edgeWidth:2.5},L={};for(const b of G){const B=g.createElement(\"button\");B.type=\"button\",B.className=\"scanic-handle\"+(A.classNames?.handle?\" \"+A.classNames.handle:\"\"),B.dataset.corner=b,B.setAttribute(\"aria-label\",k[b]),l||(B.tabIndex=-1),B.addEventListener(\"pointerdown\",A=>iA(b,A)),B.addEventListener(\"pointermove\",A=>EA(b,A)),B.addEventListener(\"pointerup\",A=>eA(b,A)),B.addEventListener(\"pointercancel\",A=>eA(b,A)),B.addEventListener(\"focus\",()=>{m=b,AA()}),l&&B.addEventListener(\"keydown\",A=>oA(b,A)),I.appendChild(B),L[b]=B}function T(A,I){const g=a.style.color;a.style.color=`var(${A}, ${I})`;const B=getComputedStyle(a).color||I;return a.style.color=g,B}function W(){M.mask=T(\"--scanic-mask\",\"rgba(15, 23, 42, 0.45)\"),M.edgeColor=T(\"--scanic-edge-color\",\"#6366f1\");const A=getComputedStyle(I).getPropertyValue(\"--scanic-edge-width\"),g=parseFloat(A);M.edgeWidth=Number.isFinite(g)&&g>0?g:2.5}function P(A){if(!A||\"object\"!=typeof A)return;const g=/* @__PURE__ */new Set([\"handleSize\",\"handleHit\"]);for(const[B,C]of Object.entries({accent:\"--scanic-accent\",mask:\"--scanic-mask\",edgeColor:\"--scanic-edge-color\",edgeWidth:\"--scanic-edge-width\",handleSize:\"--scanic-handle-size\",handleHit:\"--scanic-handle-hit\",handleColor:\"--scanic-handle-color\",handleRingColor:\"--scanic-handle-ring-color\",surface:\"--scanic-surface\",surfaceColor:\"--scanic-surface-fg\",radius:\"--scanic-surface-radius\"})){const Q=A[B];if(null==Q)continue;const t=\"number\"==typeof Q&&g.has(B)?`${Q}px`:String(Q);I.style.setProperty(C,t)}}function Z(){\"function\"==typeof A.onChange&&A.onChange(b(w))}let X=0,V=0;function j(){const A=Math.max(1,Math.round(I.clientWidth));let g=Math.round(I.clientHeight);if(g<80){const C=i/Math.max(1,t),Q=.7*(B.innerHeight||800);g=Math.max(240,Math.round(Math.min(A*C,Q))),I.style.minHeight=g+\"px\",n=!0}return{width:A,height:Math.max(1,g)}}function O(){const{width:A,height:I}=j(),g=B.devicePixelRatio||1;X=A,V=I,a.style.width=A+\"px\",a.style.height=I+\"px\";const C=Math.round(A*g),Q=Math.round(I*g);a.width!==C&&(a.width=C),a.height!==Q&&(a.height=Q),s.setTransform(g,0,0,g,0,0);const E=Math.max(1,A-24),e=Math.max(1,I-24),o=Math.min(E/t,e/i),n=t*o,c=i*o;S={scale:o,offsetX:Math.round((A-n)/2),offsetY:Math.round((I-c)/2),width:A,height:I},W()}function z(A){return{x:S.offsetX+A.x*S.scale,y:S.offsetY+A.y*S.scale}}function _(A){return x(A)&&U(A)}function $(A){const I=a.getBoundingClientRect();return{x:A.clientX-I.left,y:A.clientY-I.top}}function AA(){for(const A of G)L[A].classList.toggle(\"is-selected\",A===m)}function IA(){f||(s.clearRect(0,0,S.width,S.height),s.drawImage(Q,0,0,t,i,S.offsetX,S.offsetY,t*S.scale,i*S.scale),function(){const A=G.map(A=>z(w[A]));s.save(),s.fillStyle=M.mask,s.beginPath(),s.rect(0,0,S.width,S.height),s.moveTo(A[0].x,A[0].y);for(let I=1;I<A.length;I++)s.lineTo(A[I].x,A[I].y);s.closePath(),s.fill(\"evenodd\"),s.restore(),s.save(),s.strokeStyle=M.edgeColor,s.lineWidth=M.edgeWidth,s.lineJoin=\"round\",s.beginPath(),s.moveTo(A[0].x,A[0].y);for(let I=1;I<A.length;I++)s.lineTo(A[I].x,A[I].y);s.closePath(),s.stroke(),s.restore()}(),function(){if(!c.enabled||!u||!R)return;const A=w[u],I=c.size,g=I/2,B=Math.max(1.1,c.zoom),C=z(A);let E=C.x+g+c.margin,e=C.y-g-c.margin;E+g>S.width&&(E=C.x-g-c.margin),e-g<0&&(e=C.y+g+c.margin),E=Math.max(g+2,Math.min(S.width-g-2,E)),e=Math.max(g+2,Math.min(S.height-g-2,e));const o=I/B,n=A.x-o/2,a=A.y-o/2,r=Math.max(0,n),h=Math.max(0,a),l=Math.max(0,Math.min(t,n+o)-r),y=Math.max(0,Math.min(i,a+o)-h);if(s.save(),s.beginPath(),s.arc(E,e,g,0,2*Math.PI),s.clip(),s.fillStyle=M.mask,s.fillRect(E-g,e-g,I,I),l>0&&y>0){const A=E-g+(r-n)*B,I=e-g+(h-a)*B;s.drawImage(Q,r,h,l,y,A,I,l*B,y*B)}const D=c.crosshairSize/2;s.strokeStyle=c.crosshairColor,s.lineWidth=1.5,s.beginPath(),s.moveTo(E-D,e),s.lineTo(E+D,e),s.moveTo(E,e-D),s.lineTo(E,e+D),s.stroke(),s.restore(),s.save(),s.beginPath(),s.arc(E,e,g,0,2*Math.PI),s.lineWidth=c.borderWidth,s.strokeStyle=c.borderColor,s.stroke(),s.restore()}(),function(){for(const A of G){const I=z(w[A]),g=L[A];g.style.left=I.x+\"px\",g.style.top=I.y+\"px\"}}())}const gA=\"function\"==typeof B.requestAnimationFrame?B.requestAnimationFrame.bind(B):null,BA=\"function\"==typeof B.cancelAnimationFrame?B.cancelAnimationFrame.bind(B):null;let CA=null;function QA(){f||(gA?null===CA&&(CA=gA(()=>{CA=null,IA()})):IA())}function tA(A,I){const g=b(w);return g[A]={x:Math.max(0,Math.min(t,I.x)),y:Math.max(0,Math.min(i,I.y))},!!_(g)&&(w=g,m=A,AA(),Z(),QA(),!0)}function iA(A,I){if(!f){if(\"function\"==typeof I.preventDefault&&I.preventDefault(),u=A,m=A,AA(),N=I.pointerId,R=$(I),p=R,F=C(),L[A].classList.add(\"is-active\"),l&&\"function\"==typeof L[A].focus)try{L[A].focus({preventScroll:!0})}catch{L[A].focus()}if(L[A].setPointerCapture&&null!=I.pointerId)try{L[A].setPointerCapture(I.pointerId)}catch{}QA()}}function EA(A,I){if(f||u!==A)return;if(null!==N&&I.pointerId!==N)return;const g=$(I),B=g.x-p.x,Q=g.y-p.y,t=Math.max(1,C()-F),i=Math.hypot(B,Q)/t,E=Math.min(1,i/.8),e=.35+.65*(E*E*(3-2*E)),o=w[A];tA(A,{x:o.x+B*e/S.scale,y:o.y+Q*e/S.scale}),p=g,F=C(),R=g}function eA(A,I){if(u===A&&(null===N||I.pointerId===N)){if(L[A].releasePointerCapture&&null!=N)try{L[A].releasePointerCapture(N)}catch{}L[A].classList.remove(\"is-active\"),u=null,N=null,R=null,p=null,F=null,QA()}}function oA(A,I){if(f||!l)return;if(\"Enter\"===I.key)return I.preventDefault(),void yA();if(\"Escape\"===I.key)return I.preventDefault(),void DA();let g=0,B=0;if(\"ArrowLeft\"===I.key)g=-1;else if(\"ArrowRight\"===I.key)g=1;else if(\"ArrowUp\"===I.key)B=-1;else{if(\"ArrowDown\"!==I.key)return;B=1}I.preventDefault();const C=I.shiftKey?r.steps[r.steps.length-1]||10:1;tA(A,{x:w[A].x+g*C,y:w[A].y+B*C})}let nA=null,aA=null,sA=null,cA=!1;const rA=h.enabled&&r.enabled;function hA({html:A,text:I,title:B,className:C,onClick:Q}){const t=g.createElement(\"button\");return t.type=\"button\",null!=A?t.innerHTML=A:t.textContent=I,B&&(t.title=B,t.setAttribute(\"aria-label\",B)),C&&(t.className=C),t.addEventListener(\"click\",Q),t}let lA=null;function yA(){const I=b(w);return\"function\"==typeof A.onConfirm&&A.onConfirm(I),I}function DA(){\"function\"==typeof A.onCancel&&A.onCancel()}function wA(){w=b(d),Z(),QA()}const dA=\"undefined\"!=typeof ResizeObserver?new ResizeObserver(()=>{if(f)return;const A=j();A.width===X&&A.height===V||(O(),QA())}):null;return O(),h.enabled&&(h.reset||h.cancel||h.apply||rA)&&(nA=g.createElement(\"div\"),nA.className=\"scanic-toolbar\"+(A.classNames?.toolbar?\" \"+A.classNames.toolbar:\"\"),h.reset&&nA.appendChild(hA({html:Y,title:h.labels.reset,className:\"scanic-btn-reset\",onClick:()=>wA()})),rA&&(sA=hA({html:K,title:\"Precision nudge (expert)\",className:\"scanic-btn-expert\",onClick:()=>{return cA=A=!cA,aA&&(aA.style.display=A?\"\":\"none\"),void(sA&&(sA.classList.toggle(\"is-on\",A),sA.setAttribute(\"aria-pressed\",String(A))));var A}}),sA.setAttribute(\"aria-pressed\",\"false\"),nA.appendChild(sA)),h.cancel&&nA.appendChild(hA({html:q,title:h.labels.cancel,className:\"scanic-btn-cancel\",onClick:()=>DA()})),h.apply&&nA.appendChild(hA({html:v,title:h.labels.apply,className:\"scanic-btn-apply\",onClick:()=>yA()})),I.appendChild(nA)),function(){if(!r.enabled)return;aA=g.createElement(\"div\"),aA.className=\"scanic-nudges\"+(A.classNames?.nudges?\" \"+A.classNames.nudges:\"\");const B=(A,I,g,B,C)=>hA({text:A,title:I,className:\"scanic-btn-nudge\",onClick:()=>{const A=w[m];tA(m,{x:A.x+g*C,y:A.y+B*C})}});for(const A of r.steps)aA.appendChild(B(\"←\",`Move left ${A}px`,-1,0,A)),aA.appendChild(B(\"↑\",`Move up ${A}px`,0,-1,A)),aA.appendChild(B(\"↓\",`Move down ${A}px`,0,1,A)),aA.appendChild(B(\"→\",`Move right ${A}px`,1,0,A));I.appendChild(aA),rA&&(aA.style.display=\"none\")}(),function A(){if(\"function\"!=typeof B.matchMedia)return;lA&&lA();const I=B.devicePixelRatio||1,g=B.matchMedia(`(resolution: ${I}dppx)`),C=()=>{f||(O(),QA(),A())};\"function\"==typeof g.addEventListener?(g.addEventListener(\"change\",C),lA=()=>g.removeEventListener(\"change\",C)):\"function\"==typeof g.addListener?(g.addListener(C),lA=()=>g.removeListener(C)):lA=null}(),dA&&dA.observe(I),AA(),IA(),{getCorners:()=>b(w),setCorners:A=>!(!A||!_(A))&&(w=b(A),Z(),QA(),!0),reset(){wA()},nudge:(A,I,g,B=1)=>!!G.includes(A)&&tA(A,{x:w[A].x+I*B,y:w[A].y+g*B}),refreshTheme(A){P(A),W(),QA()},confirm:()=>yA(),cancel(){DA()},destroy(){if(!f){f=!0,null!==CA&&BA&&(BA(CA),CA=null),lA&&(lA(),lA=null),dA&&dA.disconnect();for(const A of G){const I=L[A];I&&I.parentNode&&I.parentNode.removeChild(I)}nA&&nA.parentNode&&nA.parentNode.removeChild(nA),aA&&aA.parentNode&&aA.parentNode.removeChild(aA),a.parentNode&&a.parentNode.removeChild(a),E&&I.classList.remove(\"scanic-corner-editor\"),A.classNames?.root&&I.classList.remove(A.classNames.root),o&&(I.style.position=e.position),n&&(I.style.minHeight=e.minHeight)}}}}async function W(){try{return await G()}catch{return null}}var P=class{constructor(A={}){this.defaultOptions={maxProcessingDimension:800,mode:\"detect\",output:\"canvas\",...A},this.initialized=!1}async initialize(){if(!this.initialized){if(\"ml\"===this.defaultOptions.detector)try{const{initializeMl:A}=await import(\"./scanic-mlDetector.js\");await A(this.defaultOptions.ml||{})}catch{}else try{await G()}catch{}this.initialized=!0}}async scan(A,I={}){return this.initialized||await this.initialize(),await IA(A,{...this.defaultOptions,...I})}async extract(A,I,g={}){return this.initialized||await this.initialize(),await AA(A,I,{...this.defaultOptions,...g})}};function Z(A){return A<=0?0:A>=1?1:A}function X(A,I){return Math.hypot(A.x-I.x,A.y-I.y)}function V(A){return[X(A.topLeft,A.topRight),X(A.topRight,A.bottomRight),X(A.bottomRight,A.bottomLeft),X(A.bottomLeft,A.topLeft)]}function j(A){const I=function(A){const I=[A.topLeft,A.topRight,A.bottomRight,A.bottomLeft],g=[];for(let B=0;B<I.length;B++){const A=I[(B+I.length-1)%I.length],C=I[B],Q=I[(B+1)%I.length],t=A.x-C.x,i=A.y-C.y,E=Q.x-C.x,e=Q.y-C.y,o=t*E+i*e,n=Math.max(1e-6,Math.hypot(t,i)*Math.hypot(E,e)),a=Math.max(-1,Math.min(1,o/n));g.push(180*Math.acos(a)/Math.PI)}return g}(A);let g=0;for(const B of I){g+=Z(1-Math.abs(B-90)/55)}return g/Math.max(1,I.length)}function O(A,I){const g=Number(I.isValid)-Number(A.isValid);if(0!==g)return g;const B=I.confidence-A.confidence;if(!(Math.abs(B)<.015)&&0!==B)return B;const C=Math.abs((A.approxCount??99)-4)-Math.abs((I.approxCount??99)-4);if(0!==C)return C;const Q=(I.rightAngleScore??0)-(A.rightAngleScore??0);if(Math.abs(Q)>1e-6)return Q;const t=Math.abs(1-(A.contourFitRatio??1))-Math.abs(1-(I.contourFitRatio??1));return Math.abs(t)>1e-6?t:B||I.score-A.score||I.coverageRatio-A.coverageRatio||I.area-A.area}function z(A,I,g,B,C={}){const Q=C.epsilon||.02,t=E(A.points,Q).length,i=n(A,{epsilon:Q});if(!i)return{contour:A,corners:null,score:0,confidence:0,isValid:!1,area:A.area||0,fillRatio:0,coverageRatio:0,cornersArea:0,approxCount:t,convex:!1,edgeSupport:0,aspectRatio:1/0,minSide:0,rightAngleScore:0,oppositeSideConsistency:0,contourFitRatio:0,contourFitScore:0};const e=g*B,o=A.area||0,a=A.boundingBox||{minX:0,minY:0,maxX:0,maxY:0},s=o/Math.max(1,(a.maxX-a.minX+1)*(a.maxY-a.minY+1)),c=function(A){if(!A)return 0;const I=[A.topLeft,A.topRight,A.bottomRight,A.bottomLeft];let g=0;for(let B=0;B<I.length;B++){const A=(B+1)%I.length;g+=I[B].x*I[A].y-I[A].x*I[B].y}return Math.abs(g)/2}(i),r=c/Math.max(1,e),h=V(i),l=Math.min(...h),y=(h[0]+h[2])/2,D=(h[1]+h[3])/2,w=y>D?y/Math.max(1e-6,D):D/Math.max(1e-6,y),d=function(A){const I=[A.topLeft,A.topRight,A.bottomRight,A.bottomLeft],g=[];for(let C=0;C<I.length;C++){const A=I[C],B=I[(C+1)%I.length],Q=I[(C+2)%I.length],t=(B.x-A.x)*(Q.y-B.y)-(B.y-A.y)*(Q.x-B.x);Math.abs(t)<1e-6||g.push(Math.sign(t))}if(g.length<3)return!1;const B=g[0];return g.every(A=>A===B)}(i),f=function(A,I,g,B){if(!A?.points||0===A.points.length)return 0;const C=Math.max(1,Math.floor(A.points.length/240));let Q=0,t=0;for(let i=0;i<A.points.length;i+=C){const C=A.points[i],E=Math.max(0,Math.min(g-1,0|C.x)),e=Math.max(0,Math.min(B-1,0|C.y));Q++;let o=!1;for(let A=-1;A<=1&&!o;A++){const C=e+A;if(!(C<0||C>=B))for(let A=-1;A<=1;A++){const B=E+A;if(!(B<0||B>=g)&&I[C*g+B]>0){o=!0;break}}}o&&t++}return 0===Q?0:t/Q}(A,I,g,B),u=j(i),m=function(A){const I=V(A);return(Math.min(I[0],I[2])/Math.max(1e-6,Math.max(I[0],I[2]))+Math.min(I[1],I[3])/Math.max(1e-6,Math.max(I[1],I[3])))/2}(i),N=o/Math.max(1,c),R=Z(1-Math.abs(N-1)/.55),p=4===t?1:5===t?.9:6===t?.7:t<=8?.5:.28,F=Z(o/Math.max(1,.4*e)),J=Z((s-.08)/.72),G=Z((r-.03)/.82),k=void 0!==C.minDocumentSideRatio?C.minDocumentSideRatio:.06,S=void 0!==C.minDocumentCoverageRatio?C.minDocumentCoverageRatio:.04,M=void 0!==C.maxDocumentAspectRatio?C.maxDocumentAspectRatio:8,b=void 0!==C.minDocumentFillRatio?C.minDocumentFillRatio:.07,L=void 0!==C.minContourFitRatio?C.minContourFitRatio:.11,x=void 0!==C.maxContourFitRatio?C.maxContourFitRatio:1.2,U=void 0!==C.minRightAngleScore?C.minRightAngleScore:.42,H=void 0!==C.minOppositeSideConsistency?C.minOppositeSideConsistency:.3,Y=Math.min(g,B)*k,q=function(A,I=6){const g=[A?.topLeft,A?.topRight,A?.bottomRight,A?.bottomLeft];if(g.some(A=>!A||!Number.isFinite(A.x)||!Number.isFinite(A.y)))return!1;for(let B=0;B<g.length;B++)for(let A=B+1;A<g.length;A++)if(X(g[B],g[A])<I)return!1;return!0}(i)&&d&&l>=Y&&r>=S&&w<=M&&s>=b&&N>=L&&N<=x&&u>=U&&m>=H,v=.22*F+.14*J+.15*p+.08*(d?1:0)+.08*f+.13*G+.1*u+.05*m+.05*R;return{contour:A,corners:i,score:v,confidence:q?v:.33*v,isValid:q,area:o,fillRatio:s,coverageRatio:r,cornersArea:c,approxCount:t,convex:d,edgeSupport:f,aspectRatio:w,minSide:l,rightAngleScore:u,oppositeSideConsistency:m,contourFitRatio:N,contourFitScore:R}}async function _(A,I,g,C,Q={}){const t=Q.debug?{}:{_timingsOnly:!0},i=[];t&&!t._timingsOnly&&(t.preprocessing={scaledDimensions:{width:I,height:g},scaleFactor:C,maxProcessingDimension:Q.maxProcessingDimension||800});const E=function(A={}){const I=A.dilationKernelSize||3,g=A.dilationIterations||1,B=void 0===A.applyDilation||A.applyDilation,C=[{name:\"default\",lowThreshold:A.lowThreshold,highThreshold:A.highThreshold,dilationKernelSize:I,dilationIterations:g,applyDilation:B}];if(!1===A.enableDetectionCascade)return C;C.push({name:\"connect-edges\",lowThreshold:A.lowThreshold,highThreshold:A.highThreshold,dilationKernelSize:Math.max(I,5),dilationIterations:Math.max(g,2),applyDilation:!0}),C.push({name:\"no-dilation\",lowThreshold:A.lowThreshold,highThreshold:A.highThreshold,dilationKernelSize:I,dilationIterations:g,applyDilation:!1}),void 0===A.lowThreshold&&void 0===A.highThreshold&&C.push({name:\"fixed-mid-thresholds\",lowThreshold:60,highThreshold:180,dilationKernelSize:I,dilationIterations:g,applyDilation:B});const Q=[],t=/* @__PURE__ */new Set;for(const i of C){const A=[i.lowThreshold,i.highThreshold,i.dilationKernelSize,i.dilationIterations,i.applyDilation].join(\":\");t.has(A)||(t.add(A),Q.push(i))}return Q}(Q),e=[],o=async(t,E)=>{const e=t.name||`pass-${E+1}`,o=0===E?\"\":` (${e})`,n=Q.debug?{}:{_timingsOnly:!0},a=await M(A,{width:I,height:g,lowThreshold:t.lowThreshold,highThreshold:t.highThreshold,dilationKernelSize:t.dilationKernelSize,dilationIterations:t.dilationIterations,applyDilation:t.applyDilation,debug:n,skipGrayscale:!0,useWasmBlur:!0,useWasmHysteresis:Q.useWasmHysteresis,useWasmFullCanny:Q.useWasmFullCanny});n.timings&&n.timings.forEach(A=>{\"Edge Detection Total\"!==A.step&&i.push({step:`${A.step}${o}`,ms:A.ms})});let s=performance.now();const c=B(a,{minArea:(Q.minArea||1e3)/(C*C),width:I,height:g});i.push({step:`Find Contours${o}`,ms:(performance.now()-s).toFixed(2)}),s=performance.now();const{best:r,candidates:h}=function(A,I,g,B,C={}){const Q=C.maxCandidateContours||12,t=A.slice(0,Q).map((A,Q)=>({rankByArea:Q,...z(A,I,g,B,C)})).sort(O);return{best:t[0]||null,candidates:t}}(c,a,I,g,Q);return i.push({step:`Corner Detection${o}`,ms:(performance.now()-s).toFixed(2)}),{name:e,params:{lowThreshold:t.lowThreshold,highThreshold:t.highThreshold,dilationKernelSize:t.dilationKernelSize,dilationIterations:t.dilationIterations,applyDilation:t.applyDilation},contours:c,best:r,candidates:h}},n=await o(E[0],0);if(e.push(n),function(A,I={}){if(!1===I.enableDetectionCascade)return!1;if(!A||!A.corners)return!0;const g=void 0!==I.minCascadeTriggerConfidence?I.minCascadeTriggerConfidence:.68;return!A.isValid||A.confidence<g||A.approxCount>5||A.rightAngleScore<.55||A.contourFitRatio<.14}(n.best,Q))for(let B=1;B<E.length;B++)e.push(await o(E[B],B));const a=[];for(const B of e)for(const A of B.candidates)a.push({...A,passName:B.name,passParams:B.params});a.sort(O);const s=a[0]||null,c=a;if(!s||!s.corners)return{success:!1,message:\"No document detected\",debug:t._timingsOnly?null:t,timings:i};t&&!t._timingsOnly&&(t.passes=e.map(A=>({name:A.name,params:A.params,contourCount:A.contours.length,bestCandidate:A.best?{score:A.best.score,confidence:A.best.confidence,isValid:A.best.isValid,approxCount:A.best.approxCount,coverageRatio:A.best.coverageRatio,fillRatio:A.best.fillRatio,rightAngleScore:A.best.rightAngleScore,contourFitRatio:A.best.contourFitRatio}:null})),t.candidates=c.map(A=>({passName:A.passName,rankByArea:A.rankByArea,area:A.area,fillRatio:A.fillRatio,coverageRatio:A.coverageRatio,cornersArea:A.cornersArea,approxCount:A.approxCount,convex:A.convex,edgeSupport:A.edgeSupport,aspectRatio:A.aspectRatio,minSide:A.minSide,rightAngleScore:A.rightAngleScore,oppositeSideConsistency:A.oppositeSideConsistency,contourFitRatio:A.contourFitRatio,contourFitScore:A.contourFitScore,score:A.score,confidence:A.confidence,isValid:A.isValid})),t.selectedCandidate=c[0]?{passName:c[0].passName,rankByArea:c[0].rankByArea,area:c[0].area,fillRatio:c[0].fillRatio,coverageRatio:c[0].coverageRatio,approxCount:c[0].approxCount,edgeSupport:c[0].edgeSupport,aspectRatio:c[0].aspectRatio,minSide:c[0].minSide,rightAngleScore:c[0].rightAngleScore,oppositeSideConsistency:c[0].oppositeSideConsistency,contourFitRatio:c[0].contourFitRatio,score:c[0].score,confidence:c[0].confidence,isValid:c[0].isValid}:null);const r=s.corners,h=s.contour;let l=r;return 1!==C&&(l={topLeft:{x:r.topLeft.x*C,y:r.topLeft.y*C},topRight:{x:r.topRight.x*C,y:r.topRight.y*C},bottomRight:{x:r.bottomRight.x*C,y:r.bottomRight.y*C},bottomLeft:{x:r.bottomLeft.x*C,y:r.bottomLeft.y*C}}),{success:!0,contour:h,corners:l,confidence:s.confidence,debug:t._timingsOnly?null:t,timings:i}}function $(A,I,g){const{topLeft:B,topRight:C,bottomRight:Q,bottomLeft:t}=g,i=Math.hypot(Q.x-t.x,Q.y-t.y),E=Math.hypot(C.x-B.x,C.y-B.y),e=Math.round(Math.max(i,E)),o=Math.hypot(C.x-Q.x,C.y-Q.y),n=Math.hypot(B.x-t.x,B.y-t.y),a=Math.round(Math.max(o,n));A.canvas.width=e,A.canvas.height=a,function(A,I,g,B,C){const Q=I&&\"number\"==typeof I.width&&\"number\"==typeof I.height&&I.data,t=I.width||I.naturalWidth,i=I.height||I.naturalHeight,E=document.createElement(\"canvas\");E.width=t,E.height=i;const e=E.getContext(\"2d\",{willReadFrequently:!0});Q?e.putImageData(I,0,0):e.drawImage(I,0,0,t,i);const o=e.getImageData(0,0,t,i).data,n=function(A){const I=A[0][0],g=A[0][1],B=A[0][2],C=A[1][0],Q=A[1][1],t=A[1][2],i=A[2][0],E=A[2][1],e=A[2][2],o=Q*e-t*E,n=-(C*e-t*i),a=C*E-Q*i,s=-(g*e-B*E),c=I*e-B*i,r=-(I*E-g*i),h=g*t-B*Q,l=-(I*t-B*C),y=I*Q-g*C,D=I*o+g*n+B*a;if(0===D)throw new Error(\"Singular matrix\");return[[o/D,s/D,h/D],[n/D,c/D,l/D],[a/D,r/D,y/D]]}(g),a=n[0][0],s=n[0][1],c=n[0][2],r=n[1][0],h=n[1][1],l=n[1][2],y=n[2][0],D=n[2][1],w=n[2][2],d=A.createImageData(B,C),f=d.data,u=t-1,m=i-1;for(let N=0;N<C;N++){const A=s*N+c,I=h*N+l,g=D*N+w;for(let C=0;C<B;C++){const Q=1/(y*C+g),i=(a*C+A)*Q,E=(r*C+I)*Q,e=i<0?0:i>u?u:i,n=E<0?0:E>m?m:E,s=0|e,c=0|n,h=s<u?s+1:s,l=c<m?c+1:c,D=e-s,w=n-c,d=1-D,R=1-w,p=d*R,F=D*R,J=d*w,G=D*w,k=c*t+s<<2,S=c*t+h<<2,M=l*t+s<<2,b=l*t+h<<2,L=N*B+C<<2;f[L]=o[k]*p+o[S]*F+o[M]*J+o[b]*G+.5|0,f[L+1]=o[k+1]*p+o[S+1]*F+o[M+1]*J+o[b+1]*G+.5|0,f[L+2]=o[k+2]*p+o[S+2]*F+o[M+2]*J+o[b+2]*G+.5|0,f[L+3]=255}}A.putImageData(d,0,0)}(A,I,function(A,I){const g=function(A,I){const g=A.length,B=A[0].length,C=A.map(A=>A.slice()),Q=I.slice();for(let i=0;i<B;i++){let A=i;for(let I=i+1;I<g;I++)Math.abs(C[I][i])>Math.abs(C[A][i])&&(A=I);[C[i],C[A]]=[C[A],C[i]],[Q[i],Q[A]]=[Q[A],Q[i]];for(let I=i+1;I<g;I++){const A=C[I][i]/C[i][i];for(let g=i;g<B;g++)C[I][g]-=A*C[i][g];Q[I]-=A*Q[i]}}const t=new Array(B);for(let i=B-1;i>=0;i--){let A=Q[i];for(let I=i+1;I<B;I++)A-=C[i][I]*t[I];t[i]=A/C[i][i]}return t}(function(A){const g=[];for(let B=0;B<4;B++){const[C,Q]=A[B];g.push([C,Q,1,0,0,0,-C*I[B][0],-Q*I[B][0]]),g.push([0,0,0,C,Q,1,-C*I[B][1],-Q*I[B][1]])}return g}(A),[I[0][0],I[0][1],I[1][0],I[1][1],I[2][0],I[2][1],I[3][0],I[3][1]]);return[[g[0],g[1],g[2]],[g[3],g[4],g[5]],[g[6],g[7],1]]}([[B.x,B.y],[C.x,C.y],[Q.x,Q.y],[t.x,t.y]],[[0,0],[e-1,0],[e-1,a-1],[0,a-1]]),e,a)}async function AA(A,I,g={}){const B=g.output||\"canvas\";if(!(I&&I.topLeft&&I.topRight&&I.bottomRight&&I.bottomLeft))return{output:null,corners:null,success:!1,message:\"Invalid corner points provided\"};try{const g=document.createElement(\"canvas\");let C;return $(g.getContext(\"2d\"),A,I),C=\"canvas\"===B?g:\"imagedata\"===B?g.getContext(\"2d\").getImageData(0,0,g.width,g.height):\"dataurl\"===B?g.toDataURL():g,{output:C,corners:I,success:!0,message:\"Document extracted successfully\"}}catch(C){return{output:null,corners:I,success:!1,message:`Extraction failed: ${C.message}`}}}async function IA(A,I={}){const g=[],B=performance.now(),C=I.mode||\"detect\",Q=I.output||\"canvas\",t=I.maxProcessingDimension||800;let i,E,e,o;if(\"ml\"===(I.detector||\"classical\")){E=performance.now();const{detectDocumentMl:B}=await import(\"./scanic-mlDetector.js\");i=await B(A,I.ml||{}),g.push({step:\"ML Detection Total\",ms:(performance.now()-E).toFixed(2)}),i.timings&&i.timings.forEach(A=>g.push(A))}else{E=performance.now();const{grayscaleData:B,scaleFactor:C,scaledDimensions:Q}=await async function(A,I=800){let g,B;const C=A&&\"number\"==typeof A.width&&\"number\"==typeof A.height&&A.data;if(C)g=A.width,B=A.height;else{if(!A)throw new Error(\"No image provided\");g=A.width||A.naturalWidth,B=A.height||A.naturalHeight}const Q=Math.max(g,B);let t,i,E;if(Q<=I)t=g,i=B,E=1;else{const A=I/Q;t=Math.round(g*A),i=Math.round(B*A),E=1/A}const e=\"undefined\"!=typeof OffscreenCanvas,o=e?new OffscreenCanvas(t,i):document.createElement(\"canvas\");e||(o.width=t,o.height=i);const n=o.getContext(\"2d\",{willReadFrequently:!0});if(n.imageSmoothingEnabled=!0,n.imageSmoothingQuality=\"medium\",C){const I=e?new OffscreenCanvas(g,B):document.createElement(\"canvas\");e||(I.width=g,I.height=B),I.getContext(\"2d\").putImageData(A,0,0),n.drawImage(I,0,0,g,B,0,0,t,i)}else n.drawImage(A,0,0,g,B,0,0,t,i);const a=n.getImageData(0,0,t,i),s=a.data,c=new Uint8ClampedArray(t*i);for(let r=0,h=0;r<s.length;r+=4,h++){const A=54*s[r]+183*s[r+1]+19*s[r+2]>>8;c[h]=A,s[r]=s[r+1]=s[r+2]=A}return{grayscaleData:c,imageData:a,scaleFactor:E,originalDimensions:{width:g,height:B},scaledDimensions:{width:t,height:i}}}(A,t);g.push({step:\"Image Prep + Scale + Gray\",ms:(performance.now()-E).toFixed(2)}),i=await _(B,Q.width,Q.height,C,I),i.timings&&i.timings.forEach(A=>g.push(A))}if(!i.success){const A=performance.now();return g.unshift({step:\"Total\",ms:(A-B).toFixed(2)}),{output:null,corners:null,contour:null,confidence:i.confidence||null,score:i.score??null,debug:i.debug,success:!1,message:i.message||\"No document detected\",timings:g}}\"detect\"===C?o=null:\"extract\"===C&&(E=performance.now(),e=document.createElement(\"canvas\"),$(e.getContext(\"2d\"),A,i.corners),g.push({step:\"Perspective Transform\",ms:(performance.now()-E).toFixed(2)})),\"detect\"!==C&&e&&(E=performance.now(),o=\"canvas\"===Q?e:\"imagedata\"===Q?e.getContext(\"2d\").getImageData(0,0,e.width,e.height):\"dataurl\"===Q?e.toDataURL():e,g.push({step:\"Output Conversion\",ms:(performance.now()-E).toFixed(2)}));const n=performance.now();return g.unshift({step:\"Total\",ms:(n-B).toFixed(2)}),{output:o,corners:i.corners,contour:i.contour??null,confidence:i.confidence||null,score:i.score??null,debug:i.debug,success:!0,message:\"Document detected\",timings:g}}export{P as Scanner,T as createCornerEditor,AA as extractDocument,W as initialize,IA as scanDocument};","// Quad detector over the VENDORED scanic 1.5.0 dist (Task 34). Vendoring\n// posture = models-v3: the dist is committed under vendor/scanic/ with a\n// sha256 manifest pinned by test/doc/scanic-manifest.test.ts — no registry\n// fetch at build time, no CDN at runtime (the Rust-WASM Canny pipeline is\n// base64-embedded in scanic.js; the optional ML detector chunk is never\n// requested because we pin `detector: 'classical'`).\nimport { scanDocument } from \"../../../vendor/scanic/scanic.js\";\nimport { DOC_DETECT_WIDTH, type DocQuad } from \"./doc-gate-v1\";\n\n/** Pinned vendored version — bump ONLY with a manifest + bench re-run. */\nexport const SCANIC_VERSION = \"1.5.0\";\n\nexport { DOC_DETECT_WIDTH };\n\n/**\n * Minimum scanic contour confidence to report a quad AT ALL (operator gate\n * feedback 2026-07-12: low-confidence contours drew corners well inside the\n * card — better to coach `no_doc` than to render a garbage quad the user\n * chases). Lowered 0.5→0.35 at gate round 2: passport data pages against the\n * booklet's own pages have weak edge contrast and 0.5 starved detection —\n * the gate's plausibility/stability checks stay the real filter.\n */\nexport const DOC_DETECT_MIN_CONFIDENCE = 0.35;\n\n/**\n * Detect the document quad on a (≤480px) snapshot. Returns the corner points\n * in the SNAPSHOT's pixel space, or null when scanic finds no plausible\n * document contour (or only a low-confidence one). Detection only — no\n * extraction/warp here (the session crops the full-res still itself).\n */\nexport async function detectQuad(image: ImageData): Promise<DocQuad | null> {\n const result = await scanDocument(image, {\n mode: \"detect\",\n detector: \"classical\",\n maxProcessingDimension: DOC_DETECT_WIDTH,\n });\n if (!result.success || result.corners === null) return null;\n if (typeof result.confidence === \"number\" && result.confidence < DOC_DETECT_MIN_CONFIDENCE) {\n return null;\n }\n return result.corners;\n}\n"],"mappings":"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","names":["A","B","t","i","E","e","o","n","a","s","I","g","c","r","h","C","Q","l","y","D","d","w","f","m","N","p","F","J","M","A","I","g","B","C","Q","t","i","E","e","o","n","a","s","c","r","h","l","y","D","w","d","f","u","m","N","R","p","F","J","G","k","S","M","A","I","g","B","C","Q","t","i","E","e","o","n","a","s","c","r","h"]}