@flyfish-group/file-viewer 1.0.7 → 1.0.8

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.
@@ -1 +1 @@
1
- const aT=b;(function(c,d){const aS=b,e=c();while(!![]){try{const f=parseInt(aS(0x2b0))/0x1*(parseInt(aS(0x24f))/0x2)+parseInt(aS(0x26a))/0x3*(parseInt(aS(0x2c6))/0x4)+parseInt(aS(0x1a7))/0x5+parseInt(aS(0x1d0))/0x6+parseInt(aS(0x1b5))/0x7*(-parseInt(aS(0x281))/0x8)+-parseInt(aS(0x1ae))/0x9+-parseInt(aS(0x2ce))/0xa;if(f===d)break;else e['push'](e['shift']());}catch(g){e['push'](e['shift']());}}}(a,0x35dfa));var Re=Object[aT(0x1f4)],Oe=Object[aT(0x20e)],_e=Object['getOwnPropertyDescriptors'],ve=Object['getOwnPropertySymbols'],We=Object['prototype']['hasOwnProperty'],$e=Object['prototype'][aT(0x1d8)],T=Math['pow'],se=(c,d,f)=>d in c?Re(c,d,{'enumerable':!0x0,'configurable':!0x0,'writable':!0x0,'value':f}):c[d]=f,P=(c,d)=>{for(var f in d||(d={}))We['call'](d,f)&&se(c,f,d[f]);if(ve){for(var f of ve(d))$e['call'](d,f)&&se(c,f,d[f]);}return c;},w=(c,d)=>Oe(c,_e(d)),p=(c,d,f)=>(se(c,typeof d!='symbol'?d+'':d,f),f),H=(c,d,f)=>new Promise((g,h)=>{const aV=aT;var k=u=>{try{m(f['next'](u));}catch(v){h(v);}},l=u=>{const aU=b;try{m(f[aU(0x250)](u));}catch(v){h(v);}},m=u=>u['done']?g(u[aV(0x1ea)]):Promise['resolve'](u['value'])['then'](k,l);m((f=f['apply'](c,d))[aV(0x1ab)]());});function Se(f,g,k=0x0,v=f['length']-0x1,x=je){const aW=aT;for(;v>k;){if(v-k>0x258){const D=v-k+0x1,F=g-k+0x1,I=Math['log'](D),L=0.5*Math['exp'](0x2*I/0x3),N=0.5*Math['sqrt'](I*L*(D-L)/D)*(F-D/0x2<0x0?-0x1:0x1),O=Math['max'](k,Math['floor'](g-F*L/D+N)),R=Math['min'](v,Math[aW(0x188)](g+(D-F)*L/D+N));Se(f,g,O,R,x);}const y=f[g];let A=k,C=v;for(V(f,k,g),x(f[v],y)>0x0&&V(f,k,v);A<C;){for(V(f,A,C),A++,C--;x(f[A],y)<0x0;)A++;for(;x(f[C],y)>0x0;)C--;}x(f[k],y)===0x0?V(f,k,C):(C++,V(f,C,v)),C<=g&&(k=C+0x1),g<=C&&(v=C-0x1);}}function V(c,d,f){const g=c[d];c[d]=c[f],c[f]=g;}function je(c,d){return c<d?-0x1:c>d?0x1:0x0;}class qe{constructor(c=0x9){const aX=aT;this['_maxEntries']=Math[aX(0x1e7)](0x4,c),this['_minEntries']=Math['max'](0x2,Math[aX(0x237)](this[aX(0x24a)]*0.4)),this['clear']();}['all'](){return this['_all'](this['data'],[]);}[aT(0x1e9)](c){const aY=aT;let d=this['data'];const e=[];if(!ee(c,d))return e;const f=this['toBBox'],g=[];for(;d;){for(let h=0x0;h<d[aY(0x2bc)]['length'];h++){const k=d['children'][h],m=d[aY(0x2b1)]?f(k):k;ee(c,m)&&(d['leaf']?e['push'](k):ie(c,m)?this['_all'](k,e):g['push'](k));}d=g['pop']();}return e;}['collides'](c){const aZ=aT;let d=this['data'];if(!ee(c,d))return!0x1;const e=[];for(;d;){for(let f=0x0;f<d['children'][aZ(0x204)];f++){const g=d['children'][f],h=d['leaf']?this['toBBox'](g):g;if(ee(c,h)){if(d['leaf']||ie(c,h))return!0x0;e['push'](g);}}d=e['pop']();}return!0x1;}['load'](c){const b0=aT;if(!(c&&c['length']))return this;if(c['length']<this['_minEntries']){for(let e=0x0;e<c['length'];e++)this['insert'](c[e]);return this;}let d=this['_build'](c[b0(0x2cb)](),0x0,c[b0(0x204)]-0x1,0x0);if(!this['data']['children']['length'])this['data']=d;else{if(this['data']['height']===d['height'])this['_splitRoot'](this[b0(0x1e8)],d);else{if(this['data'][b0(0x18c)]<d['height']){const f=this['data'];this[b0(0x1e8)]=d,d=f;}this['_insert'](d,this['data']['height']-d['height']-0x1,!0x0);}}return this;}['insert'](c){return c&&this['_insert'](c,this['data']['height']-0x1),this;}['clear'](){return this['data']=q([]),this;}['remove'](d,e){const b1=aT;if(!d)return this;let f=this['data'];const g=this['toBBox'](d),k=[],m=[];let u,v,x;for(;f||k['length'];){if(f||(f=k['pop'](),v=k[k[b1(0x204)]-0x1],u=m['pop'](),x=!0x0),f['leaf']){const y=He(d,f['children'],e);if(y!==-0x1)return f['children']['splice'](y,0x1),k[b1(0x238)](f),this['_condense'](k),this;}!x&&!f[b1(0x2b1)]&&ie(f,g)?(k['push'](f),m['push'](u),u=0x0,v=f,f=f['children'][0x0]):v?(u++,f=v['children'][u],x=!0x1):f=null;}return this;}[aT(0x2d6)](c){return c;}['compareMinX'](c,d){const b2=aT;return c['minX']-d[b2(0x1cc)];}['compareMinY'](c,d){return c['minY']-d['minY'];}[aT(0x25a)](){return this['data'];}['fromJSON'](c){return this['data']=c,this;}['_all'](c,d){const b3=aT,e=[];for(;c;)c[b3(0x2b1)]?d['push'](...c['children']):e['push'](...c['children']),c=e['pop']();return d;}['_build'](e,f,g,k){const b4=aT,v=g-f+0x1;let x=this['_maxEntries'],y;if(v<=x)return y=q(e[b4(0x2cb)](f,g+0x1)),j(y,this['toBBox']),y;k||(k=Math['ceil'](Math['log'](v)/Math['log'](x)),x=Math['ceil'](v/Math['pow'](x,k-0x1))),y=q([]),y['leaf']=!0x1,y['height']=k;const A=Math['ceil'](v/x),C=A*Math['ceil'](Math['sqrt'](x));Fe(e,f,g,C,this['compareMinX']);for(let D=f;D<=g;D+=C){const F=Math['min'](D+C-0x1,g);Fe(e,D,F,A,this[b4(0x28a)]);for(let I=D;I<=F;I+=A){const L=Math['min'](I+A-0x1,F);y['children']['push'](this['_build'](e,I,L,k-0x1));}}return j(y,this['toBBox']),y;}['_chooseSubtree'](d,e,f,g){const b5=aT;for(;g['push'](e),!(e['leaf']||g['length']-0x1===f);){let k=0x1/0x0,m=0x1/0x0,v;for(let x=0x0;x<e['children']['length'];x++){const y=e[b5(0x2bc)][x],A=oe(y),C=Ge(d,y)-A;C<m?(m=C,k=A<k?A:k,v=y):C===m&&A<k&&(k=A,v=y);}e=v||e['children'][0x0];}return e;}['_insert'](c,d,e){const b6=aT,f=e?c:this['toBBox'](c),g=[],h=this['_chooseSubtree'](f,this['data'],d,g);for(h['children']['push'](c),Z(h,f);d>=0x0&&g[d]['children']['length']>this['_maxEntries'];)this['_split'](g,d),d--;this[b6(0x2a8)](f,g,d);}['_split'](c,d){const b7=aT,e=c[d],f=e['children'][b7(0x204)],g=this['_minEntries'];this['_chooseSplitAxis'](e,g,f);const h=this['_chooseSplitIndex'](e,g,f),k=q(e['children']['splice'](h,e[b7(0x2bc)]['length']-h));k['height']=e['height'],k[b7(0x2b1)]=e['leaf'],j(e,this['toBBox']),j(k,this['toBBox']),d?c[d-0x1]['children']['push'](k):this['_splitRoot'](e,k);}['_splitRoot'](c,d){this['data']=q([c,d]),this['data']['height']=c['height']+0x1,this['data']['leaf']=!0x1,j(this['data'],this['toBBox']);}[aT(0x186)](d,e,f){let g,k=0x1/0x0,m=0x1/0x0;for(let v=e;v<=f-e;v++){const x=G(d,0x0,v,this['toBBox']),y=G(d,v,f,this['toBBox']),A=Ze(x,y),C=oe(x)+oe(y);A<k?(k=A,g=v,m=C<m?C:m):A===k&&C<m&&(m=C,g=v);}return g||f-e;}['_chooseSplitAxis'](c,d,e){const b8=aT,f=c['leaf']?this['compareMinX']:Ve,g=c['leaf']?this[b8(0x28a)]:Ue,h=this['_allDistMargin'](c,d,e,f),k=this['_allDistMargin'](c,d,e,g);h<k&&c['children'][b8(0x21a)](f);}['_allDistMargin'](d,e,f,g){const b9=aT;d[b9(0x2bc)]['sort'](g);const k=this['toBBox'],m=G(d,0x0,e,k),u=G(d,f-e,f,k);let v=J(m)+J(u);for(let x=e;x<f-e;x++){const y=d['children'][x];Z(m,d['leaf']?k(y):y),v+=J(m);}for(let A=f-e-0x1;A>=e;A--){const C=d['children'][A];Z(u,d['leaf']?k(C):C),v+=J(u);}return v;}['_adjustParentBBoxes'](c,d,e){for(let f=e;f>=0x0;f--)Z(d[f],c);}['_condense'](c){const bb=aT;for(let d=c['length']-0x1,e;d>=0x0;d--)c[d]['children']['length']===0x0?d>0x0?(e=c[d-0x1]['children'],e[bb(0x1c8)](e['indexOf'](c[d]),0x1)):this['clear']():j(c[d],this['toBBox']);}}function He(c,d,f){if(!f)return d['indexOf'](c);for(let g=0x0;g<d['length'];g++)if(f(c,d[g]))return g;return-0x1;}function j(c,d){const bc=aT;G(c,0x0,c[bc(0x2bc)]['length'],d,c);}function G(c,d,f,g,h){const bd=aT;h||(h=q(null)),h[bd(0x1cc)]=0x1/0x0,h['minY']=0x1/0x0,h['maxX']=-0x1/0x0,h['maxY']=-0x1/0x0;for(let i=d;i<f;i++){const k=c['children'][i];Z(h,c['leaf']?g(k):k);}return h;}function Z(c,d){const be=aT;return c['minX']=Math[be(0x187)](c['minX'],d['minX']),c['minY']=Math['min'](c['minY'],d['minY']),c[be(0x199)]=Math['max'](c['maxX'],d[be(0x199)]),c['maxY']=Math['max'](c['maxY'],d['maxY']),c;}function Ve(c,d){return c['minX']-d['minX'];}function Ue(c,d){return c['minY']-d['minY'];}function oe(c){const bf=aT;return(c[bf(0x199)]-c['minX'])*(c['maxY']-c['minY']);}function J(c){return c['maxX']-c['minX']+(c['maxY']-c['minY']);}function Ge(c,d){const bg=aT;return(Math['max'](d['maxX'],c['maxX'])-Math[bg(0x187)](d[bg(0x1cc)],c['minX']))*(Math['max'](d[bg(0x275)],c[bg(0x275)])-Math['min'](d[bg(0x286)],c['minY']));}function Ze(c,d){const f=Math['max'](c['minX'],d['minX']),g=Math['max'](c['minY'],d['minY']),h=Math['min'](c['maxX'],d['maxX']),i=Math['min'](c['maxY'],d['maxY']);return Math['max'](0x0,h-f)*Math['max'](0x0,i-g);}function ie(c,d){const bh=aT;return c['minX']<=d[bh(0x1cc)]&&c['minY']<=d['minY']&&d['maxX']<=c[bh(0x199)]&&d['maxY']<=c['maxY'];}function ee(c,d){const bi=aT;return d['minX']<=c['maxX']&&d[bi(0x286)]<=c['maxY']&&d['maxX']>=c['minX']&&d['maxY']>=c['minY'];}function q(c){return{'children':c,'height':0x1,'leaf':!0x0,'minX':0x1/0x0,'minY':0x1/0x0,'maxX':-0x1/0x0,'maxY':-0x1/0x0};}function Fe(c,d,f,g,h){const bj=aT,i=[d,f];for(;i[bj(0x204)];){if(f=i['pop'](),d=i['pop'](),f-d<=g)continue;const k=d+Math['ceil']((f-d)/g/0x2)*g;Se(c,k,d,f,h),i['push'](d,k,k,f);}}function Ke(c){const bk=aT,d=c['replace'](/\r\n?/g,'\x0a'),f=[],g=d['length'];let h=0x0;for(;h<g;){for(;h<g&&d['charCodeAt'](h)===0xa;)h++;if(h>=g)break;let k=d[bk(0x192)]('\x0a',h);k===-0x1&&(k=g);const m=d['substring'](h,k)['trim']();h=k+0x1;const u=parseInt(m,0xa);if(isNaN(u)){h<g&&(k=d['indexOf']('\x0a',h),k===-0x1&&(k=g),h=k+0x1);continue;}if(h>=g)break;k=d['indexOf']('\x0a',h),k===-0x1&&(k=g);const v=d['substring'](h,k)['replace'](/\s+$/,'');h=k+0x1,f['push']({'code':u,'value':v});}return f;}function Qe(c,d,f){const bl=aT;for(;d<c['length'];){const g=c[d];if(g[bl(0x1ef)]===0x0&&g[bl(0x1ea)]==='ENDSEC')return d+0x1;if(g['code']===0x9){const h=g['value'];switch(d++,h){case bl(0x1c0):d<c['length']&&(f['acadVersion']=c[d]['value'],d++);break;case bl(0x197):if(d<c[bl(0x204)]){const i=xe(c,d);f['extMin']=i['point'],d=i['nextIndex'];}break;case'$EXTMAX':if(d<c['length']){const k=xe(c,d);f['extMax']=k['point'],d=k['nextIndex'];}break;case'$INSUNITS':d<c['length']&&(f[bl(0x194)]=parseInt(c[d]['value'],0xa),d++);break;case'$MEASUREMENT':d<c[bl(0x204)]&&(f[bl(0x1a2)]=parseInt(c[d]['value'],0xa),d++);break;case bl(0x2df):d<c['length']&&(f['ltScale']=parseFloat(c[d]['value']),d++);break;case'$DWGCODEPAGE':d<c[bl(0x204)]&&(f['dwgCodePage']=c[d]['value'],d++);break;case'$HANDSEED':d<c['length']&&(f[bl(0x244)]=c[d]['value'],d++);break;default:for(;d<c['length']&&c[d][bl(0x1ef)]!==0x9&&c[d]['code']!==0x0;)f[h]=c[d]['value'],d++;}}else d++;}return d;}function xe(c,d){const f={'x':0x0,'y':0x0,'z':0x0};for(;d<c['length'];){const g=c[d]['code'];if(g===0xa)f['x']=parseFloat(c[d]['value']),d++;else{if(g===0x14)f['y']=parseFloat(c[d]['value']),d++;else{if(g===0x1e)f['z']=parseFloat(c[d]['value']),d++;else break;}}}return{'point':f,'nextIndex':d};}function Je(c,d,f){for(;d<c['length'];){const g=c[d];if(g['code']===0x0&&g['value']==='ENDSEC')return d+0x1;if(g['code']===0x0&&g['value']==='TABLE'){if(d++,d>=c['length'])break;const h=c[d]['value'];switch(d++,h){case'LAYER':d=tt(c,d,f['layers']);break;case'LTYPE':d=at(c,d,f['lineTypes']);break;case'STYLE':d=nt(c,d,f['styles']);break;default:d=et(c,d);break;}}else d++;}return d;}function et(c,d){const bm=aT;for(;d<c[bm(0x204)];){if(c[d]['code']===0x0&&c[d]['value']==='ENDTAB')return d+0x1;d++;}return d;}function tt(c,d,f){const bn=aT;for(;d<c['length'];){const g=c[d];if(g['code']===0x0&&g['value']===bn(0x1fe))return d+0x1;if(g[bn(0x1ef)]===0x0&&g['value']==='LAYER'){d++;const h={'name':'0','color':0x7,'lineType':'Continuous','flags':0x0,'lineWeight':-0x3,'isOff':!0x1,'isFrozen':!0x1,'isLocked':!0x1};for(;d<c['length']&&c[d]['code']!==0x0;){const i=c[d];switch(i['code']){case 0x2:h[bn(0x1eb)]=i['value'];break;case 0x6:h['lineType']=i[bn(0x1ea)];break;case 0x3e:h['color']=parseInt(i[bn(0x1ea)],0xa);break;case 0x46:h['flags']=parseInt(i[bn(0x1ea)],0xa);break;case 0x172:h['lineWeight']=parseInt(i[bn(0x1ea)],0xa);break;case 0x1a4:h['trueColor']=parseInt(i[bn(0x1ea)],0xa);break;}d++;}f['set'](h['name'],h);}else d++;}return d;}function at(c,d,f){const bo=aT;for(;d<c['length'];){const g=c[d];if(g['code']===0x0&&g['value']==='ENDTAB')return d+0x1;if(g[bo(0x1ef)]===0x0&&g[bo(0x1ea)]==='LTYPE'){d++;const h={'name':'','description':'','pattern':[],'totalLength':0x0};for(;d<c['length']&&c[d]['code']!==0x0;){const i=c[d];switch(i['code']){case 0x2:h['name']=i['value'];break;case 0x3:h[bo(0x20d)]=i['value'];break;case 0x28:h['totalLength']=parseFloat(i[bo(0x1ea)]);break;case 0x31:h['pattern']['push'](parseFloat(i['value']));break;}d++;}h['name']&&f['set'](h['name'],h);}else d++;}return d;}function nt(c,d,f){const bp=aT;for(;d<c['length'];){const g=c[d];if(g['code']===0x0&&g['value']==='ENDTAB')return d+0x1;if(g[bp(0x1ef)]===0x0&&g['value']==='STYLE'){d++;const h={'name':'','fontName':'','bigFontName':'','height':0x0,'widthFactor':0x1,'obliqueAngle':0x0};for(;d<c[bp(0x204)]&&c[d]['code']!==0x0;){const i=c[d];switch(i['code']){case 0x2:h['name']=i[bp(0x1ea)];break;case 0x3:h['fontName']=i['value'];break;case 0x4:h['bigFontName']=i['value'];break;case 0x28:h['height']=parseFloat(i[bp(0x1ea)]);break;case 0x29:h['widthFactor']=parseFloat(i['value']);break;case 0x32:h['obliqueAngle']=parseFloat(i[bp(0x1ea)]);break;}d++;}h['name']&&f[bp(0x1b6)](h[bp(0x1eb)],h);}else d++;}return d;}function E(c){const bq=aT,d={'type':'','layer':'0','color':0x100,'lineType':bq(0x203),'lineTypeScale':0x1,'lineWeight':-0x1,'visible':!0x0,'extrusion':{'x':0x0,'y':0x0,'z':0x1}};for(const f of c)switch(f['code']){case 0x5:d['handle']=f[bq(0x1ea)];break;case 0x8:d['layer']=f['value'];break;case 0x6:d['lineType']=f['value'];break;case 0x30:d['lineTypeScale']=parseFloat(f['value']);break;case 0x3c:d['visible']=f['value']==='0'||f['value']==='';break;case 0x3e:d['color']=parseInt(f['value'],0xa);break;case 0x172:d['lineWeight']=parseInt(f['value'],0xa);break;case 0x1a4:d[bq(0x1da)]=parseInt(f['value'],0xa);break;case 0xd2:d['extrusion']['x']=parseFloat(f[bq(0x1ea)]);break;case 0xdc:d[bq(0x26c)]['y']=parseFloat(f['value']);break;case 0xe6:d['extrusion']['z']=parseFloat(f[bq(0x1ea)]);break;}return d;}function rt(c){const br=aT,d=E(c),f=w(P({},d),{'type':'LINE','start':{'x':0x0,'y':0x0,'z':0x0},'end':{'x':0x0,'y':0x0,'z':0x0}});for(const g of c)switch(g[br(0x1ef)]){case 0xa:f['start']['x']=parseFloat(g['value']);break;case 0x14:f[br(0x295)]['y']=parseFloat(g['value']);break;case 0x1e:f['start']['z']=parseFloat(g['value']);break;case 0xb:f['end']['x']=parseFloat(g['value']);break;case 0x15:f['end']['y']=parseFloat(g['value']);break;case 0x1f:f['end']['z']=parseFloat(g['value']);break;}return f;}function st(c){const bs=aT,d=E(c),f=w(P({},d),{'type':'CIRCLE','center':{'x':0x0,'y':0x0,'z':0x0},'radius':0x0});for(const g of c)switch(g['code']){case 0xa:f['center']['x']=parseFloat(g['value']);break;case 0x14:f['center']['y']=parseFloat(g[bs(0x1ea)]);break;case 0x1e:f[bs(0x23c)]['z']=parseFloat(g[bs(0x1ea)]);break;case 0x28:f['radius']=parseFloat(g['value']);break;}return f;}function ot(c){const bu=aT,d=E(c),f=w(P({},d),{'type':'ARC','center':{'x':0x0,'y':0x0,'z':0x0},'radius':0x0,'startAngle':0x0,'endAngle':0x168});for(const g of c)switch(g[bu(0x1ef)]){case 0xa:f[bu(0x23c)]['x']=parseFloat(g['value']);break;case 0x14:f[bu(0x23c)]['y']=parseFloat(g['value']);break;case 0x1e:f['center']['z']=parseFloat(g['value']);break;case 0x28:f['radius']=parseFloat(g['value']);break;case 0x32:f[bu(0x285)]=parseFloat(g['value']);break;case 0x33:f['endAngle']=parseFloat(g['value']);break;}return f;}function it(c){const bv=aT,d=E(c),f=w(P({},d),{'type':'LWPOLYLINE','vertices':[],'closed':!0x1,'constantWidth':0x0,'elevation':0x0});let g=null;for(const h of c)switch(h['code']){case 0x46:f['closed']=(parseInt(h['value'],0xa)&0x1)!==0x0;break;case 0x26:f[bv(0x2a0)]=parseFloat(h['value']);break;case 0x2b:f['constantWidth']=parseFloat(h['value']);break;case 0xa:g&&f['vertices']['push'](g),g={'x':parseFloat(h['value']),'y':0x0,'bulge':0x0,'startWidth':0x0,'endWidth':0x0};break;case 0x14:g&&(g['y']=parseFloat(h['value']));break;case 0x28:g&&(g[bv(0x22b)]=parseFloat(h['value']));break;case 0x29:g&&(g['endWidth']=parseFloat(h['value']));break;case 0x2a:g&&(g['bulge']=parseFloat(h['value']));break;}return g&&f['vertices']['push'](g),f;}function lt(c){const d=E(c),f=w(P({},d),{'type':'POLYLINE','vertices':[],'closed':!0x1,'is3d':!0x1});for(const g of c)switch(g['code']){case 0x46:{const h=parseInt(g['value'],0xa);f['closed']=(h&0x1)!==0x0,f['is3d']=(h&0x8)!==0x0;break;}}return f;}function ct(c){const bw=aT,d=E(c),f=w(P({},d),{'type':'ELLIPSE','center':{'x':0x0,'y':0x0,'z':0x0},'majorAxis':{'x':0x1,'y':0x0,'z':0x0},'minorRatio':0x1,'startParam':0x0,'endParam':Math['PI']*0x2});for(const g of c)switch(g[bw(0x1ef)]){case 0xa:f['center']['x']=parseFloat(g[bw(0x1ea)]);break;case 0x14:f['center']['y']=parseFloat(g['value']);break;case 0x1e:f['center']['z']=parseFloat(g['value']);break;case 0xb:f['majorAxis']['x']=parseFloat(g['value']);break;case 0x15:f['majorAxis']['y']=parseFloat(g[bw(0x1ea)]);break;case 0x1f:f['majorAxis']['z']=parseFloat(g['value']);break;case 0x28:f['minorRatio']=parseFloat(g['value']);break;case 0x29:f['startParam']=parseFloat(g['value']);break;case 0x2a:f[bw(0x228)]=parseFloat(g[bw(0x1ea)]);break;}return f;}function ht(c){const bx=aT,d=E(c),f=w(P({},d),{'type':'SPLINE','degree':0x3,'flags':0x0,'knots':[],'controlPoints':[],'fitPoints':[],'weights':[]});let g=null,h=null;for(const i of c)switch(i['code']){case 0x46:f['flags']=parseInt(i['value'],0xa);break;case 0x47:f['degree']=parseInt(i['value'],0xa);break;case 0x28:f['knots']['push'](parseFloat(i[bx(0x1ea)]));break;case 0x29:f['weights']['push'](parseFloat(i['value']));break;case 0xa:g&&f['controlPoints'][bx(0x238)](g),g={'x':parseFloat(i['value']),'y':0x0,'z':0x0};break;case 0x14:g&&(g['y']=parseFloat(i[bx(0x1ea)]));break;case 0x1e:g&&(g['z']=parseFloat(i['value']));break;case 0xb:h&&f['fitPoints']['push'](h),h={'x':parseFloat(i['value']),'y':0x0,'z':0x0};break;case 0x15:h&&(h['y']=parseFloat(i['value']));break;case 0x1f:h&&(h['z']=parseFloat(i[bx(0x1ea)]));break;case 0xc:f[bx(0x1be)]||(f[bx(0x1be)]={'x':0x0,'y':0x0,'z':0x0}),f['startTangent']['x']=parseFloat(i[bx(0x1ea)]);break;case 0x16:f['startTangent']&&(f['startTangent']['y']=parseFloat(i['value']));break;case 0x20:f[bx(0x1be)]&&(f['startTangent']['z']=parseFloat(i['value']));break;case 0xd:f['endTangent']||(f['endTangent']={'x':0x0,'y':0x0,'z':0x0}),f['endTangent']['x']=parseFloat(i['value']);break;case 0x17:f['endTangent']&&(f['endTangent']['y']=parseFloat(i['value']));break;case 0x21:f['endTangent']&&(f['endTangent']['z']=parseFloat(i[bx(0x1ea)]));break;}return g&&f['controlPoints']['push'](g),h&&f['fitPoints']['push'](h),f;}function ut(c){const by=aT,d=E(c),f=w(P({},d),{'type':'TEXT','text':'','insertionPoint':{'x':0x0,'y':0x0,'z':0x0},'height':0x1,'rotation':0x0,'widthFactor':0x1,'obliqueAngle':0x0,'style':'STANDARD','hAlign':0x0,'vAlign':0x0,'generationFlags':0x0});for(const g of c)switch(g[by(0x1ef)]){case 0x1:f['text']=g['value'];break;case 0xa:f['insertionPoint']['x']=parseFloat(g['value']);break;case 0x14:f['insertionPoint']['y']=parseFloat(g['value']);break;case 0x1e:f['insertionPoint']['z']=parseFloat(g['value']);break;case 0xb:f['alignmentPoint']||(f['alignmentPoint']={'x':0x0,'y':0x0,'z':0x0}),f['alignmentPoint']['x']=parseFloat(g['value']);break;case 0x15:f['alignmentPoint']||(f['alignmentPoint']={'x':0x0,'y':0x0,'z':0x0}),f['alignmentPoint']['y']=parseFloat(g['value']);break;case 0x1f:f[by(0x1d7)]||(f['alignmentPoint']={'x':0x0,'y':0x0,'z':0x0}),f['alignmentPoint']['z']=parseFloat(g['value']);break;case 0x28:f[by(0x18c)]=parseFloat(g[by(0x1ea)]);break;case 0x29:f['widthFactor']=parseFloat(g['value']);break;case 0x32:f['rotation']=parseFloat(g['value']);break;case 0x33:f['obliqueAngle']=parseFloat(g[by(0x1ea)]);break;case 0x7:f[by(0x213)]=g['value'];break;case 0x47:f['generationFlags']=parseInt(g['value'],0xa);break;case 0x48:f['hAlign']=parseInt(g[by(0x1ea)],0xa);break;case 0x49:f['vAlign']=parseInt(g['value'],0xa);break;}return f;}function dt(c){const bz=aT,d=E(c),f=w(P({},d),{'type':'MTEXT','text':'','insertionPoint':{'x':0x0,'y':0x0,'z':0x0},'height':0x1,'width':0x0,'attachmentPoint':0x1,'drawingDirection':0x1,'rotation':0x0,'lineSpacingStyle':0x1,'lineSpacingFactor':0x1,'style':bz(0x298),'bgFill':0x0,'bgFillScale':1.5}),g=[];for(const h of c)switch(h['code']){case 0x1:g['push'](h['value']);break;case 0x3:g['push'](h[bz(0x1ea)]);break;case 0x7:f[bz(0x213)]=h['value'];break;case 0xa:f['insertionPoint']['x']=parseFloat(h['value']);break;case 0x14:f['insertionPoint']['y']=parseFloat(h['value']);break;case 0x1e:f['insertionPoint']['z']=parseFloat(h['value']);break;case 0xb:f[bz(0x1f7)]||(f['textDirection']={'x':0x0,'y':0x0,'z':0x0}),f['textDirection']['x']=parseFloat(h[bz(0x1ea)]);break;case 0x15:f['textDirection']||(f['textDirection']={'x':0x0,'y':0x0,'z':0x0}),f['textDirection']['y']=parseFloat(h['value']);break;case 0x1f:f['textDirection']||(f['textDirection']={'x':0x0,'y':0x0,'z':0x0}),f['textDirection']['z']=parseFloat(h['value']);break;case 0x28:f['height']=parseFloat(h['value']);break;case 0x29:f['width']=parseFloat(h[bz(0x1ea)]);break;case 0x2c:f['lineSpacingFactor']=parseFloat(h['value']);break;case 0x32:f[bz(0x28e)]=parseFloat(h['value']);break;case 0x47:f['attachmentPoint']=parseInt(h['value'],0xa);break;case 0x48:f['drawingDirection']=parseInt(h['value'],0xa);break;case 0x49:f['lineSpacingStyle']=parseInt(h[bz(0x1ea)],0xa);break;case 0x5a:f['bgFill']=parseInt(h['value'],0xa);break;}return f[bz(0x267)]=g['join'](''),f;}function ft(c){const bA=aT,d=E(c),f=w(P({},d),{'type':'INSERT','blockName':'','insertionPoint':{'x':0x0,'y':0x0,'z':0x0},'scaleX':0x1,'scaleY':0x1,'scaleZ':0x1,'rotation':0x0,'columnCount':0x1,'rowCount':0x1,'columnSpacing':0x0,'rowSpacing':0x0,'attribs':[]});for(const g of c)switch(g['code']){case 0x2:f['blockName']=g['value'];break;case 0xa:f['insertionPoint']['x']=parseFloat(g['value']);break;case 0x14:f['insertionPoint']['y']=parseFloat(g[bA(0x1ea)]);break;case 0x1e:f['insertionPoint']['z']=parseFloat(g[bA(0x1ea)]);break;case 0x29:f[bA(0x195)]=parseFloat(g['value']);break;case 0x2a:f[bA(0x2be)]=parseFloat(g['value']);break;case 0x2b:f['scaleZ']=parseFloat(g[bA(0x1ea)]);break;case 0x2c:f['columnSpacing']=parseFloat(g['value']);break;case 0x2d:f['rowSpacing']=parseFloat(g['value']);break;case 0x32:f['rotation']=parseFloat(g['value']);break;case 0x46:f[bA(0x22f)]=parseInt(g['value'],0xa)||0x1;break;case 0x47:f['rowCount']=parseInt(g[bA(0x1ea)],0xa)||0x1;break;}return f;}function pt(c){const bB=aT,d=E(c),f=w(P({},d),{'type':'DIMENSION','blockName':'','dimStyle':'STANDARD','dimType':0x0,'defPoint':{'x':0x0,'y':0x0,'z':0x0},'textMidpoint':{'x':0x0,'y':0x0,'z':0x0},'textOverride':'','rotation':0x0,'textRotation':0x0,'leaderLength':0x0});for(const g of c)switch(g[bB(0x1ef)]){case 0x1:f['textOverride']=g['value'];break;case 0x2:f['blockName']=g['value'];break;case 0x3:f['dimStyle']=g['value'];break;case 0xa:f['defPoint']['x']=parseFloat(g['value']);break;case 0x14:f['defPoint']['y']=parseFloat(g['value']);break;case 0x1e:f[bB(0x261)]['z']=parseFloat(g['value']);break;case 0xb:f['textMidpoint']['x']=parseFloat(g['value']);break;case 0x15:f['textMidpoint']['y']=parseFloat(g['value']);break;case 0x1f:f['textMidpoint']['z']=parseFloat(g['value']);break;case 0xd:f['defPoint2']||(f['defPoint2']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint2']['x']=parseFloat(g['value']);break;case 0x17:f['defPoint2']||(f['defPoint2']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint2']['y']=parseFloat(g['value']);break;case 0x21:f['defPoint2']||(f['defPoint2']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint2']['z']=parseFloat(g['value']);break;case 0xe:f['defPoint3']||(f['defPoint3']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint3']['x']=parseFloat(g['value']);break;case 0x18:f[bB(0x2b7)]||(f[bB(0x2b7)]={'x':0x0,'y':0x0,'z':0x0}),f['defPoint3']['y']=parseFloat(g['value']);break;case 0x22:f['defPoint3']||(f['defPoint3']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint3']['z']=parseFloat(g[bB(0x1ea)]);break;case 0xf:f['defPoint4']||(f['defPoint4']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint4']['x']=parseFloat(g['value']);break;case 0x19:f['defPoint4']||(f['defPoint4']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint4']['y']=parseFloat(g['value']);break;case 0x23:f['defPoint4']||(f['defPoint4']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint4']['z']=parseFloat(g['value']);break;case 0x10:f['defPoint5']||(f['defPoint5']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint5']['x']=parseFloat(g['value']);break;case 0x1a:f['defPoint5']||(f['defPoint5']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint5']['y']=parseFloat(g[bB(0x1ea)]);break;case 0x24:f['defPoint5']||(f['defPoint5']={'x':0x0,'y':0x0,'z':0x0}),f[bB(0x251)]['z']=parseFloat(g['value']);break;case 0x28:f['leaderLength']=parseFloat(g['value']);break;case 0x32:f['rotation']=parseFloat(g['value']);break;case 0x35:f['textRotation']=parseFloat(g['value']);break;case 0x46:f['dimType']=parseInt(g[bB(0x1ea)],0xa);break;}return f;}function mt(c){const bC=aT,d=E(c),f=w(P({},d),{'type':'HATCH','patternName':'','solidFill':!0x0,'associative':!0x1,'hatchStyle':0x0,'patternType':0x1,'patternAngle':0x0,'patternScale':0x1,'boundaryPaths':[]});let g=0x0;for(;g<c[bC(0x204)];){const h=c[g];switch(h['code']){case 0x2:f['patternName']=h['value'];break;case 0x29:f[bC(0x269)]=parseFloat(h['value']);break;case 0x34:f['patternAngle']=parseFloat(h['value']);break;case 0x46:f[bC(0x2c2)]=h['value']==='1';break;case 0x47:f['associative']=h['value']==='1';break;case 0x4b:f['hatchStyle']=parseInt(h['value'],0xa);break;case 0x4c:f[bC(0x263)]=parseInt(h['value'],0xa);break;case 0x5b:{const k=parseInt(h['value'],0xa);g++;for(let l=0x0;l<k&&g<c[bC(0x204)];l++){const m=bt(c,g);f['boundaryPaths'][bC(0x238)](m['path']),g=m['nextIndex'];}continue;}}g++;}return f;}function bt(c,d){let f=0x0;return d<c['length']&&c[d]['code']===0x5c&&(f=parseInt(c[d]['value'],0xa),d++),(f&0x2)!==0x0?gt(c,d,f):vt(c,d,f);}function gt(c,d,f){const bD=aT,g={'type':'polyline','vertices':[],'bulges':[],'flags':f};let h=!0x1;d<c['length']&&c[d][bD(0x1ef)]===0x48&&(h=c[d]['value']==='1',d++),d<c['length']&&c[d]['code']===0x49&&(g['isClosed']=c[d][bD(0x1ea)]==='1',d++);let k=0x0;d<c['length']&&c[d]['code']===0x5d&&(k=parseInt(c[d]['value'],0xa),d++);for(let l=0x0;l<k&&d<c['length'];l++){const m={'x':0x0,'y':0x0};c[d]['code']===0xa&&(m['x']=parseFloat(c[d]['value']),d++),d<c['length']&&c[d][bD(0x1ef)]===0x14&&(m['y']=parseFloat(c[d]['value']),d++),g['vertices'][bD(0x238)](m),h&&d<c['length']&&c[d]['code']===0x2a?(g['bulges'][bD(0x238)](parseFloat(c[d]['value'])),d++):h&&g['bulges']['push'](0x0);}for(;d<c['length']&&(c[d][bD(0x1ef)]===0x61||c[d]['code']===0x14a);)if(c[d][bD(0x1ef)]===0x61){const u=parseInt(c[d]['value'],0xa);d++;for(let v=0x0;v<u&&d<c['length']&&c[d]['code']===0x14a;v++)d++;}else d++;return{'path':g,'nextIndex':d};}function vt(f,g,k){const bE=aT,v={'type':'edges','edges':[],'flags':k};let x=0x0;g<f['length']&&f[g]['code']===0x5d&&(x=parseInt(f[g]['value'],0xa),g++);for(let y=0x0;y<x&&g<f['length']&&f[g]['code']===0x48;y++){const A=parseInt(f[g][bE(0x1ea)],0xa);switch(g++,A){case 0x1:{const C={'type':'line','start':{'x':0x0,'y':0x0},'end':{'x':0x0,'y':0x0}};g<f['length']&&f[g]['code']===0xa&&(C['start']['x']=parseFloat(f[g]['value']),g++),g<f[bE(0x204)]&&f[g]['code']===0x14&&(C[bE(0x295)]['y']=parseFloat(f[g]['value']),g++),g<f[bE(0x204)]&&f[g]['code']===0xb&&(C['end']['x']=parseFloat(f[g][bE(0x1ea)]),g++),g<f['length']&&f[g]['code']===0x15&&(C[bE(0x19c)]['y']=parseFloat(f[g]['value']),g++),v[bE(0x1ee)]['push'](C);break;}case 0x2:{const D={'type':'arc','center':{'x':0x0,'y':0x0},'radius':0x0,'startAngle':0x0,'endAngle':0x168,'ccw':!0x0};g<f['length']&&f[g]['code']===0xa&&(D['center']['x']=parseFloat(f[g]['value']),g++),g<f['length']&&f[g]['code']===0x14&&(D['center']['y']=parseFloat(f[g]['value']),g++),g<f['length']&&f[g]['code']===0x28&&(D['radius']=parseFloat(f[g]['value']),g++),g<f['length']&&f[g]['code']===0x32&&(D['startAngle']=parseFloat(f[g]['value']),g++),g<f['length']&&f[g][bE(0x1ef)]===0x33&&(D['endAngle']=parseFloat(f[g]['value']),g++),g<f[bE(0x204)]&&f[g]['code']===0x49&&(D['ccw']=f[g]['value']==='1',g++),v['edges']['push'](D);break;}case 0x3:{const F={'type':'ellipse','center':{'x':0x0,'y':0x0},'majorAxis':{'x':0x1,'y':0x0},'minorRatio':0x1,'startAngle':0x0,'endAngle':Math['PI']*0x2,'ccw':!0x0};g<f[bE(0x204)]&&f[g][bE(0x1ef)]===0xa&&(F['center']['x']=parseFloat(f[g]['value']),g++),g<f['length']&&f[g]['code']===0x14&&(F['center']['y']=parseFloat(f[g]['value']),g++),g<f['length']&&f[g]['code']===0xb&&(F['majorAxis']['x']=parseFloat(f[g]['value']),g++),g<f['length']&&f[g]['code']===0x15&&(F['majorAxis']['y']=parseFloat(f[g][bE(0x1ea)]),g++),g<f['length']&&f[g]['code']===0x28&&(F[bE(0x218)]=parseFloat(f[g]['value']),g++),g<f['length']&&f[g]['code']===0x32&&(F['startAngle']=parseFloat(f[g][bE(0x1ea)]),g++),g<f[bE(0x204)]&&f[g]['code']===0x33&&(F['endAngle']=parseFloat(f[g]['value']),g++),g<f['length']&&f[g]['code']===0x49&&(F['ccw']=f[g]['value']==='1',g++),v['edges'][bE(0x238)](F);break;}case 0x4:{let I=0x3;const L=[],N=[];g<f['length']&&f[g]['code']===0x5e&&(I=parseInt(f[g][bE(0x1ea)],0xa),g++),g<f['length']&&f[g]['code']===0x49&&g++,g<f['length']&&f[g]['code']===0x4a&&g++;let O=0x0;g<f['length']&&f[g]['code']===0x5f&&(O=parseInt(f[g]['value'],0xa),g++);let R=0x0;g<f['length']&&f[g]['code']===0x60&&(R=parseInt(f[g]['value'],0xa),g++);for(let S=0x0;S<O&&g<f[bE(0x204)]&&f[g][bE(0x1ef)]===0x28;S++)L['push'](parseFloat(f[g]['value'])),g++;for(let W=0x0;W<R&&g<f['length'];W++){const Y={'x':0x0,'y':0x0};f[g]['code']===0xa&&(Y['x']=parseFloat(f[g]['value']),g++),g<f['length']&&f[g]['code']===0x14&&(Y['y']=parseFloat(f[g]['value']),g++),N['push'](Y);}v[bE(0x1ee)]['push']({'type':'spline','degree':I,'knots':L,'controlPoints':N});break;}}}for(;g<f[bE(0x204)]&&(f[g]['code']===0x61||f[g]['code']===0x14a);)if(f[g]['code']===0x61){const a0=parseInt(f[g][bE(0x1ea)],0xa);g++;for(let a1=0x0;a1<a0&&g<f['length']&&f[g]['code']===0x14a;a1++)g++;}else g++;return{'path':v,'nextIndex':g};}function Ft(c){const d=E(c),f=w(P({},d),{'type':'POINT','position':{'x':0x0,'y':0x0,'z':0x0}});for(const g of c)switch(g['code']){case 0xa:f['position']['x']=parseFloat(g['value']);break;case 0x14:f['position']['y']=parseFloat(g['value']);break;case 0x1e:f['position']['z']=parseFloat(g['value']);break;}return f;}function Ce(c,d,f){const bF=aT;for(;d<c[bF(0x204)];){const g=c[d];if(g['code']!==0x0){d++;continue;}const h=g['value'];if(h==='ENDSEC'||h==='ENDBLK')return d+0x1;d++;const i=[];for(;d<c[bF(0x204)]&&c[d]['code']!==0x0;)i[bF(0x238)](c[d]),d++;switch(h){case bF(0x1b8):f[bF(0x238)](rt(i));break;case'CIRCLE':f['push'](st(i));break;case'ARC':f['push'](ot(i));break;case'LWPOLYLINE':f[bF(0x238)](it(i));break;case bF(0x264):f['push'](ct(i));break;case'SPLINE':f[bF(0x238)](ht(i));break;case'TEXT':f['push'](ut(i));break;case'MTEXT':f['push'](dt(i));break;case'INSERT':{const k=ft(i);i['some'](m=>m['code']===0x42&&m[bF(0x1ea)]==='1')&&(d=kt(c,d,k[bF(0x1cd)])),f['push'](k);break;}case'DIMENSION':f['push'](pt(i));break;case'HATCH':f['push'](mt(i));break;case'POINT':f['push'](Ft(i));break;case'POLYLINE':{const l=lt(i);d=xt(c,d,l['vertices']),f['push'](l);break;}}}return d;}function xt(c,d,f){const bG=aT;for(;d<c['length'];){if(c[d]['code']!==0x0){d++;continue;}const g=c[d]['value'];if(g===bG(0x229))return d+0x1;if(g===bG(0x2bf)||g===bG(0x22d))return d;if(g==='VERTEX'){d++;const h={'x':0x0,'y':0x0,'bulge':0x0,'startWidth':0x0,'endWidth':0x0};for(;d<c['length']&&c[d]['code']!==0x0;){const i=c[d];switch(i['code']){case 0xa:h['x']=parseFloat(i['value']);break;case 0x14:h['y']=parseFloat(i['value']);break;case 0x2a:h['bulge']=parseFloat(i['value']);break;case 0x28:h['startWidth']=parseFloat(i['value']);break;case 0x29:h[bG(0x24e)]=parseFloat(i['value']);break;}d++;}f['push'](h);}else{for(d++;d<c['length']&&c[d]['code']!==0x0;)d++;}}return d;}function kt(c,d,f){const bH=aT;for(;d<c['length'];){if(c[d]['code']!==0x0){d++;continue;}const g=c[d][bH(0x1ea)];if(g==='SEQEND')return d+0x1;if(g===bH(0x2bf)||g===bH(0x22d))return d;if(g==='ATTRIB'){d++;const h={'tag':'','text':'','insertionPoint':{'x':0x0,'y':0x0,'z':0x0},'height':0x1,'rotation':0x0,'style':'STANDARD','layer':'0','color':0x100};for(;d<c['length']&&c[d]['code']!==0x0;){const i=c[d];switch(i['code']){case 0x1:h['text']=i[bH(0x1ea)];break;case 0x2:h['tag']=i['value'];break;case 0x7:h['style']=i['value'];break;case 0x8:h['layer']=i['value'];break;case 0xa:h['insertionPoint']['x']=parseFloat(i['value']);break;case 0x14:h['insertionPoint']['y']=parseFloat(i['value']);break;case 0x1e:h['insertionPoint']['z']=parseFloat(i[bH(0x1ea)]);break;case 0x28:h['height']=parseFloat(i['value']);break;case 0x32:h[bH(0x28e)]=parseFloat(i['value']);break;case 0x3e:h['color']=parseInt(i[bH(0x1ea)],0xa);break;}d++;}f[bH(0x238)](h);}else{for(d++;d<c['length']&&c[d]['code']!==0x0;)d++;}}return d;}function yt(c,d,f){const bI=aT;for(;d<c['length'];){const g=c[d];if(g['code']===0x0&&g['value']==='ENDSEC')return d+0x1;if(g['code']===0x0&&g['value']==='BLOCK'){d++;const h={'name':'','basePoint':{'x':0x0,'y':0x0,'z':0x0},'entities':[],'flags':0x0};for(;d<c[bI(0x204)]&&c[d]['code']!==0x0;){const i=c[d];switch(i['code']){case 0x2:h[bI(0x1eb)]=i['value'];break;case 0x8:break;case 0xa:h['basePoint']['x']=parseFloat(i['value']);break;case 0x14:h['basePoint']['y']=parseFloat(i['value']);break;case 0x1e:h[bI(0x193)]['z']=parseFloat(i['value']);break;case 0x46:h[bI(0x208)]=parseInt(i['value'],0xa);break;}d++;}d=Ce(c,d,h['entities']),h['name']&&!h['name'][bI(0x293)]('*Model_Space')&&!h['name']['startsWith']('*Paper_Space')&&f['set'](h['name'],h);}else d++;}return d;}var ke='AutoCAD\x20Binary\x20DXF',Pt={'ANSI_874':aT(0x1f0),'ANSI_932':aT(0x256),'ANSI_936':'gbk','ANSI_949':'euc-kr','ANSI_950':'big5','ANSI_1250':'windows-1250','ANSI_1251':'windows-1251','ANSI_1252':aT(0x19e),'ANSI_1253':'windows-1253','ANSI_1254':'windows-1254','ANSI_1255':'windows-1255','ANSI_1256':'windows-1256','ANSI_1257':'windows-1257','ANSI_1258':'windows-1258'},wt='AC1021';function It(){return{'acadVersion':'','insUnits':0x0,'measurement':0x0,'ltScale':0x1};}function ye(c){return c['replace'](/\\U\+([0-9A-Fa-f]{4})/g,(d,f)=>String['fromCodePoint'](parseInt(f,0x10)));}function Tt(d){const bJ=aT;var f,g,k;if(typeof d=='string')return ye(d);const m=new Uint8Array(d);if(new TextDecoder('ascii')['decode'](m['slice'](0x0,ke['length']))===ke)throw new B('Binary\x20DXF\x20format\x20is\x20not\x20supported.\x20Please\x20export\x20as\x20ASCII\x20DXF.');let v=new TextDecoder('utf-8')['decode'](d);const x=v['match'](/\$ACADVER[\s\S]*?\n\s*1\s*\n\s*(\S+)/),y=(f=x==null?void 0x0:x[0x1])!=null?f:'';if(y&&y<wt){const A=v['match'](/\$DWGCODEPAGE[\s\S]*?\n\s*3\s*\n\s*(\S+)/),C=(g=A==null?void 0x0:A[0x1])!=null?g:'',D=(k=Pt[C])!=null?k:bJ(0x19e);D!=='utf-8'&&(v=new TextDecoder(D)['decode'](d));}return ye(v);}function Mt(c,d){const bK=aT;for(;d<c['length'];){if(c[d]['code']===0x0&&c[d][bK(0x1ea)]==='ENDSEC')return d+0x1;d++;}return d;}function Et(c){const bL=aT;c[bL(0x184)]['has']('0')||c['layers']['set']('0',{'name':'0','color':0x7,'lineType':'Continuous','flags':0x0,'lineWeight':-0x3,'isOff':!0x1,'isFrozen':!0x1,'isLocked':!0x1});}function At(c){const bM=aT;for(const [,d]of c['layers'])d[bM(0x233)]=d[bM(0x2c0)]<0x0,d['isOff']&&(d['color']=Math[bM(0x200)](d['color'])),d['isFrozen']=(d['flags']&0x1)!==0x0,d['isLocked']=(d['flags']&0x4)!==0x0;}var B=class extends Error{constructor(c,d){const bN=aT;super(c),this['cause']=d,this['name']=bN(0x2a5);}};function le(c){const bO=aT;if(typeof c=='string'){if(c['length']===0x0)throw new B('Input\x20is\x20empty.\x20Expected\x20a\x20DXF\x20string\x20or\x20ArrayBuffer.');}else{if(c instanceof ArrayBuffer){if(c['byteLength']===0x0)throw new B(bO(0x2de));}else throw new B('Invalid\x20input\x20type.\x20Expected\x20a\x20string\x20or\x20ArrayBuffer.');}let d;try{d=Tt(c);}catch(h){throw h instanceof B?h:new B('Failed\x20to\x20decode\x20DXF\x20input.',h);}let f;try{f=Ke(d);}catch(i){throw new B('Failed\x20to\x20tokenize\x20DXF\x20content.',i);}if(f[bO(0x204)]===0x0)throw new B('DXF\x20content\x20produced\x20no\x20tokens.\x20The\x20input\x20may\x20not\x20be\x20a\x20valid\x20DXF\x20file.');const g={'header':It(),'layers':new Map(),'lineTypes':new Map(),'styles':new Map(),'blocks':new Map(),'entities':[]};try{let k=0x0;for(;k<f['length'];){const l=f[k];if(l['code']===0x0&&l['value']==='SECTION'){if(k++,k>=f['length'])break;const m=f[k]['value'];switch(k++,m){case'HEADER':k=Qe(f,k,g['header']);break;case bO(0x2a1):k=Je(f,k,g);break;case'BLOCKS':k=yt(f,k,g[bO(0x289)]);break;case'ENTITIES':k=Ce(f,k,g['entities']);break;default:k=Mt(f,k);break;}}else{if(l['code']===0x0&&l['value']==='EOF')break;k++;}}}catch(u){throw new B('Failed\x20to\x20parse\x20DXF\x20sections.',u);}return Et(g),At(g),g;}var St=['#000000','#FF0000','#FFFF00',aT(0x191),'#00FFFF','#0000FF','#FF00FF','#FFFFFF','#808080','#C0C0C0','#FF0000','#FF7F7F',aT(0x1ad),'#A55252','#7F0000','#7F3F3F',aT(0x25f),'#4C2626','#260000','#261313','#FF3F00','#FF9F7F','#A52900','#A56752','#7F1F00','#7F4F3F','#4C1300','#4C2F26',aT(0x20a),'#261713','#FF7F00','#FFBF7F','#A55200','#A57C52','#7F3F00','#7F5F3F','#4C2600','#4C3926','#261300','#261C13','#FFBF00','#FFDF7F','#A57C00','#A59152','#7F5F00','#7F6F3F','#4C3900',aT(0x2bd),'#261C00','#262113','#FFFF00','#FFFF7F','#A5A500',aT(0x22c),'#7F7F00','#7F7F3F','#4C4C00','#4C4C26','#262600','#262613','#BFFF00',aT(0x259),'#7CA500','#91A552','#5F7F00','#6F7F3F','#394C00','#424C26','#1C2600','#212613','#7FFF00','#BFFF7F','#52A500','#7CA552','#3F7F00','#5F7F3F','#264C00','#394C26','#132600','#1C2613',aT(0x2a4),'#9FFF7F','#29A500','#67A552','#1F7F00',aT(0x236),aT(0x268),'#2F4C26','#092600','#172613','#00FF00','#7FFF7F','#00A500',aT(0x21e),'#007F00','#3F7F3F','#004C00','#264C26','#002600','#132613','#00FF3F',aT(0x28d),'#00A529','#52A567','#007F1F','#3F7F4F','#004C13','#264C2F','#002609','#132617','#00FF7F','#7FFFBF','#00A552','#52A57C','#007F3F','#3F7F5F','#004C26','#264C39',aT(0x2ba),aT(0x2d7),'#00FFBF','#7FFFDF','#00A57C','#52A591','#007F5F',aT(0x1c4),'#004C39','#264C42','#00261C',aT(0x22e),'#00FFFF','#7FFFFF',aT(0x1fa),'#52A5A5',aT(0x2c1),'#3F7F7F','#004C4C','#264C4C','#002626','#132626','#00BFFF','#7FDFFF','#007CA5',aT(0x279),'#005F7F',aT(0x211),aT(0x1d9),aT(0x1e1),aT(0x1ca),'#132126','#007FFF','#7FBFFF','#0052A5','#527CA5',aT(0x201),'#3F5F7F','#00264C','#26394C',aT(0x1ec),'#131C26','#003FFF','#7F9FFF',aT(0x266),'#5267A5','#001F7F','#3F4F7F','#00134C','#262F4C','#000926','#131726',aT(0x2c3),'#7F7FFF','#0000A5','#5252A5',aT(0x1ba),'#3F3F7F','#00004C','#26264C','#000026','#131326','#3F00FF','#9F7FFF','#2900A5','#6752A5',aT(0x27a),'#4F3F7F','#13004C','#2F264C',aT(0x1e3),'#171326','#7F00FF','#BF7FFF','#5200A5','#7C52A5',aT(0x25d),'#5F3F7F','#26004C','#39264C','#130026','#1C1326','#BF00FF','#DF7FFF','#7C00A5',aT(0x258),'#5F007F','#6F3F7F','#39004C','#42264C','#1C0026','#211326','#FF00FF','#FF7FFF','#A500A5','#A552A5','#7F007F',aT(0x2b2),'#4C004C','#4C264C','#260026','#261326','#FF00BF',aT(0x2a2),'#A5007C','#A55291','#7F005F','#7F3F6F','#4C0039',aT(0x2d0),'#26001C',aT(0x241),'#FF007F','#FF7FBF',aT(0x202),'#A5527C','#7F003F','#7F3F5F','#4C0026','#4C2639','#260013',aT(0x246),'#FF003F',aT(0x271),'#A50029','#A55267','#7F001F',aT(0x1f1),'#4C0013','#4C262F',aT(0x224),'#261317','#333333',aT(0x22a),aT(0x1dc),'#828282','#BEBEBE','#FFFFFF'];function Ct(c){if(!(c===0x0||c===0x100)&&!(c<0x0||c>0xff))return St[c];}var X={'dark':{'backgroundColor':'#1a1a2e','defaultEntityColor':'#ffffff','selectionColor':'#00ff88','measureColor':'#ffaa00','gridColor':'#333333','crosshairColor':'#555555'},'light':{'backgroundColor':aT(0x19a),'defaultEntityColor':'#000000','selectionColor':'#0066ff','measureColor':'#ff6600','gridColor':aT(0x23e),'crosshairColor':aT(0x217)}};function U(c,d,f){const bP=aT;return[d*c['scale']+c['offsetX'],-f*c[bP(0x290)]+c['offsetY']];}function K(c,d,f){return[(d-c['offsetX'])/c['scale'],-(f-c['offsetY'])/c['scale']];}function Pe(c,d){const f=window['devicePixelRatio']||0x1;c['setTransform'](d['scale']*f,0x0,0x0,-d['scale']*f,d['offsetX']*f,d['offsetY']*f);}function a(){const dJ=['handleMove','maxY','degree','firstPoint','lastX','#5291A5','#1F007F','tree','layerManager','getEntities','emitter','cos','width','48EhhtdY','getHeight','backgroundColor','POINT','startAngle','minY','has','px\x20','blocks','compareMinY','getTheme','handlePointerMove','#7FFF9F','rotation','onTouchStart','scale','Worker\x20error','offsetY','startsWith','touches','start','deactivate','top','STANDARD','fill','columnSpacing','first-point','widthFactor','second-point','now','currentSnap','elevation','TABLES','#FF7FDF','measureColor','#3FFF00','DxfParseError','layerCount','Zoom:\x20','_adjustParentBBoxes','layer','selectionColor','get','moveTo','handleWheel','Standard','entitiesSkipped','273237ulqkFI','leaf','#7F3F7F','sqrt','rowSpacing','state','bind','defPoint3','map','frameTimestamps','#002613','getDocument','children','#4C4226','scaleY','ENDSEC','color','#007F7F','solidFill','#0000FF','restore','beginPath','56EBnLbG','transform','position','removeEventListener','lineWidth','slice','destroy','sin','2970500zcNUog','viewer','#4C2642','select','initialTool','canvas','computeViewportBounds','setLayers','toBBox','#13261C','middle','currentTool','selectedEntityIndex','getTransform','MTEXT','pending','Input\x20ArrayBuffer\x20is\x20empty.','$LTSCALE','blobUrl','byteLength','entities','layers','formatConverters','_chooseSplitIndex','min','floor','zoomSpeed','TEXT','startPan','height','handlePan','setTransform','point','radius','#00FF00','indexOf','basePoint','insUnits','scaleX','done','$EXTMIN','off','maxX','#ffffff','updateSize','end','strokeStyle','windows-1252','onContextMenu','arc','getCursorForTool','measurement','fileName','measureText','add','hypot','215645YhHQsD','header','options','majorAxis','next','lineTo','#A50000','536679ENRQNn','touchstart','renderPending','visibleCache','minScale','\x20\x20Calls:\x20','setLayerColor','173873MtNhnV','set','drawCalls','LINE','11px\x20monospace','#00007F','byType','requestRender','CIRCLE','startTangent','onTouchMove','$ACADVER','endpoint','weights','spatialIndexBuildTime','#3F7F6F','POLYLINE','setDebug','sign','splice','boundaryPaths','#001C26','doc','minX','attribs','addEventListener','debugOptions','1274094FsupjX','\x22Courier\x20New\x22,\x20monospace','activate','textBaseline','cursor','clientX','\x22Century\x20Gothic\x22,\x20sans-serif','alignmentPoint','propertyIsEnumerable','#00394C','trueColor','renderStats','#696969','error','0\x20B','postMessage','destroyed','#26424C','Worker\x20parse\x20failed','#090026','parseTime','\x20MB','startDebugLoop','max','data','search','value','name','#001326','setTheme','edges','code','windows-874','#7F3F4F','getBoundingClientRect','workerManager','defineProperty','size','entityIndex','textDirection','setColorOverride','getVisibleLayerNames','#00A5A5','convert','ctx','stopDebugLoop','ENDTAB','13px\x20monospace','abs','#003F7F','#A50052','BYLAYER','length','getWorker','bottom-left','pan','flags','handleSelect','#260900','spatialIndex','debug','description','defineProperties','onDocumentLoaded','stroke','#3F6F7F','fitToView','style','button','lastRenderStats','getViewTransform','#cccccc','minorRatio','preventDefault','sort','textAlign','Size:\x20','left','#52A552','grab','from','atan2','doRender','getWidth','#260009','extMin','font','guardDestroyed','endParam','SEQEND','#505050','startWidth','#A5A552','ENDBLK','#132621','columnCount','Index:\x20','vertices','onPointerDown','isOff','debugRafId',']\x20→\x20[','#4F7F3F','ceil','push','toFixed','insertionPoint','onWheel','center','items','#dddddd','bulge','setTool','#261321','alphabetic','parseWithOptionalWorker','handleSeed','measure','#26131C','fillStyle','renderer','type','_maxEntries','getDebugStats','renderEmpty','theme','endWidth','2YhkbEZ','throw','defPoint5','pixelSize','entityBBoxes','changedTouches','loadedFileSize','shift_jis','loadGeneration','#9152A5','#DFFF7F','toJSON','LWPOLYLINE','loadedFileName','#3F007F','debugEnabled','#4C0000','boolean','defPoint','camera','patternType','ELLIPSE','resolve','#0029A5','text','#134C00','patternScale','42357XzQdnd','knots','extrusion','INSERT','endAngle','isPanning','defPoint2','#FF7F9F','measureTool','controlPoints'];a=function(){return dJ;};return a();}function Dt(g,k,v,x,y,A,C=0.05){const D=y-v,F=A-x;if(D<=0x0||F<=0x0)return{'scale':0x1,'offsetX':g/0x2,'offsetY':k/0x2};const I=g/D,L=k/F,N=Math['min'](I,L)*(0x1-C*0x2),O=(v+y)/0x2,R=(x+A)/0x2,S=g/0x2-O*N,W=k/0x2+R*N;return{'scale':N,'offsetX':S,'offsetY':W};}function Lt(c,d,f,g,h=0.0001,k=0x186a0){const bQ=aT,l=Math['max'](h,Math[bQ(0x187)](k,c['scale']*g)),m=l/c['scale'];return{'scale':l,'offsetX':d-(d-c['offsetX'])*m,'offsetY':f-(f-c['offsetY'])*m};}var Nt=class{constructor(c){const bR=aT;p(this,bR(0x2c7),{'scale':0x1,'offsetX':0x0,'offsetY':0x0}),p(this,'minScale'),p(this,'maxScale'),(this['minScale']=c['minZoom'],this['maxScale']=c['maxZoom']);}[aT(0x2db)](){return this['transform'];}['setTransform'](c){this['transform']=c;}['pan'](c,d){const bS=aT;this[bS(0x2c7)]=w(P({},this['transform']),{'offsetX':this['transform']['offsetX']+c,'offsetY':this['transform'][bS(0x292)]+d});}['zoom'](c,d,f){const bT=aT;this['transform']=Lt(this['transform'],c,d,f,this[bT(0x1b2)],this['maxScale']);}};function we(c,d){var f;return c===0x7?d==='dark'?'#ffffff':'#000000':(f=Ct(c))!=null?f:'#ffffff';}function ue(c,d,f,g){const bU=aT;if(c['trueColor']!==void 0x0){const k=c['trueColor']>>0x10&0xff,m=c['trueColor']>>0x8&0xff,u=c['trueColor']&0xff;return'rgb('+k+','+m+','+u+')';}if(c[bU(0x2c0)]===0x0)return g!=null?g:X[f]['defaultEntityColor'];if(c['color']!==0x100)return we(c[bU(0x2c0)],f);const h=d['get'](c['layer']);if(h){if(h['trueColor']!==void 0x0){const x=h['trueColor']>>0x10&0xff,y=h[bU(0x1da)]>>0x8&0xff,A=h['trueColor']&0xff;return'rgb('+x+','+y+','+A+')';}const v=Math['abs'](h['color']);return we(v,f);}return X[f]['defaultEntityColor'];}function Bt(c,d){const bV=aT;c[bV(0x2c5)](),c['moveTo'](d['start']['x'],d['start']['y']),c['lineTo'](d['end']['x'],d['end']['y']),c['stroke']();}function Xt(c,d){d['radius']<=0x0||(c['beginPath'](),c['arc'](d['center']['x'],d['center']['y'],d['radius'],0x0,Math['PI']*0x2),c['stroke']());}function Yt(c,d){const bW=aT;if(d['radius']<=0x0)return;const f=d['startAngle']*Math['PI']/0xb4,g=d['endAngle']*Math['PI']/0xb4;c[bW(0x2c5)](),c['arc'](d['center']['x'],d[bW(0x23c)]['y'],d[bW(0x190)],f,g,!0x1),c['stroke']();}function zt(k,A,C,D,I){const L=C-k,N=D-A,O=Math['sqrt'](L*L+N*N);if(O<1e-10)return{'cx':k,'cy':A,'radius':0x0,'startAngle':0x0,'endAngle':0x0,'anticlockwise':!0x1};const R=Math['abs'](I)*O/0x2,S=(T(O/0x2,0x2)+T(R,0x2))/(0x2*R),W=(k+C)/0x2,Y=(A+D)/0x2,a0=-N/O,a1=L/O,a2=S-R,a3=I>0x0?0x1:-0x1,a4=W+a3*a2*a0,a5=Y+a3*a2*a1,a6=Math['atan2'](A-a5,k-a4),a7=Math['atan2'](D-a5,C-a4),a8=I<0x0;return{'cx':a4,'cy':a5,'radius':S,'startAngle':a6,'endAngle':a7,'anticlockwise':a8};}function Q(c,d,f,g,h,i){const bX=aT,k=zt(d,f,g,h,i);if(k['radius']<1e-10){c['lineTo'](g,h);return;}c['arc'](k['cx'],k['cy'],k['radius'],k[bX(0x285)],k['endAngle'],k['anticlockwise']);}function Rt(c,d){const bY=aT,f=d[bY(0x231)];if(f['length']<0x2)return;c['beginPath'](),c[bY(0x2ac)](f[0x0]['x'],f[0x0]['y']);const g=d['closed']?f['length']:f['length']-0x1;for(let h=0x0;h<g;h++){const i=f[h],k=f[(h+0x1)%f['length']];Math['abs'](i['bulge'])<1e-10?c['lineTo'](k['x'],k['y']):Q(c,i['x'],i['y'],k['x'],k['y'],i[bY(0x23f)]);}c['stroke']();}function Ot(c,d){const bZ=aT;var f;const g=d['vertices'];if(g[bZ(0x204)]<0x2)return;c['beginPath'](),c['moveTo'](g[0x0]['x'],g[0x0]['y']);const h=d['closed']?g['length']:g[bZ(0x204)]-0x1;for(let k=0x0;k<h;k++){const m=g[k],u=g[(k+0x1)%g['length']],v=(f=m['bulge'])!=null?f:0x0;Math['abs'](v)<1e-10?c['lineTo'](u['x'],u['y']):Q(c,m['x'],m['y'],u['x'],u['y'],v);}c[bZ(0x210)]();}function _t(c,d){const c0=aT,f=Math['sqrt'](T(d['majorAxis']['x'],0x2)+T(d['majorAxis']['y'],0x2)+T(d[c0(0x1aa)]['z'],0x2));if(f<1e-10||d['minorRatio']<=0x0)return;const g=f*d['minorRatio'],h=Math['atan2'](d['majorAxis']['y'],d[c0(0x1aa)]['x']);c['beginPath'](),c['ellipse'](d['center']['x'],d['center']['y'],f,g,h,d['startParam'],d[c0(0x228)],!0x1),c['stroke']();}function Wt(k,y,A,C,D){const c1=aT;var I;const L=y[c1(0x204)]-0x1;let N=k;for(;N<L&&A[N+0x1]<=C;)N++;const O=[],R=[];for(let S=0x0;S<=k;S++){const W=N-k+S;O['push'](P({},y[W])),R['push'](D?D[W]:0x1);}for(let Y=0x1;Y<=k;Y++)for(let a0=k;a0>=Y;a0--){const a1=N-k+a0,a2=A[a1+k-Y+0x1]-A[a1];if(Math['abs'](a2)<1e-10)continue;const a3=(C-A[a1])/a2,a4=O[a0],a5=O[a0-0x1];if(D){const a6=R[a0-0x1]*(0x1-a3),a7=R[a0]*a3,a8=a6+a7;if(Math['abs'](a8)<1e-10)continue;a4['x']=(a5['x']*a6+a4['x']*a7)/a8,a4['y']=(a5['y']*a6+a4['y']*a7)/a8,a4['z']=(a5['z']*a6+a4['z']*a7)/a8,R[a0]=a8;}else a4['x']=(0x1-a3)*a5['x']+a3*a4['x'],a4['y']=(0x1-a3)*a5['y']+a3*a4['y'],a4['z']=(0x1-a3)*a5['z']+a3*a4['z'];}return(I=O[k])!=null?I:{'x':0x0,'y':0x0,'z':0x0};}function $t(f){const c2=aT;if(f['length']<0x2)return f['map'](x=>({'x':x['x'],'y':x['y']}));const g=[],k=f['length'],v=0xa;for(let x=0x0;x<k-0x1;x++){const y=f[Math[c2(0x1e7)](0x0,x-0x1)],A=f[x],C=f[Math['min'](k-0x1,x+0x1)],D=f[Math['min'](k-0x1,x+0x2)];for(let F=0x0;F<=(x===k-0x2?v:v-0x1);F++){const I=F/v,L=I*I,N=L*I,O=0.5*(0x2*A['x']+(-y['x']+C['x'])*I+(0x2*y['x']-0x5*A['x']+0x4*C['x']-D['x'])*L+(-y['x']+0x3*A['x']-0x3*C['x']+D['x'])*N),R=0.5*(0x2*A['y']+(-y['y']+C['y'])*I+(0x2*y['y']-0x5*A['y']+0x4*C['y']-D['y'])*L+(-y['y']+0x3*A['y']-0x3*C['y']+D['y'])*N);g['push']({'x':O,'y':R});}}return g;}function De(d,f){const c3=aT;if(d['degree']===0x1)return d['controlPoints'][c3(0x2b8)](y=>({'x':y['x'],'y':y['y']}));if(d['controlPoints'][c3(0x204)]===0x0&&d['fitPoints']['length']>=0x2)return $t(d['fitPoints']);if(d[c3(0x273)]['length']<d[c3(0x276)]+0x1)return[];if(d['knots']['length']<d['controlPoints']['length']+d['degree']+0x1)return[];const g=[],k=d['knots'][d['degree']],m=d['knots'][d[c3(0x26b)]['length']-d['degree']-0x1];if(m<=k)return[];const u=Math['max'](d[c3(0x273)][c3(0x204)]*0xa,Math[c3(0x237)]((m-k)/f)),v=Math['min'](u,0x1388),x=d[c3(0x1c2)]['length']>0x0?d['weights']:void 0x0;for(let y=0x0;y<=v;y++){const A=k+(m-k)*(y/v),C=Wt(d[c3(0x276)],d['controlPoints'],d['knots'],A,x);g['push']({'x':C['x'],'y':C['y']});}return g;}function jt(c,d,f){const c4=aT,g=De(d,f);if(!(g[c4(0x204)]<0x2)){c['beginPath'](),c[c4(0x2ac)](g[0x0]['x'],g[0x0]['y']);for(let h=0x1;h<g['length'];h++)c['lineTo'](g[h]['x'],g[h]['y']);d['flags']&0x1&&c['closePath'](),c['stroke']();}}var qt={'standard':'Arial,\x20sans-serif','arial':'Arial,\x20sans-serif','arial.ttf':'Arial,\x20sans-serif','romans.shx':'\x22Courier\x20New\x22,\x20monospace','simplex.shx':aT(0x1d1),'txt.shx':'monospace','monotxt.shx':'monospace','isocp.shx':'\x22Courier\x20New\x22,\x20monospace','isocpeur.shx':aT(0x1d1),'times.ttf':'\x22Times\x20New\x20Roman\x22,\x20serif','timesnr.ttf':'\x22Times\x20New\x20Roman\x22,\x20serif','gothic.ttf':aT(0x1d6)};function Le(c){const d=c['toLowerCase']()['trim']();return qt[d]||'sans-serif';}function b(c,d){c=c-0x181;const e=a();let f=e[c];return f;}function Ht(c,d,f){const c5=aT;if(!d['text']||d['height']<f*0x4)return;const g=d['hAlign']!==0x0||d['vAlign']!==0x0,k=g&&d['alignmentPoint']?d['alignmentPoint']['x']:d['insertionPoint']['x'],m=g&&d['alignmentPoint']?d['alignmentPoint']['y']:d['insertionPoint']['y'];if(c['save'](),c['translate'](k,m),c['scale'](0x1,-0x1),d['rotation']&&c['rotate'](-d['rotation']*Math['PI']/0xb4),d[c5(0x29c)]!==0x1&&c['scale'](d['widthFactor'],0x1),d['obliqueAngle']){const y=Math['tan'](d['obliqueAngle']*Math['PI']/0xb4);c['transform'](0x1,0x0,y,0x1,0x0,0x0);}const u=(d['generationFlags']&0x2)!==0x0,v=(d['generationFlags']&0x4)!==0x0;u&&c['scale'](-0x1,0x1),v&&c['scale'](0x1,-0x1);const x=Le(d['style']||'Standard');switch(c[c5(0x226)]=d['height']+'px\x20'+x,d['hAlign']){case 0x0:c['textAlign']=c5(0x21d);break;case 0x1:c['textAlign']='center';break;case 0x2:c['textAlign']='right';break;case 0x3:c['textAlign']='left';break;case 0x4:c[c5(0x21b)]='center';break;case 0x5:c['textAlign']='left';break;default:c['textAlign']=c5(0x21d);}switch(d['vAlign']){case 0x0:c['textBaseline']='alphabetic';break;case 0x1:c['textBaseline']='bottom';break;case 0x2:c[c5(0x1d3)]=c5(0x2d8);break;case 0x3:c['textBaseline']='top';break;default:c[c5(0x1d3)]=c5(0x242);}c['fillText'](d['text'],0x0,0x0),c['restore']();}function Vt(c){return c['replace'](/\\P/g,'\x0a')['replace'](/\\[fFHWQTCAaLlOoKk][^;]*;/g,'')['replace'](/\\\\/g,'\x5c')['replace'](/\\~/g,'\u00a0')['replace'](/\{/g,'')['replace'](/\}/g,'')['replace'](/\\S[^;]*;/g,'')['trim']();}function Ut(f,g,k){const c6=aT;var r;if(!g['text']||g[c6(0x18c)]<k*0x4)return;f['save'](),f['translate'](g['insertionPoint']['x'],g['insertionPoint']['y']),f['scale'](0x1,-0x1);const v=g['textDirection']?Math['atan2'](g['textDirection']['y'],g['textDirection']['x']):(g[c6(0x28e)]||0x0)*Math['PI']/0xb4;v&&f['rotate'](-v);const x=Vt(g['text'])['split']('\x0a'),y=g[c6(0x18c)]*(g['lineSpacingFactor']||1.4),A=Le(g['style']||c6(0x2ae));f['font']=g['height']+c6(0x288)+A;const C=(g['attachmentPoint']-0x1)%0x3,D=Math['floor']((g['attachmentPoint']-0x1)/0x3),F=['left','center','right'];f['textAlign']=(r=F[C])!=null?r:'left';let I=0x0;const L=x['length']*y;switch(D){case 0x0:I=g['height'];break;case 0x1:I=g['height']-L/0x2;break;case 0x2:I=g['height']-L;break;}for(let N=0x0;N<x['length'];N++)f['fillText'](x[N],0x0,I+N*y);f['restore']();}var Gt=0x64;function Zt(f,g,k,m=0x0){const c7=aT;if(m>Gt)return null;if(k['has'](f))return k['get'](f);const v=g['blocks']['get'](f);if(!v)return k[c7(0x1b6)](f,null),null;k['set'](f,null);let x=0x1/0x0,y=0x1/0x0,A=-0x1/0x0,C=-0x1/0x0,D=!0x1;for(const I of v['entities']){let L;I['type']===c7(0x26d)?L=Ne(I,g,k,m+0x1):L=_(I),L&&(D=!0x0,x=Math['min'](x,L['minX']),y=Math['min'](y,L['minY']),A=Math['max'](A,L['maxX']),C=Math[c7(0x1e7)](C,L['maxY']));}const F=D?{'minX':x,'minY':y,'maxX':A,'maxY':C}:null;return k[c7(0x1b6)](f,F),F;}function Ne(a0,a1,a2,a3=0x0){const c8=aT,a4=Zt(a0['blockName'],a1,a2,a3);if(!a4)return null;const a5=a1[c8(0x289)]['get'](a0['blockName']);if(!a5)return null;const a6=a5['basePoint']['x'],a7=a5['basePoint']['y'];let a8=a4['minX']-a6,a9=a4['minY']-a7,ab=a4['maxX']-a6,ac=a4['maxY']-a7;const ad=a0['scaleX'],af=a0['scaleY'];let ag=a8*ad,ah=ab*ad,ai=a9*af,aj=ac*af;if(ag>ah){const ax=ag;ag=ah,ah=ax;}if(ai>aj){const ay=ai;ai=aj,aj=ay;}const ak=(a0[c8(0x28e)]||0x0)*Math['PI']/0xb4;if(Math['abs'](ak)<1e-10){const az=a0['insertionPoint']['x'],aA=a0['insertionPoint']['y'];let aB=ag+az,aC=ai+aA,aD=ah+az,aE=aj+aA;const aF=Math[c8(0x1e7)](0x1,a0['columnCount']),aG=Math['max'](0x1,a0['rowCount']);if(aF>0x1||aG>0x1){const aH=(aF-0x1)*a0['columnSpacing'],aI=(aG-0x1)*a0[c8(0x2b4)];aB=Math[c8(0x187)](aB,aB+aH),aD=Math[c8(0x1e7)](aD,aD+aH),aC=Math['min'](aC,aC+aI),aE=Math['max'](aE,aE+aI);}return{'minX':aB,'minY':aC,'maxX':aD,'maxY':aE};}const al=Math['cos'](ak),am=Math['sin'](ak),an=[{'x':ag,'y':ai},{'x':ah,'y':ai},{'x':ah,'y':aj},{'x':ag,'y':aj}],ao=a0['insertionPoint']['x'],ap=a0['insertionPoint']['y'];let aq=0x1/0x0,ar=0x1/0x0,as=-0x1/0x0,au=-0x1/0x0;for(const aJ of an){const aK=aJ['x']*al-aJ['y']*am+ao,aL=aJ['x']*am+aJ['y']*al+ap;aq=Math['min'](aq,aK),ar=Math['min'](ar,aL),as=Math['max'](as,aK),au=Math['max'](au,aL);}const av=Math[c8(0x1e7)](0x1,a0['columnCount']),aw=Math['max'](0x1,a0['rowCount']);if(av>0x1||aw>0x1){const aM=(av-0x1)*a0['columnSpacing'],aN=(aw-0x1)*a0['rowSpacing'],aO=[{'x':0x0,'y':0x0},{'x':aM,'y':0x0},{'x':aM,'y':aN},{'x':0x0,'y':aN}];for(const aP of aO){const aQ=aP['x']*al-aP['y']*am,aR=aP['x']*am+aP['y']*al;aq=Math['min'](aq,aq+aQ),ar=Math['min'](ar,ar+aR),as=Math['max'](as,as+aQ),au=Math['max'](au,au+aR);}}return{'minX':aq,'minY':ar,'maxX':as,'maxY':au};}function Kt(c,d){let f=0x1/0x0,g=0x1/0x0,k=-0x1/0x0,m=-0x1/0x0,u=!0x1;const v=d?new Map():void 0x0;for(const x of c){const y=d&&v?Be(x,d,v):_(x);y&&(u=!0x0,f=Math['min'](f,y['minX']),g=Math['min'](g,y['minY']),k=Math['max'](k,y['maxX']),m=Math['max'](m,y['maxY']));}return u?{'minX':f,'minY':g,'maxX':k,'maxY':m}:null;}function Be(c,d,f){return c['type']==='INSERT'?Ne(c,d,f):_(c);}var ne=null;function Qt(c){const c9=aT,d=new Map();for(const [f,g]of c['blocks']){const h=new Array(g[c9(0x183)]['length']);for(let i=0x0;i<g[c9(0x183)]['length'];i++)h[i]=_(g['entities'][i]);d['set'](f,h);}return d;}function Jt(c){ne=c;}function Ie(){ne=null;}function ea(c,d){if(!ne)return;const f=ne['get'](c);if(!(!f||d>=f['length']))return f[d];}function _(A){const cb=aT;var D,I,L,N,O,R,W,Y,a0,a1,a2,a3,a4,a5,a6,a7;switch(A['type']){case'LINE':return{'minX':Math['min'](A['start']['x'],A['end']['x']),'minY':Math[cb(0x187)](A['start']['y'],A['end']['y']),'maxX':Math['max'](A['start']['x'],A[cb(0x19c)]['x']),'maxY':Math[cb(0x1e7)](A['start']['y'],A['end']['y'])};case'CIRCLE':return{'minX':A['center']['x']-A['radius'],'minY':A[cb(0x23c)]['y']-A['radius'],'maxX':A['center']['x']+A[cb(0x190)],'maxY':A['center']['y']+A['radius']};case'ARC':return{'minX':A['center']['x']-A['radius'],'minY':A['center']['y']-A[cb(0x190)],'maxX':A[cb(0x23c)]['x']+A['radius'],'maxY':A[cb(0x23c)]['y']+A['radius']};case'LWPOLYLINE':case'POLYLINE':{if(A['vertices']['length']===0x0)return null;let a8=0x1/0x0,a9=0x1/0x0,ab=-0x1/0x0,ac=-0x1/0x0;for(const ad of A[cb(0x231)])a8=Math['min'](a8,ad['x']),a9=Math['min'](a9,ad['y']),ab=Math['max'](ab,ad['x']),ac=Math['max'](ac,ad['y']);return{'minX':a8,'minY':a9,'maxX':ab,'maxY':ac};}case'ELLIPSE':{const af=Math[cb(0x2b3)](T(A['majorAxis']['x'],0x2)+T(A['majorAxis']['y'],0x2));return{'minX':A['center']['x']-af,'minY':A['center']['y']-af,'maxX':A['center']['x']+af,'maxY':A['center']['y']+af};}case cb(0x18a):return{'minX':A['insertionPoint']['x'],'minY':A['insertionPoint']['y'],'maxX':A[cb(0x23a)]['x']+A['height']*A['text']['length']*0.6,'maxY':A[cb(0x23a)]['y']+A['height']};case'MTEXT':return{'minX':A['insertionPoint']['x'],'minY':A['insertionPoint']['y']-A['height'],'maxX':A['insertionPoint']['x']+(A['width']||A['height']*0xa),'maxY':A[cb(0x23a)]['y']+A['height']};case'SPLINE':{if(A['controlPoints']['length']===0x0)return null;let ag=0x1/0x0,ah=0x1/0x0,ai=-0x1/0x0,aj=-0x1/0x0;for(const ak of A[cb(0x273)])ag=Math['min'](ag,ak['x']),ah=Math['min'](ah,ak['y']),ai=Math['max'](ai,ak['x']),aj=Math['max'](aj,ak['y']);return{'minX':ag,'minY':ah,'maxX':ai,'maxY':aj};}case'POINT':return{'minX':A['position']['x'],'minY':A[cb(0x2c8)]['y'],'maxX':A['position']['x'],'maxY':A['position']['y']};case cb(0x26d):return{'minX':A['insertionPoint']['x'],'minY':A['insertionPoint']['y'],'maxX':A['insertionPoint']['x'],'maxY':A['insertionPoint']['y']};case'DIMENSION':return A['defPoint']?{'minX':Math['min'](A['defPoint']['x'],(I=(D=A['defPoint2'])==null?void 0x0:D['x'])!=null?I:A['defPoint']['x'],(N=(L=A['defPoint3'])==null?void 0x0:L['x'])!=null?N:A['defPoint']['x']),'minY':Math['min'](A['defPoint']['y'],(R=(O=A['defPoint2'])==null?void 0x0:O['y'])!=null?R:A['defPoint']['y'],(Y=(W=A['defPoint3'])==null?void 0x0:W['y'])!=null?Y:A[cb(0x261)]['y']),'maxX':Math[cb(0x1e7)](A['defPoint']['x'],(a1=(a0=A['defPoint2'])==null?void 0x0:a0['x'])!=null?a1:A['defPoint']['x'],(a3=(a2=A['defPoint3'])==null?void 0x0:a2['x'])!=null?a3:A['defPoint']['x']),'maxY':Math['max'](A[cb(0x261)]['y'],(a5=(a4=A['defPoint2'])==null?void 0x0:a4['y'])!=null?a5:A['defPoint']['y'],(a7=(a6=A['defPoint3'])==null?void 0x0:a6['y'])!=null?a7:A['defPoint']['y'])}:null;case'HATCH':{let al=0x1/0x0,am=0x1/0x0,an=-0x1/0x0,ao=-0x1/0x0,ap=!0x1;for(const aq of A['boundaryPaths'])if(aq[cb(0x231)]){for(const ar of aq['vertices'])ap=!0x0,al=Math['min'](al,ar['x']),am=Math['min'](am,ar['y']),an=Math[cb(0x1e7)](an,ar['x']),ao=Math['max'](ao,ar['y']);}return ap?{'minX':al,'minY':am,'maxX':an,'maxY':ao}:null;}default:return null;}}var ta=new Set([aT(0x1b8),'ARC','CIRCLE','LWPOLYLINE','POLYLINE','ELLIPSE','SPLINE']);function Xe(c){return ta['has'](c);}function aa(c,d){const cc=aT;c[cc(0x2ac)](d['start']['x'],d['start']['y']),c['lineTo'](d['end']['x'],d[cc(0x19c)]['y']);}function na(c,d){const cd=aT;if(d['radius']<=0x0)return;const f=d['startAngle']*Math['PI']/0xb4,g=d['endAngle']*Math['PI']/0xb4;c['moveTo'](d[cd(0x23c)]['x']+d['radius']*Math['cos'](f),d['center']['y']+d['radius']*Math['sin'](f)),c['arc'](d[cd(0x23c)]['x'],d[cd(0x23c)]['y'],d['radius'],f,g,!0x1);}function ra(c,d){const cf=aT;d[cf(0x190)]<=0x0||(c['moveTo'](d['center']['x']+d[cf(0x190)],d['center']['y']),c['arc'](d[cf(0x23c)]['x'],d['center']['y'],d['radius'],0x0,Math['PI']*0x2));}function sa(c,d){const cg=aT,f=d['vertices'];if(f['length']<0x2)return;c[cg(0x2ac)](f[0x0]['x'],f[0x0]['y']);const g=d['closed']?f['length']:f[cg(0x204)]-0x1;for(let h=0x0;h<g;h++){const i=f[h],k=f[(h+0x1)%f[cg(0x204)]];Math[cg(0x200)](i['bulge'])<1e-10?c['lineTo'](k['x'],k['y']):Q(c,i['x'],i['y'],k['x'],k['y'],i[cg(0x23f)]);}}function oa(c,d){const ch=aT;var f;const g=d[ch(0x231)];if(g['length']<0x2)return;c[ch(0x2ac)](g[0x0]['x'],g[0x0]['y']);const h=d['closed']?g[ch(0x204)]:g['length']-0x1;for(let k=0x0;k<h;k++){const m=g[k],u=g[(k+0x1)%g['length']],v=(f=m['bulge'])!=null?f:0x0;Math['abs'](v)<1e-10?c['lineTo'](u['x'],u['y']):Q(c,m['x'],m['y'],u['x'],u['y'],v);}}function ia(c,d){const ci=aT,f=Math['sqrt'](T(d['majorAxis']['x'],0x2)+T(d['majorAxis']['y'],0x2)+T(d['majorAxis']['z'],0x2));if(f<1e-10||d['minorRatio']<=0x0)return;const g=f*d['minorRatio'],h=Math[ci(0x221)](d[ci(0x1aa)]['y'],d['majorAxis']['x']),k=Math['cos'](h),m=Math['sin'](h),u=Math[ci(0x27f)](d['startParam']),v=Math['sin'](d['startParam']);c['moveTo'](d['center']['x']+f*k*u-g*m*v,d[ci(0x23c)]['y']+f*m*u+g*k*v),c['ellipse'](d[ci(0x23c)]['x'],d['center']['y'],f,g,h,d['startParam'],d['endParam'],!0x1);}function la(c,d,f){const cj=aT,g=De(d,f);if(!(g['length']<0x2)){c['moveTo'](g[0x0]['x'],g[0x0]['y']);for(let h=0x1;h<g['length'];h++)c[cj(0x1ac)](g[h]['x'],g[h]['y']);d['flags']&0x1&&c['closePath']();}}function Ye(c,d,f){const ck=aT;switch(d['type']){case'LINE':aa(c,d);break;case'ARC':na(c,d);break;case ck(0x1bd):ra(c,d);break;case'LWPOLYLINE':sa(c,d);break;case'POLYLINE':oa(c,d);break;case ck(0x264):ia(c,d);break;case'SPLINE':la(c,d,f);break;}}var ca=0x64,ha=0.5;function ze(I,L,N,O,R,W,Y=0x0,a0){const cl=aT;var a1;if(Y>ca)return;const a2=N['blocks']['get'](L['blockName']);if(!a2)return;const a3=Math['max'](0x1,L['columnCount']),a4=Math[cl(0x1e7)](0x1,L['rowCount']);for(let a5=0x0;a5<a4;a5++)for(let a6=0x0;a6<a3;a6++){I['save']();const a7=L['insertionPoint']['x']+a6*L[cl(0x29a)],a8=L['insertionPoint']['y']+a5*L['rowSpacing'];I['translate'](a7,a8),L['rotation']&&I['rotate'](L['rotation']*Math['PI']/0xb4),I['scale'](L['scaleX'],L['scaleY']),I['translate'](-a2['basePoint']['x'],-a2[cl(0x193)]['y']);const a9=Math['max'](Math['abs'](L['scaleX']),Math['abs'](L['scaleY'])),ab=W/(a9||0x1);let ac=null;const ad=a2['entities'];for(let af=0x0;af<ad['length'];af++){const ag=ad[af];if(ag['type']!=='INSERT'){const ai=ea(L['blockName'],af),aj=ai!==void 0x0?ai:_(ag);if(aj){const ak=Math['max'](aj[cl(0x199)]-aj['minX'],aj['maxY']-aj['minY']);if(ak>0x0&&ak/ab<ha)continue;}}const ah=ue(ag,N['layers'],R);ag[cl(0x249)]!=='INSERT'&&Xe(ag['type'])?(ah!==ac&&(ac!==null&&(I['stroke'](),a0&&a0['drawCalls']++),ac=ah,I['beginPath'](),I['strokeStyle']=ah,I['lineWidth']=ab),Ye(I,ag,ab),a0&&(a0['byType'][ag['type']]=((a1=a0['byType'][ag['type']])!=null?a1:0x0)+0x1)):(ac!==null&&(I['stroke'](),a0&&a0[cl(0x1b7)]++,ac=null),I['strokeStyle']=ah,I[cl(0x247)]=ah,I['lineWidth']=ab,ag['type']==='INSERT'?ze(I,ag,N,O,R,ab,Y+0x1,a0):re(I,ag,N,O,R,ab,a0));}ac!==null&&(I['stroke'](),a0&&a0['drawCalls']++),I[cl(0x2c4)]();}}function ua(c,d,f,g,k,m,u){const cm=aT;if(d['blockName']){const v=f['blocks'][cm(0x2ab)](d['blockName']);if(v){for(const x of v['entities']){const y=ue(x,f['layers'],k);c['strokeStyle']=y,c['fillStyle']=y,c['lineWidth']=m,re(c,x,f,g,k,m,u);}return;}}d[cm(0x270)]&&d['defPoint3']&&(c['beginPath'](),c['moveTo'](d[cm(0x270)]['x'],d['defPoint2']['y']),c['lineTo'](d['defPoint']['x'],d['defPoint']['y']),c['stroke'](),c['beginPath'](),c['moveTo'](d['defPoint3']['x'],d['defPoint3']['y']),c[cm(0x1ac)](d['defPoint']['x'],d['defPoint']['y']),c['stroke']());}function da(c,d){const cn=aT;var f,g;if(d[cn(0x1c9)]['length']!==0x0){c['beginPath']();for(const k of d[cn(0x1c9)])if(k['type']==='polyline'&&k[cn(0x231)]&&k['vertices']['length']>0x0){const m=k['vertices'][0x0];c['moveTo'](m['x'],m['y']);for(let u=0x1;u<k['vertices']['length'];u++){const v=k['vertices'][u-0x1],x=k[cn(0x231)][u],y=(g=(f=k['bulges'])==null?void 0x0:f[u-0x1])!=null?g:0x0;Math['abs'](y)<1e-10?c['lineTo'](x['x'],x['y']):Q(c,v['x'],v['y'],x['x'],x['y'],y);}k['isClosed']&&c['closePath']();}else{if(k['type']===cn(0x1ee)&&k['edges'])for(let A=0x0;A<k['edges']['length'];A++){const C=k[cn(0x1ee)][A];if(C['type']==='line')A===0x0&&c['moveTo'](C['start']['x'],C['start']['y']),c['lineTo'](C[cn(0x19c)]['x'],C['end']['y']);else{if(C['type']==='arc'){if(A===0x0){const D=C['center']['x']+C['radius']*Math['cos'](C['startAngle']*Math['PI']/0xb4),F=C['center']['y']+C[cn(0x190)]*Math['sin'](C[cn(0x285)]*Math['PI']/0xb4);c['moveTo'](D,F);}c['arc'](C['center']['x'],C['center']['y'],C['radius'],C['startAngle']*Math['PI']/0xb4,C[cn(0x26e)]*Math['PI']/0xb4,!C['ccw']);}}}}d['solidFill']&&(c['globalAlpha']=0.3,c['fill']('evenodd'),c['globalAlpha']=0x1),c['stroke']();}}function fa(c,d,f){const co=aT,g=f*0x3;c[co(0x2c5)](),c['arc'](d['position']['x'],d['position']['y'],g,0x0,Math['PI']*0x2),c['fill']();}function re(c,d,f,g,h,k,l){const cp=aT;var m;switch(l&&(l['drawCalls']++,l[cp(0x1bb)][d['type']]=((m=l['byType'][d['type']])!=null?m:0x0)+0x1),d['type']){case'LINE':Bt(c,d);break;case'CIRCLE':Xt(c,d);break;case'ARC':Yt(c,d);break;case cp(0x25b):Rt(c,d);break;case'POLYLINE':Ot(c,d);break;case'ELLIPSE':_t(c,d);break;case'SPLINE':jt(c,d,k);break;case'TEXT':Ht(c,d,k);break;case cp(0x2dc):Ut(c,d,k);break;case cp(0x26d):ze(c,d,f,g,h,k,0x0,l);break;case'DIMENSION':ua(c,d,f,g,h,k,l);break;case'HATCH':da(c,d);break;case'POINT':fa(c,d,k);break;}}var pa=0.5,ma=class{constructor(c){const cq=aT;p(this,cq(0x1fc)),p(this,'width',0x0),p(this,'height',0x0),this['canvas']=c;const d=c['getContext']('2d',{'alpha':!0x1});if(!d)throw new Error('Failed\x20to\x20get\x202D\x20rendering\x20context.\x20The\x20canvas\x20may\x20already\x20have\x20a\x20different\x20context\x20type,\x20or\x20canvas\x20rendering\x20is\x20not\x20available\x20in\x20this\x20environment.');this[cq(0x1fc)]=d,this['updateSize']();}['getContext'](){const cr=aT;return this[cr(0x1fc)];}['getWidth'](){return this['width'];}['getHeight'](){return this['height'];}[aT(0x19b)](){const cs=aT,c=window['devicePixelRatio']||0x1,d=this['canvas']['getBoundingClientRect']();this['width']=d['width'],this[cs(0x18c)]=d['height'],this['canvas']['width']=d['width']*c,this['canvas']['height']=d['height']*c;}['render'](k,x,y,A,C,D,I){const cu=aT;var L;const N=this['ctx'],O=window['devicePixelRatio']||0x1,R={'entitiesDrawn':0x0,'entitiesSkipped':0x0,'drawCalls':0x0,'byType':{}};N[cu(0x18e)](O,0x0,0x0,O,0x0,0x0),N['fillStyle']=X[y]['backgroundColor'],N['fillRect'](0x0,0x0,this[cu(0x280)],this['height']),Pe(N,x);const S=0x1/x['scale'];N['lineCap']='round',N['lineJoin']='round';let W=null;for(let Y=0x0;Y<k['entities']['length'];Y++){const a0=k['entities'][Y];if(!a0['visible']){R[cu(0x2af)]++;continue;}if(!A['has'](a0['layer'])){R[cu(0x2af)]++;continue;}if(D&&!D[cu(0x287)](Y)){R['entitiesSkipped']++;continue;}if(I){const a2=I[Y];if(a2){const a3=(a2['maxX']-a2['minX'])*x['scale'],a4=(a2[cu(0x275)]-a2['minY'])*x['scale'];if(Math['max'](a3,a4)<pa){R[cu(0x2af)]++;continue;}}}const a1=ue(a0,k['layers'],y);Xe(a0[cu(0x249)])?(a1!==W&&(W!==null&&(N['stroke'](),R['drawCalls']++),W=a1,N['beginPath'](),N['strokeStyle']=a1,N['lineWidth']=S),Ye(N,a0,S),R['entitiesDrawn']++,R['byType'][a0['type']]=((L=R['byType'][a0['type']])!=null?L:0x0)+0x1):(W!==null&&(N['stroke'](),R[cu(0x1b7)]++,W=null),N['strokeStyle']=a1,N['fillStyle']=a1,N['lineWidth']=S,R['entitiesDrawn']++,re(N,a0,k,x,y,S,R));}if(W!==null&&(N['stroke'](),R['drawCalls']++),C>=0x0&&C<k[cu(0x183)]['length']){const a5=k[cu(0x183)][C];Pe(N,x),N['strokeStyle']=X[y][cu(0x2aa)],N['fillStyle']=X[y]['selectionColor'],N[cu(0x2ca)]=S*0x3,re(N,a5,k,x,y,S);}return R;}['renderEmpty'](c){const cv=aT,d=this['ctx'],f=window['devicePixelRatio']||0x1;d['setTransform'](f,0x0,0x0,f,0x0,0x0),d['fillStyle']=X[c]['backgroundColor'],d['fillRect'](0x0,0x0,this['width'],this[cv(0x18c)]);}['destroy'](){}},ba={'showFps':!0x0,'showRenderStats':!0x0,'showDocumentInfo':!0x0,'showTimings':!0x0,'showCamera':!0x0,'position':'top-left'};function ce(c){return P(P({},ba),c);}function ga(c){const cw=aT;return c===0x0?cw(0x1de):c<0x400?c+'\x20B':c<0x400*0x400?(c/0x400)['toFixed'](0x1)+'\x20KB':(c/(0x400*0x400))['toFixed'](0x1)+cw(0x1e5);}function va(c){return c>=0x1?c['toFixed'](0x2)+'x':'1:'+(0x1/c)['toFixed'](0x1);}var Fa=aT(0x1b9),Te=0xf,Me=0x8,te=0x8,z=0xa;function xa(k,x,y,A,C,D){const cx=aT;k['setTransform'](0x1,0x0,0x0,0x1,0x0,0x0);const F=[];if(A['showFps']&&F[cx(0x238)](['FPS:\x20'+x['fps']+'\x20\x20Frame:\x20'+x['frameTime']['toFixed'](0x1)+'ms']),A['showRenderStats']){const a0=x['renderStats']['entitiesDrawn']+x['renderStats'][cx(0x2af)],a1=['Drawn:\x20'+x['renderStats']['entitiesDrawn']+'\x20/\x20'+a0+cx(0x1b3)+x[cx(0x1db)]['drawCalls']],a2=Object['entries'](x['renderStats']['byType'])['sort'](([,a3],[,a4])=>a4-a3)['slice'](0x0,0x6)['map'](([a3,a4])=>a3+':\x20'+a4)['join']('\x20\x20');a2&&a1['push'](a2),F['push'](a1);}if(A['showDocumentInfo']){const a3=['Layers:\x20'+x['visibleLayerCount']+'\x20/\x20'+x[cx(0x2a6)]+'\x20\x20Blocks:\x20'+x['blockCount']];x['dxfVersion']&&a3['push']('DXF:\x20'+x['dxfVersion']),x[cx(0x1a3)]&&a3['push']('File:\x20'+x['fileName']),x['fileSize']>0x0&&a3['push'](cx(0x21c)+ga(x['fileSize'])),F['push'](a3);}if(A['showTimings']){const a4=[];x['parseTime']>0x0&&a4['push']('Parse:\x20'+x['parseTime']['toFixed'](0x0)+'ms'),x['spatialIndexBuildTime']>0x0&&a4['push'](cx(0x230)+x['spatialIndexBuildTime']['toFixed'](0x0)+'ms'),x['totalLoadTime']>0x0&&a4['push']('Load:\x20'+x['totalLoadTime']['toFixed'](0x0)+'ms'),a4['length']>0x0&&F[cx(0x238)]([a4['join']('\x20\x20')]);}if(A['showCamera']){const a5=x['viewportBounds'];F['push']([cx(0x2a7)+va(x['zoom'])+'\x20\x20Pixel:\x20'+x[cx(0x252)]['toFixed'](0x2),'View:\x20['+a5['minX']['toFixed'](0x0)+',\x20'+a5[cx(0x286)][cx(0x239)](0x0)+cx(0x235)+a5['maxX']['toFixed'](0x0)+',\x20'+a5['maxY']['toFixed'](0x0)+']']);}if(F['length']===0x0)return;k['font']=Fa;const I=[];for(let a6=0x0;a6<F['length'];a6++){a6>0x0&&I['push']({'text':'','isSeparator':!0x0});for(const a7 of F[a6])I['push']({'text':a7,'isSeparator':!0x1});}let L=0x0;for(const a8 of I)if(!a8['isSeparator']){const a9=k['measureText'](a8['text'])[cx(0x280)];a9>L&&(L=a9);}const N=L+te*0x2;let O=te*0x2;for(const ab of I)O+=ab['isSeparator']?Me:Te;let R,S;switch(A['position']){case'top-left':R=z,S=z;break;case'top-right':R=C-N-z,S=z;break;case cx(0x206):R=z,S=D-O-z;break;case'bottom-right':R=C-N-z,S=D-O-z;break;}const W=X[y];k['fillStyle']=y==='dark'?'rgba(0,\x200,\x200,\x200.75)':'rgba(255,\x20255,\x20255,\x200.85)',k['fillRect'](R,S,N,O),k[cx(0x19d)]=y==='dark'?'rgba(255,\x20255,\x20255,\x200.15)':'rgba(0,\x200,\x200,\x200.15)',k['lineWidth']=0x1,k['strokeRect'](R+0.5,S+0.5,N-0x1,O-0x1),k['fillStyle']=y==='dark'?W['defaultEntityColor']:'rgba(0,\x200,\x200,\x200.85)',k['textAlign']='left',k['textBaseline']='top';let Y=S+te;for(const ac of I)ac['isSeparator']?Y+=Me:(k['fillText'](ac['text'],R+te,Y),Y+=Te);}var ka=class{constructor(){const cy=aT;p(this,cy(0x184),new Map()),p(this,'visibility',new Map()),p(this,'colorOverrides',new Map()),p(this,'visibleCache',null);}['setLayers'](c){const cz=aT;this[cz(0x184)]=new Map(c),this['visibility']['clear'](),this['colorOverrides']['clear'](),this[cz(0x1b1)]=null;for(const [d,f]of this[cz(0x184)])this['visibility']['set'](d,!f['isOff']&&!f['isFrozen']);}['getAllLayers'](){return Array['from'](this['layers']['values']());}['setVisible'](c,d){this['visibility']['set'](c,d),this['visibleCache']=null;}['isVisible'](c){var d;return(d=this['visibility']['get'](c))!=null?d:!0x0;}['setColorOverride'](c,d){this['colorOverrides']['set'](c,d);}['getColorOverride'](c){return this['colorOverrides']['get'](c);}[aT(0x1f9)](){const cA=aT;if(this[cA(0x1b1)])return this[cA(0x1b1)];const c=new Set();for(const [d,f]of this['visibility'])f&&c[cA(0x1a5)](d);return this['visibleCache']=c,c;}['clear'](){this['layers']['clear'](),this['visibility']['clear'](),this['colorOverrides']['clear'](),this['visibleCache']=null;}},ya=class{constructor(){p(this,'listeners',new Map());}['on'](c,d){const cB=aT;this['listeners']['has'](c)||this['listeners'][cB(0x1b6)](c,new Set()),this['listeners']['get'](c)['add'](d);}[aT(0x198)](c,d){var f;(f=this['listeners']['get'](c))==null||f['delete'](d);}['emit'](c,d){const f=this['listeners']['get'](c);if(f){for(const g of f)g(d);}}['removeAllListeners'](){this['listeners']['clear']();}},Pa=class{constructor(c,d){const cC=aT;p(this,'isPanning',!0x1),p(this,'lastX',0x0),p(this,'lastY',0x0),p(this,'touches',new Map()),p(this,'onPointerDown'),p(this,'onPointerMove'),p(this,'onPointerUp'),p(this,cC(0x23b)),p(this,'onTouchStart'),p(this,'onTouchMove'),p(this,'onTouchEnd'),p(this,cC(0x19f)),(this['canvas']=c,this['viewer']=d,this['onPointerDown']=this['handlePointerDown']['bind'](this),this['onPointerMove']=this[cC(0x28c)]['bind'](this),this['onPointerUp']=this['handlePointerUp']['bind'](this),this['onWheel']=this[cC(0x2ad)][cC(0x2b6)](this),this['onTouchStart']=this['handleTouchStart']['bind'](this),this['onTouchMove']=this['handleTouchMove'][cC(0x2b6)](this),this['onTouchEnd']=this['handleTouchEnd']['bind'](this),this['onContextMenu']=f=>f['preventDefault'](),c['addEventListener']('pointerdown',this[cC(0x232)]),c['addEventListener']('pointermove',this['onPointerMove']),c['addEventListener']('pointerup',this['onPointerUp']),c['addEventListener']('wheel',this['onWheel'],{'passive':!0x1}),c[cC(0x1ce)]('touchstart',this[cC(0x28f)],{'passive':!0x1}),c[cC(0x1ce)]('touchmove',this[cC(0x1bf)],{'passive':!0x1}),c[cC(0x1ce)]('touchend',this['onTouchEnd']),c[cC(0x1ce)]('contextmenu',this['onContextMenu']));}['destroy'](){const cD=aT;this['canvas'][cD(0x2c9)]('pointerdown',this['onPointerDown']),this['canvas']['removeEventListener']('pointermove',this['onPointerMove']),this['canvas']['removeEventListener']('pointerup',this['onPointerUp']),this['canvas'][cD(0x2c9)]('wheel',this['onWheel']),this['canvas'][cD(0x2c9)](cD(0x1af),this[cD(0x28f)]),this['canvas']['removeEventListener']('touchmove',this['onTouchMove']),this['canvas']['removeEventListener']('touchend',this['onTouchEnd']),this['canvas']['removeEventListener']('contextmenu',this['onContextMenu']);}['handlePointerDown'](c){const cE=aT,d=this['viewer']['getTool'](),f=this[cE(0x2d3)]['getBoundingClientRect'](),g=c['clientX']-f['left'],h=c['clientY']-f['top'];c['button']===0x0&&d==='pan'?this['startPan'](c,g,h):c[cE(0x214)]===0x1?this['startPan'](c,g,h):c[cE(0x214)]===0x0&&(d==='select'||d==='measure')&&this['viewer']['handleClick'](g,h);}[aT(0x18b)](c,d,f){const cF=aT;this[cF(0x26f)]=!0x0,this['lastX']=d,this['lastY']=f,this[cF(0x2d3)]['setPointerCapture'](c['pointerId']),this['canvas']['style']['cursor']='grabbing';}['handlePointerMove'](c){const cG=aT,d=this['canvas']['getBoundingClientRect'](),f=c['clientX']-d['left'],g=c['clientY']-d[cG(0x297)];if(this['isPanning']){const h=f-this['lastX'],i=g-this['lastY'];this[cG(0x278)]=f,this['lastY']=g,this['viewer']['handlePan'](h,i);}else this['viewer']['handleMouseMove'](f,g);}['handlePointerUp'](c){const cH=aT;this['isPanning']&&(this[cH(0x26f)]=!0x1,this['canvas']['releasePointerCapture'](c['pointerId']),this['canvas']['style'][cH(0x1d4)]=this['viewer']['getTool']()==='pan'?'grab':'crosshair');}['handleWheel'](c){const cI=aT;c['preventDefault']();const d=this['canvas']['getBoundingClientRect'](),f=c['clientX']-d['left'],g=c['clientY']-d['top'],h=-Math[cI(0x1c7)](c['deltaY']),i=this['viewer']['getZoomSpeed'](),k=h>0x0?i:0x1/ i;this['viewer']['handleZoom'](f,g,k);}['handleTouchStart'](c){const cJ=aT;c[cJ(0x219)]();for(const d of Array[cJ(0x220)](c[cJ(0x254)]))this['touches']['set'](d['identifier'],{'x':d[cJ(0x1d5)],'y':d['clientY']});}['handleTouchMove'](d){const cK=aT;if(d['preventDefault'](),this['touches']['size']===0x2&&d['touches']['length']===0x2){const f=d[cK(0x294)][0x0],g=d['touches'][0x1],k=Array['from'](this['touches']['values']()),m=Math['hypot'](k[0x0]['x']-k[0x1]['x'],k[0x0]['y']-k[0x1]['y']),v=Math['hypot'](f['clientX']-g['clientX'],f['clientY']-g['clientY']);if(m>0x0){const x=v/m,y=this[cK(0x2d3)]['getBoundingClientRect'](),A=(k[0x0]['x']+k[0x1]['x'])/0x2-y['left'],C=(k[0x0]['y']+k[0x1]['y'])/0x2-y['top'],D=(f['clientX']+g['clientX'])/0x2-y[cK(0x21d)],F=(f['clientY']+g['clientY'])/0x2-y[cK(0x297)];this['viewer']['handleZoom'](A,C,x),this[cK(0x2cf)]['handlePan'](D-A,F-C);}}else{if(this['touches']['size']===0x1&&d['touches'][cK(0x204)]===0x1){const I=d['touches'][0x0],L=this[cK(0x294)][cK(0x2ab)](I['identifier']);L&&this[cK(0x2cf)][cK(0x18d)](I[cK(0x1d5)]-L['x'],I['clientY']-L['y']);}}for(const N of Array['from'](d['changedTouches']))this[cK(0x294)][cK(0x1b6)](N['identifier'],{'x':N['clientX'],'y':N['clientY']});}['handleTouchEnd'](c){const cL=aT;for(const d of Array['from'](c[cL(0x254)]))this['touches']['delete'](d['identifier']);}},wa=0x5,Ia=class{constructor(){const cM=aT;p(this,cM(0x27b),new qe()),p(this,cM(0x23d),[]),p(this,cM(0x253),[]);}['build'](c,d){const cN=aT;this['items']=[],this[cN(0x253)]=new Array(c['length'])['fill'](null);const f=d?new Map():void 0x0;for(let g=0x0;g<c['length'];g++){const h=c[g],i=d&&f?Be(h,d,f):_(h);this['entityBBoxes'][g]=i,i&&this['items']['push'](w(P({},i),{'entityIndex':g}));}this[cN(0x27b)]['clear'](),this['tree']['load'](this[cN(0x23d)]);}['search'](c,d,f,g){return this['tree']['search']({'minX':c,'minY':d,'maxX':f,'maxY':g});}['getEntityBBox'](c){const cO=aT;var d;return(d=this[cO(0x253)][c])!=null?d:null;}['getEntityBBoxes'](){const cP=aT;return this[cP(0x253)];}['clear'](){const cQ=aT;this[cQ(0x27b)]['clear'](),this['items']=[],this['entityBBoxes']=[];}};function Ta(f,g,k,v,x,y){const cR=aT,A=wa/y,C=v['search'](f-A,g-A,f+A,g+A);let D=A,F=-0x1;for(let I=C['length']-0x1;I>=0x0;I--){const L=C[I],N=k[L['entityIndex']];if(!N||!x['has'](N[cR(0x2a9)])||!N['visible'])continue;const O=Ma(f,g,N);O<D&&(D=O,F=L['entityIndex']);}return F;}function Ma(c,d,f){const cS=aT;switch(f['type']){case'LINE':return he(c,d,f['start']['x'],f['start']['y'],f[cS(0x19c)]['x'],f['end']['y']);case'CIRCLE':return Ea(c,d,f['center']['x'],f[cS(0x23c)]['y'],f['radius']);case'ARC':return Aa(c,d,f['center']['x'],f['center']['y'],f['radius'],f['startAngle']*Math['PI']/0xb4,f['endAngle']*Math['PI']/0xb4);case'LWPOLYLINE':case'POLYLINE':{let g=0x1/0x0;const k=f['vertices'],m=f['closed']?k['length']:k['length']-0x1;for(let u=0x0;u<m;u++){const v=k[u],x=k[(u+0x1)%k['length']],y=he(c,d,v['x'],v['y'],x['x'],x['y']);g=Math[cS(0x187)](g,y);}return g;}case cS(0x264):return Ca(c,d,f['center']['x'],f['center']['y'],f['majorAxis'],f['minorRatio']);case cS(0x18a):case'MTEXT':{const A=_(f);return A?Sa(c,d,A[cS(0x1cc)],A['minY'],A['maxX'],A['maxY']):0x1/0x0;}case cS(0x284):return Math['hypot'](c-f['position']['x'],d-f[cS(0x2c8)]['y']);case'SPLINE':{let C=0x1/0x0;const D=f[cS(0x273)];for(let F=0x0;F<D['length']-0x1;F++){const I=he(c,d,D[F]['x'],D[F]['y'],D[F+0x1]['x'],D[F+0x1]['y']);C=Math['min'](C,I);}return C;}default:return 0x1/0x0;}}function he(d,f,g,k,m,v){const cT=aT,x=m-g,y=v-k,A=x*x+y*y;if(A===0x0)return Math['hypot'](d-g,f-k);let C=((d-g)*x+(f-k)*y)/A;C=Math['max'](0x0,Math[cT(0x187)](0x1,C));const D=g+C*x,F=k+C*y;return Math[cT(0x1a6)](d-D,f-F);}function Ea(c,d,f,g,h){return Math['abs'](Math['hypot'](c-f,d-g)-h);}function Aa(f,g,i,k,u,v,x){const cU=aT,y=(Math[cU(0x221)](g-k,f-i)%(0x2*Math['PI'])+0x2*Math['PI'])%(0x2*Math['PI']),A=(v%(0x2*Math['PI'])+0x2*Math['PI'])%(0x2*Math['PI']),C=(x%(0x2*Math['PI'])+0x2*Math['PI'])%(0x2*Math['PI']);if(A<=C?y>=A&&y<=C:y>=A||y<=C)return Math['abs'](Math[cU(0x1a6)](f-i,g-k)-u);const D=Math[cU(0x1a6)](f-(i+u*Math['cos'](v)),g-(k+u*Math['sin'](v))),F=Math['hypot'](f-(i+u*Math['cos'](x)),g-(k+u*Math['sin'](x)));return Math['min'](D,F);}function Sa(c,d,f,g,h,k){const cV=aT;if(c>=f&&c<=h&&d>=g&&d<=k)return 0x0;const l=Math['max'](f-c,0x0,c-h),m=Math['max'](g-d,0x0,d-k);return Math[cV(0x1a6)](l,m);}function Ca(g,k,x,y,A,C){const cW=aT,D=Math['atan2'](A['y'],A['x']),F=Math[cW(0x27f)](-D),I=Math[cW(0x2cd)](-D),L=(g-x)*F-(k-y)*I,N=(g-x)*I+(k-y)*F,O=Math['sqrt'](T(A['x'],0x2)+T(A['y'],0x2)),R=O*C;if(O<1e-10)return Math['hypot'](g-x,k-y);const S=N*(O/R),W=Math['hypot'](L,S);if(W<1e-10)return O;const Y=L/W*O,a0=N/W*R;return Math['hypot'](L-Y,N-a0);}var Da=class{constructor(){p(this,'state',{'phase':'idle'}),p(this,'currentSnap',null);}[aT(0x1d2)](){const cX=aT;this['state']={'phase':cX(0x29b)},this['currentSnap']=null;}['deactivate'](){this['state']={'phase':'idle'},this['currentSnap']=null;}['handleClick'](c,d,f){const cY=aT,g=f?f[cY(0x18f)]:{'x':c,'y':d};switch(this['state']['phase']){case'first-point':return this[cY(0x2b5)]={'phase':'second-point','firstPoint':g,'firstSnap':f!=null?f:void 0x0},null;case cY(0x29d):{const k=this['state']['firstPoint'],m=g,u=m['x']-k['x'],v=m['y']-k['y'],x=Math['sqrt'](u*u+v*v),y=Math[cY(0x221)](v,u)*0xb4/Math['PI'];return this['state']={'phase':'done','firstPoint':k,'secondPoint':m,'distance':x,'angle':y},{'distance':x,'angle':y,'deltaX':u,'deltaY':v,'points':[k,m]};}case cY(0x196):return this['state']={'phase':'second-point','firstPoint':g},null;default:return null;}}['handleMove'](c){this['currentSnap']=c;}};function Ee(f,g,k,v,x,y=new Set(['endpoint','midpoint','center'])){const cZ=aT,A=0xa/x,C=[],D=v[cZ(0x1e9)](f-A,g-A,f+A,g+A);for(const F of D){const I=k[F[cZ(0x1f6)]];if(!I)continue;const L=F['entityIndex'];switch(I[cZ(0x249)]){case cZ(0x1b8):{if(y['has']('endpoint')&&(M(C,I['start']['x'],I['start']['y'],'endpoint',L,f,g,A),M(C,I[cZ(0x19c)]['x'],I['end']['y'],'endpoint',L,f,g,A)),y[cZ(0x287)]('midpoint')){const N=(I['start']['x']+I['end']['x'])/0x2,O=(I['start']['y']+I['end']['y'])/0x2;M(C,N,O,'midpoint',L,f,g,A);}break;}case'CIRCLE':{if(y['has']('center')&&M(C,I['center']['x'],I['center']['y'],'center',L,f,g,A),y['has']('endpoint'))for(const R of[0x0,Math['PI']/0x2,Math['PI'],0x3*Math['PI']/0x2]){const S=I['center']['x']+I['radius']*Math['cos'](R),W=I[cZ(0x23c)]['y']+I['radius']*Math[cZ(0x2cd)](R);M(C,S,W,'endpoint',L,f,g,A);}break;}case'ARC':{if(y[cZ(0x287)]('center')&&M(C,I[cZ(0x23c)]['x'],I['center']['y'],cZ(0x23c),L,f,g,A),y['has']('endpoint')){const Y=I[cZ(0x285)]*Math['PI']/0xb4,a0=I['endAngle']*Math['PI']/0xb4;M(C,I['center']['x']+I['radius']*Math['cos'](Y),I['center']['y']+I[cZ(0x190)]*Math['sin'](Y),cZ(0x1c1),L,f,g,A),M(C,I['center']['x']+I['radius']*Math['cos'](a0),I[cZ(0x23c)]['y']+I[cZ(0x190)]*Math['sin'](a0),'endpoint',L,f,g,A);}break;}case'LWPOLYLINE':case cZ(0x1c5):{if(y[cZ(0x287)]('endpoint')){for(const a1 of I['vertices'])M(C,a1['x'],a1['y'],'endpoint',L,f,g,A);}if(y['has']('midpoint'))for(let a2=0x0;a2<I['vertices']['length']-0x1;a2++){const a3=I['vertices'][a2],a4=I['vertices'][a2+0x1];M(C,(a3['x']+a4['x'])/0x2,(a3['y']+a4['y'])/0x2,'midpoint',L,f,g,A);}break;}case'ELLIPSE':{y['has']('center')&&M(C,I['center']['x'],I['center']['y'],'center',L,f,g,A);break;}case'TEXT':{y[cZ(0x287)](cZ(0x1c1))&&M(C,I['insertionPoint']['x'],I['insertionPoint']['y'],'endpoint',L,f,g,A);break;}case'MTEXT':{y['has'](cZ(0x1c1))&&M(C,I[cZ(0x23a)]['x'],I[cZ(0x23a)]['y'],'endpoint',L,f,g,A);break;}}}return C['sort']((a5,a6)=>Math['hypot'](a5['point']['x']-f,a5['point']['y']-g)-Math[cZ(0x1a6)](a6['point']['x']-f,a6['point']['y']-g)),C;}function M(c,d,f,g,h,k,l,m){Math['hypot'](d-k,f-l)<=m&&c['push']({'point':{'x':d,'y':f},'type':g,'entityIndex':h});}function La(g,k,x,y,A,C){const d0=aT,D=X[C];g[d0(0x18e)](0x1,0x0,0x0,0x1,0x0,0x0);const F=x['state'];if(x['currentSnap']){const [I,L]=U(k,x['currentSnap']['point']['x'],x['currentSnap']['point']['y']);Na(g,I,L,x['currentSnap']['type'],D['measureColor']);}if(F['phase']==='second-point'){const [N,O]=U(k,F['firstPoint']['x'],F['firstPoint']['y']);let R,S;if(x[d0(0x29f)]){const [a1,a2]=U(k,x[d0(0x29f)]['point']['x'],x['currentSnap']['point']['y']);R=a1,S=a2;}else R=y,S=A;g['strokeStyle']=D['measureColor'],g[d0(0x2ca)]=1.5,g['setLineDash']([0x6,0x3]),g[d0(0x2c5)](),g['moveTo'](N,O),g['lineTo'](R,S),g['stroke'](),g['setLineDash']([]),ae(g,N,O,D[d0(0x2a3)]),ae(g,R,S,D[d0(0x2a3)]);let W,Y;x[d0(0x29f)]?(W=x['currentSnap']['point']['x'],Y=x['currentSnap']['point']['y']):[W,Y]=K(k,y,A);const a0=Math[d0(0x1a6)](W-F[d0(0x277)]['x'],Y-F['firstPoint']['y']);Ae(g,(N+R)/0x2,(O+S)/0x2,a0,C);}if(F['phase']==='done'){const [a3,a4]=U(k,F[d0(0x277)]['x'],F['firstPoint']['y']),[a5,a6]=U(k,F['secondPoint']['x'],F['secondPoint']['y']);g['strokeStyle']=D['measureColor'],g['lineWidth']=0x2,g['beginPath'](),g['moveTo'](a3,a4),g['lineTo'](a5,a6),g['stroke'](),ae(g,a3,a4,D[d0(0x2a3)]),ae(g,a5,a6,D[d0(0x2a3)]),Ae(g,(a3+a5)/0x2,(a4+a6)/0x2,F['distance'],C);}}function Na(c,d,f,g,h){const d1=aT;c['strokeStyle']=h,c['lineWidth']=0x2;const i=0x8;switch(g){case'endpoint':c['strokeRect'](d-i/0x2,f-i/0x2,i,i);break;case'midpoint':c[d1(0x2c5)](),c['moveTo'](d,f-i/0x2),c['lineTo'](d+i/0x2,f+i/0x2),c['lineTo'](d-i/0x2,f+i/0x2),c['closePath'](),c['stroke']();break;case'center':c[d1(0x2c5)](),c[d1(0x1a0)](d,f,i/0x2,0x0,Math['PI']*0x2),c['stroke']();break;case'nearest':c['beginPath'](),c['moveTo'](d-i/0x2,f-i/0x2),c['lineTo'](d+i/0x2,f+i/0x2),c['moveTo'](d+i/0x2,f-i/0x2),c['lineTo'](d-i/0x2,f+i/0x2),c['stroke']();break;}}function ae(c,d,f,g){const d2=aT;c['fillStyle']=g,c[d2(0x2c5)](),c['arc'](d,f,0x4,0x0,Math['PI']*0x2),c[d2(0x299)]();}function Ae(d,f,g,k,m){const d3=aT,v=k['toFixed'](0x4);d[d3(0x226)]=d3(0x1ff),d['textAlign']='center',d['textBaseline']='bottom';const x=d[d3(0x1a4)](v),y=0x4,A=f-x[d3(0x280)]/0x2-y,C=g-0x14,D=x['width']+y*0x2,F=0x12;d[d3(0x247)]=m==='dark'?'rgba(0,0,0,0.8)':'rgba(255,255,255,0.9)',d['fillRect'](A,C,D,F),d['fillStyle']=X[m]['measureColor'],d['fillText'](v,f,g-0x6);}var Ba=class{constructor(){const d4=aT;p(this,'worker',null),p(this,d4(0x181),null),p(this,'nextId',0x1),p(this,'pending',new Map());}['getWorker'](){return this['worker']?this['worker']:(this['blobUrl']=URL['createObjectURL'](new Blob(['\x22use\x20strict\x22;(()=>{function\x20h(a){let\x20e=a.replace(/\x5cr\x5cn?/g,`\x0a`),t=[],r=e.length,n=0;for(;n<r;){for(;n<r&&e.charCodeAt(n)===10;)n++;if(n>=r)break;let\x20o=e.indexOf(`\x0a`,n);o===-1&&(o=r);let\x20c=e.substring(n,o).trim();n=o+1;let\x20s=parseInt(c,10);if(isNaN(s)){n<r&&(o=e.indexOf(`\x0a`,n),o===-1&&(o=r),n=o+1);continue}if(n>=r)break;o=e.indexOf(`\x0a`,n),o===-1&&(o=r);let\x20p=e.substring(n,o).replace(/\x5cs+$/,\x22\x22);n=o+1,t.push({code:s,value:p})}return\x20t}function\x20m(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDSEC\x22)return\x20e+1;if(r.code===9){let\x20n=r.value;switch(e++,n){case\x22$ACADVER\x22:e<a.length&&(t.acadVersion=a[e].value,e++);break;case\x22$EXTMIN\x22:if(e<a.length){let\x20o=v(a,e);t.extMin=o.point,e=o.nextIndex}break;case\x22$EXTMAX\x22:if(e<a.length){let\x20o=v(a,e);t.extMax=o.point,e=o.nextIndex}break;case\x22$INSUNITS\x22:e<a.length&&(t.insUnits=parseInt(a[e].value,10),e++);break;case\x22$MEASUREMENT\x22:e<a.length&&(t.measurement=parseInt(a[e].value,10),e++);break;case\x22$LTSCALE\x22:e<a.length&&(t.ltScale=parseFloat(a[e].value),e++);break;case\x22$DWGCODEPAGE\x22:e<a.length&&(t.dwgCodePage=a[e].value,e++);break;case\x22$HANDSEED\x22:e<a.length&&(t.handleSeed=a[e].value,e++);break;default:for(;e<a.length&&a[e].code!==9&&a[e].code!==0;)t[n]=a[e].value,e++}}else\x20e++}return\x20e}function\x20v(a,e){let\x20t={x:0,y:0,z:0};for(;e<a.length;){let\x20r=a[e].code;if(r===10)t.x=parseFloat(a[e].value),e++;else\x20if(r===20)t.y=parseFloat(a[e].value),e++;else\x20if(r===30)t.z=parseFloat(a[e].value),e++;else\x20break}return{point:t,nextIndex:e}}function\x20k(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDSEC\x22)return\x20e+1;if(r.code===0&&r.value===\x22TABLE\x22){if(e++,e>=a.length)break;let\x20n=a[e].value;switch(e++,n){case\x22LAYER\x22:e=H(a,e,t.layers);break;case\x22LTYPE\x22:e=O(a,e,t.lineTypes);break;case\x22STYLE\x22:e=_(a,e,t.styles);break;default:e=R(a,e);break}}else\x20e++}return\x20e}function\x20R(a,e){for(;e<a.length;){if(a[e].code===0&&a[e].value===\x22ENDTAB\x22)return\x20e+1;e++}return\x20e}function\x20H(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDTAB\x22)return\x20e+1;if(r.code===0&&r.value===\x22LAYER\x22){e++;let\x20n={name:\x220\x22,color:7,lineType:\x22Continuous\x22,flags:0,lineWeight:-3,isOff:!1,isFrozen:!1,isLocked:!1};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x202:n.name=o.value;break;case\x206:n.lineType=o.value;break;case\x2062:n.color=parseInt(o.value,10);break;case\x2070:n.flags=parseInt(o.value,10);break;case\x20370:n.lineWeight=parseInt(o.value,10);break;case\x20420:n.trueColor=parseInt(o.value,10);break}e++}t.set(n.name,n)}else\x20e++}return\x20e}function\x20O(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDTAB\x22)return\x20e+1;if(r.code===0&&r.value===\x22LTYPE\x22){e++;let\x20n={name:\x22\x22,description:\x22\x22,pattern:[],totalLength:0};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x202:n.name=o.value;break;case\x203:n.description=o.value;break;case\x2040:n.totalLength=parseFloat(o.value);break;case\x2049:n.pattern.push(parseFloat(o.value));break}e++}n.name&&t.set(n.name,n)}else\x20e++}return\x20e}function\x20_(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDTAB\x22)return\x20e+1;if(r.code===0&&r.value===\x22STYLE\x22){e++;let\x20n={name:\x22\x22,fontName:\x22\x22,bigFontName:\x22\x22,height:0,widthFactor:1,obliqueAngle:0};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x202:n.name=o.value;break;case\x203:n.fontName=o.value;break;case\x204:n.bigFontName=o.value;break;case\x2040:n.height=parseFloat(o.value);break;case\x2041:n.widthFactor=parseFloat(o.value);break;case\x2050:n.obliqueAngle=parseFloat(o.value);break}e++}n.name&&t.set(n.name,n)}else\x20e++}return\x20e}function\x20l(a){let\x20e={type:\x22\x22,layer:\x220\x22,color:256,lineType:\x22BYLAYER\x22,lineTypeScale:1,lineWeight:-1,visible:!0,extrusion:{x:0,y:0,z:1}};for(let\x20t\x20of\x20a)switch(t.code){case\x205:e.handle=t.value;break;case\x208:e.layer=t.value;break;case\x206:e.lineType=t.value;break;case\x2048:e.lineTypeScale=parseFloat(t.value);break;case\x2060:e.visible=t.value===\x220\x22||t.value===\x22\x22;break;case\x2062:e.color=parseInt(t.value,10);break;case\x20370:e.lineWeight=parseInt(t.value,10);break;case\x20420:e.trueColor=parseInt(t.value,10);break;case\x20210:e.extrusion.x=parseFloat(t.value);break;case\x20220:e.extrusion.y=parseFloat(t.value);break;case\x20230:e.extrusion.z=parseFloat(t.value);break}return\x20e}function\x20D(a){let\x20t={...l(a),type:\x22LINE\x22,start:{x:0,y:0,z:0},end:{x:0,y:0,z:0}};for(let\x20r\x20of\x20a)switch(r.code){case\x2010:t.start.x=parseFloat(r.value);break;case\x2020:t.start.y=parseFloat(r.value);break;case\x2030:t.start.z=parseFloat(r.value);break;case\x2011:t.end.x=parseFloat(r.value);break;case\x2021:t.end.y=parseFloat(r.value);break;case\x2031:t.end.z=parseFloat(r.value);break}return\x20t}function\x20F(a){let\x20t={...l(a),type:\x22CIRCLE\x22,center:{x:0,y:0,z:0},radius:0};for(let\x20r\x20of\x20a)switch(r.code){case\x2010:t.center.x=parseFloat(r.value);break;case\x2020:t.center.y=parseFloat(r.value);break;case\x2030:t.center.z=parseFloat(r.value);break;case\x2040:t.radius=parseFloat(r.value);break}return\x20t}function\x20E(a){let\x20t={...l(a),type:\x22ARC\x22,center:{x:0,y:0,z:0},radius:0,startAngle:0,endAngle:360};for(let\x20r\x20of\x20a)switch(r.code){case\x2010:t.center.x=parseFloat(r.value);break;case\x2020:t.center.y=parseFloat(r.value);break;case\x2030:t.center.z=parseFloat(r.value);break;case\x2040:t.radius=parseFloat(r.value);break;case\x2050:t.startAngle=parseFloat(r.value);break;case\x2051:t.endAngle=parseFloat(r.value);break}return\x20t}function\x20P(a){let\x20t={...l(a),type:\x22LWPOLYLINE\x22,vertices:[],closed:!1,constantWidth:0,elevation:0},r=null;for(let\x20n\x20of\x20a)switch(n.code){case\x2070:t.closed=(parseInt(n.value,10)&1)!==0;break;case\x2038:t.elevation=parseFloat(n.value);break;case\x2043:t.constantWidth=parseFloat(n.value);break;case\x2010:r&&t.vertices.push(r),r={x:parseFloat(n.value),y:0,bulge:0,startWidth:0,endWidth:0};break;case\x2020:r&&(r.y=parseFloat(n.value));break;case\x2040:r&&(r.startWidth=parseFloat(n.value));break;case\x2041:r&&(r.endWidth=parseFloat(n.value));break;case\x2042:r&&(r.bulge=parseFloat(n.value));break}return\x20r&&t.vertices.push(r),t}function\x20T(a){let\x20t={...l(a),type:\x22POLYLINE\x22,vertices:[],closed:!1,is3d:!1};for(let\x20r\x20of\x20a)if(r.code===70){let\x20n=parseInt(r.value,10);t.closed=(n&1)!==0,t.is3d=(n&8)!==0}return\x20t}function\x20w(a){let\x20t={...l(a),type:\x22ELLIPSE\x22,center:{x:0,y:0,z:0},majorAxis:{x:1,y:0,z:0},minorRatio:1,startParam:0,endParam:Math.PI*2};for(let\x20r\x20of\x20a)switch(r.code){case\x2010:t.center.x=parseFloat(r.value);break;case\x2020:t.center.y=parseFloat(r.value);break;case\x2030:t.center.z=parseFloat(r.value);break;case\x2011:t.majorAxis.x=parseFloat(r.value);break;case\x2021:t.majorAxis.y=parseFloat(r.value);break;case\x2031:t.majorAxis.z=parseFloat(r.value);break;case\x2040:t.minorRatio=parseFloat(r.value);break;case\x2041:t.startParam=parseFloat(r.value);break;case\x2042:t.endParam=parseFloat(r.value);break}return\x20t}function\x20g(a){let\x20t={...l(a),type:\x22SPLINE\x22,degree:3,flags:0,knots:[],controlPoints:[],fitPoints:[],weights:[]},r=null,n=null;for(let\x20o\x20of\x20a)switch(o.code){case\x2070:t.flags=parseInt(o.value,10);break;case\x2071:t.degree=parseInt(o.value,10);break;case\x2040:t.knots.push(parseFloat(o.value));break;case\x2041:t.weights.push(parseFloat(o.value));break;case\x2010:r&&t.controlPoints.push(r),r={x:parseFloat(o.value),y:0,z:0};break;case\x2020:r&&(r.y=parseFloat(o.value));break;case\x2030:r&&(r.z=parseFloat(o.value));break;case\x2011:n&&t.fitPoints.push(n),n={x:parseFloat(o.value),y:0,z:0};break;case\x2021:n&&(n.y=parseFloat(o.value));break;case\x2031:n&&(n.z=parseFloat(o.value));break;case\x2012:t.startTangent||(t.startTangent={x:0,y:0,z:0}),t.startTangent.x=parseFloat(o.value);break;case\x2022:t.startTangent&&(t.startTangent.y=parseFloat(o.value));break;case\x2032:t.startTangent&&(t.startTangent.z=parseFloat(o.value));break;case\x2013:t.endTangent||(t.endTangent={x:0,y:0,z:0}),t.endTangent.x=parseFloat(o.value);break;case\x2023:t.endTangent&&(t.endTangent.y=parseFloat(o.value));break;case\x2033:t.endTangent&&(t.endTangent.z=parseFloat(o.value));break}return\x20r&&t.controlPoints.push(r),n&&t.fitPoints.push(n),t}function\x20I(a){let\x20t={...l(a),type:\x22TEXT\x22,text:\x22\x22,insertionPoint:{x:0,y:0,z:0},height:1,rotation:0,widthFactor:1,obliqueAngle:0,style:\x22STANDARD\x22,hAlign:0,vAlign:0,generationFlags:0};for(let\x20r\x20of\x20a)switch(r.code){case\x201:t.text=r.value;break;case\x2010:t.insertionPoint.x=parseFloat(r.value);break;case\x2020:t.insertionPoint.y=parseFloat(r.value);break;case\x2030:t.insertionPoint.z=parseFloat(r.value);break;case\x2011:t.alignmentPoint||(t.alignmentPoint={x:0,y:0,z:0}),t.alignmentPoint.x=parseFloat(r.value);break;case\x2021:t.alignmentPoint||(t.alignmentPoint={x:0,y:0,z:0}),t.alignmentPoint.y=parseFloat(r.value);break;case\x2031:t.alignmentPoint||(t.alignmentPoint={x:0,y:0,z:0}),t.alignmentPoint.z=parseFloat(r.value);break;case\x2040:t.height=parseFloat(r.value);break;case\x2041:t.widthFactor=parseFloat(r.value);break;case\x2050:t.rotation=parseFloat(r.value);break;case\x2051:t.obliqueAngle=parseFloat(r.value);break;case\x207:t.style=r.value;break;case\x2071:t.generationFlags=parseInt(r.value,10);break;case\x2072:t.hAlign=parseInt(r.value,10);break;case\x2073:t.vAlign=parseInt(r.value,10);break}return\x20t}function\x20A(a){let\x20t={...l(a),type:\x22MTEXT\x22,text:\x22\x22,insertionPoint:{x:0,y:0,z:0},height:1,width:0,attachmentPoint:1,drawingDirection:1,rotation:0,lineSpacingStyle:1,lineSpacingFactor:1,style:\x22STANDARD\x22,bgFill:0,bgFillScale:1.5},r=[];for(let\x20n\x20of\x20a)switch(n.code){case\x201:r.push(n.value);break;case\x203:r.push(n.value);break;case\x207:t.style=n.value;break;case\x2010:t.insertionPoint.x=parseFloat(n.value);break;case\x2020:t.insertionPoint.y=parseFloat(n.value);break;case\x2030:t.insertionPoint.z=parseFloat(n.value);break;case\x2011:t.textDirection||(t.textDirection={x:0,y:0,z:0}),t.textDirection.x=parseFloat(n.value);break;case\x2021:t.textDirection||(t.textDirection={x:0,y:0,z:0}),t.textDirection.y=parseFloat(n.value);break;case\x2031:t.textDirection||(t.textDirection={x:0,y:0,z:0}),t.textDirection.z=parseFloat(n.value);break;case\x2040:t.height=parseFloat(n.value);break;case\x2041:t.width=parseFloat(n.value);break;case\x2044:t.lineSpacingFactor=parseFloat(n.value);break;case\x2050:t.rotation=parseFloat(n.value);break;case\x2071:t.attachmentPoint=parseInt(n.value,10);break;case\x2072:t.drawingDirection=parseInt(n.value,10);break;case\x2073:t.lineSpacingStyle=parseInt(n.value,10);break;case\x2090:t.bgFill=parseInt(n.value,10);break}return\x20t.text=r.join(\x22\x22),t}function\x20z(a){let\x20t={...l(a),type:\x22INSERT\x22,blockName:\x22\x22,insertionPoint:{x:0,y:0,z:0},scaleX:1,scaleY:1,scaleZ:1,rotation:0,columnCount:1,rowCount:1,columnSpacing:0,rowSpacing:0,attribs:[]};for(let\x20r\x20of\x20a)switch(r.code){case\x202:t.blockName=r.value;break;case\x2010:t.insertionPoint.x=parseFloat(r.value);break;case\x2020:t.insertionPoint.y=parseFloat(r.value);break;case\x2030:t.insertionPoint.z=parseFloat(r.value);break;case\x2041:t.scaleX=parseFloat(r.value);break;case\x2042:t.scaleY=parseFloat(r.value);break;case\x2043:t.scaleZ=parseFloat(r.value);break;case\x2044:t.columnSpacing=parseFloat(r.value);break;case\x2045:t.rowSpacing=parseFloat(r.value);break;case\x2050:t.rotation=parseFloat(r.value);break;case\x2070:t.columnCount=parseInt(r.value,10)||1;break;case\x2071:t.rowCount=parseInt(r.value,10)||1;break}return\x20t}function\x20S(a){let\x20t={...l(a),type:\x22DIMENSION\x22,blockName:\x22\x22,dimStyle:\x22STANDARD\x22,dimType:0,defPoint:{x:0,y:0,z:0},textMidpoint:{x:0,y:0,z:0},textOverride:\x22\x22,rotation:0,textRotation:0,leaderLength:0};for(let\x20r\x20of\x20a)switch(r.code){case\x201:t.textOverride=r.value;break;case\x202:t.blockName=r.value;break;case\x203:t.dimStyle=r.value;break;case\x2010:t.defPoint.x=parseFloat(r.value);break;case\x2020:t.defPoint.y=parseFloat(r.value);break;case\x2030:t.defPoint.z=parseFloat(r.value);break;case\x2011:t.textMidpoint.x=parseFloat(r.value);break;case\x2021:t.textMidpoint.y=parseFloat(r.value);break;case\x2031:t.textMidpoint.z=parseFloat(r.value);break;case\x2013:t.defPoint2||(t.defPoint2={x:0,y:0,z:0}),t.defPoint2.x=parseFloat(r.value);break;case\x2023:t.defPoint2||(t.defPoint2={x:0,y:0,z:0}),t.defPoint2.y=parseFloat(r.value);break;case\x2033:t.defPoint2||(t.defPoint2={x:0,y:0,z:0}),t.defPoint2.z=parseFloat(r.value);break;case\x2014:t.defPoint3||(t.defPoint3={x:0,y:0,z:0}),t.defPoint3.x=parseFloat(r.value);break;case\x2024:t.defPoint3||(t.defPoint3={x:0,y:0,z:0}),t.defPoint3.y=parseFloat(r.value);break;case\x2034:t.defPoint3||(t.defPoint3={x:0,y:0,z:0}),t.defPoint3.z=parseFloat(r.value);break;case\x2015:t.defPoint4||(t.defPoint4={x:0,y:0,z:0}),t.defPoint4.x=parseFloat(r.value);break;case\x2025:t.defPoint4||(t.defPoint4={x:0,y:0,z:0}),t.defPoint4.y=parseFloat(r.value);break;case\x2035:t.defPoint4||(t.defPoint4={x:0,y:0,z:0}),t.defPoint4.z=parseFloat(r.value);break;case\x2016:t.defPoint5||(t.defPoint5={x:0,y:0,z:0}),t.defPoint5.x=parseFloat(r.value);break;case\x2026:t.defPoint5||(t.defPoint5={x:0,y:0,z:0}),t.defPoint5.y=parseFloat(r.value);break;case\x2036:t.defPoint5||(t.defPoint5={x:0,y:0,z:0}),t.defPoint5.z=parseFloat(r.value);break;case\x2040:t.leaderLength=parseFloat(r.value);break;case\x2050:t.rotation=parseFloat(r.value);break;case\x2053:t.textRotation=parseFloat(r.value);break;case\x2070:t.dimType=parseInt(r.value,10);break}return\x20t}function\x20N(a){let\x20t={...l(a),type:\x22HATCH\x22,patternName:\x22\x22,solidFill:!0,associative:!1,hatchStyle:0,patternType:1,patternAngle:0,patternScale:1,boundaryPaths:[]},r=0;for(;r<a.length;){let\x20n=a[r];switch(n.code){case\x202:t.patternName=n.value;break;case\x2041:t.patternScale=parseFloat(n.value);break;case\x2052:t.patternAngle=parseFloat(n.value);break;case\x2070:t.solidFill=n.value===\x221\x22;break;case\x2071:t.associative=n.value===\x221\x22;break;case\x2075:t.hatchStyle=parseInt(n.value,10);break;case\x2076:t.patternType=parseInt(n.value,10);break;case\x2091:{let\x20o=parseInt(n.value,10);r++;for(let\x20c=0;c<o&&r<a.length;c++){let\x20s=W(a,r);t.boundaryPaths.push(s.path),r=s.nextIndex}continue}}r++}return\x20t}function\x20W(a,e){let\x20t=0;return\x20e<a.length&&a[e].code===92&&(t=parseInt(a[e].value,10),e++),(t&2)!==0?X(a,e,t):Y(a,e,t)}function\x20X(a,e,t){let\x20r={type:\x22polyline\x22,vertices:[],bulges:[],flags:t},n=!1;e<a.length&&a[e].code===72&&(n=a[e].value===\x221\x22,e++),e<a.length&&a[e].code===73&&(r.isClosed=a[e].value===\x221\x22,e++);let\x20o=0;e<a.length&&a[e].code===93&&(o=parseInt(a[e].value,10),e++);for(let\x20c=0;c<o&&e<a.length;c++){let\x20s={x:0,y:0};a[e].code===10&&(s.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===20&&(s.y=parseFloat(a[e].value),e++),r.vertices.push(s),n&&e<a.length&&a[e].code===42?(r.bulges.push(parseFloat(a[e].value)),e++):n&&r.bulges.push(0)}for(;e<a.length&&(a[e].code===97||a[e].code===330);)if(a[e].code===97){let\x20c=parseInt(a[e].value,10);e++;for(let\x20s=0;s<c&&e<a.length&&a[e].code===330;s++)e++}else\x20e++;return{path:r,nextIndex:e}}function\x20Y(a,e,t){let\x20r={type:\x22edges\x22,edges:[],flags:t},n=0;e<a.length&&a[e].code===93&&(n=parseInt(a[e].value,10),e++);for(let\x20o=0;o<n&&e<a.length&&a[e].code===72;o++){let\x20c=parseInt(a[e].value,10);switch(e++,c){case\x201:{let\x20s={type:\x22line\x22,start:{x:0,y:0},end:{x:0,y:0}};e<a.length&&a[e].code===10&&(s.start.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===20&&(s.start.y=parseFloat(a[e].value),e++),e<a.length&&a[e].code===11&&(s.end.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===21&&(s.end.y=parseFloat(a[e].value),e++),r.edges.push(s);break}case\x202:{let\x20s={type:\x22arc\x22,center:{x:0,y:0},radius:0,startAngle:0,endAngle:360,ccw:!0};e<a.length&&a[e].code===10&&(s.center.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===20&&(s.center.y=parseFloat(a[e].value),e++),e<a.length&&a[e].code===40&&(s.radius=parseFloat(a[e].value),e++),e<a.length&&a[e].code===50&&(s.startAngle=parseFloat(a[e].value),e++),e<a.length&&a[e].code===51&&(s.endAngle=parseFloat(a[e].value),e++),e<a.length&&a[e].code===73&&(s.ccw=a[e].value===\x221\x22,e++),r.edges.push(s);break}case\x203:{let\x20s={type:\x22ellipse\x22,center:{x:0,y:0},majorAxis:{x:1,y:0},minorRatio:1,startAngle:0,endAngle:Math.PI*2,ccw:!0};e<a.length&&a[e].code===10&&(s.center.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===20&&(s.center.y=parseFloat(a[e].value),e++),e<a.length&&a[e].code===11&&(s.majorAxis.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===21&&(s.majorAxis.y=parseFloat(a[e].value),e++),e<a.length&&a[e].code===40&&(s.minorRatio=parseFloat(a[e].value),e++),e<a.length&&a[e].code===50&&(s.startAngle=parseFloat(a[e].value),e++),e<a.length&&a[e].code===51&&(s.endAngle=parseFloat(a[e].value),e++),e<a.length&&a[e].code===73&&(s.ccw=a[e].value===\x221\x22,e++),r.edges.push(s);break}case\x204:{let\x20s=3,p=[],b=[];e<a.length&&a[e].code===94&&(s=parseInt(a[e].value,10),e++),e<a.length&&a[e].code===73&&e++,e<a.length&&a[e].code===74&&e++;let\x20d=0;e<a.length&&a[e].code===95&&(d=parseInt(a[e].value,10),e++);let\x20x=0;e<a.length&&a[e].code===96&&(x=parseInt(a[e].value,10),e++);for(let\x20f=0;f<d&&e<a.length&&a[e].code===40;f++)p.push(parseFloat(a[e].value)),e++;for(let\x20f=0;f<x&&e<a.length;f++){let\x20y={x:0,y:0};a[e].code===10&&(y.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===20&&(y.y=parseFloat(a[e].value),e++),b.push(y)}r.edges.push({type:\x22spline\x22,degree:s,knots:p,controlPoints:b});break}default:break}}for(;e<a.length&&(a[e].code===97||a[e].code===330);)if(a[e].code===97){let\x20o=parseInt(a[e].value,10);e++;for(let\x20c=0;c<o&&e<a.length&&a[e].code===330;c++)e++}else\x20e++;return{path:r,nextIndex:e}}function\x20L(a){let\x20t={...l(a),type:\x22POINT\x22,position:{x:0,y:0,z:0}};for(let\x20r\x20of\x20a)switch(r.code){case\x2010:t.position.x=parseFloat(r.value);break;case\x2020:t.position.y=parseFloat(r.value);break;case\x2030:t.position.z=parseFloat(r.value);break}return\x20t}function\x20u(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code!==0){e++;continue}let\x20n=r.value;if(n===\x22ENDSEC\x22||n===\x22ENDBLK\x22)return\x20e+1;e++;let\x20o=[];for(;e<a.length&&a[e].code!==0;)o.push(a[e]),e++;switch(n){case\x22LINE\x22:t.push(D(o));break;case\x22CIRCLE\x22:t.push(F(o));break;case\x22ARC\x22:t.push(E(o));break;case\x22LWPOLYLINE\x22:t.push(P(o));break;case\x22ELLIPSE\x22:t.push(w(o));break;case\x22SPLINE\x22:t.push(g(o));break;case\x22TEXT\x22:t.push(I(o));break;case\x22MTEXT\x22:t.push(A(o));break;case\x22INSERT\x22:{let\x20c=z(o);o.some(p=>p.code===66&&p.value===\x221\x22)&&(e=$(a,e,c.attribs)),t.push(c);break}case\x22DIMENSION\x22:t.push(S(o));break;case\x22HATCH\x22:t.push(N(o));break;case\x22POINT\x22:t.push(L(o));break;case\x22POLYLINE\x22:{let\x20c=T(o);e=V(a,e,c.vertices),t.push(c);break}default:break}}return\x20e}function\x20V(a,e,t){for(;e<a.length;){if(a[e].code!==0){e++;continue}let\x20r=a[e].value;if(r===\x22SEQEND\x22)return\x20e+1;if(r===\x22ENDSEC\x22||r===\x22ENDBLK\x22)return\x20e;if(r===\x22VERTEX\x22){e++;let\x20n={x:0,y:0,bulge:0,startWidth:0,endWidth:0};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x2010:n.x=parseFloat(o.value);break;case\x2020:n.y=parseFloat(o.value);break;case\x2042:n.bulge=parseFloat(o.value);break;case\x2040:n.startWidth=parseFloat(o.value);break;case\x2041:n.endWidth=parseFloat(o.value);break}e++}t.push(n)}else\x20for(e++;e<a.length&&a[e].code!==0;)e++}return\x20e}function\x20$(a,e,t){for(;e<a.length;){if(a[e].code!==0){e++;continue}let\x20r=a[e].value;if(r===\x22SEQEND\x22)return\x20e+1;if(r===\x22ENDSEC\x22||r===\x22ENDBLK\x22)return\x20e;if(r===\x22ATTRIB\x22){e++;let\x20n={tag:\x22\x22,text:\x22\x22,insertionPoint:{x:0,y:0,z:0},height:1,rotation:0,style:\x22STANDARD\x22,layer:\x220\x22,color:256};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x201:n.text=o.value;break;case\x202:n.tag=o.value;break;case\x207:n.style=o.value;break;case\x208:n.layer=o.value;break;case\x2010:n.insertionPoint.x=parseFloat(o.value);break;case\x2020:n.insertionPoint.y=parseFloat(o.value);break;case\x2030:n.insertionPoint.z=parseFloat(o.value);break;case\x2040:n.height=parseFloat(o.value);break;case\x2050:n.rotation=parseFloat(o.value);break;case\x2062:n.color=parseInt(o.value,10);break}e++}t.push(n)}else\x20for(e++;e<a.length&&a[e].code!==0;)e++}return\x20e}function\x20B(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDSEC\x22)return\x20e+1;if(r.code===0&&r.value===\x22BLOCK\x22){e++;let\x20n={name:\x22\x22,basePoint:{x:0,y:0,z:0},entities:[],flags:0};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x202:n.name=o.value;break;case\x208:break;case\x2010:n.basePoint.x=parseFloat(o.value);break;case\x2020:n.basePoint.y=parseFloat(o.value);break;case\x2030:n.basePoint.z=parseFloat(o.value);break;case\x2070:n.flags=parseInt(o.value,10);break}e++}e=u(a,e,n.entities),n.name&&!n.name.startsWith(\x22*Model_Space\x22)&&!n.name.startsWith(\x22*Paper_Space\x22)&&t.set(n.name,n)}else\x20e++}return\x20e}var\x20C=\x22AutoCAD\x20Binary\x20DXF\x22,U={ANSI_874:\x22windows-874\x22,ANSI_932:\x22shift_jis\x22,ANSI_936:\x22gbk\x22,ANSI_949:\x22euc-kr\x22,ANSI_950:\x22big5\x22,ANSI_1250:\x22windows-1250\x22,ANSI_1251:\x22windows-1251\x22,ANSI_1252:\x22windows-1252\x22,ANSI_1253:\x22windows-1253\x22,ANSI_1254:\x22windows-1254\x22,ANSI_1255:\x22windows-1255\x22,ANSI_1256:\x22windows-1256\x22,ANSI_1257:\x22windows-1257\x22,ANSI_1258:\x22windows-1258\x22},G=\x22AC1021\x22;function\x20K(){return{acadVersion:\x22\x22,insUnits:0,measurement:0,ltScale:1}}function\x20j(a){return\x20a.replace(/\x5c\x5cU\x5c+([0-9A-Fa-f]{4})/g,(e,t)=>String.fromCodePoint(parseInt(t,16)))}function\x20q(a){if(typeof\x20a==\x22string\x22)return\x20j(a);let\x20e=new\x20Uint8Array(a);if(new\x20TextDecoder(\x22ascii\x22).decode(e.slice(0,C.length))===C)throw\x20new\x20i(\x22Binary\x20DXF\x20format\x20is\x20not\x20supported.\x20Please\x20export\x20as\x20ASCII\x20DXF.\x22);let\x20r=new\x20TextDecoder(\x22utf-8\x22).decode(a),o=r.match(/\x5c$ACADVER[\x5cs\x5cS]*?\x5cn\x5cs*1\x5cs*\x5cn\x5cs*(\x5cS+)/)?.[1]??\x22\x22;if(o&&o<G){let\x20s=r.match(/\x5c$DWGCODEPAGE[\x5cs\x5cS]*?\x5cn\x5cs*3\x5cs*\x5cn\x5cs*(\x5cS+)/)?.[1]??\x22\x22,p=U[s]??\x22windows-1252\x22;p!==\x22utf-8\x22&&(r=new\x20TextDecoder(p).decode(a))}return\x20j(r)}function\x20Q(a,e){for(;e<a.length;){if(a[e].code===0&&a[e].value===\x22ENDSEC\x22)return\x20e+1;e++}return\x20e}function\x20Z(a){a.layers.has(\x220\x22)||a.layers.set(\x220\x22,{name:\x220\x22,color:7,lineType:\x22Continuous\x22,flags:0,lineWeight:-3,isOff:!1,isFrozen:!1,isLocked:!1})}function\x20J(a){for(let[,e]of\x20a.layers)e.isOff=e.color<0,e.isOff&&(e.color=Math.abs(e.color)),e.isFrozen=(e.flags&1)!==0,e.isLocked=(e.flags&4)!==0}var\x20i=class\x20extends\x20Error{constructor(t,r){super(t);this.cause=r;this.name=\x22DxfParseError\x22}};function\x20M(a){if(typeof\x20a==\x22string\x22){if(a.length===0)throw\x20new\x20i(\x22Input\x20is\x20empty.\x20Expected\x20a\x20DXF\x20string\x20or\x20ArrayBuffer.\x22)}else\x20if(a\x20instanceof\x20ArrayBuffer){if(a.byteLength===0)throw\x20new\x20i(\x22Input\x20ArrayBuffer\x20is\x20empty.\x22)}else\x20throw\x20new\x20i(\x22Invalid\x20input\x20type.\x20Expected\x20a\x20string\x20or\x20ArrayBuffer.\x22);let\x20e;try{e=q(a)}catch(n){throw\x20n\x20instanceof\x20i?n:new\x20i(\x22Failed\x20to\x20decode\x20DXF\x20input.\x22,n)}let\x20t;try{t=h(e)}catch(n){throw\x20new\x20i(\x22Failed\x20to\x20tokenize\x20DXF\x20content.\x22,n)}if(t.length===0)throw\x20new\x20i(\x22DXF\x20content\x20produced\x20no\x20tokens.\x20The\x20input\x20may\x20not\x20be\x20a\x20valid\x20DXF\x20file.\x22);let\x20r={header:K(),layers:new\x20Map,lineTypes:new\x20Map,styles:new\x20Map,blocks:new\x20Map,entities:[]};try{let\x20n=0;for(;n<t.length;){let\x20o=t[n];if(o.code===0&&o.value===\x22SECTION\x22){if(n++,n>=t.length)break;let\x20c=t[n].value;switch(n++,c){case\x22HEADER\x22:n=m(t,n,r.header);break;case\x22TABLES\x22:n=k(t,n,r);break;case\x22BLOCKS\x22:n=B(t,n,r.blocks);break;case\x22ENTITIES\x22:n=u(t,n,r.entities);break;default:n=Q(t,n);break}}else{if(o.code===0&&o.value===\x22EOF\x22)break;n++}}}catch(n){throw\x20new\x20i(\x22Failed\x20to\x20parse\x20DXF\x20sections.\x22,n)}return\x20Z(r),J(r),r}self.onmessage=a=>{let{type:e,id:t,payload:r}=a.data;if(e===\x22parse\x22)try{let\x20n=M(r);postMessage({type:\x22result\x22,id:t,doc:n})}catch(n){let\x20o=n\x20instanceof\x20Error?n.message:String(n);postMessage({type:\x22error\x22,id:t,message:o})}};})();\x0a'],{'type':'text/javascript'})),this['worker']=new Worker(this['blobUrl']),this['worker']['onmessage']=c=>{const d5=b,{type:d,id:f,doc:g,message:h}=c['data'],i=this['pending']['get'](f);i&&(this['pending']['delete'](f),d==='result'?i[d5(0x265)](this['reviveDocument'](g)):d===d5(0x1dd)&&i['reject'](new Error(h!=null?h:d5(0x1e2))));},this['worker']['onerror']=c=>{const d6=b;var d;const f=new Error((d=c['message'])!=null?d:d6(0x291));for(const [,g]of this['pending'])g['reject'](f);this[d6(0x2dd)]['clear'](),this['destroyWorker']();},this['worker']);}['parse'](c){return new Promise((d,f)=>{const d7=b,g=this['nextId']++;this['pending']['set'](g,{'resolve':d,'reject':f});let h;try{h=this[d7(0x205)]();}catch(k){this['pending']['delete'](g),f(k instanceof Error?k:new Error(String(k)));return;}const i={'type':'parse','id':g,'payload':c};try{c instanceof ArrayBuffer?h[d7(0x1df)](i,[c]):h['postMessage'](i);}catch(l){this['pending']['delete'](g),f(l instanceof Error?l:new Error(String(l)));}});}['terminate'](){const d8=aT;this['destroyWorker']();const c=new Error('Worker\x20terminated');for(const [,d]of this[d8(0x2dd)])d['reject'](c);this[d8(0x2dd)]['clear']();}['destroyWorker'](){const d9=aT;this['worker']&&(this['worker']['terminate'](),this['worker']=null),this['blobUrl']&&(URL['revokeObjectURL'](this['blobUrl']),this[d9(0x181)]=null);}['reviveDocument'](c){return w(P({},c),{'layers':this['ensureMap'](c['layers']),'lineTypes':this['ensureMap'](c['lineTypes']),'styles':this['ensureMap'](c['styles']),'blocks':this['ensureMap'](c['blocks'])});}['ensureMap'](c){return c instanceof Map?c:c&&typeof c=='object'?new Map(Object['entries'](c)):new Map();}},Ya=class{constructor(c,d){const db=aT;p(this,db(0x2d3)),p(this,'renderer'),p(this,'camera'),p(this,db(0x27c)),p(this,db(0x27e)),p(this,'spatialIndex'),p(this,'measureTool'),p(this,'doc',null),p(this,'options'),p(this,'currentTool'),p(this,'inputHandler'),p(this,'resizeObserver'),p(this,db(0x185)),p(this,db(0x1f3),null),p(this,'selectedEntityIndex',-0x1),p(this,'renderPending',!0x1),p(this,'destroyed',!0x1),p(this,'loadGeneration',0x0),p(this,'mouseScreenX',0x0),p(this,'mouseScreenY',0x0),p(this,'debugEnabled',!0x1),p(this,'debugOptions'),p(this,db(0x215),null),p(this,'lastDebugStats',null),p(this,'frameTimestamps',[]),p(this,'lastDoRenderTime',0x0),p(this,'lastFrameTime',0x0),p(this,db(0x1e4),0x0),p(this,'spatialIndexBuildTime',0x0),p(this,'loadedFileName',null),p(this,'loadedFileSize',0x0),p(this,'debugRafId',0x0);var f,g,h,k,m,u,v;this['canvas']=c,this[db(0x1a9)]={'theme':(f=d==null?void 0x0:d['theme'])!=null?f:'dark','backgroundColor':d==null?void 0x0:d[db(0x283)],'antialias':(g=d==null?void 0x0:d['antialias'])!=null?g:!0x0,'minZoom':(h=d==null?void 0x0:d['minZoom'])!=null?h:0.0001,'maxZoom':(k=d==null?void 0x0:d['maxZoom'])!=null?k:0x186a0,'zoomSpeed':(m=d==null?void 0x0:d['zoomSpeed'])!=null?m:1.1,'initialTool':(u=d==null?void 0x0:d['initialTool'])!=null?u:'pan'},this['formatConverters']=(v=d==null?void 0x0:d[db(0x185)])!=null?v:[],d!=null&&d['worker']&&(this[db(0x1f3)]=new Ba()),d!=null&&d[db(0x20c)]?(this[db(0x25e)]=!0x0,this['debugOptions']=ce(typeof d[db(0x20c)]==db(0x260)?void 0x0:d['debug'])):this[db(0x1cf)]=ce(),this['renderer']=new ma(c),this[db(0x262)]=new Nt(this['options']),this['layerManager']=new ka(),this['emitter']=new ya(),this['spatialIndex']=new Ia(),this[db(0x272)]=new Da(),this['currentTool']=this['options'][db(0x2d2)],this['inputHandler']=new Pa(c,this),this['resizeObserver']=new ResizeObserver(()=>this['resize']()),this['resizeObserver']['observe'](c),c['style']['cursor']=this[db(0x1a1)](this[db(0x2d9)]),this['requestRender'](),this['debugEnabled']&&this['startDebugLoop']();}['guardDestroyed'](){if(this['destroyed'])throw new Error('CadViewer:\x20cannot\x20call\x20methods\x20on\x20a\x20destroyed\x20instance.');}['runConverters'](c){return H(this,null,function*(){const dc=b;for(const d of this['formatConverters']){let f=!0x1;try{f=d['detect'](c);}catch(g){continue;}if(f)return d[dc(0x1fb)](c);}return null;});}['loadFile'](c){return H(this,null,function*(){const dd=b;this[dd(0x227)]();const d=++this['loadGeneration'];this['loadedFileName']=c['name'],this['loadedFileSize']=c['size'];const f=yield c['arrayBuffer']();if(this[dd(0x1e0)]||d!==this['loadGeneration'])return;const g=yield this['runConverters'](f);if(this['destroyed']||d!==this['loadGeneration'])return;const h=performance['now'](),i=g!=null?g:f;this['doc']=yield this[dd(0x243)](i,d),!(this['destroyed']||d!==this['loadGeneration'])&&(this['parseTime']=performance['now']()-h,this['onDocumentLoaded']());});}['loadBuffer'](c){return H(this,null,function*(){const de=b;this[de(0x227)]();const d=++this['loadGeneration'];this[de(0x25c)]=null,this[de(0x255)]=c['byteLength'];const f=yield this['runConverters'](c);if(this['destroyed']||d!==this[de(0x257)])return;const g=performance['now'](),h=f!=null?f:c;this['doc']=yield this['parseWithOptionalWorker'](h,d),!(this['destroyed']||d!==this[de(0x257)])&&(this[de(0x1e4)]=performance[de(0x29e)]()-g,this['onDocumentLoaded']());});}['parseWithOptionalWorker'](c,d){return H(this,null,function*(){if(!this['workerManager'])return le(c);try{return yield this['workerManager']['parse'](c);}catch(f){if(this['destroyed']||d!==this['loadGeneration'])return null;throw f;}});}['loadDocument'](c){const df=aT;if(this['guardDestroyed'](),++this['loadGeneration'],this['loadedFileName']=null,this[df(0x255)]=0x0,this[df(0x1e4)]=0x0,!c||!Array['isArray'](c['entities'])||!(c[df(0x184)]instanceof Map))throw new Error('CadViewer:\x20invalid\x20DxfDocument\x20—\x20expected\x20entities\x20array\x20and\x20layers\x20Map.');this['doc']=c,this['onDocumentLoaded']();}['loadString'](c){const dg=aT;this['guardDestroyed'](),++this[dg(0x257)],this['loadedFileName']=null,this['loadedFileSize']=c['length'];const d=performance['now']();this['doc']=le(c),this['parseTime']=performance['now']()-d,this[dg(0x20f)]();}['loadArrayBuffer'](c){const dh=aT;this['guardDestroyed'](),++this['loadGeneration'],this['loadedFileName']=null,this['loadedFileSize']=c[dh(0x182)];const d=performance['now']();this['doc']=le(c),this['parseTime']=performance['now']()-d,this['onDocumentLoaded']();}['clearDocument'](){const di=aT;this[di(0x227)](),++this['loadGeneration'],this['doc']=null,this['selectedEntityIndex']=-0x1,this['spatialIndex']['clear'](),Ie(),this['layerManager']['clear'](),this['measureTool']['deactivate'](),this['requestRender']();}[aT(0x20f)](){const dj=aT;if(!this['doc'])return;this['layerManager'][dj(0x2d5)](this['doc']['layers']);const c=performance['now']();this['spatialIndex']['build'](this[dj(0x1cb)]['entities'],this['doc']),Jt(Qt(this[dj(0x1cb)])),this['spatialIndexBuildTime']=performance['now']()-c,this[dj(0x2da)]=-0x1,this['measureTool'][dj(0x296)](),this['currentTool']==='measure'&&this['measureTool']['activate'](),this[dj(0x212)]();}['fitToView'](){const dk=aT;if(this['guardDestroyed'](),!this[dk(0x1cb)])return;const c=this['computeDocumentBounds']();if(!c)return;const d=this['canvas']['getBoundingClientRect']();this[dk(0x262)]['setTransform'](Dt(d['width'],d['height'],c['minX'],c[dk(0x286)],c['maxX'],c[dk(0x275)])),this['requestRender'](),this[dk(0x27e)]['emit']('viewchange',this['camera']['getTransform']());}['zoomTo'](c){const dl=aT;this['guardDestroyed']();const d=this['canvas'][dl(0x1f2)](),f=d['width']/0x2,g=d['height']/0x2,h=c/this['camera']['getTransform']()['scale'];this['camera']['zoom'](f,g,h),this['requestRender'](),this[dl(0x27e)]['emit']('viewchange',this['camera'][dl(0x2db)]());}['panTo'](c,d){const dm=aT;this['guardDestroyed']();const f=this['canvas']['getBoundingClientRect'](),g=this[dm(0x262)]['getTransform'](),h=c*g['scale']+g['offsetX'],k=-d*g['scale']+g['offsetY'],l=f['width']/0x2-h,m=f[dm(0x18c)]/0x2-k;this['camera']['pan'](l,m),this['requestRender'](),this['emitter']['emit']('viewchange',this['camera']['getTransform']());}[aT(0x216)](){const dn=aT;return P({},this['camera'][dn(0x2db)]());}['getZoomSpeed'](){const dp=aT;return this['options'][dp(0x189)];}['getLayers'](){const dq=aT;return this[dq(0x27c)]['getAllLayers']();}['setLayerVisible'](c,d){const dr=aT;this[dr(0x227)](),this['layerManager']['setVisible'](c,d),this['requestRender']();}[aT(0x1b4)](c,d){const ds=aT;this['guardDestroyed'](),this[ds(0x27c)][ds(0x1f8)](c,d),this['requestRender']();}[aT(0x1ed)](c){this['guardDestroyed'](),this['options']['theme']=c,this['requestRender']();}[aT(0x28b)](){return this['options']['theme'];}['setBackgroundColor'](c){const du=aT;this[du(0x227)](),this['options']['backgroundColor']=c,this['requestRender']();}[aT(0x240)](c){const dv=aT;this['guardDestroyed'](),this[dv(0x2d9)]==='measure'&&c!==dv(0x245)&&this['measureTool'][dv(0x296)](),this['currentTool']=c,this['canvas']['style']['cursor']=this['getCursorForTool'](c),c==='measure'&&this[dv(0x272)]['activate'](),c!==dv(0x2d1)&&(this['selectedEntityIndex']=-0x1),this['requestRender']();}['getTool'](){return this['currentTool'];}['getCursorForTool'](c){const dw=aT;switch(c){case dw(0x207):return dw(0x21f);case'select':return'crosshair';case dw(0x245):return'crosshair';}}['on'](c,d){this['emitter']['on'](c,d);}[aT(0x198)](c,d){this['emitter']['off'](c,d);}[aT(0x2bb)](){return this['doc'];}[aT(0x27d)](){var c,d;return(d=(c=this['doc'])==null?void 0x0:c['entities'])!=null?d:[];}['resize'](){this['renderer']['updateSize'](),this['requestRender']();}[aT(0x2cc)](){const dx=aT;var c;this['destroyed']=!0x0,this['stopDebugLoop'](),this['inputHandler']['destroy'](),this['resizeObserver']['disconnect'](),this[dx(0x248)]['destroy'](),this['emitter']['removeAllListeners'](),this['spatialIndex']['clear'](),Ie(),this['layerManager']['clear'](),(c=this['workerManager'])==null||c['terminate'](),this['workerManager']=null,this['doc']=null;}[aT(0x1bc)](){if(!this['destroyed']){if(this['debugRafId']){this['doRender']();return;}this['renderPending']||(this['renderPending']=!0x0,requestAnimationFrame(()=>{const dy=b;this[dy(0x1b0)]=!0x1,!this['destroyed']&&this['doRender']();}));}}[aT(0x222)](){const dz=aT;if(!this[dz(0x1cb)]){this['renderer'][dz(0x24c)](this['options']['theme']);return;}const d=this['camera']['getTransform'](),f=this['renderer'][dz(0x223)](),g=this['renderer']['getHeight'](),k=this['computeViewportBounds'](d,f,g),m=this['spatialIndex'][dz(0x1e9)](k['minX'],k['minY'],k[dz(0x199)],k[dz(0x275)]),u=new Set();for(let A=0x0;A<m['length'];A++)u['add'](m[A]['entityIndex']);const v=performance['now'](),x=this['renderer']['render'](this['doc'],d,this[dz(0x1a9)]['theme'],this['layerManager'][dz(0x1f9)](),this['selectedEntityIndex'],u,this['spatialIndex']['getEntityBBoxes']());this['lastFrameTime']=performance[dz(0x29e)]()-v,this['lastRenderStats']=x;const y=performance['now']();for(y-this['lastDoRenderTime']>=0x3&&this[dz(0x2b9)]['push'](y),this['lastDoRenderTime']=y;this['frameTimestamps']['length']>0x0&&this['frameTimestamps'][0x0]<y-0x3e8;)this[dz(0x2b9)]['shift']();if(this['currentTool']===dz(0x245)&&this[dz(0x272)]['state']['phase']!=='idle'){const C=this['renderer']['getContext']();La(C,this['camera']['getTransform'](),this['measureTool'],this['mouseScreenX'],this['mouseScreenY'],this[dz(0x1a9)][dz(0x24d)]);}if(this['debugEnabled']){const D=this['renderer']['getContext'](),F=this['buildDebugStats']();this['lastDebugStats']=F,xa(D,F,this['options']['theme'],this['debugOptions'],this['renderer'][dz(0x223)](),this['renderer'][dz(0x282)]());}}[aT(0x1c6)](c){const dA=aT;this['guardDestroyed'](),typeof c=='boolean'?this[dA(0x25e)]=c:(this['debugEnabled']=!0x0,this['debugOptions']=ce(c)),this[dA(0x25e)]?this[dA(0x1e6)]():(this[dA(0x1fd)](),this['requestRender']());}[aT(0x1e6)](){if(this['debugRafId'])return;const c=()=>{const dB=b;if(!this['debugEnabled']||this['destroyed']){this[dB(0x234)]=0x0;return;}this['doRender'](),this['debugRafId']=requestAnimationFrame(c);};this['debugRafId']=requestAnimationFrame(c);}['stopDebugLoop'](){this['debugRafId']&&(cancelAnimationFrame(this['debugRafId']),this['debugRafId']=0x0);}[aT(0x24b)](){const dC=aT;return this[dC(0x25e)]?this['lastDebugStats']:null;}['buildDebugStats'](){const dD=aT;var f,g,k,m,v,x,y,A,C;const D=this['camera']['getTransform'](),F=this['renderer']['getWidth'](),I=this['renderer'][dD(0x282)](),L=this[dD(0x2d4)](D,F,I);return{'fps':this['frameTimestamps']['length'],'frameTime':this['lastFrameTime'],'renderStats':(f=this['lastRenderStats'])!=null?f:{'entitiesDrawn':0x0,'entitiesSkipped':0x0,'drawCalls':0x0,'byType':{}},'entityCount':(k=(g=this['doc'])==null?void 0x0:g['entities']['length'])!=null?k:0x0,'layerCount':(v=(m=this['doc'])==null?void 0x0:m['layers'][dD(0x1f5)])!=null?v:0x0,'visibleLayerCount':this['layerManager']['getVisibleLayerNames']()['size'],'blockCount':(y=(x=this['doc'])==null?void 0x0:x[dD(0x289)]['size'])!=null?y:0x0,'parseTime':this[dD(0x1e4)],'spatialIndexBuildTime':this[dD(0x1c3)],'totalLoadTime':this['parseTime']+this['spatialIndexBuildTime'],'zoom':D[dD(0x290)],'pixelSize':D['scale']>0x0?0x1/D['scale']:0x0,'viewportBounds':L,'fileName':this['loadedFileName'],'fileSize':this['loadedFileSize'],'dxfVersion':(C=(A=this['doc'])==null?void 0x0:A[dD(0x1a8)]['acadVersion'])!=null?C:null};}['computeViewportBounds'](c,d,f){const [g,h]=K(c,0x0,f),[i,k]=K(c,d,0x0);return{'minX':Math['min'](g,i),'minY':Math['min'](h,k),'maxX':Math['max'](g,i),'maxY':Math['max'](h,k)};}['handlePan'](c,d){const dE=aT;this['camera']['pan'](c,d),this['requestRender'](),this[dE(0x27e)]['emit']('viewchange',this['camera']['getTransform']());}['handleZoom'](c,d,f){this['camera']['zoom'](c,d,f),this['requestRender'](),this['emitter']['emit']('viewchange',this['camera']['getTransform']());}['handleClick'](c,d){const dF=aT;if(!this[dF(0x1cb)])return;const f=this['camera']['getTransform'](),[g,h]=K(f,c,d);switch(this['currentTool']){case'select':this[dF(0x209)](g,h,c,d);break;case'measure':{const k=Ee(g,h,this['doc'][dF(0x183)],this['spatialIndex'],f['scale']),l=k['length']>0x0?k[0x0]:null,m=this['measureTool']['handleClick'](g,h,l);this[dF(0x1bc)](),m&&this['emitter']['emit']('measure',m);break;}}}['handleMouseMove'](c,d){const dG=aT;var f;if(this['mouseScreenX']=c,this['mouseScreenY']=d,this[dG(0x2d9)]==='measure'&&this[dG(0x1cb)]){const g=this['camera']['getTransform'](),[h,i]=K(g,c,d),k=Ee(h,i,this['doc']['entities'],this['spatialIndex'],g['scale']);this['measureTool'][dG(0x274)]((f=k[0x0])!=null?f:null),this[dG(0x1bc)]();}}['handleSelect'](c,d,f,g){const dH=aT;if(!this[dH(0x1cb)])return;const h=Ta(c,d,this[dH(0x1cb)]['entities'],this[dH(0x20b)],this['layerManager']['getVisibleLayerNames'](),this[dH(0x262)]['getTransform']()['scale']);if(this['selectedEntityIndex']=h,this[dH(0x1bc)](),h>=0x0&&this['doc']){const i=this[dH(0x1cb)][dH(0x183)][h];i&&this['emitter']['emit']('select',{'entity':i,'entityIndex':h,'worldPoint':{'x':c,'y':d},'screenPoint':{'x':f,'y':g}});}}['computeDocumentBounds'](){const dI=aT;return this['doc']?this[dI(0x1cb)]['header']['extMin']&&this['doc']['header']['extMax']?{'minX':this['doc']['header'][dI(0x225)]['x'],'minY':this['doc'][dI(0x1a8)]['extMin']['y'],'maxX':this['doc']['header']['extMax']['x'],'maxY':this['doc']['header']['extMax']['y']}:Kt(this['doc']['entities']):null;}};export{Ya as CadViewer,Nt as Camera,ma as CanvasRenderer,B as DxfParseError,ya as EventEmitter,ka as LayerManager,Da as MeasureTool,Ia as SpatialIndex,X as THEMES,Ct as aciToHex,Pe as applyTransform,Kt as computeEntitiesBounds,_ as computeEntityBBox,re as drawEntity,Ee as findSnaps,Dt as fitToView,Ta as hitTest,le as parseDxf,xa as renderDebugOverlay,La as renderMeasureOverlay,ue as resolveEntityColor,K as screenToWorld,U as worldToScreen,Lt as zoomAtPoint};
1
+ const aT=b;(function(c,d){const aS=b,e=c();while(!![]){try{const f=parseInt(aS(0x1ba))/0x1+parseInt(aS(0x253))/0x2+parseInt(aS(0x267))/0x3*(-parseInt(aS(0x1a7))/0x4)+parseInt(aS(0x125))/0x5*(-parseInt(aS(0x209))/0x6)+-parseInt(aS(0x1f0))/0x7+parseInt(aS(0x202))/0x8+parseInt(aS(0x212))/0x9*(parseInt(aS(0x18f))/0xa);if(f===d)break;else e['push'](e['shift']());}catch(g){e['push'](e['shift']());}}}(a,0x2be6c));var Re=Object['defineProperty'],Oe=Object['defineProperties'],_e=Object[aT(0x15e)],ve=Object['getOwnPropertySymbols'],We=Object['prototype']['hasOwnProperty'],$e=Object['prototype']['propertyIsEnumerable'],T=Math['pow'],se=(c,d,f)=>d in c?Re(c,d,{'enumerable':!0x0,'configurable':!0x0,'writable':!0x0,'value':f}):c[d]=f,P=(c,d)=>{for(var f in d||(d={}))We['call'](d,f)&&se(c,f,d[f]);if(ve){for(var f of ve(d))$e['call'](d,f)&&se(c,f,d[f]);}return c;},w=(c,d)=>Oe(c,_e(d)),p=(c,d,f)=>(se(c,typeof d!='symbol'?d+'':d,f),f),H=(c,d,f)=>new Promise((g,h)=>{const aU=aT;var k=u=>{try{m(f['next'](u));}catch(v){h(v);}},l=u=>{try{m(f['throw'](u));}catch(v){h(v);}},m=u=>u['done']?g(u['value']):Promise['resolve'](u['value'])[aU(0x10f)](k,l);m((f=f['apply'](c,d))[aU(0x153)]());});function Se(f,g,k=0x0,v=f['length']-0x1,x=je){const aV=aT;for(;v>k;){if(v-k>0x258){const D=v-k+0x1,F=g-k+0x1,I=Math[aV(0x19e)](D),L=0.5*Math['exp'](0x2*I/0x3),N=0.5*Math['sqrt'](I*L*(D-L)/D)*(F-D/0x2<0x0?-0x1:0x1),O=Math['max'](k,Math['floor'](g-F*L/D+N)),R=Math['min'](v,Math['floor'](g+(D-F)*L/D+N));Se(f,g,O,R,x);}const y=f[g];let A=k,C=v;for(V(f,k,g),x(f[v],y)>0x0&&V(f,k,v);A<C;){for(V(f,A,C),A++,C--;x(f[A],y)<0x0;)A++;for(;x(f[C],y)>0x0;)C--;}x(f[k],y)===0x0?V(f,k,C):(C++,V(f,C,v)),C<=g&&(k=C+0x1),g<=C&&(v=C-0x1);}}function V(c,d,f){const g=c[d];c[d]=c[f],c[f]=g;}function je(c,d){return c<d?-0x1:c>d?0x1:0x0;}class qe{constructor(c=0x9){this['_maxEntries']=Math['max'](0x4,c),this['_minEntries']=Math['max'](0x2,Math['ceil'](this['_maxEntries']*0.4)),this['clear']();}['all'](){const aW=aT;return this['_all'](this[aW(0x162)],[]);}['search'](c){const aX=aT;let d=this['data'];const e=[];if(!ee(c,d))return e;const f=this['toBBox'],g=[];for(;d;){for(let h=0x0;h<d[aX(0x12f)]['length'];h++){const k=d['children'][h],m=d['leaf']?f(k):k;ee(c,m)&&(d[aX(0x203)]?e['push'](k):ie(c,m)?this[aX(0x216)](k,e):g['push'](k));}d=g['pop']();}return e;}[aT(0x10d)](c){const aY=aT;let d=this['data'];if(!ee(c,d))return!0x1;const e=[];for(;d;){for(let f=0x0;f<d['children']['length'];f++){const g=d['children'][f],h=d['leaf']?this['toBBox'](g):g;if(ee(c,h)){if(d['leaf']||ie(c,h))return!0x0;e[aY(0x175)](g);}}d=e[aY(0x1c3)]();}return!0x1;}['load'](c){const aZ=aT;if(!(c&&c[aZ(0x281)]))return this;if(c['length']<this['_minEntries']){for(let e=0x0;e<c['length'];e++)this[aZ(0x195)](c[e]);return this;}let d=this[aZ(0x183)](c[aZ(0x229)](),0x0,c[aZ(0x281)]-0x1,0x0);if(!this[aZ(0x162)]['children']['length'])this['data']=d;else{if(this['data']['height']===d['height'])this['_splitRoot'](this['data'],d);else{if(this['data']['height']<d['height']){const f=this['data'];this['data']=d,d=f;}this['_insert'](d,this['data']['height']-d['height']-0x1,!0x0);}}return this;}['insert'](c){return c&&this['_insert'](c,this['data']['height']-0x1),this;}['clear'](){return this['data']=q([]),this;}['remove'](d,e){const b0=aT;if(!d)return this;let f=this['data'];const g=this['toBBox'](d),k=[],m=[];let u,v,x;for(;f||k['length'];){if(f||(f=k['pop'](),v=k[k['length']-0x1],u=m['pop'](),x=!0x0),f['leaf']){const y=He(d,f['children'],e);if(y!==-0x1)return f['children']['splice'](y,0x1),k['push'](f),this[b0(0x1a0)](k),this;}!x&&!f['leaf']&&ie(f,g)?(k['push'](f),m['push'](u),u=0x0,v=f,f=f[b0(0x12f)][0x0]):v?(u++,f=v['children'][u],x=!0x1):f=null;}return this;}['toBBox'](c){return c;}['compareMinX'](c,d){const b1=aT;return c[b1(0x1c1)]-d['minX'];}[aT(0x163)](c,d){return c['minY']-d['minY'];}['toJSON'](){return this['data'];}[aT(0x10c)](c){return this['data']=c,this;}['_all'](c,d){const b2=aT,e=[];for(;c;)c['leaf']?d[b2(0x175)](...c['children']):e[b2(0x175)](...c['children']),c=e['pop']();return d;}['_build'](e,f,g,k){const b3=aT,v=g-f+0x1;let x=this['_maxEntries'],y;if(v<=x)return y=q(e['slice'](f,g+0x1)),j(y,this['toBBox']),y;k||(k=Math['ceil'](Math['log'](v)/Math['log'](x)),x=Math['ceil'](v/Math['pow'](x,k-0x1))),y=q([]),y[b3(0x203)]=!0x1,y['height']=k;const A=Math[b3(0x184)](v/x),C=A*Math['ceil'](Math['sqrt'](x));Fe(e,f,g,C,this['compareMinX']);for(let D=f;D<=g;D+=C){const F=Math['min'](D+C-0x1,g);Fe(e,D,F,A,this['compareMinY']);for(let I=D;I<=F;I+=A){const L=Math['min'](I+A-0x1,F);y['children']['push'](this['_build'](e,I,L,k-0x1));}}return j(y,this['toBBox']),y;}['_chooseSubtree'](d,e,f,g){const b4=aT;for(;g['push'](e),!(e[b4(0x203)]||g[b4(0x281)]-0x1===f);){let k=0x1/0x0,m=0x1/0x0,v;for(let x=0x0;x<e['children']['length'];x++){const y=e['children'][x],A=oe(y),C=Ge(d,y)-A;C<m?(m=C,k=A<k?A:k,v=y):C===m&&A<k&&(k=A,v=y);}e=v||e['children'][0x0];}return e;}['_insert'](c,d,e){const b5=aT,f=e?c:this['toBBox'](c),g=[],h=this['_chooseSubtree'](f,this[b5(0x162)],d,g);for(h['children'][b5(0x175)](c),Z(h,f);d>=0x0&&g[d]['children']['length']>this['_maxEntries'];)this[b5(0x14e)](g,d),d--;this[b5(0x16e)](f,g,d);}['_split'](c,d){const b6=aT,e=c[d],f=e['children']['length'],g=this[b6(0x139)];this['_chooseSplitAxis'](e,g,f);const h=this['_chooseSplitIndex'](e,g,f),k=q(e['children'][b6(0x14d)](h,e['children']['length']-h));k['height']=e['height'],k['leaf']=e['leaf'],j(e,this['toBBox']),j(k,this[b6(0x107)]),d?c[d-0x1]['children']['push'](k):this['_splitRoot'](e,k);}[aT(0x1e8)](c,d){this['data']=q([c,d]),this['data']['height']=c['height']+0x1,this['data']['leaf']=!0x1,j(this['data'],this['toBBox']);}['_chooseSplitIndex'](d,e,f){let g,k=0x1/0x0,m=0x1/0x0;for(let v=e;v<=f-e;v++){const x=G(d,0x0,v,this['toBBox']),y=G(d,v,f,this['toBBox']),A=Ze(x,y),C=oe(x)+oe(y);A<k?(k=A,g=v,m=C<m?C:m):A===k&&C<m&&(m=C,g=v);}return g||f-e;}['_chooseSplitAxis'](c,d,e){const b7=aT,f=c[b7(0x203)]?this[b7(0x128)]:Ve,g=c['leaf']?this['compareMinY']:Ue,h=this['_allDistMargin'](c,d,e,f),k=this['_allDistMargin'](c,d,e,g);h<k&&c['children']['sort'](f);}['_allDistMargin'](d,e,f,g){const b8=aT;d[b8(0x12f)]['sort'](g);const k=this['toBBox'],m=G(d,0x0,e,k),u=G(d,f-e,f,k);let v=J(m)+J(u);for(let x=e;x<f-e;x++){const y=d[b8(0x12f)][x];Z(m,d['leaf']?k(y):y),v+=J(m);}for(let A=f-e-0x1;A>=e;A--){const C=d['children'][A];Z(u,d['leaf']?k(C):C),v+=J(u);}return v;}['_adjustParentBBoxes'](c,d,e){for(let f=e;f>=0x0;f--)Z(d[f],c);}['_condense'](c){const b9=aT;for(let d=c['length']-0x1,e;d>=0x0;d--)c[d]['children'][b9(0x281)]===0x0?d>0x0?(e=c[d-0x1]['children'],e['splice'](e['indexOf'](c[d]),0x1)):this[b9(0x147)]():j(c[d],this['toBBox']);}}function He(c,d,f){const bb=aT;if(!f)return d['indexOf'](c);for(let g=0x0;g<d[bb(0x281)];g++)if(f(c,d[g]))return g;return-0x1;}function j(c,d){G(c,0x0,c['children']['length'],d,c);}function G(c,d,f,g,h){const bc=aT;h||(h=q(null)),h['minX']=0x1/0x0,h['minY']=0x1/0x0,h['maxX']=-0x1/0x0,h['maxY']=-0x1/0x0;for(let i=d;i<f;i++){const k=c['children'][i];Z(h,c[bc(0x203)]?g(k):k);}return h;}function Z(c,d){const bd=aT;return c['minX']=Math['min'](c[bd(0x1c1)],d['minX']),c['minY']=Math['min'](c['minY'],d['minY']),c['maxX']=Math['max'](c['maxX'],d['maxX']),c['maxY']=Math['max'](c['maxY'],d['maxY']),c;}function Ve(c,d){const be=aT;return c[be(0x1c1)]-d['minX'];}function Ue(c,d){return c['minY']-d['minY'];}function oe(c){const bf=aT;return(c['maxX']-c[bf(0x1c1)])*(c['maxY']-c['minY']);}function J(c){const bg=aT;return c[bg(0x236)]-c['minX']+(c[bg(0x21e)]-c['minY']);}function Ge(c,d){const bh=aT;return(Math['max'](d[bh(0x236)],c['maxX'])-Math[bh(0x17f)](d['minX'],c['minX']))*(Math['max'](d['maxY'],c['maxY'])-Math['min'](d['minY'],c[bh(0x144)]));}function Ze(c,d){const bi=aT,f=Math['max'](c['minX'],d['minX']),g=Math['max'](c['minY'],d['minY']),h=Math['min'](c['maxX'],d['maxX']),i=Math[bi(0x17f)](c['maxY'],d['maxY']);return Math['max'](0x0,h-f)*Math['max'](0x0,i-g);}function ie(c,d){const bj=aT;return c['minX']<=d[bj(0x1c1)]&&c['minY']<=d['minY']&&d[bj(0x236)]<=c[bj(0x236)]&&d['maxY']<=c['maxY'];}function ee(c,d){const bk=aT;return d['minX']<=c[bk(0x236)]&&d['minY']<=c['maxY']&&d['maxX']>=c[bk(0x1c1)]&&d['maxY']>=c['minY'];}function q(c){return{'children':c,'height':0x1,'leaf':!0x0,'minX':0x1/0x0,'minY':0x1/0x0,'maxX':-0x1/0x0,'maxY':-0x1/0x0};}function Fe(c,d,f,g,h){const bl=aT,i=[d,f];for(;i[bl(0x281)];){if(f=i[bl(0x1c3)](),d=i['pop'](),f-d<=g)continue;const k=d+Math['ceil']((f-d)/g/0x2)*g;Se(c,k,d,f,h),i['push'](d,k,k,f);}}function Ke(c){const bm=aT,d=c[bm(0x245)](/\r\n?/g,'\x0a'),f=[],g=d[bm(0x281)];let h=0x0;for(;h<g;){for(;h<g&&d['charCodeAt'](h)===0xa;)h++;if(h>=g)break;let k=d['indexOf']('\x0a',h);k===-0x1&&(k=g);const m=d['substring'](h,k)['trim']();h=k+0x1;const u=parseInt(m,0xa);if(isNaN(u)){h<g&&(k=d[bm(0x1c6)]('\x0a',h),k===-0x1&&(k=g),h=k+0x1);continue;}if(h>=g)break;k=d[bm(0x1c6)]('\x0a',h),k===-0x1&&(k=g);const v=d[bm(0x200)](h,k)['replace'](/\s+$/,'');h=k+0x1,f['push']({'code':u,'value':v});}return f;}function Qe(c,d,f){const bn=aT;for(;d<c['length'];){const g=c[d];if(g['code']===0x0&&g[bn(0x13a)]==='ENDSEC')return d+0x1;if(g['code']===0x9){const h=g['value'];switch(d++,h){case bn(0x22c):d<c['length']&&(f[bn(0x156)]=c[d]['value'],d++);break;case'$EXTMIN':if(d<c['length']){const i=xe(c,d);f['extMin']=i[bn(0x130)],d=i[bn(0x1ea)];}break;case'$EXTMAX':if(d<c['length']){const k=xe(c,d);f['extMax']=k['point'],d=k['nextIndex'];}break;case'$INSUNITS':d<c['length']&&(f['insUnits']=parseInt(c[d]['value'],0xa),d++);break;case'$MEASUREMENT':d<c[bn(0x281)]&&(f['measurement']=parseInt(c[d]['value'],0xa),d++);break;case'$LTSCALE':d<c['length']&&(f['ltScale']=parseFloat(c[d]['value']),d++);break;case'$DWGCODEPAGE':d<c['length']&&(f['dwgCodePage']=c[d]['value'],d++);break;case'$HANDSEED':d<c['length']&&(f[bn(0x152)]=c[d]['value'],d++);break;default:for(;d<c['length']&&c[d][bn(0x258)]!==0x9&&c[d][bn(0x258)]!==0x0;)f[h]=c[d]['value'],d++;}}else d++;}return d;}function xe(c,d){const f={'x':0x0,'y':0x0,'z':0x0};for(;d<c['length'];){const g=c[d]['code'];if(g===0xa)f['x']=parseFloat(c[d]['value']),d++;else{if(g===0x14)f['y']=parseFloat(c[d]['value']),d++;else{if(g===0x1e)f['z']=parseFloat(c[d]['value']),d++;else break;}}}return{'point':f,'nextIndex':d};}function Je(c,d,f){const bo=aT;for(;d<c[bo(0x281)];){const g=c[d];if(g['code']===0x0&&g[bo(0x13a)]==='ENDSEC')return d+0x1;if(g[bo(0x258)]===0x0&&g['value']==='TABLE'){if(d++,d>=c['length'])break;const h=c[d]['value'];switch(d++,h){case bo(0x220):d=tt(c,d,f['layers']);break;case'LTYPE':d=at(c,d,f['lineTypes']);break;case'STYLE':d=nt(c,d,f['styles']);break;default:d=et(c,d);break;}}else d++;}return d;}function et(c,d){const bp=aT;for(;d<c['length'];){if(c[d][bp(0x258)]===0x0&&c[d]['value']==='ENDTAB')return d+0x1;d++;}return d;}function tt(c,d,f){const bq=aT;for(;d<c['length'];){const g=c[d];if(g['code']===0x0&&g[bq(0x13a)]==='ENDTAB')return d+0x1;if(g[bq(0x258)]===0x0&&g['value']==='LAYER'){d++;const h={'name':'0','color':0x7,'lineType':'Continuous','flags':0x0,'lineWeight':-0x3,'isOff':!0x1,'isFrozen':!0x1,'isLocked':!0x1};for(;d<c['length']&&c[d][bq(0x258)]!==0x0;){const i=c[d];switch(i['code']){case 0x2:h['name']=i['value'];break;case 0x6:h[bq(0x12e)]=i['value'];break;case 0x3e:h['color']=parseInt(i['value'],0xa);break;case 0x46:h['flags']=parseInt(i['value'],0xa);break;case 0x172:h['lineWeight']=parseInt(i['value'],0xa);break;case 0x1a4:h['trueColor']=parseInt(i['value'],0xa);break;}d++;}f['set'](h['name'],h);}else d++;}return d;}function at(c,d,f){const br=aT;for(;d<c['length'];){const g=c[d];if(g['code']===0x0&&g['value']==='ENDTAB')return d+0x1;if(g['code']===0x0&&g['value']===br(0x140)){d++;const h={'name':'','description':'','pattern':[],'totalLength':0x0};for(;d<c[br(0x281)]&&c[d]['code']!==0x0;){const i=c[d];switch(i['code']){case 0x2:h[br(0x1f2)]=i['value'];break;case 0x3:h['description']=i['value'];break;case 0x28:h[br(0x268)]=parseFloat(i['value']);break;case 0x31:h['pattern']['push'](parseFloat(i['value']));break;}d++;}h['name']&&f['set'](h['name'],h);}else d++;}return d;}function nt(c,d,f){const bs=aT;for(;d<c['length'];){const g=c[d];if(g[bs(0x258)]===0x0&&g['value']==='ENDTAB')return d+0x1;if(g[bs(0x258)]===0x0&&g['value']===bs(0x171)){d++;const h={'name':'','fontName':'','bigFontName':'','height':0x0,'widthFactor':0x1,'obliqueAngle':0x0};for(;d<c[bs(0x281)]&&c[d]['code']!==0x0;){const i=c[d];switch(i[bs(0x258)]){case 0x2:h['name']=i['value'];break;case 0x3:h[bs(0x10b)]=i[bs(0x13a)];break;case 0x4:h[bs(0x232)]=i['value'];break;case 0x28:h['height']=parseFloat(i['value']);break;case 0x29:h['widthFactor']=parseFloat(i['value']);break;case 0x32:h['obliqueAngle']=parseFloat(i['value']);break;}d++;}h['name']&&f['set'](h[bs(0x1f2)],h);}else d++;}return d;}function E(c){const bu=aT,d={'type':'','layer':'0','color':0x100,'lineType':'BYLAYER','lineTypeScale':0x1,'lineWeight':-0x1,'visible':!0x0,'extrusion':{'x':0x0,'y':0x0,'z':0x1}};for(const f of c)switch(f['code']){case 0x5:d['handle']=f['value'];break;case 0x8:d['layer']=f['value'];break;case 0x6:d[bu(0x12e)]=f['value'];break;case 0x30:d['lineTypeScale']=parseFloat(f[bu(0x13a)]);break;case 0x3c:d['visible']=f['value']==='0'||f['value']==='';break;case 0x3e:d['color']=parseInt(f['value'],0xa);break;case 0x172:d['lineWeight']=parseInt(f['value'],0xa);break;case 0x1a4:d[bu(0x1db)]=parseInt(f['value'],0xa);break;case 0xd2:d['extrusion']['x']=parseFloat(f['value']);break;case 0xdc:d[bu(0x133)]['y']=parseFloat(f['value']);break;case 0xe6:d['extrusion']['z']=parseFloat(f['value']);break;}return d;}function rt(c){const bv=aT,d=E(c),f=w(P({},d),{'type':'LINE','start':{'x':0x0,'y':0x0,'z':0x0},'end':{'x':0x0,'y':0x0,'z':0x0}});for(const g of c)switch(g['code']){case 0xa:f['start']['x']=parseFloat(g['value']);break;case 0x14:f['start']['y']=parseFloat(g[bv(0x13a)]);break;case 0x1e:f['start']['z']=parseFloat(g['value']);break;case 0xb:f['end']['x']=parseFloat(g['value']);break;case 0x15:f['end']['y']=parseFloat(g['value']);break;case 0x1f:f[bv(0x1b6)]['z']=parseFloat(g['value']);break;}return f;}function st(c){const d=E(c),f=w(P({},d),{'type':'CIRCLE','center':{'x':0x0,'y':0x0,'z':0x0},'radius':0x0});for(const g of c)switch(g['code']){case 0xa:f['center']['x']=parseFloat(g['value']);break;case 0x14:f['center']['y']=parseFloat(g['value']);break;case 0x1e:f['center']['z']=parseFloat(g['value']);break;case 0x28:f['radius']=parseFloat(g['value']);break;}return f;}function ot(c){const d=E(c),f=w(P({},d),{'type':'ARC','center':{'x':0x0,'y':0x0,'z':0x0},'radius':0x0,'startAngle':0x0,'endAngle':0x168});for(const g of c)switch(g['code']){case 0xa:f['center']['x']=parseFloat(g['value']);break;case 0x14:f['center']['y']=parseFloat(g['value']);break;case 0x1e:f['center']['z']=parseFloat(g['value']);break;case 0x28:f['radius']=parseFloat(g['value']);break;case 0x32:f['startAngle']=parseFloat(g['value']);break;case 0x33:f['endAngle']=parseFloat(g['value']);break;}return f;}function it(c){const bw=aT,d=E(c),f=w(P({},d),{'type':bw(0x1dd),'vertices':[],'closed':!0x1,'constantWidth':0x0,'elevation':0x0});let g=null;for(const h of c)switch(h['code']){case 0x46:f[bw(0x1b0)]=(parseInt(h[bw(0x13a)],0xa)&0x1)!==0x0;break;case 0x26:f['elevation']=parseFloat(h['value']);break;case 0x2b:f['constantWidth']=parseFloat(h['value']);break;case 0xa:g&&f['vertices'][bw(0x175)](g),g={'x':parseFloat(h['value']),'y':0x0,'bulge':0x0,'startWidth':0x0,'endWidth':0x0};break;case 0x14:g&&(g['y']=parseFloat(h['value']));break;case 0x28:g&&(g['startWidth']=parseFloat(h['value']));break;case 0x29:g&&(g['endWidth']=parseFloat(h[bw(0x13a)]));break;case 0x2a:g&&(g['bulge']=parseFloat(h['value']));break;}return g&&f['vertices']['push'](g),f;}function lt(c){const bx=aT,d=E(c),f=w(P({},d),{'type':'POLYLINE','vertices':[],'closed':!0x1,'is3d':!0x1});for(const g of c)switch(g['code']){case 0x46:{const h=parseInt(g[bx(0x13a)],0xa);f['closed']=(h&0x1)!==0x0,f['is3d']=(h&0x8)!==0x0;break;}}return f;}function ct(c){const by=aT,d=E(c),f=w(P({},d),{'type':'ELLIPSE','center':{'x':0x0,'y':0x0,'z':0x0},'majorAxis':{'x':0x1,'y':0x0,'z':0x0},'minorRatio':0x1,'startParam':0x0,'endParam':Math['PI']*0x2});for(const g of c)switch(g[by(0x258)]){case 0xa:f['center']['x']=parseFloat(g[by(0x13a)]);break;case 0x14:f['center']['y']=parseFloat(g['value']);break;case 0x1e:f['center']['z']=parseFloat(g[by(0x13a)]);break;case 0xb:f[by(0x143)]['x']=parseFloat(g[by(0x13a)]);break;case 0x15:f['majorAxis']['y']=parseFloat(g['value']);break;case 0x1f:f['majorAxis']['z']=parseFloat(g['value']);break;case 0x28:f['minorRatio']=parseFloat(g['value']);break;case 0x29:f['startParam']=parseFloat(g[by(0x13a)]);break;case 0x2a:f['endParam']=parseFloat(g[by(0x13a)]);break;}return f;}function ht(c){const bz=aT,d=E(c),f=w(P({},d),{'type':'SPLINE','degree':0x3,'flags':0x0,'knots':[],'controlPoints':[],'fitPoints':[],'weights':[]});let g=null,h=null;for(const i of c)switch(i['code']){case 0x46:f['flags']=parseInt(i['value'],0xa);break;case 0x47:f['degree']=parseInt(i['value'],0xa);break;case 0x28:f['knots'][bz(0x175)](parseFloat(i['value']));break;case 0x29:f['weights']['push'](parseFloat(i['value']));break;case 0xa:g&&f['controlPoints'][bz(0x175)](g),g={'x':parseFloat(i['value']),'y':0x0,'z':0x0};break;case 0x14:g&&(g['y']=parseFloat(i['value']));break;case 0x1e:g&&(g['z']=parseFloat(i['value']));break;case 0xb:h&&f['fitPoints'][bz(0x175)](h),h={'x':parseFloat(i['value']),'y':0x0,'z':0x0};break;case 0x15:h&&(h['y']=parseFloat(i['value']));break;case 0x1f:h&&(h['z']=parseFloat(i['value']));break;case 0xc:f['startTangent']||(f[bz(0x12b)]={'x':0x0,'y':0x0,'z':0x0}),f['startTangent']['x']=parseFloat(i['value']);break;case 0x16:f['startTangent']&&(f['startTangent']['y']=parseFloat(i['value']));break;case 0x20:f[bz(0x12b)]&&(f['startTangent']['z']=parseFloat(i['value']));break;case 0xd:f['endTangent']||(f['endTangent']={'x':0x0,'y':0x0,'z':0x0}),f[bz(0x122)]['x']=parseFloat(i['value']);break;case 0x17:f['endTangent']&&(f['endTangent']['y']=parseFloat(i['value']));break;case 0x21:f[bz(0x122)]&&(f['endTangent']['z']=parseFloat(i['value']));break;}return g&&f[bz(0x1b1)]['push'](g),h&&f['fitPoints'][bz(0x175)](h),f;}function ut(c){const bA=aT,d=E(c),f=w(P({},d),{'type':'TEXT','text':'','insertionPoint':{'x':0x0,'y':0x0,'z':0x0},'height':0x1,'rotation':0x0,'widthFactor':0x1,'obliqueAngle':0x0,'style':'STANDARD','hAlign':0x0,'vAlign':0x0,'generationFlags':0x0});for(const g of c)switch(g['code']){case 0x1:f['text']=g['value'];break;case 0xa:f['insertionPoint']['x']=parseFloat(g['value']);break;case 0x14:f[bA(0x198)]['y']=parseFloat(g['value']);break;case 0x1e:f['insertionPoint']['z']=parseFloat(g[bA(0x13a)]);break;case 0xb:f[bA(0x1c0)]||(f['alignmentPoint']={'x':0x0,'y':0x0,'z':0x0}),f['alignmentPoint']['x']=parseFloat(g['value']);break;case 0x15:f[bA(0x1c0)]||(f['alignmentPoint']={'x':0x0,'y':0x0,'z':0x0}),f[bA(0x1c0)]['y']=parseFloat(g['value']);break;case 0x1f:f[bA(0x1c0)]||(f['alignmentPoint']={'x':0x0,'y':0x0,'z':0x0}),f['alignmentPoint']['z']=parseFloat(g['value']);break;case 0x28:f['height']=parseFloat(g[bA(0x13a)]);break;case 0x29:f['widthFactor']=parseFloat(g['value']);break;case 0x32:f['rotation']=parseFloat(g['value']);break;case 0x33:f[bA(0x27e)]=parseFloat(g['value']);break;case 0x7:f['style']=g['value'];break;case 0x47:f[bA(0x276)]=parseInt(g['value'],0xa);break;case 0x48:f['hAlign']=parseInt(g['value'],0xa);break;case 0x49:f['vAlign']=parseInt(g['value'],0xa);break;}return f;}function dt(c){const bB=aT,d=E(c),f=w(P({},d),{'type':'MTEXT','text':'','insertionPoint':{'x':0x0,'y':0x0,'z':0x0},'height':0x1,'width':0x0,'attachmentPoint':0x1,'drawingDirection':0x1,'rotation':0x0,'lineSpacingStyle':0x1,'lineSpacingFactor':0x1,'style':'STANDARD','bgFill':0x0,'bgFillScale':1.5}),g=[];for(const h of c)switch(h['code']){case 0x1:g[bB(0x175)](h['value']);break;case 0x3:g['push'](h['value']);break;case 0x7:f['style']=h['value'];break;case 0xa:f['insertionPoint']['x']=parseFloat(h['value']);break;case 0x14:f['insertionPoint']['y']=parseFloat(h['value']);break;case 0x1e:f[bB(0x198)]['z']=parseFloat(h['value']);break;case 0xb:f['textDirection']||(f['textDirection']={'x':0x0,'y':0x0,'z':0x0}),f['textDirection']['x']=parseFloat(h['value']);break;case 0x15:f['textDirection']||(f[bB(0x110)]={'x':0x0,'y':0x0,'z':0x0}),f['textDirection']['y']=parseFloat(h['value']);break;case 0x1f:f['textDirection']||(f['textDirection']={'x':0x0,'y':0x0,'z':0x0}),f['textDirection']['z']=parseFloat(h[bB(0x13a)]);break;case 0x28:f[bB(0x27c)]=parseFloat(h['value']);break;case 0x29:f[bB(0x1b7)]=parseFloat(h['value']);break;case 0x2c:f['lineSpacingFactor']=parseFloat(h[bB(0x13a)]);break;case 0x32:f['rotation']=parseFloat(h['value']);break;case 0x47:f['attachmentPoint']=parseInt(h[bB(0x13a)],0xa);break;case 0x48:f[bB(0x20e)]=parseInt(h[bB(0x13a)],0xa);break;case 0x49:f[bB(0x1b4)]=parseInt(h['value'],0xa);break;case 0x5a:f['bgFill']=parseInt(h['value'],0xa);break;}return f['text']=g['join'](''),f;}function ft(c){const bC=aT,d=E(c),f=w(P({},d),{'type':'INSERT','blockName':'','insertionPoint':{'x':0x0,'y':0x0,'z':0x0},'scaleX':0x1,'scaleY':0x1,'scaleZ':0x1,'rotation':0x0,'columnCount':0x1,'rowCount':0x1,'columnSpacing':0x0,'rowSpacing':0x0,'attribs':[]});for(const g of c)switch(g['code']){case 0x2:f[bC(0x219)]=g['value'];break;case 0xa:f['insertionPoint']['x']=parseFloat(g['value']);break;case 0x14:f[bC(0x198)]['y']=parseFloat(g['value']);break;case 0x1e:f['insertionPoint']['z']=parseFloat(g['value']);break;case 0x29:f[bC(0x170)]=parseFloat(g[bC(0x13a)]);break;case 0x2a:f['scaleY']=parseFloat(g['value']);break;case 0x2b:f['scaleZ']=parseFloat(g[bC(0x13a)]);break;case 0x2c:f['columnSpacing']=parseFloat(g['value']);break;case 0x2d:f['rowSpacing']=parseFloat(g['value']);break;case 0x32:f[bC(0x25c)]=parseFloat(g['value']);break;case 0x46:f['columnCount']=parseInt(g['value'],0xa)||0x1;break;case 0x47:f['rowCount']=parseInt(g['value'],0xa)||0x1;break;}return f;}function pt(c){const bD=aT,d=E(c),f=w(P({},d),{'type':'DIMENSION','blockName':'','dimStyle':'STANDARD','dimType':0x0,'defPoint':{'x':0x0,'y':0x0,'z':0x0},'textMidpoint':{'x':0x0,'y':0x0,'z':0x0},'textOverride':'','rotation':0x0,'textRotation':0x0,'leaderLength':0x0});for(const g of c)switch(g[bD(0x258)]){case 0x1:f['textOverride']=g['value'];break;case 0x2:f['blockName']=g['value'];break;case 0x3:f['dimStyle']=g['value'];break;case 0xa:f['defPoint']['x']=parseFloat(g[bD(0x13a)]);break;case 0x14:f['defPoint']['y']=parseFloat(g['value']);break;case 0x1e:f['defPoint']['z']=parseFloat(g['value']);break;case 0xb:f[bD(0x1a6)]['x']=parseFloat(g[bD(0x13a)]);break;case 0x15:f['textMidpoint']['y']=parseFloat(g['value']);break;case 0x1f:f['textMidpoint']['z']=parseFloat(g['value']);break;case 0xd:f[bD(0x27b)]||(f['defPoint2']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint2']['x']=parseFloat(g['value']);break;case 0x17:f['defPoint2']||(f['defPoint2']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint2']['y']=parseFloat(g['value']);break;case 0x21:f['defPoint2']||(f['defPoint2']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint2']['z']=parseFloat(g['value']);break;case 0xe:f['defPoint3']||(f['defPoint3']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint3']['x']=parseFloat(g[bD(0x13a)]);break;case 0x18:f['defPoint3']||(f['defPoint3']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint3']['y']=parseFloat(g['value']);break;case 0x22:f['defPoint3']||(f['defPoint3']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint3']['z']=parseFloat(g['value']);break;case 0xf:f['defPoint4']||(f['defPoint4']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint4']['x']=parseFloat(g['value']);break;case 0x19:f['defPoint4']||(f['defPoint4']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint4']['y']=parseFloat(g['value']);break;case 0x23:f['defPoint4']||(f['defPoint4']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint4']['z']=parseFloat(g['value']);break;case 0x10:f['defPoint5']||(f['defPoint5']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint5']['x']=parseFloat(g['value']);break;case 0x1a:f[bD(0x26e)]||(f['defPoint5']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint5']['y']=parseFloat(g['value']);break;case 0x24:f['defPoint5']||(f['defPoint5']={'x':0x0,'y':0x0,'z':0x0}),f['defPoint5']['z']=parseFloat(g['value']);break;case 0x28:f['leaderLength']=parseFloat(g['value']);break;case 0x32:f['rotation']=parseFloat(g[bD(0x13a)]);break;case 0x35:f['textRotation']=parseFloat(g['value']);break;case 0x46:f['dimType']=parseInt(g[bD(0x13a)],0xa);break;}return f;}function mt(c){const bE=aT,d=E(c),f=w(P({},d),{'type':'HATCH','patternName':'','solidFill':!0x0,'associative':!0x1,'hatchStyle':0x0,'patternType':0x1,'patternAngle':0x0,'patternScale':0x1,'boundaryPaths':[]});let g=0x0;for(;g<c['length'];){const h=c[g];switch(h['code']){case 0x2:f[bE(0x25f)]=h['value'];break;case 0x29:f['patternScale']=parseFloat(h['value']);break;case 0x34:f[bE(0x177)]=parseFloat(h['value']);break;case 0x46:f['solidFill']=h['value']==='1';break;case 0x47:f['associative']=h['value']==='1';break;case 0x4b:f['hatchStyle']=parseInt(h['value'],0xa);break;case 0x4c:f['patternType']=parseInt(h[bE(0x13a)],0xa);break;case 0x5b:{const k=parseInt(h[bE(0x13a)],0xa);g++;for(let l=0x0;l<k&&g<c[bE(0x281)];l++){const m=bt(c,g);f['boundaryPaths']['push'](m['path']),g=m['nextIndex'];}continue;}}g++;}return f;}function bt(c,d){let f=0x0;return d<c['length']&&c[d]['code']===0x5c&&(f=parseInt(c[d]['value'],0xa),d++),(f&0x2)!==0x0?gt(c,d,f):vt(c,d,f);}function gt(c,d,f){const bF=aT,g={'type':bF(0x27a),'vertices':[],'bulges':[],'flags':f};let h=!0x1;d<c[bF(0x281)]&&c[d]['code']===0x48&&(h=c[d]['value']==='1',d++),d<c['length']&&c[d]['code']===0x49&&(g[bF(0x14c)]=c[d]['value']==='1',d++);let k=0x0;d<c['length']&&c[d]['code']===0x5d&&(k=parseInt(c[d][bF(0x13a)],0xa),d++);for(let l=0x0;l<k&&d<c[bF(0x281)];l++){const m={'x':0x0,'y':0x0};c[d]['code']===0xa&&(m['x']=parseFloat(c[d]['value']),d++),d<c['length']&&c[d][bF(0x258)]===0x14&&(m['y']=parseFloat(c[d]['value']),d++),g['vertices'][bF(0x175)](m),h&&d<c['length']&&c[d]['code']===0x2a?(g['bulges']['push'](parseFloat(c[d]['value'])),d++):h&&g[bF(0x13f)][bF(0x175)](0x0);}for(;d<c['length']&&(c[d]['code']===0x61||c[d]['code']===0x14a);)if(c[d][bF(0x258)]===0x61){const u=parseInt(c[d]['value'],0xa);d++;for(let v=0x0;v<u&&d<c['length']&&c[d][bF(0x258)]===0x14a;v++)d++;}else d++;return{'path':g,'nextIndex':d};}function vt(f,g,k){const bG=aT,v={'type':'edges','edges':[],'flags':k};let x=0x0;g<f['length']&&f[g]['code']===0x5d&&(x=parseInt(f[g]['value'],0xa),g++);for(let y=0x0;y<x&&g<f[bG(0x281)]&&f[g]['code']===0x48;y++){const A=parseInt(f[g]['value'],0xa);switch(g++,A){case 0x1:{const C={'type':'line','start':{'x':0x0,'y':0x0},'end':{'x':0x0,'y':0x0}};g<f['length']&&f[g]['code']===0xa&&(C['start']['x']=parseFloat(f[g][bG(0x13a)]),g++),g<f['length']&&f[g][bG(0x258)]===0x14&&(C['start']['y']=parseFloat(f[g][bG(0x13a)]),g++),g<f[bG(0x281)]&&f[g]['code']===0xb&&(C['end']['x']=parseFloat(f[g]['value']),g++),g<f['length']&&f[g]['code']===0x15&&(C['end']['y']=parseFloat(f[g][bG(0x13a)]),g++),v['edges'][bG(0x175)](C);break;}case 0x2:{const D={'type':'arc','center':{'x':0x0,'y':0x0},'radius':0x0,'startAngle':0x0,'endAngle':0x168,'ccw':!0x0};g<f['length']&&f[g]['code']===0xa&&(D['center']['x']=parseFloat(f[g]['value']),g++),g<f[bG(0x281)]&&f[g]['code']===0x14&&(D['center']['y']=parseFloat(f[g]['value']),g++),g<f[bG(0x281)]&&f[g][bG(0x258)]===0x28&&(D[bG(0x1a1)]=parseFloat(f[g]['value']),g++),g<f[bG(0x281)]&&f[g][bG(0x258)]===0x32&&(D[bG(0x127)]=parseFloat(f[g]['value']),g++),g<f['length']&&f[g]['code']===0x33&&(D[bG(0x17b)]=parseFloat(f[g]['value']),g++),g<f[bG(0x281)]&&f[g]['code']===0x49&&(D[bG(0x157)]=f[g]['value']==='1',g++),v[bG(0x196)]['push'](D);break;}case 0x3:{const F={'type':'ellipse','center':{'x':0x0,'y':0x0},'majorAxis':{'x':0x1,'y':0x0},'minorRatio':0x1,'startAngle':0x0,'endAngle':Math['PI']*0x2,'ccw':!0x0};g<f['length']&&f[g]['code']===0xa&&(F['center']['x']=parseFloat(f[g]['value']),g++),g<f[bG(0x281)]&&f[g]['code']===0x14&&(F['center']['y']=parseFloat(f[g]['value']),g++),g<f['length']&&f[g]['code']===0xb&&(F['majorAxis']['x']=parseFloat(f[g]['value']),g++),g<f[bG(0x281)]&&f[g]['code']===0x15&&(F['majorAxis']['y']=parseFloat(f[g]['value']),g++),g<f[bG(0x281)]&&f[g]['code']===0x28&&(F['minorRatio']=parseFloat(f[g]['value']),g++),g<f[bG(0x281)]&&f[g]['code']===0x32&&(F['startAngle']=parseFloat(f[g]['value']),g++),g<f['length']&&f[g]['code']===0x33&&(F[bG(0x17b)]=parseFloat(f[g]['value']),g++),g<f['length']&&f[g][bG(0x258)]===0x49&&(F['ccw']=f[g]['value']==='1',g++),v[bG(0x196)]['push'](F);break;}case 0x4:{let I=0x3;const L=[],N=[];g<f['length']&&f[g][bG(0x258)]===0x5e&&(I=parseInt(f[g]['value'],0xa),g++),g<f['length']&&f[g]['code']===0x49&&g++,g<f['length']&&f[g]['code']===0x4a&&g++;let O=0x0;g<f['length']&&f[g][bG(0x258)]===0x5f&&(O=parseInt(f[g][bG(0x13a)],0xa),g++);let R=0x0;g<f[bG(0x281)]&&f[g]['code']===0x60&&(R=parseInt(f[g]['value'],0xa),g++);for(let S=0x0;S<O&&g<f['length']&&f[g]['code']===0x28;S++)L[bG(0x175)](parseFloat(f[g]['value'])),g++;for(let W=0x0;W<R&&g<f['length'];W++){const Y={'x':0x0,'y':0x0};f[g][bG(0x258)]===0xa&&(Y['x']=parseFloat(f[g]['value']),g++),g<f['length']&&f[g][bG(0x258)]===0x14&&(Y['y']=parseFloat(f[g]['value']),g++),N['push'](Y);}v[bG(0x196)]['push']({'type':'spline','degree':I,'knots':L,'controlPoints':N});break;}}}for(;g<f['length']&&(f[g]['code']===0x61||f[g][bG(0x258)]===0x14a);)if(f[g]['code']===0x61){const a0=parseInt(f[g][bG(0x13a)],0xa);g++;for(let a1=0x0;a1<a0&&g<f['length']&&f[g]['code']===0x14a;a1++)g++;}else g++;return{'path':v,'nextIndex':g};}function Ft(c){const bH=aT,d=E(c),f=w(P({},d),{'type':bH(0x11c),'position':{'x':0x0,'y':0x0,'z':0x0}});for(const g of c)switch(g['code']){case 0xa:f['position']['x']=parseFloat(g[bH(0x13a)]);break;case 0x14:f['position']['y']=parseFloat(g['value']);break;case 0x1e:f['position']['z']=parseFloat(g['value']);break;}return f;}function Ce(c,d,f){const bI=aT;for(;d<c['length'];){const g=c[d];if(g['code']!==0x0){d++;continue;}const h=g['value'];if(h==='ENDSEC'||h==='ENDBLK')return d+0x1;d++;const i=[];for(;d<c['length']&&c[d][bI(0x258)]!==0x0;)i['push'](c[d]),d++;switch(h){case bI(0x1b8):f['push'](rt(i));break;case'CIRCLE':f['push'](st(i));break;case'ARC':f['push'](ot(i));break;case'LWPOLYLINE':f['push'](it(i));break;case'ELLIPSE':f['push'](ct(i));break;case bI(0x25e):f[bI(0x175)](ht(i));break;case'TEXT':f['push'](ut(i));break;case'MTEXT':f['push'](dt(i));break;case'INSERT':{const k=ft(i);i['some'](m=>m['code']===0x42&&m['value']==='1')&&(d=kt(c,d,k['attribs'])),f['push'](k);break;}case'DIMENSION':f['push'](pt(i));break;case'HATCH':f['push'](mt(i));break;case'POINT':f['push'](Ft(i));break;case'POLYLINE':{const l=lt(i);d=xt(c,d,l['vertices']),f['push'](l);break;}}}return d;}function xt(c,d,f){const bJ=aT;for(;d<c['length'];){if(c[d][bJ(0x258)]!==0x0){d++;continue;}const g=c[d]['value'];if(g==='SEQEND')return d+0x1;if(g===bJ(0x106)||g==='ENDBLK')return d;if(g==='VERTEX'){d++;const h={'x':0x0,'y':0x0,'bulge':0x0,'startWidth':0x0,'endWidth':0x0};for(;d<c[bJ(0x281)]&&c[d]['code']!==0x0;){const i=c[d];switch(i['code']){case 0xa:h['x']=parseFloat(i['value']);break;case 0x14:h['y']=parseFloat(i['value']);break;case 0x2a:h['bulge']=parseFloat(i['value']);break;case 0x28:h['startWidth']=parseFloat(i['value']);break;case 0x29:h[bJ(0x1bc)]=parseFloat(i[bJ(0x13a)]);break;}d++;}f[bJ(0x175)](h);}else{for(d++;d<c['length']&&c[d]['code']!==0x0;)d++;}}return d;}function kt(c,d,f){const bK=aT;for(;d<c['length'];){if(c[d]['code']!==0x0){d++;continue;}const g=c[d][bK(0x13a)];if(g==='SEQEND')return d+0x1;if(g==='ENDSEC'||g==='ENDBLK')return d;if(g==='ATTRIB'){d++;const h={'tag':'','text':'','insertionPoint':{'x':0x0,'y':0x0,'z':0x0},'height':0x1,'rotation':0x0,'style':'STANDARD','layer':'0','color':0x100};for(;d<c['length']&&c[d]['code']!==0x0;){const i=c[d];switch(i['code']){case 0x1:h['text']=i['value'];break;case 0x2:h['tag']=i['value'];break;case 0x7:h['style']=i['value'];break;case 0x8:h['layer']=i['value'];break;case 0xa:h['insertionPoint']['x']=parseFloat(i[bK(0x13a)]);break;case 0x14:h['insertionPoint']['y']=parseFloat(i['value']);break;case 0x1e:h['insertionPoint']['z']=parseFloat(i[bK(0x13a)]);break;case 0x28:h[bK(0x27c)]=parseFloat(i[bK(0x13a)]);break;case 0x32:h['rotation']=parseFloat(i['value']);break;case 0x3e:h['color']=parseInt(i[bK(0x13a)],0xa);break;}d++;}f[bK(0x175)](h);}else{for(d++;d<c['length']&&c[d][bK(0x258)]!==0x0;)d++;}}return d;}function yt(c,d,f){const bL=aT;for(;d<c[bL(0x281)];){const g=c[d];if(g['code']===0x0&&g['value']==='ENDSEC')return d+0x1;if(g['code']===0x0&&g['value']==='BLOCK'){d++;const h={'name':'','basePoint':{'x':0x0,'y':0x0,'z':0x0},'entities':[],'flags':0x0};for(;d<c['length']&&c[d]['code']!==0x0;){const i=c[d];switch(i['code']){case 0x2:h['name']=i['value'];break;case 0x8:break;case 0xa:h['basePoint']['x']=parseFloat(i['value']);break;case 0x14:h[bL(0x13e)]['y']=parseFloat(i['value']);break;case 0x1e:h[bL(0x13e)]['z']=parseFloat(i['value']);break;case 0x46:h['flags']=parseInt(i['value'],0xa);break;}d++;}d=Ce(c,d,h[bL(0x192)]),h['name']&&!h['name']['startsWith']('*Model_Space')&&!h['name']['startsWith']('*Paper_Space')&&f['set'](h['name'],h);}else d++;}return d;}var ke='AutoCAD\x20Binary\x20DXF',Pt={'ANSI_874':aT(0x123),'ANSI_932':'shift_jis','ANSI_936':'gbk','ANSI_949':'euc-kr','ANSI_950':aT(0x246),'ANSI_1250':aT(0x180),'ANSI_1251':'windows-1251','ANSI_1252':'windows-1252','ANSI_1253':'windows-1253','ANSI_1254':'windows-1254','ANSI_1255':aT(0x158),'ANSI_1256':aT(0x1f8),'ANSI_1257':'windows-1257','ANSI_1258':'windows-1258'},wt='AC1021';function It(){return{'acadVersion':'','insUnits':0x0,'measurement':0x0,'ltScale':0x1};}function ye(c){const bM=aT;return c[bM(0x245)](/\\U\+([0-9A-Fa-f]{4})/g,(d,f)=>String['fromCodePoint'](parseInt(f,0x10)));}function Tt(d){const bN=aT;var f,g,k;if(typeof d=='string')return ye(d);const m=new Uint8Array(d);if(new TextDecoder('ascii')['decode'](m[bN(0x229)](0x0,ke['length']))===ke)throw new B(bN(0x221));let v=new TextDecoder('utf-8')[bN(0x19a)](d);const x=v['match'](/\$ACADVER[\s\S]*?\n\s*1\s*\n\s*(\S+)/),y=(f=x==null?void 0x0:x[0x1])!=null?f:'';if(y&&y<wt){const A=v['match'](/\$DWGCODEPAGE[\s\S]*?\n\s*3\s*\n\s*(\S+)/),C=(g=A==null?void 0x0:A[0x1])!=null?g:'',D=(k=Pt[C])!=null?k:'windows-1252';D!=='utf-8'&&(v=new TextDecoder(D)[bN(0x19a)](d));}return ye(v);}function Mt(c,d){const bO=aT;for(;d<c['length'];){if(c[d][bO(0x258)]===0x0&&c[d]['value']==='ENDSEC')return d+0x1;d++;}return d;}function Et(c){const bP=aT;c['layers']['has']('0')||c[bP(0x1ee)]['set']('0',{'name':'0','color':0x7,'lineType':'Continuous','flags':0x0,'lineWeight':-0x3,'isOff':!0x1,'isFrozen':!0x1,'isLocked':!0x1});}function At(c){const bQ=aT;for(const [,d]of c['layers'])d['isOff']=d['color']<0x0,d['isOff']&&(d['color']=Math['abs'](d['color'])),d['isFrozen']=(d['flags']&0x1)!==0x0,d['isLocked']=(d[bQ(0x10e)]&0x4)!==0x0;}var B=class extends Error{constructor(c,d){super(c),this['cause']=d,this['name']='DxfParseError';}};function le(c){const bR=aT;if(typeof c=='string'){if(c[bR(0x281)]===0x0)throw new B('Input\x20is\x20empty.\x20Expected\x20a\x20DXF\x20string\x20or\x20ArrayBuffer.');}else{if(c instanceof ArrayBuffer){if(c[bR(0x176)]===0x0)throw new B('Input\x20ArrayBuffer\x20is\x20empty.');}else throw new B('Invalid\x20input\x20type.\x20Expected\x20a\x20string\x20or\x20ArrayBuffer.');}let d;try{d=Tt(c);}catch(h){throw h instanceof B?h:new B('Failed\x20to\x20decode\x20DXF\x20input.',h);}let f;try{f=Ke(d);}catch(i){throw new B('Failed\x20to\x20tokenize\x20DXF\x20content.',i);}if(f['length']===0x0)throw new B('DXF\x20content\x20produced\x20no\x20tokens.\x20The\x20input\x20may\x20not\x20be\x20a\x20valid\x20DXF\x20file.');const g={'header':It(),'layers':new Map(),'lineTypes':new Map(),'styles':new Map(),'blocks':new Map(),'entities':[]};try{let k=0x0;for(;k<f['length'];){const l=f[k];if(l['code']===0x0&&l['value']==='SECTION'){if(k++,k>=f['length'])break;const m=f[k]['value'];switch(k++,m){case'HEADER':k=Qe(f,k,g['header']);break;case'TABLES':k=Je(f,k,g);break;case'BLOCKS':k=yt(f,k,g['blocks']);break;case'ENTITIES':k=Ce(f,k,g['entities']);break;default:k=Mt(f,k);break;}}else{if(l['code']===0x0&&l[bR(0x13a)]==='EOF')break;k++;}}}catch(u){throw new B('Failed\x20to\x20parse\x20DXF\x20sections.',u);}return Et(g),At(g),g;}var St=['#000000','#FF0000','#FFFF00','#00FF00','#00FFFF','#0000FF',aT(0x148),'#FFFFFF','#808080','#C0C0C0','#FF0000','#FF7F7F','#A50000','#A55252','#7F0000',aT(0x142),'#4C0000','#4C2626','#260000',aT(0x280),'#FF3F00',aT(0x1d9),'#A52900','#A56752',aT(0x282),'#7F4F3F',aT(0x24a),'#4C2F26','#260900','#261713',aT(0x1ef),aT(0x218),aT(0x23b),'#A57C52','#7F3F00','#7F5F3F','#4C2600','#4C3926','#261300',aT(0x1d0),'#FFBF00','#FFDF7F','#A57C00','#A59152','#7F5F00','#7F6F3F','#4C3900','#4C4226',aT(0x205),'#262113','#FFFF00',aT(0x146),'#A5A500','#A5A552','#7F7F00','#7F7F3F','#4C4C00','#4C4C26','#262600','#262613','#BFFF00','#DFFF7F','#7CA500','#91A552',aT(0x1f7),'#6F7F3F',aT(0x257),aT(0x124),aT(0x215),'#212613','#7FFF00',aT(0x14b),'#52A500',aT(0x230),'#3F7F00','#5F7F3F',aT(0x273),'#394C26','#132600','#1C2613','#3FFF00','#9FFF7F','#29A500','#67A552',aT(0x18c),'#4F7F3F',aT(0x12a),'#2F4C26','#092600','#172613','#00FF00','#7FFF7F','#00A500',aT(0x1bd),'#007F00',aT(0x19c),'#004C00','#264C26','#002600',aT(0x112),'#00FF3F','#7FFF9F','#00A529','#52A567','#007F1F','#3F7F4F','#004C13','#264C2F','#002609','#132617',aT(0x11a),'#7FFFBF','#00A552','#52A57C','#007F3F','#3F7F5F',aT(0x22d),'#264C39',aT(0x131),'#13261C',aT(0x197),'#7FFFDF','#00A57C','#52A591','#007F5F','#3F7F6F','#004C39',aT(0x22f),'#00261C',aT(0x1e0),'#00FFFF','#7FFFFF','#00A5A5','#52A5A5','#007F7F','#3F7F7F','#004C4C','#264C4C','#002626','#132626',aT(0x179),'#7FDFFF','#007CA5','#5291A5',aT(0x26c),'#3F6F7F',aT(0x190),'#26424C','#001C26','#132126','#007FFF',aT(0x1f9),'#0052A5','#527CA5',aT(0x119),'#3F5F7F','#00264C','#26394C','#001326','#131C26',aT(0x13d),aT(0x1ca),aT(0x1b5),aT(0x19b),'#001F7F','#3F4F7F','#00134C','#262F4C','#000926',aT(0x21d),'#0000FF','#7F7FFF','#0000A5',aT(0x172),'#00007F',aT(0x1f5),'#00004C','#26264C','#000026','#131326','#3F00FF','#9F7FFF','#2900A5','#6752A5','#1F007F','#4F3F7F','#13004C','#2F264C','#090026','#171326','#7F00FF','#BF7FFF','#5200A5',aT(0x194),'#3F007F','#5F3F7F',aT(0x151),aT(0x1df),'#130026','#1C1326','#BF00FF','#DF7FFF','#7C00A5',aT(0x23f),'#5F007F','#6F3F7F','#39004C','#42264C','#1C0026','#211326',aT(0x148),'#FF7FFF','#A500A5',aT(0x136),'#7F007F','#7F3F7F','#4C004C',aT(0x265),'#260026','#261326','#FF00BF','#FF7FDF','#A5007C','#A55291','#7F005F','#7F3F6F','#4C0039','#4C2642','#26001C','#261321','#FF007F','#FF7FBF','#A50052','#A5527C','#7F003F',aT(0x187),'#4C0026','#4C2639',aT(0x1e4),'#26131C','#FF003F','#FF7F9F','#A50029',aT(0x154),'#7F001F','#7F3F4F','#4C0013','#4C262F','#260009','#261317',aT(0x249),'#505050','#696969','#828282','#BEBEBE','#FFFFFF'];function Ct(c){if(!(c===0x0||c===0x100)&&!(c<0x0||c>0xff))return St[c];}var X={'dark':{'backgroundColor':'#1a1a2e','defaultEntityColor':'#ffffff','selectionColor':aT(0x241),'measureColor':'#ffaa00','gridColor':aT(0x249),'crosshairColor':'#555555'},'light':{'backgroundColor':aT(0x168),'defaultEntityColor':'#000000','selectionColor':'#0066ff','measureColor':'#ff6600','gridColor':aT(0x211),'crosshairColor':'#cccccc'}};function U(c,d,f){const bS=aT;return[d*c[bS(0x244)]+c[bS(0x103)],-f*c[bS(0x244)]+c['offsetY']];}function K(c,d,f){return[(d-c['offsetX'])/c['scale'],-(f-c['offsetY'])/c['scale']];}function Pe(c,d){const bT=aT,f=window['devicePixelRatio']||0x1;c['setTransform'](d['scale']*f,0x0,0x0,-d[bT(0x244)]*f,d['offsetX']*f,d[bT(0x11f)]*f);}function Dt(g,k,v,x,y,A,C=0.05){const D=y-v,F=A-x;if(D<=0x0||F<=0x0)return{'scale':0x1,'offsetX':g/0x2,'offsetY':k/0x2};const I=g/D,L=k/F,N=Math['min'](I,L)*(0x1-C*0x2),O=(v+y)/0x2,R=(x+A)/0x2,S=g/0x2-O*N,W=k/0x2+R*N;return{'scale':N,'offsetX':S,'offsetY':W};}function Lt(c,d,f,g,h=0.0001,k=0x186a0){const bU=aT,l=Math['max'](h,Math[bU(0x17f)](k,c['scale']*g)),m=l/c[bU(0x244)];return{'scale':l,'offsetX':d-(d-c['offsetX'])*m,'offsetY':f-(f-c[bU(0x11f)])*m};}var Nt=class{constructor(c){const bV=aT;p(this,'transform',{'scale':0x1,'offsetX':0x0,'offsetY':0x0}),p(this,'minScale'),p(this,'maxScale'),(this[bV(0x262)]=c[bV(0x16a)],this['maxScale']=c['maxZoom']);}[aT(0x23a)](){return this['transform'];}['setTransform'](c){const bW=aT;this[bW(0x134)]=c;}[aT(0x155)](c,d){const bX=aT;this['transform']=w(P({},this['transform']),{'offsetX':this['transform']['offsetX']+c,'offsetY':this[bX(0x134)]['offsetY']+d});}['zoom'](c,d,f){const bY=aT;this['transform']=Lt(this[bY(0x134)],c,d,f,this['minScale'],this['maxScale']);}};function we(c,d){const bZ=aT;var f;return c===0x7?d===bZ(0x23d)?bZ(0x168):'#000000':(f=Ct(c))!=null?f:'#ffffff';}function ue(c,d,f,g){const c0=aT;if(c['trueColor']!==void 0x0){const k=c[c0(0x1db)]>>0x10&0xff,m=c['trueColor']>>0x8&0xff,u=c['trueColor']&0xff;return'rgb('+k+','+m+','+u+')';}if(c['color']===0x0)return g!=null?g:X[f][c0(0x138)];if(c['color']!==0x100)return we(c[c0(0x1d4)],f);const h=d['get'](c['layer']);if(h){if(h['trueColor']!==void 0x0){const x=h['trueColor']>>0x10&0xff,y=h['trueColor']>>0x8&0xff,A=h['trueColor']&0xff;return'rgb('+x+','+y+','+A+')';}const v=Math['abs'](h['color']);return we(v,f);}return X[f][c0(0x138)];}function Bt(c,d){const c1=aT;c[c1(0x272)](),c[c1(0x159)](d['start']['x'],d['start']['y']),c['lineTo'](d['end']['x'],d[c1(0x1b6)]['y']),c['stroke']();}function Xt(c,d){const c2=aT;d['radius']<=0x0||(c['beginPath'](),c['arc'](d['center']['x'],d[c2(0x243)]['y'],d['radius'],0x0,Math['PI']*0x2),c['stroke']());}function Yt(c,d){if(d['radius']<=0x0)return;const f=d['startAngle']*Math['PI']/0xb4,g=d['endAngle']*Math['PI']/0xb4;c['beginPath'](),c['arc'](d['center']['x'],d['center']['y'],d['radius'],f,g,!0x1),c['stroke']();}function zt(k,A,C,D,I){const c3=aT,L=C-k,N=D-A,O=Math['sqrt'](L*L+N*N);if(O<1e-10)return{'cx':k,'cy':A,'radius':0x0,'startAngle':0x0,'endAngle':0x0,'anticlockwise':!0x1};const R=Math[c3(0x1b2)](I)*O/0x2,S=(T(O/0x2,0x2)+T(R,0x2))/(0x2*R),W=(k+C)/0x2,Y=(A+D)/0x2,a0=-N/O,a1=L/O,a2=S-R,a3=I>0x0?0x1:-0x1,a4=W+a3*a2*a0,a5=Y+a3*a2*a1,a6=Math['atan2'](A-a5,k-a4),a7=Math['atan2'](D-a5,C-a4),a8=I<0x0;return{'cx':a4,'cy':a5,'radius':S,'startAngle':a6,'endAngle':a7,'anticlockwise':a8};}function Q(c,d,f,g,h,i){const c4=aT,k=zt(d,f,g,h,i);if(k['radius']<1e-10){c[c4(0x21b)](g,h);return;}c['arc'](k['cx'],k['cy'],k['radius'],k['startAngle'],k['endAngle'],k['anticlockwise']);}function Rt(c,d){const c5=aT,f=d['vertices'];if(f['length']<0x2)return;c['beginPath'](),c['moveTo'](f[0x0]['x'],f[0x0]['y']);const g=d[c5(0x1b0)]?f[c5(0x281)]:f['length']-0x1;for(let h=0x0;h<g;h++){const i=f[h],k=f[(h+0x1)%f[c5(0x281)]];Math['abs'](i['bulge'])<1e-10?c['lineTo'](k['x'],k['y']):Q(c,i['x'],i['y'],k['x'],k['y'],i['bulge']);}c['stroke']();}function Ot(c,d){var f;const g=d['vertices'];if(g['length']<0x2)return;c['beginPath'](),c['moveTo'](g[0x0]['x'],g[0x0]['y']);const h=d['closed']?g['length']:g['length']-0x1;for(let k=0x0;k<h;k++){const m=g[k],u=g[(k+0x1)%g['length']],v=(f=m['bulge'])!=null?f:0x0;Math['abs'](v)<1e-10?c['lineTo'](u['x'],u['y']):Q(c,m['x'],m['y'],u['x'],u['y'],v);}c['stroke']();}function _t(c,d){const c6=aT,f=Math['sqrt'](T(d['majorAxis']['x'],0x2)+T(d[c6(0x143)]['y'],0x2)+T(d['majorAxis']['z'],0x2));if(f<1e-10||d['minorRatio']<=0x0)return;const g=f*d['minorRatio'],h=Math['atan2'](d[c6(0x143)]['y'],d[c6(0x143)]['x']);c['beginPath'](),c['ellipse'](d['center']['x'],d['center']['y'],f,g,h,d['startParam'],d[c6(0x1bf)],!0x1),c['stroke']();}function Wt(k,y,A,C,D){var I;const L=y['length']-0x1;let N=k;for(;N<L&&A[N+0x1]<=C;)N++;const O=[],R=[];for(let S=0x0;S<=k;S++){const W=N-k+S;O['push'](P({},y[W])),R['push'](D?D[W]:0x1);}for(let Y=0x1;Y<=k;Y++)for(let a0=k;a0>=Y;a0--){const a1=N-k+a0,a2=A[a1+k-Y+0x1]-A[a1];if(Math['abs'](a2)<1e-10)continue;const a3=(C-A[a1])/a2,a4=O[a0],a5=O[a0-0x1];if(D){const a6=R[a0-0x1]*(0x1-a3),a7=R[a0]*a3,a8=a6+a7;if(Math['abs'](a8)<1e-10)continue;a4['x']=(a5['x']*a6+a4['x']*a7)/a8,a4['y']=(a5['y']*a6+a4['y']*a7)/a8,a4['z']=(a5['z']*a6+a4['z']*a7)/a8,R[a0]=a8;}else a4['x']=(0x1-a3)*a5['x']+a3*a4['x'],a4['y']=(0x1-a3)*a5['y']+a3*a4['y'],a4['z']=(0x1-a3)*a5['z']+a3*a4['z'];}return(I=O[k])!=null?I:{'x':0x0,'y':0x0,'z':0x0};}function $t(f){const c7=aT;if(f['length']<0x2)return f['map'](x=>({'x':x['x'],'y':x['y']}));const g=[],k=f['length'],v=0xa;for(let x=0x0;x<k-0x1;x++){const y=f[Math['max'](0x0,x-0x1)],A=f[x],C=f[Math['min'](k-0x1,x+0x1)],D=f[Math[c7(0x17f)](k-0x1,x+0x2)];for(let F=0x0;F<=(x===k-0x2?v:v-0x1);F++){const I=F/v,L=I*I,N=L*I,O=0.5*(0x2*A['x']+(-y['x']+C['x'])*I+(0x2*y['x']-0x5*A['x']+0x4*C['x']-D['x'])*L+(-y['x']+0x3*A['x']-0x3*C['x']+D['x'])*N),R=0.5*(0x2*A['y']+(-y['y']+C['y'])*I+(0x2*y['y']-0x5*A['y']+0x4*C['y']-D['y'])*L+(-y['y']+0x3*A['y']-0x3*C['y']+D['y'])*N);g['push']({'x':O,'y':R});}}return g;}function De(d,f){const c8=aT;if(d['degree']===0x1)return d['controlPoints'][c8(0x137)](y=>({'x':y['x'],'y':y['y']}));if(d[c8(0x1b1)]['length']===0x0&&d['fitPoints']['length']>=0x2)return $t(d[c8(0x174)]);if(d[c8(0x1b1)]['length']<d['degree']+0x1)return[];if(d['knots']['length']<d['controlPoints']['length']+d['degree']+0x1)return[];const g=[],k=d['knots'][d['degree']],m=d['knots'][d['knots']['length']-d[c8(0x160)]-0x1];if(m<=k)return[];const u=Math[c8(0x285)](d['controlPoints']['length']*0xa,Math['ceil']((m-k)/f)),v=Math['min'](u,0x1388),x=d['weights'][c8(0x281)]>0x0?d['weights']:void 0x0;for(let y=0x0;y<=v;y++){const A=k+(m-k)*(y/v),C=Wt(d['degree'],d['controlPoints'],d['knots'],A,x);g['push']({'x':C['x'],'y':C['y']});}return g;}function jt(c,d,f){const g=De(d,f);if(!(g['length']<0x2)){c['beginPath'](),c['moveTo'](g[0x0]['x'],g[0x0]['y']);for(let h=0x1;h<g['length'];h++)c['lineTo'](g[h]['x'],g[h]['y']);d['flags']&0x1&&c['closePath'](),c['stroke']();}}var qt={'standard':'Arial,\x20sans-serif','arial':'Arial,\x20sans-serif','arial.ttf':aT(0x206),'romans.shx':'\x22Courier\x20New\x22,\x20monospace','simplex.shx':aT(0x13c),'txt.shx':'monospace','monotxt.shx':aT(0x23e),'isocp.shx':aT(0x13c),'isocpeur.shx':'\x22Courier\x20New\x22,\x20monospace','times.ttf':'\x22Times\x20New\x20Roman\x22,\x20serif','timesnr.ttf':'\x22Times\x20New\x20Roman\x22,\x20serif','gothic.ttf':'\x22Century\x20Gothic\x22,\x20sans-serif'};function Le(c){const d=c['toLowerCase']()['trim']();return qt[d]||'sans-serif';}function Ht(c,d,f){const c9=aT;if(!d['text']||d['height']<f*0x4)return;const g=d['hAlign']!==0x0||d['vAlign']!==0x0,k=g&&d[c9(0x1c0)]?d[c9(0x1c0)]['x']:d['insertionPoint']['x'],m=g&&d['alignmentPoint']?d['alignmentPoint']['y']:d['insertionPoint']['y'];if(c[c9(0x191)](),c['translate'](k,m),c['scale'](0x1,-0x1),d['rotation']&&c['rotate'](-d['rotation']*Math['PI']/0xb4),d[c9(0x208)]!==0x1&&c['scale'](d['widthFactor'],0x1),d['obliqueAngle']){const y=Math['tan'](d['obliqueAngle']*Math['PI']/0xb4);c['transform'](0x1,0x0,y,0x1,0x0,0x0);}const u=(d['generationFlags']&0x2)!==0x0,v=(d[c9(0x276)]&0x4)!==0x0;u&&c['scale'](-0x1,0x1),v&&c['scale'](0x1,-0x1);const x=Le(d[c9(0x24e)]||'Standard');switch(c['font']=d['height']+'px\x20'+x,d['hAlign']){case 0x0:c[c9(0x24d)]='left';break;case 0x1:c['textAlign']='center';break;case 0x2:c['textAlign']='right';break;case 0x3:c['textAlign']=c9(0x1e7);break;case 0x4:c[c9(0x24d)]=c9(0x243);break;case 0x5:c['textAlign']='left';break;default:c['textAlign']='left';}switch(d[c9(0x135)]){case 0x0:c['textBaseline']='alphabetic';break;case 0x1:c['textBaseline']='bottom';break;case 0x2:c['textBaseline']='middle';break;case 0x3:c['textBaseline']='top';break;default:c['textBaseline']='alphabetic';}c['fillText'](d['text'],0x0,0x0),c[c9(0x145)]();}function Vt(c){return c['replace'](/\\P/g,'\x0a')['replace'](/\\[fFHWQTCAaLlOoKk][^;]*;/g,'')['replace'](/\\\\/g,'\x5c')['replace'](/\\~/g,'\u00a0')['replace'](/\{/g,'')['replace'](/\}/g,'')['replace'](/\\S[^;]*;/g,'')['trim']();}function Ut(f,g,k){const cb=aT;var r;if(!g['text']||g['height']<k*0x4)return;f['save'](),f[cb(0x283)](g['insertionPoint']['x'],g['insertionPoint']['y']),f['scale'](0x1,-0x1);const v=g['textDirection']?Math['atan2'](g['textDirection']['y'],g['textDirection']['x']):(g['rotation']||0x0)*Math['PI']/0xb4;v&&f['rotate'](-v);const x=Vt(g['text'])['split']('\x0a'),y=g['height']*(g['lineSpacingFactor']||1.4),A=Le(g[cb(0x24e)]||cb(0x24c));f['font']=g['height']+'px\x20'+A;const C=(g[cb(0x167)]-0x1)%0x3,D=Math[cb(0x1eb)]((g['attachmentPoint']-0x1)/0x3),F=['left','center','right'];f['textAlign']=(r=F[C])!=null?r:'left';let I=0x0;const L=x['length']*y;switch(D){case 0x0:I=g[cb(0x27c)];break;case 0x1:I=g[cb(0x27c)]-L/0x2;break;case 0x2:I=g['height']-L;break;}for(let N=0x0;N<x['length'];N++)f['fillText'](x[N],0x0,I+N*y);f['restore']();}var Gt=0x64;function Zt(f,g,k,m=0x0){const cc=aT;if(m>Gt)return null;if(k['has'](f))return k['get'](f);const v=g['blocks']['get'](f);if(!v)return k['set'](f,null),null;k['set'](f,null);let x=0x1/0x0,y=0x1/0x0,A=-0x1/0x0,C=-0x1/0x0,D=!0x1;for(const I of v['entities']){let L;I['type']==='INSERT'?L=Ne(I,g,k,m+0x1):L=_(I),L&&(D=!0x0,x=Math['min'](x,L['minX']),y=Math['min'](y,L['minY']),A=Math['max'](A,L[cc(0x236)]),C=Math['max'](C,L['maxY']));}const F=D?{'minX':x,'minY':y,'maxX':A,'maxY':C}:null;return k['set'](f,F),F;}function Ne(a0,a1,a2,a3=0x0){const cd=aT,a4=Zt(a0['blockName'],a1,a2,a3);if(!a4)return null;const a5=a1['blocks']['get'](a0['blockName']);if(!a5)return null;const a6=a5['basePoint']['x'],a7=a5['basePoint']['y'];let a8=a4['minX']-a6,a9=a4['minY']-a7,ab=a4['maxX']-a6,ac=a4['maxY']-a7;const ad=a0['scaleX'],af=a0['scaleY'];let ag=a8*ad,ah=ab*ad,ai=a9*af,aj=ac*af;if(ag>ah){const ax=ag;ag=ah,ah=ax;}if(ai>aj){const ay=ai;ai=aj,aj=ay;}const ak=(a0['rotation']||0x0)*Math['PI']/0xb4;if(Math['abs'](ak)<1e-10){const az=a0[cd(0x198)]['x'],aA=a0[cd(0x198)]['y'];let aB=ag+az,aC=ai+aA,aD=ah+az,aE=aj+aA;const aF=Math[cd(0x285)](0x1,a0['columnCount']),aG=Math['max'](0x1,a0['rowCount']);if(aF>0x1||aG>0x1){const aH=(aF-0x1)*a0['columnSpacing'],aI=(aG-0x1)*a0['rowSpacing'];aB=Math['min'](aB,aB+aH),aD=Math['max'](aD,aD+aH),aC=Math[cd(0x17f)](aC,aC+aI),aE=Math[cd(0x285)](aE,aE+aI);}return{'minX':aB,'minY':aC,'maxX':aD,'maxY':aE};}const al=Math['cos'](ak),am=Math['sin'](ak),an=[{'x':ag,'y':ai},{'x':ah,'y':ai},{'x':ah,'y':aj},{'x':ag,'y':aj}],ao=a0['insertionPoint']['x'],ap=a0[cd(0x198)]['y'];let aq=0x1/0x0,ar=0x1/0x0,as=-0x1/0x0,au=-0x1/0x0;for(const aJ of an){const aK=aJ['x']*al-aJ['y']*am+ao,aL=aJ['x']*am+aJ['y']*al+ap;aq=Math['min'](aq,aK),ar=Math['min'](ar,aL),as=Math['max'](as,aK),au=Math['max'](au,aL);}const av=Math['max'](0x1,a0['columnCount']),aw=Math['max'](0x1,a0['rowCount']);if(av>0x1||aw>0x1){const aM=(av-0x1)*a0['columnSpacing'],aN=(aw-0x1)*a0['rowSpacing'],aO=[{'x':0x0,'y':0x0},{'x':aM,'y':0x0},{'x':aM,'y':aN},{'x':0x0,'y':aN}];for(const aP of aO){const aQ=aP['x']*al-aP['y']*am,aR=aP['x']*am+aP['y']*al;aq=Math['min'](aq,aq+aQ),ar=Math['min'](ar,ar+aR),as=Math['max'](as,as+aQ),au=Math['max'](au,au+aR);}}return{'minX':aq,'minY':ar,'maxX':as,'maxY':au};}function Kt(c,d){const cf=aT;let f=0x1/0x0,g=0x1/0x0,k=-0x1/0x0,m=-0x1/0x0,u=!0x1;const v=d?new Map():void 0x0;for(const x of c){const y=d&&v?Be(x,d,v):_(x);y&&(u=!0x0,f=Math['min'](f,y[cf(0x1c1)]),g=Math['min'](g,y['minY']),k=Math['max'](k,y['maxX']),m=Math['max'](m,y['maxY']));}return u?{'minX':f,'minY':g,'maxX':k,'maxY':m}:null;}function Be(c,d,f){const cg=aT;return c[cg(0x1e5)]==='INSERT'?Ne(c,d,f):_(c);}var ne=null;function Qt(c){const ch=aT,d=new Map();for(const [f,g]of c['blocks']){const h=new Array(g['entities']['length']);for(let i=0x0;i<g[ch(0x192)]['length'];i++)h[i]=_(g['entities'][i]);d['set'](f,h);}return d;}function Jt(c){ne=c;}function Ie(){ne=null;}function ea(c,d){if(!ne)return;const f=ne['get'](c);if(!(!f||d>=f['length']))return f[d];}function _(A){const ci=aT;var D,I,L,N,O,R,W,Y,a0,a1,a2,a3,a4,a5,a6,a7;switch(A['type']){case'LINE':return{'minX':Math[ci(0x17f)](A['start']['x'],A['end']['x']),'minY':Math[ci(0x17f)](A['start']['y'],A['end']['y']),'maxX':Math[ci(0x285)](A['start']['x'],A['end']['x']),'maxY':Math['max'](A['start']['y'],A['end']['y'])};case ci(0x224):return{'minX':A['center']['x']-A['radius'],'minY':A['center']['y']-A['radius'],'maxX':A['center']['x']+A['radius'],'maxY':A['center']['y']+A['radius']};case'ARC':return{'minX':A['center']['x']-A[ci(0x1a1)],'minY':A['center']['y']-A['radius'],'maxX':A['center']['x']+A[ci(0x1a1)],'maxY':A['center']['y']+A['radius']};case'LWPOLYLINE':case'POLYLINE':{if(A['vertices']['length']===0x0)return null;let a8=0x1/0x0,a9=0x1/0x0,ab=-0x1/0x0,ac=-0x1/0x0;for(const ad of A['vertices'])a8=Math['min'](a8,ad['x']),a9=Math['min'](a9,ad['y']),ab=Math['max'](ab,ad['x']),ac=Math['max'](ac,ad['y']);return{'minX':a8,'minY':a9,'maxX':ab,'maxY':ac};}case'ELLIPSE':{const af=Math['sqrt'](T(A['majorAxis']['x'],0x2)+T(A['majorAxis']['y'],0x2));return{'minX':A['center']['x']-af,'minY':A['center']['y']-af,'maxX':A['center']['x']+af,'maxY':A[ci(0x243)]['y']+af};}case'TEXT':return{'minX':A['insertionPoint']['x'],'minY':A['insertionPoint']['y'],'maxX':A[ci(0x198)]['x']+A[ci(0x27c)]*A[ci(0x1c2)][ci(0x281)]*0.6,'maxY':A['insertionPoint']['y']+A['height']};case'MTEXT':return{'minX':A['insertionPoint']['x'],'minY':A['insertionPoint']['y']-A['height'],'maxX':A['insertionPoint']['x']+(A[ci(0x1b7)]||A['height']*0xa),'maxY':A['insertionPoint']['y']+A[ci(0x27c)]};case'SPLINE':{if(A['controlPoints']['length']===0x0)return null;let ag=0x1/0x0,ah=0x1/0x0,ai=-0x1/0x0,aj=-0x1/0x0;for(const ak of A['controlPoints'])ag=Math['min'](ag,ak['x']),ah=Math['min'](ah,ak['y']),ai=Math['max'](ai,ak['x']),aj=Math[ci(0x285)](aj,ak['y']);return{'minX':ag,'minY':ah,'maxX':ai,'maxY':aj};}case'POINT':return{'minX':A['position']['x'],'minY':A[ci(0x132)]['y'],'maxX':A['position']['x'],'maxY':A['position']['y']};case ci(0x26f):return{'minX':A['insertionPoint']['x'],'minY':A['insertionPoint']['y'],'maxX':A['insertionPoint']['x'],'maxY':A['insertionPoint']['y']};case'DIMENSION':return A[ci(0x1e9)]?{'minX':Math['min'](A['defPoint']['x'],(I=(D=A[ci(0x27b)])==null?void 0x0:D['x'])!=null?I:A['defPoint']['x'],(N=(L=A['defPoint3'])==null?void 0x0:L['x'])!=null?N:A['defPoint']['x']),'minY':Math['min'](A[ci(0x1e9)]['y'],(R=(O=A[ci(0x27b)])==null?void 0x0:O['y'])!=null?R:A['defPoint']['y'],(Y=(W=A['defPoint3'])==null?void 0x0:W['y'])!=null?Y:A[ci(0x1e9)]['y']),'maxX':Math['max'](A['defPoint']['x'],(a1=(a0=A['defPoint2'])==null?void 0x0:a0['x'])!=null?a1:A['defPoint']['x'],(a3=(a2=A['defPoint3'])==null?void 0x0:a2['x'])!=null?a3:A['defPoint']['x']),'maxY':Math['max'](A['defPoint']['y'],(a5=(a4=A[ci(0x27b)])==null?void 0x0:a4['y'])!=null?a5:A['defPoint']['y'],(a7=(a6=A['defPoint3'])==null?void 0x0:a6['y'])!=null?a7:A['defPoint']['y'])}:null;case'HATCH':{let al=0x1/0x0,am=0x1/0x0,an=-0x1/0x0,ao=-0x1/0x0,ap=!0x1;for(const aq of A['boundaryPaths'])if(aq['vertices']){for(const ar of aq[ci(0x26a)])ap=!0x0,al=Math[ci(0x17f)](al,ar['x']),am=Math['min'](am,ar['y']),an=Math['max'](an,ar['x']),ao=Math[ci(0x285)](ao,ar['y']);}return ap?{'minX':al,'minY':am,'maxX':an,'maxY':ao}:null;}default:return null;}}var ta=new Set(['LINE',aT(0x260),aT(0x224),'LWPOLYLINE',aT(0x18b),'ELLIPSE','SPLINE']);function b(c,d){c=c-0x103;const e=a();let f=e[c];return f;}function Xe(c){return ta['has'](c);}function aa(c,d){c['moveTo'](d['start']['x'],d['start']['y']),c['lineTo'](d['end']['x'],d['end']['y']);}function na(c,d){const cj=aT;if(d[cj(0x1a1)]<=0x0)return;const f=d['startAngle']*Math['PI']/0xb4,g=d['endAngle']*Math['PI']/0xb4;c[cj(0x159)](d['center']['x']+d['radius']*Math['cos'](f),d['center']['y']+d['radius']*Math['sin'](f)),c['arc'](d['center']['x'],d[cj(0x243)]['y'],d['radius'],f,g,!0x1);}function ra(c,d){const ck=aT;d['radius']<=0x0||(c[ck(0x159)](d['center']['x']+d['radius'],d['center']['y']),c['arc'](d['center']['x'],d['center']['y'],d['radius'],0x0,Math['PI']*0x2));}function sa(c,d){const cl=aT,f=d[cl(0x26a)];if(f['length']<0x2)return;c[cl(0x159)](f[0x0]['x'],f[0x0]['y']);const g=d['closed']?f['length']:f['length']-0x1;for(let h=0x0;h<g;h++){const i=f[h],k=f[(h+0x1)%f['length']];Math[cl(0x1b2)](i['bulge'])<1e-10?c['lineTo'](k['x'],k['y']):Q(c,i['x'],i['y'],k['x'],k['y'],i[cl(0x1e1)]);}}function oa(c,d){const cm=aT;var f;const g=d['vertices'];if(g['length']<0x2)return;c['moveTo'](g[0x0]['x'],g[0x0]['y']);const h=d['closed']?g[cm(0x281)]:g[cm(0x281)]-0x1;for(let k=0x0;k<h;k++){const m=g[k],u=g[(k+0x1)%g['length']],v=(f=m['bulge'])!=null?f:0x0;Math['abs'](v)<1e-10?c[cm(0x21b)](u['x'],u['y']):Q(c,m['x'],m['y'],u['x'],u['y'],v);}}function ia(c,d){const cn=aT,f=Math['sqrt'](T(d['majorAxis']['x'],0x2)+T(d['majorAxis']['y'],0x2)+T(d['majorAxis']['z'],0x2));if(f<1e-10||d['minorRatio']<=0x0)return;const g=f*d['minorRatio'],h=Math['atan2'](d['majorAxis']['y'],d['majorAxis']['x']),k=Math['cos'](h),m=Math[cn(0x20b)](h),u=Math['cos'](d['startParam']),v=Math[cn(0x20b)](d['startParam']);c['moveTo'](d['center']['x']+f*k*u-g*m*v,d[cn(0x243)]['y']+f*m*u+g*k*v),c[cn(0x21a)](d[cn(0x243)]['x'],d[cn(0x243)]['y'],f,g,h,d['startParam'],d['endParam'],!0x1);}function la(c,d,f){const co=aT,g=De(d,f);if(!(g['length']<0x2)){c[co(0x159)](g[0x0]['x'],g[0x0]['y']);for(let h=0x1;h<g['length'];h++)c['lineTo'](g[h]['x'],g[h]['y']);d['flags']&0x1&&c['closePath']();}}function Ye(c,d,f){const cp=aT;switch(d['type']){case'LINE':aa(c,d);break;case'ARC':na(c,d);break;case cp(0x224):ra(c,d);break;case cp(0x1dd):sa(c,d);break;case'POLYLINE':oa(c,d);break;case'ELLIPSE':ia(c,d);break;case'SPLINE':la(c,d,f);break;}}var ca=0x64,ha=0.5;function ze(I,L,N,O,R,W,Y=0x0,a0){const cq=aT;var a1;if(Y>ca)return;const a2=N['blocks']['get'](L['blockName']);if(!a2)return;const a3=Math['max'](0x1,L['columnCount']),a4=Math['max'](0x1,L['rowCount']);for(let a5=0x0;a5<a4;a5++)for(let a6=0x0;a6<a3;a6++){I['save']();const a7=L[cq(0x198)]['x']+a6*L['columnSpacing'],a8=L[cq(0x198)]['y']+a5*L[cq(0x17d)];I['translate'](a7,a8),L['rotation']&&I['rotate'](L['rotation']*Math['PI']/0xb4),I['scale'](L['scaleX'],L['scaleY']),I[cq(0x283)](-a2[cq(0x13e)]['x'],-a2['basePoint']['y']);const a9=Math['max'](Math[cq(0x1b2)](L['scaleX']),Math[cq(0x1b2)](L['scaleY'])),ab=W/(a9||0x1);let ac=null;const ad=a2['entities'];for(let af=0x0;af<ad[cq(0x281)];af++){const ag=ad[af];if(ag[cq(0x1e5)]!=='INSERT'){const ai=ea(L['blockName'],af),aj=ai!==void 0x0?ai:_(ag);if(aj){const ak=Math['max'](aj[cq(0x236)]-aj['minX'],aj['maxY']-aj['minY']);if(ak>0x0&&ak/ab<ha)continue;}}const ah=ue(ag,N[cq(0x1ee)],R);ag['type']!=='INSERT'&&Xe(ag['type'])?(ah!==ac&&(ac!==null&&(I['stroke'](),a0&&a0['drawCalls']++),ac=ah,I['beginPath'](),I[cq(0x109)]=ah,I['lineWidth']=ab),Ye(I,ag,ab),a0&&(a0[cq(0x12d)][ag[cq(0x1e5)]]=((a1=a0['byType'][ag['type']])!=null?a1:0x0)+0x1)):(ac!==null&&(I['stroke'](),a0&&a0['drawCalls']++,ac=null),I['strokeStyle']=ah,I['fillStyle']=ah,I['lineWidth']=ab,ag['type']===cq(0x26f)?ze(I,ag,N,O,R,ab,Y+0x1,a0):re(I,ag,N,O,R,ab,a0));}ac!==null&&(I['stroke'](),a0&&a0[cq(0x1cd)]++),I['restore']();}}function ua(c,d,f,g,k,m,u){const cr=aT;if(d['blockName']){const v=f['blocks']['get'](d['blockName']);if(v){for(const x of v['entities']){const y=ue(x,f[cr(0x1ee)],k);c['strokeStyle']=y,c['fillStyle']=y,c['lineWidth']=m,re(c,x,f,g,k,m,u);}return;}}d[cr(0x27b)]&&d[cr(0x238)]&&(c['beginPath'](),c['moveTo'](d['defPoint2']['x'],d[cr(0x27b)]['y']),c['lineTo'](d['defPoint']['x'],d['defPoint']['y']),c['stroke'](),c['beginPath'](),c[cr(0x159)](d['defPoint3']['x'],d['defPoint3']['y']),c['lineTo'](d[cr(0x1e9)]['x'],d['defPoint']['y']),c['stroke']());}function da(c,d){const cs=aT;var f,g;if(d[cs(0x182)]['length']!==0x0){c['beginPath']();for(const k of d['boundaryPaths'])if(k[cs(0x1e5)]==='polyline'&&k['vertices']&&k['vertices']['length']>0x0){const m=k[cs(0x26a)][0x0];c['moveTo'](m['x'],m['y']);for(let u=0x1;u<k['vertices']['length'];u++){const v=k['vertices'][u-0x1],x=k['vertices'][u],y=(g=(f=k['bulges'])==null?void 0x0:f[u-0x1])!=null?g:0x0;Math['abs'](y)<1e-10?c['lineTo'](x['x'],x['y']):Q(c,v['x'],v['y'],x['x'],x['y'],y);}k['isClosed']&&c[cs(0x19f)]();}else{if(k['type']==='edges'&&k[cs(0x196)])for(let A=0x0;A<k[cs(0x196)]['length'];A++){const C=k['edges'][A];if(C['type']===cs(0x25d))A===0x0&&c['moveTo'](C['start']['x'],C['start']['y']),c['lineTo'](C[cs(0x1b6)]['x'],C['end']['y']);else{if(C['type']===cs(0x231)){if(A===0x0){const D=C['center']['x']+C['radius']*Math['cos'](C['startAngle']*Math['PI']/0xb4),F=C['center']['y']+C[cs(0x1a1)]*Math['sin'](C['startAngle']*Math['PI']/0xb4);c['moveTo'](D,F);}c['arc'](C['center']['x'],C['center']['y'],C['radius'],C['startAngle']*Math['PI']/0xb4,C['endAngle']*Math['PI']/0xb4,!C['ccw']);}}}}d[cs(0x1d2)]&&(c[cs(0x1af)]=0.3,c['fill']('evenodd'),c[cs(0x1af)]=0x1),c['stroke']();}}function fa(c,d,f){const g=f*0x3;c['beginPath'](),c['arc'](d['position']['x'],d['position']['y'],g,0x0,Math['PI']*0x2),c['fill']();}function re(c,d,f,g,h,k,l){const cu=aT;var m;switch(l&&(l['drawCalls']++,l['byType'][d['type']]=((m=l['byType'][d[cu(0x1e5)]])!=null?m:0x0)+0x1),d['type']){case'LINE':Bt(c,d);break;case'CIRCLE':Xt(c,d);break;case'ARC':Yt(c,d);break;case'LWPOLYLINE':Rt(c,d);break;case'POLYLINE':Ot(c,d);break;case'ELLIPSE':_t(c,d);break;case'SPLINE':jt(c,d,k);break;case'TEXT':Ht(c,d,k);break;case'MTEXT':Ut(c,d,k);break;case cu(0x26f):ze(c,d,f,g,h,k,0x0,l);break;case'DIMENSION':ua(c,d,f,g,h,k,l);break;case'HATCH':da(c,d);break;case'POINT':fa(c,d,k);break;}}var pa=0.5,ma=class{constructor(c){p(this,'ctx'),p(this,'width',0x0),p(this,'height',0x0),this['canvas']=c;const d=c['getContext']('2d',{'alpha':!0x1});if(!d)throw new Error('Failed\x20to\x20get\x202D\x20rendering\x20context.\x20The\x20canvas\x20may\x20already\x20have\x20a\x20different\x20context\x20type,\x20or\x20canvas\x20rendering\x20is\x20not\x20available\x20in\x20this\x20environment.');this['ctx']=d,this['updateSize']();}['getContext'](){return this['ctx'];}['getWidth'](){return this['width'];}[aT(0x222)](){return this['height'];}['updateSize'](){const cv=aT,c=window['devicePixelRatio']||0x1,d=this['canvas']['getBoundingClientRect']();this['width']=d['width'],this['height']=d['height'],this['canvas'][cv(0x1b7)]=d['width']*c,this['canvas']['height']=d['height']*c;}[aT(0x1d7)](k,x,y,A,C,D,I){const cw=aT;var L;const N=this['ctx'],O=window['devicePixelRatio']||0x1,R={'entitiesDrawn':0x0,'entitiesSkipped':0x0,'drawCalls':0x0,'byType':{}};N[cw(0x1e6)](O,0x0,0x0,O,0x0,0x0),N['fillStyle']=X[y][cw(0x120)],N['fillRect'](0x0,0x0,this['width'],this['height']),Pe(N,x);const S=0x1/x[cw(0x244)];N['lineCap']='round',N['lineJoin']='round';let W=null;for(let Y=0x0;Y<k['entities']['length'];Y++){const a0=k[cw(0x192)][Y];if(!a0['visible']){R[cw(0x1c7)]++;continue;}if(!A['has'](a0[cw(0x279)])){R['entitiesSkipped']++;continue;}if(D&&!D['has'](Y)){R['entitiesSkipped']++;continue;}if(I){const a2=I[Y];if(a2){const a3=(a2['maxX']-a2['minX'])*x[cw(0x244)],a4=(a2['maxY']-a2['minY'])*x[cw(0x244)];if(Math['max'](a3,a4)<pa){R['entitiesSkipped']++;continue;}}}const a1=ue(a0,k['layers'],y);Xe(a0['type'])?(a1!==W&&(W!==null&&(N['stroke'](),R['drawCalls']++),W=a1,N['beginPath'](),N['strokeStyle']=a1,N['lineWidth']=S),Ye(N,a0,S),R['entitiesDrawn']++,R['byType'][a0['type']]=((L=R['byType'][a0['type']])!=null?L:0x0)+0x1):(W!==null&&(N['stroke'](),R[cw(0x1cd)]++,W=null),N['strokeStyle']=a1,N[cw(0x23c)]=a1,N['lineWidth']=S,R['entitiesDrawn']++,re(N,a0,k,x,y,S,R));}if(W!==null&&(N[cw(0x11d)](),R[cw(0x1cd)]++),C>=0x0&&C<k['entities'][cw(0x281)]){const a5=k[cw(0x192)][C];Pe(N,x),N['strokeStyle']=X[y]['selectionColor'],N['fillStyle']=X[y][cw(0x264)],N[cw(0x25b)]=S*0x3,re(N,a5,k,x,y,S);}return R;}['renderEmpty'](c){const cx=aT,d=this['ctx'],f=window[cx(0x270)]||0x1;d['setTransform'](f,0x0,0x0,f,0x0,0x0),d['fillStyle']=X[c]['backgroundColor'],d['fillRect'](0x0,0x0,this['width'],this[cx(0x27c)]);}['destroy'](){}},ba={'showFps':!0x0,'showRenderStats':!0x0,'showDocumentInfo':!0x0,'showTimings':!0x0,'showCamera':!0x0,'position':'top-left'};function ce(c){return P(P({},ba),c);}function ga(c){const cy=aT;return c===0x0?'0\x20B':c<0x400?c+'\x20B':c<0x400*0x400?(c/0x400)['toFixed'](0x1)+cy(0x104):(c/(0x400*0x400))['toFixed'](0x1)+'\x20MB';}function va(c){return c>=0x1?c['toFixed'](0x2)+'x':'1:'+(0x1/c)['toFixed'](0x1);}var Fa=aT(0x261),Te=0xf,Me=0x8,te=0x8,z=0xa;function xa(k,x,y,A,C,D){const cz=aT;k['setTransform'](0x1,0x0,0x0,0x1,0x0,0x0);const F=[];if(A[cz(0x1d8)]&&F['push'](['FPS:\x20'+x['fps']+'\x20\x20Frame:\x20'+x['frameTime']['toFixed'](0x1)+'ms']),A['showRenderStats']){const a0=x[cz(0x240)]['entitiesDrawn']+x['renderStats']['entitiesSkipped'],a1=['Drawn:\x20'+x[cz(0x240)]['entitiesDrawn']+cz(0x20f)+a0+'\x20\x20Calls:\x20'+x['renderStats']['drawCalls']],a2=Object['entries'](x['renderStats']['byType'])['sort'](([,a3],[,a4])=>a4-a3)['slice'](0x0,0x6)['map'](([a3,a4])=>a3+':\x20'+a4)['join']('\x20\x20');a2&&a1['push'](a2),F[cz(0x175)](a1);}if(A['showDocumentInfo']){const a3=['Layers:\x20'+x[cz(0x252)]+'\x20/\x20'+x['layerCount']+cz(0x254)+x['blockCount']];x['dxfVersion']&&a3['push']('DXF:\x20'+x['dxfVersion']),x['fileName']&&a3[cz(0x175)]('File:\x20'+x['fileName']),x[cz(0x105)]>0x0&&a3['push']('Size:\x20'+ga(x['fileSize'])),F['push'](a3);}if(A['showTimings']){const a4=[];x[cz(0x129)]>0x0&&a4['push']('Parse:\x20'+x['parseTime']['toFixed'](0x0)+'ms'),x['spatialIndexBuildTime']>0x0&&a4['push']('Index:\x20'+x[cz(0x1c8)]['toFixed'](0x0)+'ms'),x['totalLoadTime']>0x0&&a4[cz(0x175)](cz(0x1ed)+x['totalLoadTime']['toFixed'](0x0)+'ms'),a4['length']>0x0&&F[cz(0x175)]([a4[cz(0x27d)]('\x20\x20')]);}if(A['showCamera']){const a5=x['viewportBounds'];F['push'](['Zoom:\x20'+va(x['zoom'])+cz(0x1c9)+x[cz(0x1fa)]['toFixed'](0x2),'View:\x20['+a5['minX']['toFixed'](0x0)+',\x20'+a5['minY']['toFixed'](0x0)+']\x20→\x20['+a5[cz(0x236)]['toFixed'](0x0)+',\x20'+a5['maxY']['toFixed'](0x0)+']']);}if(F[cz(0x281)]===0x0)return;k['font']=Fa;const I=[];for(let a6=0x0;a6<F['length'];a6++){a6>0x0&&I['push']({'text':'','isSeparator':!0x0});for(const a7 of F[a6])I['push']({'text':a7,'isSeparator':!0x1});}let L=0x0;for(const a8 of I)if(!a8[cz(0x1fe)]){const a9=k[cz(0x1f4)](a8[cz(0x1c2)])['width'];a9>L&&(L=a9);}const N=L+te*0x2;let O=te*0x2;for(const ab of I)O+=ab['isSeparator']?Me:Te;let R,S;switch(A['position']){case cz(0x19d):R=z,S=z;break;case'top-right':R=C-N-z,S=z;break;case'bottom-left':R=z,S=D-O-z;break;case'bottom-right':R=C-N-z,S=D-O-z;break;}const W=X[y];k['fillStyle']=y==='dark'?cz(0x118):'rgba(255,\x20255,\x20255,\x200.85)',k['fillRect'](R,S,N,O),k['strokeStyle']=y==='dark'?'rgba(255,\x20255,\x20255,\x200.15)':'rgba(0,\x200,\x200,\x200.15)',k['lineWidth']=0x1,k[cz(0x255)](R+0.5,S+0.5,N-0x1,O-0x1),k['fillStyle']=y==='dark'?W['defaultEntityColor']:'rgba(0,\x200,\x200,\x200.85)',k['textAlign']='left',k['textBaseline']='top';let Y=S+te;for(const ac of I)ac['isSeparator']?Y+=Me:(k[cz(0x1bb)](ac[cz(0x1c2)],R+te,Y),Y+=Te);}var ka=class{constructor(){p(this,'layers',new Map()),p(this,'visibility',new Map()),p(this,'colorOverrides',new Map()),p(this,'visibleCache',null);}['setLayers'](c){const cA=aT;this['layers']=new Map(c),this[cA(0x20d)]['clear'](),this['colorOverrides']['clear'](),this['visibleCache']=null;for(const [d,f]of this[cA(0x1ee)])this['visibility']['set'](d,!f[cA(0x239)]&&!f['isFrozen']);}['getAllLayers'](){const cB=aT;return Array[cB(0x13b)](this['layers']['values']());}[aT(0x207)](c,d){this['visibility']['set'](c,d),this['visibleCache']=null;}['isVisible'](c){var d;return(d=this['visibility']['get'](c))!=null?d:!0x0;}['setColorOverride'](c,d){this['colorOverrides']['set'](c,d);}['getColorOverride'](c){return this['colorOverrides']['get'](c);}['getVisibleLayerNames'](){const cC=aT;if(this['visibleCache'])return this['visibleCache'];const c=new Set();for(const [d,f]of this[cC(0x20d)])f&&c['add'](d);return this['visibleCache']=c,c;}['clear'](){const cD=aT;this[cD(0x1ee)]['clear'](),this['visibility']['clear'](),this[cD(0x16f)][cD(0x147)](),this[cD(0x1ac)]=null;}},ya=class{constructor(){p(this,'listeners',new Map());}['on'](c,d){const cE=aT;this['listeners']['has'](c)||this['listeners']['set'](c,new Set()),this['listeners'][cE(0x242)](c)[cE(0x1e3)](d);}['off'](c,d){var f;(f=this['listeners']['get'](c))==null||f['delete'](d);}[aT(0x214)](c,d){const f=this['listeners']['get'](c);if(f){for(const g of f)g(d);}}[aT(0x1f3)](){this['listeners']['clear']();}},Pa=class{constructor(c,d){const cF=aT;p(this,cF(0x1e2),!0x1),p(this,cF(0x178),0x0),p(this,'lastY',0x0),p(this,'touches',new Map()),p(this,'onPointerDown'),p(this,'onPointerMove'),p(this,'onPointerUp'),p(this,'onWheel'),p(this,'onTouchStart'),p(this,'onTouchMove'),p(this,'onTouchEnd'),p(this,'onContextMenu'),(this['canvas']=c,this['viewer']=d,this['onPointerDown']=this['handlePointerDown']['bind'](this),this['onPointerMove']=this[cF(0x20c)]['bind'](this),this['onPointerUp']=this['handlePointerUp'][cF(0x114)](this),this['onWheel']=this['handleWheel']['bind'](this),this['onTouchStart']=this['handleTouchStart'][cF(0x114)](this),this['onTouchMove']=this['handleTouchMove']['bind'](this),this[cF(0x1de)]=this['handleTouchEnd']['bind'](this),this[cF(0x1a4)]=f=>f['preventDefault'](),c['addEventListener'](cF(0x263),this['onPointerDown']),c[cF(0x161)]('pointermove',this['onPointerMove']),c['addEventListener']('pointerup',this['onPointerUp']),c['addEventListener']('wheel',this['onWheel'],{'passive':!0x1}),c[cF(0x161)]('touchstart',this['onTouchStart'],{'passive':!0x1}),c[cF(0x161)]('touchmove',this['onTouchMove'],{'passive':!0x1}),c['addEventListener'](cF(0x225),this['onTouchEnd']),c[cF(0x161)]('contextmenu',this['onContextMenu']));}[aT(0x210)](){const cG=aT;this['canvas']['removeEventListener']('pointerdown',this['onPointerDown']),this['canvas']['removeEventListener']('pointermove',this['onPointerMove']),this['canvas']['removeEventListener']('pointerup',this['onPointerUp']),this['canvas']['removeEventListener']('wheel',this['onWheel']),this[cG(0x22a)][cG(0x17e)]('touchstart',this['onTouchStart']),this['canvas']['removeEventListener']('touchmove',this['onTouchMove']),this['canvas']['removeEventListener'](cG(0x225),this['onTouchEnd']),this[cG(0x22a)][cG(0x17e)]('contextmenu',this['onContextMenu']);}[aT(0x1cf)](c){const cH=aT,d=this['viewer']['getTool'](),f=this['canvas']['getBoundingClientRect'](),g=c['clientX']-f['left'],h=c['clientY']-f['top'];c['button']===0x0&&d===cH(0x155)?this['startPan'](c,g,h):c[cH(0x15d)]===0x1?this['startPan'](c,g,h):c['button']===0x0&&(d==='select'||d==='measure')&&this['viewer']['handleClick'](g,h);}['startPan'](c,d,f){const cI=aT;this['isPanning']=!0x0,this['lastX']=d,this['lastY']=f,this[cI(0x22a)]['setPointerCapture'](c['pointerId']),this[cI(0x22a)]['style']['cursor']='grabbing';}['handlePointerMove'](c){const cJ=aT,d=this['canvas']['getBoundingClientRect'](),f=c[cJ(0x1a3)]-d['left'],g=c['clientY']-d['top'];if(this['isPanning']){const h=f-this['lastX'],i=g-this['lastY'];this['lastX']=f,this[cJ(0x116)]=g,this['viewer']['handlePan'](h,i);}else this['viewer']['handleMouseMove'](f,g);}['handlePointerUp'](c){const cK=aT;this['isPanning']&&(this['isPanning']=!0x1,this[cK(0x22a)][cK(0x1ab)](c['pointerId']),this['canvas'][cK(0x24e)]['cursor']=this[cK(0x126)][cK(0x1ff)]()==='pan'?'grab':'crosshair');}[aT(0x1d1)](c){const cL=aT;c[cL(0x121)]();const d=this['canvas']['getBoundingClientRect'](),f=c['clientX']-d['left'],g=c['clientY']-d[cL(0x1b3)],h=-Math['sign'](c['deltaY']),i=this['viewer'][cL(0x1fb)](),k=h>0x0?i:0x1/ i;this['viewer']['handleZoom'](f,g,k);}['handleTouchStart'](c){const cM=aT;c['preventDefault']();for(const d of Array[cM(0x13b)](c['changedTouches']))this['touches']['set'](d['identifier'],{'x':d['clientX'],'y':d[cM(0x11e)]});}['handleTouchMove'](d){const cN=aT;if(d['preventDefault'](),this['touches']['size']===0x2&&d['touches']['length']===0x2){const f=d['touches'][0x0],g=d['touches'][0x1],k=Array[cN(0x13b)](this[cN(0x259)][cN(0x1c4)]()),m=Math['hypot'](k[0x0]['x']-k[0x1]['x'],k[0x0]['y']-k[0x1]['y']),v=Math['hypot'](f['clientX']-g['clientX'],f['clientY']-g[cN(0x11e)]);if(m>0x0){const x=v/m,y=this[cN(0x22a)]['getBoundingClientRect'](),A=(k[0x0]['x']+k[0x1]['x'])/0x2-y['left'],C=(k[0x0]['y']+k[0x1]['y'])/0x2-y['top'],D=(f['clientX']+g[cN(0x1a3)])/0x2-y['left'],F=(f[cN(0x11e)]+g['clientY'])/0x2-y['top'];this[cN(0x126)]['handleZoom'](A,C,x),this[cN(0x126)][cN(0x277)](D-A,F-C);}}else{if(this['touches'][cN(0x1a8)]===0x1&&d['touches']['length']===0x1){const I=d['touches'][0x0],L=this[cN(0x259)]['get'](I['identifier']);L&&this['viewer'][cN(0x277)](I['clientX']-L['x'],I['clientY']-L['y']);}}for(const N of Array['from'](d['changedTouches']))this['touches']['set'](N['identifier'],{'x':N['clientX'],'y':N['clientY']});}['handleTouchEnd'](c){for(const d of Array['from'](c['changedTouches']))this['touches']['delete'](d['identifier']);}},wa=0x5,Ia=class{constructor(){p(this,'tree',new qe()),p(this,'items',[]),p(this,'entityBBoxes',[]);}['build'](c,d){const cO=aT;this['items']=[],this['entityBBoxes']=new Array(c['length'])[cO(0x1ad)](null);const f=d?new Map():void 0x0;for(let g=0x0;g<c['length'];g++){const h=c[g],i=d&&f?Be(h,d,f):_(h);this[cO(0x251)][g]=i,i&&this['items']['push'](w(P({},i),{'entityIndex':g}));}this['tree']['clear'](),this['tree'][cO(0x235)](this['items']);}['search'](c,d,f,g){return this['tree']['search']({'minX':c,'minY':d,'maxX':f,'maxY':g});}[aT(0x113)](c){var d;return(d=this['entityBBoxes'][c])!=null?d:null;}['getEntityBBoxes'](){return this['entityBBoxes'];}['clear'](){const cP=aT;this[cP(0x141)]['clear'](),this['items']=[],this['entityBBoxes']=[];}};function Ta(f,g,k,v,x,y){const cQ=aT,A=wa/y,C=v[cQ(0x16b)](f-A,g-A,f+A,g+A);let D=A,F=-0x1;for(let I=C['length']-0x1;I>=0x0;I--){const L=C[I],N=k[L[cQ(0x201)]];if(!N||!x['has'](N['layer'])||!N['visible'])continue;const O=Ma(f,g,N);O<D&&(D=O,F=L['entityIndex']);}return F;}function Ma(c,d,f){const cR=aT;switch(f['type']){case'LINE':return he(c,d,f[cR(0x165)]['x'],f['start']['y'],f['end']['x'],f['end']['y']);case'CIRCLE':return Ea(c,d,f[cR(0x243)]['x'],f['center']['y'],f['radius']);case'ARC':return Aa(c,d,f['center']['x'],f['center']['y'],f['radius'],f['startAngle']*Math['PI']/0xb4,f['endAngle']*Math['PI']/0xb4);case cR(0x1dd):case'POLYLINE':{let g=0x1/0x0;const k=f['vertices'],m=f['closed']?k['length']:k['length']-0x1;for(let u=0x0;u<m;u++){const v=k[u],x=k[(u+0x1)%k['length']],y=he(c,d,v['x'],v['y'],x['x'],x['y']);g=Math[cR(0x17f)](g,y);}return g;}case cR(0x117):return Ca(c,d,f['center']['x'],f['center']['y'],f['majorAxis'],f[cR(0x186)]);case'TEXT':case cR(0x1fd):{const A=_(f);return A?Sa(c,d,A['minX'],A['minY'],A['maxX'],A['maxY']):0x1/0x0;}case'POINT':return Math['hypot'](c-f['position']['x'],d-f['position']['y']);case cR(0x25e):{let C=0x1/0x0;const D=f['controlPoints'];for(let F=0x0;F<D['length']-0x1;F++){const I=he(c,d,D[F]['x'],D[F]['y'],D[F+0x1]['x'],D[F+0x1]['y']);C=Math['min'](C,I);}return C;}default:return 0x1/0x0;}}function he(d,f,g,k,m,v){const cS=aT,x=m-g,y=v-k,A=x*x+y*y;if(A===0x0)return Math[cS(0x22b)](d-g,f-k);let C=((d-g)*x+(f-k)*y)/A;C=Math[cS(0x285)](0x0,Math[cS(0x17f)](0x1,C));const D=g+C*x,F=k+C*y;return Math[cS(0x22b)](d-D,f-F);}function Ea(c,d,f,g,h){const cT=aT;return Math[cT(0x1b2)](Math[cT(0x22b)](c-f,d-g)-h);}function Aa(f,g,i,k,u,v,x){const y=(Math['atan2'](g-k,f-i)%(0x2*Math['PI'])+0x2*Math['PI'])%(0x2*Math['PI']),A=(v%(0x2*Math['PI'])+0x2*Math['PI'])%(0x2*Math['PI']),C=(x%(0x2*Math['PI'])+0x2*Math['PI'])%(0x2*Math['PI']);if(A<=C?y>=A&&y<=C:y>=A||y<=C)return Math['abs'](Math['hypot'](f-i,g-k)-u);const D=Math['hypot'](f-(i+u*Math['cos'](v)),g-(k+u*Math['sin'](v))),F=Math['hypot'](f-(i+u*Math['cos'](x)),g-(k+u*Math['sin'](x)));return Math['min'](D,F);}function Sa(c,d,f,g,h,k){const cU=aT;if(c>=f&&c<=h&&d>=g&&d<=k)return 0x0;const l=Math[cU(0x285)](f-c,0x0,c-h),m=Math['max'](g-d,0x0,d-k);return Math['hypot'](l,m);}function Ca(g,k,x,y,A,C){const D=Math['atan2'](A['y'],A['x']),F=Math['cos'](-D),I=Math['sin'](-D),L=(g-x)*F-(k-y)*I,N=(g-x)*I+(k-y)*F,O=Math['sqrt'](T(A['x'],0x2)+T(A['y'],0x2)),R=O*C;if(O<1e-10)return Math['hypot'](g-x,k-y);const S=N*(O/R),W=Math['hypot'](L,S);if(W<1e-10)return O;const Y=L/W*O,a0=N/W*R;return Math['hypot'](L-Y,N-a0);}var Da=class{constructor(){p(this,'state',{'phase':'idle'}),p(this,'currentSnap',null);}['activate'](){const cV=aT;this['state']={'phase':'first-point'},this[cV(0x11b)]=null;}[aT(0x1d5)](){this['state']={'phase':'idle'},this['currentSnap']=null;}['handleClick'](c,d,f){const cW=aT,g=f?f['point']:{'x':c,'y':d};switch(this['state']['phase']){case cW(0x26d):return this['state']={'phase':'second-point','firstPoint':g,'firstSnap':f!=null?f:void 0x0},null;case'second-point':{const k=this['state']['firstPoint'],m=g,u=m['x']-k['x'],v=m['y']-k['y'],x=Math['sqrt'](u*u+v*v),y=Math['atan2'](v,u)*0xb4/Math['PI'];return this['state']={'phase':'done','firstPoint':k,'secondPoint':m,'distance':x,'angle':y},{'distance':x,'angle':y,'deltaX':u,'deltaY':v,'points':[k,m]};}case'done':return this[cW(0x269)]={'phase':'second-point','firstPoint':g},null;default:return null;}}[aT(0x275)](c){this['currentSnap']=c;}};function Ee(f,g,k,v,x,y=new Set(['endpoint','midpoint','center'])){const cX=aT,A=0xa/x,C=[],D=v['search'](f-A,g-A,f+A,g+A);for(const F of D){const I=k[F['entityIndex']];if(!I)continue;const L=F['entityIndex'];switch(I['type']){case'LINE':{if(y[cX(0x169)]('endpoint')&&(M(C,I['start']['x'],I['start']['y'],'endpoint',L,f,g,A),M(C,I[cX(0x1b6)]['x'],I['end']['y'],cX(0x233),L,f,g,A)),y['has']('midpoint')){const N=(I['start']['x']+I[cX(0x1b6)]['x'])/0x2,O=(I['start']['y']+I['end']['y'])/0x2;M(C,N,O,'midpoint',L,f,g,A);}break;}case'CIRCLE':{if(y['has']('center')&&M(C,I[cX(0x243)]['x'],I['center']['y'],'center',L,f,g,A),y['has'](cX(0x233)))for(const R of[0x0,Math['PI']/0x2,Math['PI'],0x3*Math['PI']/0x2]){const S=I['center']['x']+I['radius']*Math['cos'](R),W=I['center']['y']+I['radius']*Math['sin'](R);M(C,S,W,'endpoint',L,f,g,A);}break;}case cX(0x260):{if(y['has']('center')&&M(C,I['center']['x'],I['center']['y'],'center',L,f,g,A),y['has']('endpoint')){const Y=I['startAngle']*Math['PI']/0xb4,a0=I['endAngle']*Math['PI']/0xb4;M(C,I['center']['x']+I['radius']*Math['cos'](Y),I['center']['y']+I['radius']*Math['sin'](Y),'endpoint',L,f,g,A),M(C,I['center']['x']+I['radius']*Math[cX(0x1a2)](a0),I['center']['y']+I['radius']*Math[cX(0x20b)](a0),cX(0x233),L,f,g,A);}break;}case'LWPOLYLINE':case'POLYLINE':{if(y['has']('endpoint')){for(const a1 of I['vertices'])M(C,a1['x'],a1['y'],'endpoint',L,f,g,A);}if(y[cX(0x169)]('midpoint'))for(let a2=0x0;a2<I['vertices'][cX(0x281)]-0x1;a2++){const a3=I['vertices'][a2],a4=I['vertices'][a2+0x1];M(C,(a3['x']+a4['x'])/0x2,(a3['y']+a4['y'])/0x2,'midpoint',L,f,g,A);}break;}case'ELLIPSE':{y['has']('center')&&M(C,I['center']['x'],I['center']['y'],'center',L,f,g,A);break;}case'TEXT':{y['has']('endpoint')&&M(C,I['insertionPoint']['x'],I['insertionPoint']['y'],'endpoint',L,f,g,A);break;}case'MTEXT':{y['has'](cX(0x233))&&M(C,I['insertionPoint']['x'],I['insertionPoint']['y'],'endpoint',L,f,g,A);break;}}}return C[cX(0x1be)]((a5,a6)=>Math['hypot'](a5['point']['x']-f,a5['point']['y']-g)-Math['hypot'](a6['point']['x']-f,a6[cX(0x130)]['y']-g)),C;}function M(c,d,f,g,h,k,l,m){const cY=aT;Math[cY(0x22b)](d-k,f-l)<=m&&c['push']({'point':{'x':d,'y':f},'type':g,'entityIndex':h});}function a(){const dS=['observe','#333333','#4C1300','panTo','Standard','textAlign','style','loadedFileName','lastFrameTime','entityBBoxes','visibleLayerCount','622984FpfnsC','\x20\x20Blocks:\x20','strokeRect','convert','#394C00','code','touches','measureTool','lineWidth','rotation','line','SPLINE','patternName','ARC','11px\x20monospace','minScale','pointerdown','selectionColor','#4C264C','idle','3495NqgtUx','totalLength','state','vertices','destroyWorker','#005F7F','first-point','defPoint5','INSERT','devicePixelRatio','computeViewportBounds','beginPath','#264C00','cursor','handleMove','generationFlags','handlePan','createObjectURL','layer','polyline','defPoint2','height','join','obliqueAngle','doc','#261313','length','#7F1F00','translate','mouseScreenY','max','offsetX','\x20KB','fileSize','ENDSEC','toBBox','destroyed','strokeStyle','zoomTo','fontName','fromJSON','collides','flags','then','textDirection','grab','#132613','getEntityBBox','bind','guardDestroyed','lastY','ELLIPSE','rgba(0,\x200,\x200,\x200.75)','#003F7F','#00FF7F','currentSnap','POINT','stroke','clientY','offsetY','backgroundColor','preventDefault','endTangent','windows-874','#424C26','10xVLSHt','viewer','startAngle','compareMinX','parseTime','#134C00','startTangent','lastRenderStats','byType','lineType','children','point','#002613','position','extrusion','transform','vAlign','#A552A5','map','defaultEntityColor','_minEntries','value','from','\x22Courier\x20New\x22,\x20monospace','#003FFF','basePoint','bulges','LTYPE','tree','#7F3F3F','majorAxis','minY','restore','#FFFF7F','clear','#FF00FF','loadDocument','pending','#BFFF7F','isClosed','splice','_split','emitter','getAllLayers','#26004C','handleSeed','next','#A55267','pan','acadVersion','ccw','windows-1255','moveTo','firstPoint','reviveDocument','done','button','getOwnPropertyDescriptors','inputHandler','degree','addEventListener','data','compareMinY','doRender','start','getEntityBBoxes','attachmentPoint','#ffffff','has','minZoom','search','getVisibleLayerNames','theme','_adjustParentBBoxes','colorOverrides','scaleX','STYLE','#5252A5','lastDoRenderTime','fitPoints','push','byteLength','patternAngle','lastX','#00BFFF','camera','endAngle','debug','rowSpacing','removeEventListener','min','windows-1250','debugRafId','boundaryPaths','_build','ceil','loadGeneration','minorRatio','#7F3F5F','lineTypes','zoom','getDocument','POLYLINE','#1F7F00','selectedEntityIndex','onDocumentLoaded','3890jXIemw','#00394C','save','entities','loadFile','#7C52A5','insert','edges','#00FFBF','insertionPoint','renderPending','decode','#5267A5','#3F7F3F','top-left','log','closePath','_condense','radius','cos','clientX','onContextMenu','object','textMidpoint','180dNYGNs','size','postMessage','debugOptions','releasePointerCapture','visibleCache','fill','measureColor','globalAlpha','closed','controlPoints','abs','top','lineSpacingStyle','#0029A5','end','width','LINE','extMax','50650yVCaTM','fillText','endWidth','#52A552','sort','endParam','alignmentPoint','minX','text','pop','values','requestRender','indexOf','entitiesSkipped','spatialIndexBuildTime','\x20\x20Pixel:\x20','#7F9FFF','clearDocument','zoomSpeed','drawCalls','getWidth','handlePointerDown','#261C13','handleWheel','solidFill','renderer','color','deactivate','layerManager','render','showFps','#FF9F7F','delete','trueColor','options','LWPOLYLINE','onTouchEnd','#39264C','#132621','bulge','isPanning','add','#260013','type','setTransform','left','_splitRoot','defPoint','nextIndex','floor','stopDebugLoop','Load:\x20','layers','#FF7F00','1154034EINNEg','currentTool','name','removeAllListeners','measureText','#3F3F7F','debugEnabled','#5F7F00','windows-1256','#7FBFFF','pixelSize','getZoomSpeed','now','MTEXT','isSeparator','getTool','substring','entityIndex','1017768WPiumJ','leaf','text/javascript','#261C00','Arial,\x20sans-serif','setVisible','widthFactor','288438LwfjAs','worker','sin','handlePointerMove','visibility','drawingDirection','\x20/\x20','destroy','#dddddd','90vUrniR','antialias','emit','#1C2600','_all','loadedFileSize','#FFBF7F','blockName','ellipse','lineTo','font','#131726','maxY','updateSize','LAYER','Binary\x20DXF\x20format\x20is\x20not\x20supported.\x20Please\x20export\x20as\x20ASCII\x20DXF.','getHeight','resizeObserver','CIRCLE','touchend','select','error','frameTimestamps','slice','canvas','hypot','$ACADVER','#004C26','spatialIndex','#264C42','#7CA552','arc','bigFontName','endpoint','measure','load','maxX','blobUrl','defPoint3','isOff','getTransform','#A55200','fillStyle','dark','monospace','#9152A5','renderStats','#00ff88','get','center','scale','replace','big5','startDebugLoop'];a=function(){return dS;};return a();}function La(g,k,x,y,A,C){const cZ=aT,D=X[C];g['setTransform'](0x1,0x0,0x0,0x1,0x0,0x0);const F=x['state'];if(x['currentSnap']){const [I,L]=U(k,x['currentSnap']['point']['x'],x['currentSnap']['point']['y']);Na(g,I,L,x['currentSnap']['type'],D['measureColor']);}if(F['phase']==='second-point'){const [N,O]=U(k,F[cZ(0x15a)]['x'],F['firstPoint']['y']);let R,S;if(x['currentSnap']){const [a1,a2]=U(k,x['currentSnap']['point']['x'],x['currentSnap'][cZ(0x130)]['y']);R=a1,S=a2;}else R=y,S=A;g[cZ(0x109)]=D['measureColor'],g['lineWidth']=1.5,g['setLineDash']([0x6,0x3]),g[cZ(0x272)](),g[cZ(0x159)](N,O),g['lineTo'](R,S),g['stroke'](),g['setLineDash']([]),ae(g,N,O,D['measureColor']),ae(g,R,S,D[cZ(0x1ae)]);let W,Y;x['currentSnap']?(W=x['currentSnap']['point']['x'],Y=x[cZ(0x11b)]['point']['y']):[W,Y]=K(k,y,A);const a0=Math['hypot'](W-F['firstPoint']['x'],Y-F['firstPoint']['y']);Ae(g,(N+R)/0x2,(O+S)/0x2,a0,C);}if(F['phase']===cZ(0x15c)){const [a3,a4]=U(k,F['firstPoint']['x'],F['firstPoint']['y']),[a5,a6]=U(k,F['secondPoint']['x'],F['secondPoint']['y']);g[cZ(0x109)]=D['measureColor'],g['lineWidth']=0x2,g[cZ(0x272)](),g[cZ(0x159)](a3,a4),g[cZ(0x21b)](a5,a6),g['stroke'](),ae(g,a3,a4,D['measureColor']),ae(g,a5,a6,D['measureColor']),Ae(g,(a3+a5)/0x2,(a4+a6)/0x2,F['distance'],C);}}function Na(c,d,f,g,h){const d0=aT;c['strokeStyle']=h,c['lineWidth']=0x2;const i=0x8;switch(g){case'endpoint':c['strokeRect'](d-i/0x2,f-i/0x2,i,i);break;case'midpoint':c['beginPath'](),c['moveTo'](d,f-i/0x2),c[d0(0x21b)](d+i/0x2,f+i/0x2),c['lineTo'](d-i/0x2,f+i/0x2),c['closePath'](),c['stroke']();break;case'center':c['beginPath'](),c['arc'](d,f,i/0x2,0x0,Math['PI']*0x2),c['stroke']();break;case'nearest':c[d0(0x272)](),c[d0(0x159)](d-i/0x2,f-i/0x2),c[d0(0x21b)](d+i/0x2,f+i/0x2),c['moveTo'](d+i/0x2,f-i/0x2),c[d0(0x21b)](d-i/0x2,f+i/0x2),c['stroke']();break;}}function ae(c,d,f,g){c['fillStyle']=g,c['beginPath'](),c['arc'](d,f,0x4,0x0,Math['PI']*0x2),c['fill']();}function Ae(d,f,g,k,m){const d1=aT,v=k['toFixed'](0x4);d[d1(0x21c)]='13px\x20monospace',d['textAlign']='center',d['textBaseline']='bottom';const x=d['measureText'](v),y=0x4,A=f-x['width']/0x2-y,C=g-0x14,D=x['width']+y*0x2,F=0x12;d['fillStyle']=m==='dark'?'rgba(0,0,0,0.8)':'rgba(255,255,255,0.9)',d['fillRect'](A,C,D,F),d['fillStyle']=X[m]['measureColor'],d['fillText'](v,f,g-0x6);}var Ba=class{constructor(){const d2=aT;p(this,d2(0x20a),null),p(this,'blobUrl',null),p(this,'nextId',0x1),p(this,d2(0x14a),new Map());}['getWorker'](){const d3=aT;return this[d3(0x20a)]?this['worker']:(this['blobUrl']=URL[d3(0x278)](new Blob(['\x22use\x20strict\x22;(()=>{function\x20h(a){let\x20e=a.replace(/\x5cr\x5cn?/g,`\x0a`),t=[],r=e.length,n=0;for(;n<r;){for(;n<r&&e.charCodeAt(n)===10;)n++;if(n>=r)break;let\x20o=e.indexOf(`\x0a`,n);o===-1&&(o=r);let\x20c=e.substring(n,o).trim();n=o+1;let\x20s=parseInt(c,10);if(isNaN(s)){n<r&&(o=e.indexOf(`\x0a`,n),o===-1&&(o=r),n=o+1);continue}if(n>=r)break;o=e.indexOf(`\x0a`,n),o===-1&&(o=r);let\x20p=e.substring(n,o).replace(/\x5cs+$/,\x22\x22);n=o+1,t.push({code:s,value:p})}return\x20t}function\x20m(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDSEC\x22)return\x20e+1;if(r.code===9){let\x20n=r.value;switch(e++,n){case\x22$ACADVER\x22:e<a.length&&(t.acadVersion=a[e].value,e++);break;case\x22$EXTMIN\x22:if(e<a.length){let\x20o=v(a,e);t.extMin=o.point,e=o.nextIndex}break;case\x22$EXTMAX\x22:if(e<a.length){let\x20o=v(a,e);t.extMax=o.point,e=o.nextIndex}break;case\x22$INSUNITS\x22:e<a.length&&(t.insUnits=parseInt(a[e].value,10),e++);break;case\x22$MEASUREMENT\x22:e<a.length&&(t.measurement=parseInt(a[e].value,10),e++);break;case\x22$LTSCALE\x22:e<a.length&&(t.ltScale=parseFloat(a[e].value),e++);break;case\x22$DWGCODEPAGE\x22:e<a.length&&(t.dwgCodePage=a[e].value,e++);break;case\x22$HANDSEED\x22:e<a.length&&(t.handleSeed=a[e].value,e++);break;default:for(;e<a.length&&a[e].code!==9&&a[e].code!==0;)t[n]=a[e].value,e++}}else\x20e++}return\x20e}function\x20v(a,e){let\x20t={x:0,y:0,z:0};for(;e<a.length;){let\x20r=a[e].code;if(r===10)t.x=parseFloat(a[e].value),e++;else\x20if(r===20)t.y=parseFloat(a[e].value),e++;else\x20if(r===30)t.z=parseFloat(a[e].value),e++;else\x20break}return{point:t,nextIndex:e}}function\x20k(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDSEC\x22)return\x20e+1;if(r.code===0&&r.value===\x22TABLE\x22){if(e++,e>=a.length)break;let\x20n=a[e].value;switch(e++,n){case\x22LAYER\x22:e=H(a,e,t.layers);break;case\x22LTYPE\x22:e=O(a,e,t.lineTypes);break;case\x22STYLE\x22:e=_(a,e,t.styles);break;default:e=R(a,e);break}}else\x20e++}return\x20e}function\x20R(a,e){for(;e<a.length;){if(a[e].code===0&&a[e].value===\x22ENDTAB\x22)return\x20e+1;e++}return\x20e}function\x20H(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDTAB\x22)return\x20e+1;if(r.code===0&&r.value===\x22LAYER\x22){e++;let\x20n={name:\x220\x22,color:7,lineType:\x22Continuous\x22,flags:0,lineWeight:-3,isOff:!1,isFrozen:!1,isLocked:!1};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x202:n.name=o.value;break;case\x206:n.lineType=o.value;break;case\x2062:n.color=parseInt(o.value,10);break;case\x2070:n.flags=parseInt(o.value,10);break;case\x20370:n.lineWeight=parseInt(o.value,10);break;case\x20420:n.trueColor=parseInt(o.value,10);break}e++}t.set(n.name,n)}else\x20e++}return\x20e}function\x20O(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDTAB\x22)return\x20e+1;if(r.code===0&&r.value===\x22LTYPE\x22){e++;let\x20n={name:\x22\x22,description:\x22\x22,pattern:[],totalLength:0};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x202:n.name=o.value;break;case\x203:n.description=o.value;break;case\x2040:n.totalLength=parseFloat(o.value);break;case\x2049:n.pattern.push(parseFloat(o.value));break}e++}n.name&&t.set(n.name,n)}else\x20e++}return\x20e}function\x20_(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDTAB\x22)return\x20e+1;if(r.code===0&&r.value===\x22STYLE\x22){e++;let\x20n={name:\x22\x22,fontName:\x22\x22,bigFontName:\x22\x22,height:0,widthFactor:1,obliqueAngle:0};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x202:n.name=o.value;break;case\x203:n.fontName=o.value;break;case\x204:n.bigFontName=o.value;break;case\x2040:n.height=parseFloat(o.value);break;case\x2041:n.widthFactor=parseFloat(o.value);break;case\x2050:n.obliqueAngle=parseFloat(o.value);break}e++}n.name&&t.set(n.name,n)}else\x20e++}return\x20e}function\x20l(a){let\x20e={type:\x22\x22,layer:\x220\x22,color:256,lineType:\x22BYLAYER\x22,lineTypeScale:1,lineWeight:-1,visible:!0,extrusion:{x:0,y:0,z:1}};for(let\x20t\x20of\x20a)switch(t.code){case\x205:e.handle=t.value;break;case\x208:e.layer=t.value;break;case\x206:e.lineType=t.value;break;case\x2048:e.lineTypeScale=parseFloat(t.value);break;case\x2060:e.visible=t.value===\x220\x22||t.value===\x22\x22;break;case\x2062:e.color=parseInt(t.value,10);break;case\x20370:e.lineWeight=parseInt(t.value,10);break;case\x20420:e.trueColor=parseInt(t.value,10);break;case\x20210:e.extrusion.x=parseFloat(t.value);break;case\x20220:e.extrusion.y=parseFloat(t.value);break;case\x20230:e.extrusion.z=parseFloat(t.value);break}return\x20e}function\x20D(a){let\x20t={...l(a),type:\x22LINE\x22,start:{x:0,y:0,z:0},end:{x:0,y:0,z:0}};for(let\x20r\x20of\x20a)switch(r.code){case\x2010:t.start.x=parseFloat(r.value);break;case\x2020:t.start.y=parseFloat(r.value);break;case\x2030:t.start.z=parseFloat(r.value);break;case\x2011:t.end.x=parseFloat(r.value);break;case\x2021:t.end.y=parseFloat(r.value);break;case\x2031:t.end.z=parseFloat(r.value);break}return\x20t}function\x20F(a){let\x20t={...l(a),type:\x22CIRCLE\x22,center:{x:0,y:0,z:0},radius:0};for(let\x20r\x20of\x20a)switch(r.code){case\x2010:t.center.x=parseFloat(r.value);break;case\x2020:t.center.y=parseFloat(r.value);break;case\x2030:t.center.z=parseFloat(r.value);break;case\x2040:t.radius=parseFloat(r.value);break}return\x20t}function\x20E(a){let\x20t={...l(a),type:\x22ARC\x22,center:{x:0,y:0,z:0},radius:0,startAngle:0,endAngle:360};for(let\x20r\x20of\x20a)switch(r.code){case\x2010:t.center.x=parseFloat(r.value);break;case\x2020:t.center.y=parseFloat(r.value);break;case\x2030:t.center.z=parseFloat(r.value);break;case\x2040:t.radius=parseFloat(r.value);break;case\x2050:t.startAngle=parseFloat(r.value);break;case\x2051:t.endAngle=parseFloat(r.value);break}return\x20t}function\x20P(a){let\x20t={...l(a),type:\x22LWPOLYLINE\x22,vertices:[],closed:!1,constantWidth:0,elevation:0},r=null;for(let\x20n\x20of\x20a)switch(n.code){case\x2070:t.closed=(parseInt(n.value,10)&1)!==0;break;case\x2038:t.elevation=parseFloat(n.value);break;case\x2043:t.constantWidth=parseFloat(n.value);break;case\x2010:r&&t.vertices.push(r),r={x:parseFloat(n.value),y:0,bulge:0,startWidth:0,endWidth:0};break;case\x2020:r&&(r.y=parseFloat(n.value));break;case\x2040:r&&(r.startWidth=parseFloat(n.value));break;case\x2041:r&&(r.endWidth=parseFloat(n.value));break;case\x2042:r&&(r.bulge=parseFloat(n.value));break}return\x20r&&t.vertices.push(r),t}function\x20T(a){let\x20t={...l(a),type:\x22POLYLINE\x22,vertices:[],closed:!1,is3d:!1};for(let\x20r\x20of\x20a)if(r.code===70){let\x20n=parseInt(r.value,10);t.closed=(n&1)!==0,t.is3d=(n&8)!==0}return\x20t}function\x20w(a){let\x20t={...l(a),type:\x22ELLIPSE\x22,center:{x:0,y:0,z:0},majorAxis:{x:1,y:0,z:0},minorRatio:1,startParam:0,endParam:Math.PI*2};for(let\x20r\x20of\x20a)switch(r.code){case\x2010:t.center.x=parseFloat(r.value);break;case\x2020:t.center.y=parseFloat(r.value);break;case\x2030:t.center.z=parseFloat(r.value);break;case\x2011:t.majorAxis.x=parseFloat(r.value);break;case\x2021:t.majorAxis.y=parseFloat(r.value);break;case\x2031:t.majorAxis.z=parseFloat(r.value);break;case\x2040:t.minorRatio=parseFloat(r.value);break;case\x2041:t.startParam=parseFloat(r.value);break;case\x2042:t.endParam=parseFloat(r.value);break}return\x20t}function\x20g(a){let\x20t={...l(a),type:\x22SPLINE\x22,degree:3,flags:0,knots:[],controlPoints:[],fitPoints:[],weights:[]},r=null,n=null;for(let\x20o\x20of\x20a)switch(o.code){case\x2070:t.flags=parseInt(o.value,10);break;case\x2071:t.degree=parseInt(o.value,10);break;case\x2040:t.knots.push(parseFloat(o.value));break;case\x2041:t.weights.push(parseFloat(o.value));break;case\x2010:r&&t.controlPoints.push(r),r={x:parseFloat(o.value),y:0,z:0};break;case\x2020:r&&(r.y=parseFloat(o.value));break;case\x2030:r&&(r.z=parseFloat(o.value));break;case\x2011:n&&t.fitPoints.push(n),n={x:parseFloat(o.value),y:0,z:0};break;case\x2021:n&&(n.y=parseFloat(o.value));break;case\x2031:n&&(n.z=parseFloat(o.value));break;case\x2012:t.startTangent||(t.startTangent={x:0,y:0,z:0}),t.startTangent.x=parseFloat(o.value);break;case\x2022:t.startTangent&&(t.startTangent.y=parseFloat(o.value));break;case\x2032:t.startTangent&&(t.startTangent.z=parseFloat(o.value));break;case\x2013:t.endTangent||(t.endTangent={x:0,y:0,z:0}),t.endTangent.x=parseFloat(o.value);break;case\x2023:t.endTangent&&(t.endTangent.y=parseFloat(o.value));break;case\x2033:t.endTangent&&(t.endTangent.z=parseFloat(o.value));break}return\x20r&&t.controlPoints.push(r),n&&t.fitPoints.push(n),t}function\x20I(a){let\x20t={...l(a),type:\x22TEXT\x22,text:\x22\x22,insertionPoint:{x:0,y:0,z:0},height:1,rotation:0,widthFactor:1,obliqueAngle:0,style:\x22STANDARD\x22,hAlign:0,vAlign:0,generationFlags:0};for(let\x20r\x20of\x20a)switch(r.code){case\x201:t.text=r.value;break;case\x2010:t.insertionPoint.x=parseFloat(r.value);break;case\x2020:t.insertionPoint.y=parseFloat(r.value);break;case\x2030:t.insertionPoint.z=parseFloat(r.value);break;case\x2011:t.alignmentPoint||(t.alignmentPoint={x:0,y:0,z:0}),t.alignmentPoint.x=parseFloat(r.value);break;case\x2021:t.alignmentPoint||(t.alignmentPoint={x:0,y:0,z:0}),t.alignmentPoint.y=parseFloat(r.value);break;case\x2031:t.alignmentPoint||(t.alignmentPoint={x:0,y:0,z:0}),t.alignmentPoint.z=parseFloat(r.value);break;case\x2040:t.height=parseFloat(r.value);break;case\x2041:t.widthFactor=parseFloat(r.value);break;case\x2050:t.rotation=parseFloat(r.value);break;case\x2051:t.obliqueAngle=parseFloat(r.value);break;case\x207:t.style=r.value;break;case\x2071:t.generationFlags=parseInt(r.value,10);break;case\x2072:t.hAlign=parseInt(r.value,10);break;case\x2073:t.vAlign=parseInt(r.value,10);break}return\x20t}function\x20A(a){let\x20t={...l(a),type:\x22MTEXT\x22,text:\x22\x22,insertionPoint:{x:0,y:0,z:0},height:1,width:0,attachmentPoint:1,drawingDirection:1,rotation:0,lineSpacingStyle:1,lineSpacingFactor:1,style:\x22STANDARD\x22,bgFill:0,bgFillScale:1.5},r=[];for(let\x20n\x20of\x20a)switch(n.code){case\x201:r.push(n.value);break;case\x203:r.push(n.value);break;case\x207:t.style=n.value;break;case\x2010:t.insertionPoint.x=parseFloat(n.value);break;case\x2020:t.insertionPoint.y=parseFloat(n.value);break;case\x2030:t.insertionPoint.z=parseFloat(n.value);break;case\x2011:t.textDirection||(t.textDirection={x:0,y:0,z:0}),t.textDirection.x=parseFloat(n.value);break;case\x2021:t.textDirection||(t.textDirection={x:0,y:0,z:0}),t.textDirection.y=parseFloat(n.value);break;case\x2031:t.textDirection||(t.textDirection={x:0,y:0,z:0}),t.textDirection.z=parseFloat(n.value);break;case\x2040:t.height=parseFloat(n.value);break;case\x2041:t.width=parseFloat(n.value);break;case\x2044:t.lineSpacingFactor=parseFloat(n.value);break;case\x2050:t.rotation=parseFloat(n.value);break;case\x2071:t.attachmentPoint=parseInt(n.value,10);break;case\x2072:t.drawingDirection=parseInt(n.value,10);break;case\x2073:t.lineSpacingStyle=parseInt(n.value,10);break;case\x2090:t.bgFill=parseInt(n.value,10);break}return\x20t.text=r.join(\x22\x22),t}function\x20z(a){let\x20t={...l(a),type:\x22INSERT\x22,blockName:\x22\x22,insertionPoint:{x:0,y:0,z:0},scaleX:1,scaleY:1,scaleZ:1,rotation:0,columnCount:1,rowCount:1,columnSpacing:0,rowSpacing:0,attribs:[]};for(let\x20r\x20of\x20a)switch(r.code){case\x202:t.blockName=r.value;break;case\x2010:t.insertionPoint.x=parseFloat(r.value);break;case\x2020:t.insertionPoint.y=parseFloat(r.value);break;case\x2030:t.insertionPoint.z=parseFloat(r.value);break;case\x2041:t.scaleX=parseFloat(r.value);break;case\x2042:t.scaleY=parseFloat(r.value);break;case\x2043:t.scaleZ=parseFloat(r.value);break;case\x2044:t.columnSpacing=parseFloat(r.value);break;case\x2045:t.rowSpacing=parseFloat(r.value);break;case\x2050:t.rotation=parseFloat(r.value);break;case\x2070:t.columnCount=parseInt(r.value,10)||1;break;case\x2071:t.rowCount=parseInt(r.value,10)||1;break}return\x20t}function\x20S(a){let\x20t={...l(a),type:\x22DIMENSION\x22,blockName:\x22\x22,dimStyle:\x22STANDARD\x22,dimType:0,defPoint:{x:0,y:0,z:0},textMidpoint:{x:0,y:0,z:0},textOverride:\x22\x22,rotation:0,textRotation:0,leaderLength:0};for(let\x20r\x20of\x20a)switch(r.code){case\x201:t.textOverride=r.value;break;case\x202:t.blockName=r.value;break;case\x203:t.dimStyle=r.value;break;case\x2010:t.defPoint.x=parseFloat(r.value);break;case\x2020:t.defPoint.y=parseFloat(r.value);break;case\x2030:t.defPoint.z=parseFloat(r.value);break;case\x2011:t.textMidpoint.x=parseFloat(r.value);break;case\x2021:t.textMidpoint.y=parseFloat(r.value);break;case\x2031:t.textMidpoint.z=parseFloat(r.value);break;case\x2013:t.defPoint2||(t.defPoint2={x:0,y:0,z:0}),t.defPoint2.x=parseFloat(r.value);break;case\x2023:t.defPoint2||(t.defPoint2={x:0,y:0,z:0}),t.defPoint2.y=parseFloat(r.value);break;case\x2033:t.defPoint2||(t.defPoint2={x:0,y:0,z:0}),t.defPoint2.z=parseFloat(r.value);break;case\x2014:t.defPoint3||(t.defPoint3={x:0,y:0,z:0}),t.defPoint3.x=parseFloat(r.value);break;case\x2024:t.defPoint3||(t.defPoint3={x:0,y:0,z:0}),t.defPoint3.y=parseFloat(r.value);break;case\x2034:t.defPoint3||(t.defPoint3={x:0,y:0,z:0}),t.defPoint3.z=parseFloat(r.value);break;case\x2015:t.defPoint4||(t.defPoint4={x:0,y:0,z:0}),t.defPoint4.x=parseFloat(r.value);break;case\x2025:t.defPoint4||(t.defPoint4={x:0,y:0,z:0}),t.defPoint4.y=parseFloat(r.value);break;case\x2035:t.defPoint4||(t.defPoint4={x:0,y:0,z:0}),t.defPoint4.z=parseFloat(r.value);break;case\x2016:t.defPoint5||(t.defPoint5={x:0,y:0,z:0}),t.defPoint5.x=parseFloat(r.value);break;case\x2026:t.defPoint5||(t.defPoint5={x:0,y:0,z:0}),t.defPoint5.y=parseFloat(r.value);break;case\x2036:t.defPoint5||(t.defPoint5={x:0,y:0,z:0}),t.defPoint5.z=parseFloat(r.value);break;case\x2040:t.leaderLength=parseFloat(r.value);break;case\x2050:t.rotation=parseFloat(r.value);break;case\x2053:t.textRotation=parseFloat(r.value);break;case\x2070:t.dimType=parseInt(r.value,10);break}return\x20t}function\x20N(a){let\x20t={...l(a),type:\x22HATCH\x22,patternName:\x22\x22,solidFill:!0,associative:!1,hatchStyle:0,patternType:1,patternAngle:0,patternScale:1,boundaryPaths:[]},r=0;for(;r<a.length;){let\x20n=a[r];switch(n.code){case\x202:t.patternName=n.value;break;case\x2041:t.patternScale=parseFloat(n.value);break;case\x2052:t.patternAngle=parseFloat(n.value);break;case\x2070:t.solidFill=n.value===\x221\x22;break;case\x2071:t.associative=n.value===\x221\x22;break;case\x2075:t.hatchStyle=parseInt(n.value,10);break;case\x2076:t.patternType=parseInt(n.value,10);break;case\x2091:{let\x20o=parseInt(n.value,10);r++;for(let\x20c=0;c<o&&r<a.length;c++){let\x20s=W(a,r);t.boundaryPaths.push(s.path),r=s.nextIndex}continue}}r++}return\x20t}function\x20W(a,e){let\x20t=0;return\x20e<a.length&&a[e].code===92&&(t=parseInt(a[e].value,10),e++),(t&2)!==0?X(a,e,t):Y(a,e,t)}function\x20X(a,e,t){let\x20r={type:\x22polyline\x22,vertices:[],bulges:[],flags:t},n=!1;e<a.length&&a[e].code===72&&(n=a[e].value===\x221\x22,e++),e<a.length&&a[e].code===73&&(r.isClosed=a[e].value===\x221\x22,e++);let\x20o=0;e<a.length&&a[e].code===93&&(o=parseInt(a[e].value,10),e++);for(let\x20c=0;c<o&&e<a.length;c++){let\x20s={x:0,y:0};a[e].code===10&&(s.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===20&&(s.y=parseFloat(a[e].value),e++),r.vertices.push(s),n&&e<a.length&&a[e].code===42?(r.bulges.push(parseFloat(a[e].value)),e++):n&&r.bulges.push(0)}for(;e<a.length&&(a[e].code===97||a[e].code===330);)if(a[e].code===97){let\x20c=parseInt(a[e].value,10);e++;for(let\x20s=0;s<c&&e<a.length&&a[e].code===330;s++)e++}else\x20e++;return{path:r,nextIndex:e}}function\x20Y(a,e,t){let\x20r={type:\x22edges\x22,edges:[],flags:t},n=0;e<a.length&&a[e].code===93&&(n=parseInt(a[e].value,10),e++);for(let\x20o=0;o<n&&e<a.length&&a[e].code===72;o++){let\x20c=parseInt(a[e].value,10);switch(e++,c){case\x201:{let\x20s={type:\x22line\x22,start:{x:0,y:0},end:{x:0,y:0}};e<a.length&&a[e].code===10&&(s.start.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===20&&(s.start.y=parseFloat(a[e].value),e++),e<a.length&&a[e].code===11&&(s.end.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===21&&(s.end.y=parseFloat(a[e].value),e++),r.edges.push(s);break}case\x202:{let\x20s={type:\x22arc\x22,center:{x:0,y:0},radius:0,startAngle:0,endAngle:360,ccw:!0};e<a.length&&a[e].code===10&&(s.center.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===20&&(s.center.y=parseFloat(a[e].value),e++),e<a.length&&a[e].code===40&&(s.radius=parseFloat(a[e].value),e++),e<a.length&&a[e].code===50&&(s.startAngle=parseFloat(a[e].value),e++),e<a.length&&a[e].code===51&&(s.endAngle=parseFloat(a[e].value),e++),e<a.length&&a[e].code===73&&(s.ccw=a[e].value===\x221\x22,e++),r.edges.push(s);break}case\x203:{let\x20s={type:\x22ellipse\x22,center:{x:0,y:0},majorAxis:{x:1,y:0},minorRatio:1,startAngle:0,endAngle:Math.PI*2,ccw:!0};e<a.length&&a[e].code===10&&(s.center.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===20&&(s.center.y=parseFloat(a[e].value),e++),e<a.length&&a[e].code===11&&(s.majorAxis.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===21&&(s.majorAxis.y=parseFloat(a[e].value),e++),e<a.length&&a[e].code===40&&(s.minorRatio=parseFloat(a[e].value),e++),e<a.length&&a[e].code===50&&(s.startAngle=parseFloat(a[e].value),e++),e<a.length&&a[e].code===51&&(s.endAngle=parseFloat(a[e].value),e++),e<a.length&&a[e].code===73&&(s.ccw=a[e].value===\x221\x22,e++),r.edges.push(s);break}case\x204:{let\x20s=3,p=[],b=[];e<a.length&&a[e].code===94&&(s=parseInt(a[e].value,10),e++),e<a.length&&a[e].code===73&&e++,e<a.length&&a[e].code===74&&e++;let\x20d=0;e<a.length&&a[e].code===95&&(d=parseInt(a[e].value,10),e++);let\x20x=0;e<a.length&&a[e].code===96&&(x=parseInt(a[e].value,10),e++);for(let\x20f=0;f<d&&e<a.length&&a[e].code===40;f++)p.push(parseFloat(a[e].value)),e++;for(let\x20f=0;f<x&&e<a.length;f++){let\x20y={x:0,y:0};a[e].code===10&&(y.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===20&&(y.y=parseFloat(a[e].value),e++),b.push(y)}r.edges.push({type:\x22spline\x22,degree:s,knots:p,controlPoints:b});break}default:break}}for(;e<a.length&&(a[e].code===97||a[e].code===330);)if(a[e].code===97){let\x20o=parseInt(a[e].value,10);e++;for(let\x20c=0;c<o&&e<a.length&&a[e].code===330;c++)e++}else\x20e++;return{path:r,nextIndex:e}}function\x20L(a){let\x20t={...l(a),type:\x22POINT\x22,position:{x:0,y:0,z:0}};for(let\x20r\x20of\x20a)switch(r.code){case\x2010:t.position.x=parseFloat(r.value);break;case\x2020:t.position.y=parseFloat(r.value);break;case\x2030:t.position.z=parseFloat(r.value);break}return\x20t}function\x20u(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code!==0){e++;continue}let\x20n=r.value;if(n===\x22ENDSEC\x22||n===\x22ENDBLK\x22)return\x20e+1;e++;let\x20o=[];for(;e<a.length&&a[e].code!==0;)o.push(a[e]),e++;switch(n){case\x22LINE\x22:t.push(D(o));break;case\x22CIRCLE\x22:t.push(F(o));break;case\x22ARC\x22:t.push(E(o));break;case\x22LWPOLYLINE\x22:t.push(P(o));break;case\x22ELLIPSE\x22:t.push(w(o));break;case\x22SPLINE\x22:t.push(g(o));break;case\x22TEXT\x22:t.push(I(o));break;case\x22MTEXT\x22:t.push(A(o));break;case\x22INSERT\x22:{let\x20c=z(o);o.some(p=>p.code===66&&p.value===\x221\x22)&&(e=$(a,e,c.attribs)),t.push(c);break}case\x22DIMENSION\x22:t.push(S(o));break;case\x22HATCH\x22:t.push(N(o));break;case\x22POINT\x22:t.push(L(o));break;case\x22POLYLINE\x22:{let\x20c=T(o);e=V(a,e,c.vertices),t.push(c);break}default:break}}return\x20e}function\x20V(a,e,t){for(;e<a.length;){if(a[e].code!==0){e++;continue}let\x20r=a[e].value;if(r===\x22SEQEND\x22)return\x20e+1;if(r===\x22ENDSEC\x22||r===\x22ENDBLK\x22)return\x20e;if(r===\x22VERTEX\x22){e++;let\x20n={x:0,y:0,bulge:0,startWidth:0,endWidth:0};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x2010:n.x=parseFloat(o.value);break;case\x2020:n.y=parseFloat(o.value);break;case\x2042:n.bulge=parseFloat(o.value);break;case\x2040:n.startWidth=parseFloat(o.value);break;case\x2041:n.endWidth=parseFloat(o.value);break}e++}t.push(n)}else\x20for(e++;e<a.length&&a[e].code!==0;)e++}return\x20e}function\x20$(a,e,t){for(;e<a.length;){if(a[e].code!==0){e++;continue}let\x20r=a[e].value;if(r===\x22SEQEND\x22)return\x20e+1;if(r===\x22ENDSEC\x22||r===\x22ENDBLK\x22)return\x20e;if(r===\x22ATTRIB\x22){e++;let\x20n={tag:\x22\x22,text:\x22\x22,insertionPoint:{x:0,y:0,z:0},height:1,rotation:0,style:\x22STANDARD\x22,layer:\x220\x22,color:256};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x201:n.text=o.value;break;case\x202:n.tag=o.value;break;case\x207:n.style=o.value;break;case\x208:n.layer=o.value;break;case\x2010:n.insertionPoint.x=parseFloat(o.value);break;case\x2020:n.insertionPoint.y=parseFloat(o.value);break;case\x2030:n.insertionPoint.z=parseFloat(o.value);break;case\x2040:n.height=parseFloat(o.value);break;case\x2050:n.rotation=parseFloat(o.value);break;case\x2062:n.color=parseInt(o.value,10);break}e++}t.push(n)}else\x20for(e++;e<a.length&&a[e].code!==0;)e++}return\x20e}function\x20B(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDSEC\x22)return\x20e+1;if(r.code===0&&r.value===\x22BLOCK\x22){e++;let\x20n={name:\x22\x22,basePoint:{x:0,y:0,z:0},entities:[],flags:0};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x202:n.name=o.value;break;case\x208:break;case\x2010:n.basePoint.x=parseFloat(o.value);break;case\x2020:n.basePoint.y=parseFloat(o.value);break;case\x2030:n.basePoint.z=parseFloat(o.value);break;case\x2070:n.flags=parseInt(o.value,10);break}e++}e=u(a,e,n.entities),n.name&&!n.name.startsWith(\x22*Model_Space\x22)&&!n.name.startsWith(\x22*Paper_Space\x22)&&t.set(n.name,n)}else\x20e++}return\x20e}var\x20C=\x22AutoCAD\x20Binary\x20DXF\x22,U={ANSI_874:\x22windows-874\x22,ANSI_932:\x22shift_jis\x22,ANSI_936:\x22gbk\x22,ANSI_949:\x22euc-kr\x22,ANSI_950:\x22big5\x22,ANSI_1250:\x22windows-1250\x22,ANSI_1251:\x22windows-1251\x22,ANSI_1252:\x22windows-1252\x22,ANSI_1253:\x22windows-1253\x22,ANSI_1254:\x22windows-1254\x22,ANSI_1255:\x22windows-1255\x22,ANSI_1256:\x22windows-1256\x22,ANSI_1257:\x22windows-1257\x22,ANSI_1258:\x22windows-1258\x22},G=\x22AC1021\x22;function\x20K(){return{acadVersion:\x22\x22,insUnits:0,measurement:0,ltScale:1}}function\x20j(a){return\x20a.replace(/\x5c\x5cU\x5c+([0-9A-Fa-f]{4})/g,(e,t)=>String.fromCodePoint(parseInt(t,16)))}function\x20q(a){if(typeof\x20a==\x22string\x22)return\x20j(a);let\x20e=new\x20Uint8Array(a);if(new\x20TextDecoder(\x22ascii\x22).decode(e.slice(0,C.length))===C)throw\x20new\x20i(\x22Binary\x20DXF\x20format\x20is\x20not\x20supported.\x20Please\x20export\x20as\x20ASCII\x20DXF.\x22);let\x20r=new\x20TextDecoder(\x22utf-8\x22).decode(a),o=r.match(/\x5c$ACADVER[\x5cs\x5cS]*?\x5cn\x5cs*1\x5cs*\x5cn\x5cs*(\x5cS+)/)?.[1]??\x22\x22;if(o&&o<G){let\x20s=r.match(/\x5c$DWGCODEPAGE[\x5cs\x5cS]*?\x5cn\x5cs*3\x5cs*\x5cn\x5cs*(\x5cS+)/)?.[1]??\x22\x22,p=U[s]??\x22windows-1252\x22;p!==\x22utf-8\x22&&(r=new\x20TextDecoder(p).decode(a))}return\x20j(r)}function\x20Q(a,e){for(;e<a.length;){if(a[e].code===0&&a[e].value===\x22ENDSEC\x22)return\x20e+1;e++}return\x20e}function\x20Z(a){a.layers.has(\x220\x22)||a.layers.set(\x220\x22,{name:\x220\x22,color:7,lineType:\x22Continuous\x22,flags:0,lineWeight:-3,isOff:!1,isFrozen:!1,isLocked:!1})}function\x20J(a){for(let[,e]of\x20a.layers)e.isOff=e.color<0,e.isOff&&(e.color=Math.abs(e.color)),e.isFrozen=(e.flags&1)!==0,e.isLocked=(e.flags&4)!==0}var\x20i=class\x20extends\x20Error{constructor(t,r){super(t);this.cause=r;this.name=\x22DxfParseError\x22}};function\x20M(a){if(typeof\x20a==\x22string\x22){if(a.length===0)throw\x20new\x20i(\x22Input\x20is\x20empty.\x20Expected\x20a\x20DXF\x20string\x20or\x20ArrayBuffer.\x22)}else\x20if(a\x20instanceof\x20ArrayBuffer){if(a.byteLength===0)throw\x20new\x20i(\x22Input\x20ArrayBuffer\x20is\x20empty.\x22)}else\x20throw\x20new\x20i(\x22Invalid\x20input\x20type.\x20Expected\x20a\x20string\x20or\x20ArrayBuffer.\x22);let\x20e;try{e=q(a)}catch(n){throw\x20n\x20instanceof\x20i?n:new\x20i(\x22Failed\x20to\x20decode\x20DXF\x20input.\x22,n)}let\x20t;try{t=h(e)}catch(n){throw\x20new\x20i(\x22Failed\x20to\x20tokenize\x20DXF\x20content.\x22,n)}if(t.length===0)throw\x20new\x20i(\x22DXF\x20content\x20produced\x20no\x20tokens.\x20The\x20input\x20may\x20not\x20be\x20a\x20valid\x20DXF\x20file.\x22);let\x20r={header:K(),layers:new\x20Map,lineTypes:new\x20Map,styles:new\x20Map,blocks:new\x20Map,entities:[]};try{let\x20n=0;for(;n<t.length;){let\x20o=t[n];if(o.code===0&&o.value===\x22SECTION\x22){if(n++,n>=t.length)break;let\x20c=t[n].value;switch(n++,c){case\x22HEADER\x22:n=m(t,n,r.header);break;case\x22TABLES\x22:n=k(t,n,r);break;case\x22BLOCKS\x22:n=B(t,n,r.blocks);break;case\x22ENTITIES\x22:n=u(t,n,r.entities);break;default:n=Q(t,n);break}}else{if(o.code===0&&o.value===\x22EOF\x22)break;n++}}}catch(n){throw\x20new\x20i(\x22Failed\x20to\x20parse\x20DXF\x20sections.\x22,n)}return\x20Z(r),J(r),r}self.onmessage=a=>{let{type:e,id:t,payload:r}=a.data;if(e===\x22parse\x22)try{let\x20n=M(r);postMessage({type:\x22result\x22,id:t,doc:n})}catch(n){let\x20o=n\x20instanceof\x20Error?n.message:String(n);postMessage({type:\x22error\x22,id:t,message:o})}};})();\x0a'],{'type':d3(0x204)})),this['worker']=new Worker(this['blobUrl']),this[d3(0x20a)]['onmessage']=c=>{const d4=d3,{type:d,id:f,doc:g,message:h}=c['data'],i=this['pending']['get'](f);i&&(this['pending']['delete'](f),d==='result'?i['resolve'](this[d4(0x15b)](g)):d===d4(0x227)&&i['reject'](new Error(h!=null?h:'Worker\x20parse\x20failed')));},this['worker']['onerror']=c=>{const d5=d3;var d;const f=new Error((d=c['message'])!=null?d:'Worker\x20error');for(const [,g]of this['pending'])g['reject'](f);this[d5(0x14a)]['clear'](),this['destroyWorker']();},this[d3(0x20a)]);}['parse'](c){return new Promise((d,f)=>{const d6=b,g=this['nextId']++;this['pending']['set'](g,{'resolve':d,'reject':f});let h;try{h=this['getWorker']();}catch(k){this[d6(0x14a)]['delete'](g),f(k instanceof Error?k:new Error(String(k)));return;}const i={'type':'parse','id':g,'payload':c};try{c instanceof ArrayBuffer?h[d6(0x1a9)](i,[c]):h['postMessage'](i);}catch(l){this['pending'][d6(0x1da)](g),f(l instanceof Error?l:new Error(String(l)));}});}['terminate'](){const d7=aT;this['destroyWorker']();const c=new Error('Worker\x20terminated');for(const [,d]of this['pending'])d['reject'](c);this['pending'][d7(0x147)]();}[aT(0x26b)](){const d8=aT;this['worker']&&(this[d8(0x20a)]['terminate'](),this[d8(0x20a)]=null),this['blobUrl']&&(URL['revokeObjectURL'](this['blobUrl']),this[d8(0x237)]=null);}[aT(0x15b)](c){const d9=aT;return w(P({},c),{'layers':this['ensureMap'](c['layers']),'lineTypes':this['ensureMap'](c[d9(0x188)]),'styles':this['ensureMap'](c['styles']),'blocks':this['ensureMap'](c['blocks'])});}['ensureMap'](c){const db=aT;return c instanceof Map?c:c&&typeof c==db(0x1a5)?new Map(Object['entries'](c)):new Map();}},Ya=class{constructor(c,d){const dc=aT;p(this,'canvas'),p(this,dc(0x1d3)),p(this,'camera'),p(this,dc(0x1d6)),p(this,'emitter'),p(this,'spatialIndex'),p(this,'measureTool'),p(this,'doc',null),p(this,'options'),p(this,dc(0x1f1)),p(this,'inputHandler'),p(this,dc(0x223)),p(this,'formatConverters'),p(this,'workerManager',null),p(this,'selectedEntityIndex',-0x1),p(this,dc(0x199),!0x1),p(this,'destroyed',!0x1),p(this,'loadGeneration',0x0),p(this,'mouseScreenX',0x0),p(this,dc(0x284),0x0),p(this,'debugEnabled',!0x1),p(this,dc(0x1aa)),p(this,dc(0x12c),null),p(this,'lastDebugStats',null),p(this,'frameTimestamps',[]),p(this,'lastDoRenderTime',0x0),p(this,dc(0x250),0x0),p(this,'parseTime',0x0),p(this,dc(0x1c8),0x0),p(this,'loadedFileName',null),p(this,'loadedFileSize',0x0),p(this,'debugRafId',0x0);var f,g,h,k,m,u,v;this['canvas']=c,this['options']={'theme':(f=d==null?void 0x0:d[dc(0x16d)])!=null?f:'dark','backgroundColor':d==null?void 0x0:d['backgroundColor'],'antialias':(g=d==null?void 0x0:d[dc(0x213)])!=null?g:!0x0,'minZoom':(h=d==null?void 0x0:d['minZoom'])!=null?h:0.0001,'maxZoom':(k=d==null?void 0x0:d['maxZoom'])!=null?k:0x186a0,'zoomSpeed':(m=d==null?void 0x0:d['zoomSpeed'])!=null?m:1.1,'initialTool':(u=d==null?void 0x0:d['initialTool'])!=null?u:dc(0x155)},this['formatConverters']=(v=d==null?void 0x0:d['formatConverters'])!=null?v:[],d!=null&&d['worker']&&(this['workerManager']=new Ba()),d!=null&&d[dc(0x17c)]?(this['debugEnabled']=!0x0,this['debugOptions']=ce(typeof d[dc(0x17c)]=='boolean'?void 0x0:d[dc(0x17c)])):this[dc(0x1aa)]=ce(),this['renderer']=new ma(c),this['camera']=new Nt(this['options']),this['layerManager']=new ka(),this['emitter']=new ya(),this['spatialIndex']=new Ia(),this['measureTool']=new Da(),this['currentTool']=this[dc(0x1dc)]['initialTool'],this['inputHandler']=new Pa(c,this),this['resizeObserver']=new ResizeObserver(()=>this['resize']()),this['resizeObserver'][dc(0x248)](c),c['style'][dc(0x274)]=this['getCursorForTool'](this[dc(0x1f1)]),this['requestRender'](),this['debugEnabled']&&this[dc(0x247)]();}['guardDestroyed'](){const dd=aT;if(this[dd(0x108)])throw new Error('CadViewer:\x20cannot\x20call\x20methods\x20on\x20a\x20destroyed\x20instance.');}['runConverters'](c){return H(this,null,function*(){const de=b;for(const d of this['formatConverters']){let f=!0x1;try{f=d['detect'](c);}catch(g){continue;}if(f)return d[de(0x256)](c);}return null;});}[aT(0x193)](c){return H(this,null,function*(){const df=b;this['guardDestroyed']();const d=++this['loadGeneration'];this['loadedFileName']=c[df(0x1f2)],this[df(0x217)]=c['size'];const f=yield c['arrayBuffer']();if(this['destroyed']||d!==this['loadGeneration'])return;const g=yield this['runConverters'](f);if(this['destroyed']||d!==this['loadGeneration'])return;const h=performance['now'](),i=g!=null?g:f;this[df(0x27f)]=yield this['parseWithOptionalWorker'](i,d),!(this['destroyed']||d!==this['loadGeneration'])&&(this['parseTime']=performance[df(0x1fc)]()-h,this['onDocumentLoaded']());});}['loadBuffer'](c){return H(this,null,function*(){const dg=b;this['guardDestroyed']();const d=++this['loadGeneration'];this['loadedFileName']=null,this[dg(0x217)]=c['byteLength'];const f=yield this['runConverters'](c);if(this['destroyed']||d!==this[dg(0x185)])return;const g=performance['now'](),h=f!=null?f:c;this['doc']=yield this['parseWithOptionalWorker'](h,d),!(this['destroyed']||d!==this['loadGeneration'])&&(this['parseTime']=performance['now']()-g,this['onDocumentLoaded']());});}['parseWithOptionalWorker'](c,d){return H(this,null,function*(){if(!this['workerManager'])return le(c);try{return yield this['workerManager']['parse'](c);}catch(f){if(this['destroyed']||d!==this['loadGeneration'])return null;throw f;}});}[aT(0x149)](c){const dh=aT;if(this['guardDestroyed'](),++this['loadGeneration'],this[dh(0x24f)]=null,this['loadedFileSize']=0x0,this[dh(0x129)]=0x0,!c||!Array['isArray'](c['entities'])||!(c[dh(0x1ee)]instanceof Map))throw new Error('CadViewer:\x20invalid\x20DxfDocument\x20—\x20expected\x20entities\x20array\x20and\x20layers\x20Map.');this['doc']=c,this['onDocumentLoaded']();}['loadString'](c){const di=aT;this['guardDestroyed'](),++this['loadGeneration'],this['loadedFileName']=null,this[di(0x217)]=c['length'];const d=performance['now']();this['doc']=le(c),this['parseTime']=performance['now']()-d,this['onDocumentLoaded']();}['loadArrayBuffer'](c){const dj=aT;this['guardDestroyed'](),++this['loadGeneration'],this[dj(0x24f)]=null,this['loadedFileSize']=c['byteLength'];const d=performance['now']();this[dj(0x27f)]=le(c),this['parseTime']=performance['now']()-d,this['onDocumentLoaded']();}[aT(0x1cb)](){const dk=aT;this['guardDestroyed'](),++this['loadGeneration'],this['doc']=null,this['selectedEntityIndex']=-0x1,this['spatialIndex']['clear'](),Ie(),this['layerManager']['clear'](),this[dk(0x25a)]['deactivate'](),this['requestRender']();}[aT(0x18e)](){const dl=aT;if(!this['doc'])return;this[dl(0x1d6)]['setLayers'](this[dl(0x27f)]['layers']);const c=performance['now']();this['spatialIndex']['build'](this['doc']['entities'],this['doc']),Jt(Qt(this[dl(0x27f)])),this[dl(0x1c8)]=performance[dl(0x1fc)]()-c,this['selectedEntityIndex']=-0x1,this['measureTool']['deactivate'](),this['currentTool']==='measure'&&this['measureTool']['activate'](),this['fitToView']();}['fitToView'](){const dm=aT;if(this['guardDestroyed'](),!this[dm(0x27f)])return;const c=this['computeDocumentBounds']();if(!c)return;const d=this[dm(0x22a)]['getBoundingClientRect']();this[dm(0x17a)]['setTransform'](Dt(d['width'],d['height'],c['minX'],c['minY'],c['maxX'],c['maxY'])),this['requestRender'](),this['emitter'][dm(0x214)]('viewchange',this['camera']['getTransform']());}[aT(0x10a)](c){const dn=aT;this['guardDestroyed']();const d=this['canvas']['getBoundingClientRect'](),f=d['width']/0x2,g=d['height']/0x2,h=c/this['camera']['getTransform']()['scale'];this['camera']['zoom'](f,g,h),this['requestRender'](),this[dn(0x14f)]['emit']('viewchange',this['camera']['getTransform']());}[aT(0x24b)](c,d){const dp=aT;this['guardDestroyed']();const f=this['canvas']['getBoundingClientRect'](),g=this['camera']['getTransform'](),h=c*g['scale']+g['offsetX'],k=-d*g['scale']+g['offsetY'],l=f['width']/0x2-h,m=f['height']/0x2-k;this['camera']['pan'](l,m),this[dp(0x1c5)](),this['emitter']['emit']('viewchange',this['camera']['getTransform']());}['getViewTransform'](){return P({},this['camera']['getTransform']());}['getZoomSpeed'](){const dq=aT;return this['options'][dq(0x1cc)];}['getLayers'](){const dr=aT;return this['layerManager'][dr(0x150)]();}['setLayerVisible'](c,d){const ds=aT;this[ds(0x115)](),this['layerManager'][ds(0x207)](c,d),this['requestRender']();}['setLayerColor'](c,d){const du=aT;this['guardDestroyed'](),this['layerManager']['setColorOverride'](c,d),this[du(0x1c5)]();}['setTheme'](c){this['guardDestroyed'](),this['options']['theme']=c,this['requestRender']();}['getTheme'](){const dv=aT;return this[dv(0x1dc)]['theme'];}['setBackgroundColor'](c){const dw=aT;this['guardDestroyed'](),this['options'][dw(0x120)]=c,this['requestRender']();}['setTool'](c){const dx=aT;this['guardDestroyed'](),this[dx(0x1f1)]==='measure'&&c!==dx(0x234)&&this[dx(0x25a)]['deactivate'](),this['currentTool']=c,this['canvas'][dx(0x24e)]['cursor']=this['getCursorForTool'](c),c===dx(0x234)&&this['measureTool']['activate'](),c!=='select'&&(this[dx(0x18d)]=-0x1),this['requestRender']();}['getTool'](){return this['currentTool'];}['getCursorForTool'](c){const dy=aT;switch(c){case dy(0x155):return dy(0x111);case'select':return'crosshair';case'measure':return'crosshair';}}['on'](c,d){this['emitter']['on'](c,d);}['off'](c,d){this['emitter']['off'](c,d);}[aT(0x18a)](){const dz=aT;return this[dz(0x27f)];}['getEntities'](){const dA=aT;var c,d;return(d=(c=this['doc'])==null?void 0x0:c[dA(0x192)])!=null?d:[];}['resize'](){const dB=aT;this[dB(0x1d3)][dB(0x21f)](),this['requestRender']();}['destroy'](){const dC=aT;var c;this['destroyed']=!0x0,this['stopDebugLoop'](),this[dC(0x15f)]['destroy'](),this['resizeObserver']['disconnect'](),this['renderer'][dC(0x210)](),this['emitter']['removeAllListeners'](),this[dC(0x22e)]['clear'](),Ie(),this['layerManager']['clear'](),(c=this['workerManager'])==null||c['terminate'](),this['workerManager']=null,this['doc']=null;}[aT(0x1c5)](){const dD=aT;if(!this['destroyed']){if(this['debugRafId']){this['doRender']();return;}this[dD(0x199)]||(this['renderPending']=!0x0,requestAnimationFrame(()=>{const dE=dD;this[dE(0x199)]=!0x1,!this['destroyed']&&this[dE(0x164)]();}));}}['doRender'](){const dF=aT;if(!this['doc']){this['renderer']['renderEmpty'](this['options']['theme']);return;}const d=this[dF(0x17a)]['getTransform'](),f=this['renderer']['getWidth'](),g=this['renderer']['getHeight'](),k=this['computeViewportBounds'](d,f,g),m=this[dF(0x22e)]['search'](k['minX'],k['minY'],k['maxX'],k['maxY']),u=new Set();for(let A=0x0;A<m['length'];A++)u['add'](m[A][dF(0x201)]);const v=performance['now'](),x=this['renderer']['render'](this['doc'],d,this['options']['theme'],this[dF(0x1d6)][dF(0x16c)](),this['selectedEntityIndex'],u,this['spatialIndex'][dF(0x166)]());this['lastFrameTime']=performance['now']()-v,this['lastRenderStats']=x;const y=performance['now']();for(y-this[dF(0x173)]>=0x3&&this[dF(0x228)]['push'](y),this['lastDoRenderTime']=y;this['frameTimestamps'][dF(0x281)]>0x0&&this['frameTimestamps'][0x0]<y-0x3e8;)this['frameTimestamps']['shift']();if(this['currentTool']==='measure'&&this['measureTool'][dF(0x269)]['phase']!==dF(0x266)){const C=this['renderer']['getContext']();La(C,this['camera']['getTransform'](),this['measureTool'],this['mouseScreenX'],this[dF(0x284)],this['options']['theme']);}if(this[dF(0x1f6)]){const D=this['renderer']['getContext'](),F=this['buildDebugStats']();this['lastDebugStats']=F,xa(D,F,this['options'][dF(0x16d)],this['debugOptions'],this['renderer'][dF(0x1ce)](),this['renderer']['getHeight']());}}['setDebug'](c){const dG=aT;this['guardDestroyed'](),typeof c=='boolean'?this[dG(0x1f6)]=c:(this['debugEnabled']=!0x0,this['debugOptions']=ce(c)),this['debugEnabled']?this['startDebugLoop']():(this[dG(0x1ec)](),this['requestRender']());}['startDebugLoop'](){if(this['debugRafId'])return;const c=()=>{const dH=b;if(!this['debugEnabled']||this[dH(0x108)]){this['debugRafId']=0x0;return;}this['doRender'](),this['debugRafId']=requestAnimationFrame(c);};this['debugRafId']=requestAnimationFrame(c);}['stopDebugLoop'](){const dI=aT;this[dI(0x181)]&&(cancelAnimationFrame(this['debugRafId']),this['debugRafId']=0x0);}['getDebugStats'](){const dJ=aT;return this[dJ(0x1f6)]?this['lastDebugStats']:null;}['buildDebugStats'](){const dK=aT;var f,g,k,m,v,x,y,A,C;const D=this[dK(0x17a)]['getTransform'](),F=this['renderer']['getWidth'](),I=this['renderer']['getHeight'](),L=this[dK(0x271)](D,F,I);return{'fps':this['frameTimestamps']['length'],'frameTime':this['lastFrameTime'],'renderStats':(f=this['lastRenderStats'])!=null?f:{'entitiesDrawn':0x0,'entitiesSkipped':0x0,'drawCalls':0x0,'byType':{}},'entityCount':(k=(g=this['doc'])==null?void 0x0:g['entities']['length'])!=null?k:0x0,'layerCount':(v=(m=this['doc'])==null?void 0x0:m['layers']['size'])!=null?v:0x0,'visibleLayerCount':this['layerManager']['getVisibleLayerNames']()[dK(0x1a8)],'blockCount':(y=(x=this[dK(0x27f)])==null?void 0x0:x['blocks']['size'])!=null?y:0x0,'parseTime':this['parseTime'],'spatialIndexBuildTime':this['spatialIndexBuildTime'],'totalLoadTime':this['parseTime']+this['spatialIndexBuildTime'],'zoom':D['scale'],'pixelSize':D['scale']>0x0?0x1/D['scale']:0x0,'viewportBounds':L,'fileName':this['loadedFileName'],'fileSize':this['loadedFileSize'],'dxfVersion':(C=(A=this['doc'])==null?void 0x0:A['header'][dK(0x156)])!=null?C:null};}['computeViewportBounds'](c,d,f){const dL=aT,[g,h]=K(c,0x0,f),[i,k]=K(c,d,0x0);return{'minX':Math[dL(0x17f)](g,i),'minY':Math['min'](h,k),'maxX':Math['max'](g,i),'maxY':Math['max'](h,k)};}['handlePan'](c,d){const dM=aT;this['camera']['pan'](c,d),this['requestRender'](),this['emitter'][dM(0x214)]('viewchange',this[dM(0x17a)]['getTransform']());}['handleZoom'](c,d,f){const dN=aT;this['camera'][dN(0x189)](c,d,f),this['requestRender'](),this[dN(0x14f)][dN(0x214)]('viewchange',this['camera']['getTransform']());}['handleClick'](c,d){const dO=aT;if(!this['doc'])return;const f=this['camera']['getTransform'](),[g,h]=K(f,c,d);switch(this[dO(0x1f1)]){case dO(0x226):this['handleSelect'](g,h,c,d);break;case'measure':{const k=Ee(g,h,this[dO(0x27f)]['entities'],this['spatialIndex'],f[dO(0x244)]),l=k[dO(0x281)]>0x0?k[0x0]:null,m=this['measureTool']['handleClick'](g,h,l);this['requestRender'](),m&&this['emitter']['emit']('measure',m);break;}}}['handleMouseMove'](c,d){const dP=aT;var f;if(this['mouseScreenX']=c,this[dP(0x284)]=d,this[dP(0x1f1)]==='measure'&&this['doc']){const g=this['camera']['getTransform'](),[h,i]=K(g,c,d),k=Ee(h,i,this[dP(0x27f)][dP(0x192)],this['spatialIndex'],g['scale']);this[dP(0x25a)]['handleMove']((f=k[0x0])!=null?f:null),this[dP(0x1c5)]();}}['handleSelect'](c,d,f,g){const dQ=aT;if(!this['doc'])return;const h=Ta(c,d,this[dQ(0x27f)]['entities'],this[dQ(0x22e)],this['layerManager']['getVisibleLayerNames'](),this['camera']['getTransform']()[dQ(0x244)]);if(this['selectedEntityIndex']=h,this['requestRender'](),h>=0x0&&this['doc']){const i=this[dQ(0x27f)]['entities'][h];i&&this['emitter'][dQ(0x214)]('select',{'entity':i,'entityIndex':h,'worldPoint':{'x':c,'y':d},'screenPoint':{'x':f,'y':g}});}}['computeDocumentBounds'](){const dR=aT;return this['doc']?this['doc']['header']['extMin']&&this[dR(0x27f)]['header']['extMax']?{'minX':this['doc']['header']['extMin']['x'],'minY':this['doc']['header']['extMin']['y'],'maxX':this[dR(0x27f)]['header'][dR(0x1b9)]['x'],'maxY':this['doc']['header']['extMax']['y']}:Kt(this['doc']['entities']):null;}};export{Ya as CadViewer,Nt as Camera,ma as CanvasRenderer,B as DxfParseError,ya as EventEmitter,ka as LayerManager,Da as MeasureTool,Ia as SpatialIndex,X as THEMES,Ct as aciToHex,Pe as applyTransform,Kt as computeEntitiesBounds,_ as computeEntityBBox,re as drawEntity,Ee as findSnaps,Dt as fitToView,Ta as hitTest,le as parseDxf,xa as renderDebugOverlay,La as renderMeasureOverlay,ue as resolveEntityColor,K as screenToWorld,U as worldToScreen,Lt as zoomAtPoint};