dxf-json 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bundle.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.BlockTypeFlag=void 0,(C=exports.BlockTypeFlag||(exports.BlockTypeFlag={}))[C.None=0]="None",C[C.Anonymous=1]="Anonymous",C[C.NonConstant=2]="NonConstant",C[C.Xref=4]="Xref",C[C.XrefOverlay=8]="XrefOverlay",C[C.ExternallyDependent=16]="ExternallyDependent",C[C.ResolvedOrDependent=32]="ResolvedOrDependent",C[C.ReferencedXref=64]="ReferencedXref",exports.ColorCode=void 0,(M=exports.ColorCode||(exports.ColorCode={}))[M.BYBLOCK=0]="BYBLOCK",M[M.BYLAYER=256]="BYLAYER",exports.DimensionType=void 0,(R=exports.DimensionType||(exports.DimensionType={}))[R.Rotated=0]="Rotated",R[R.Aligned=1]="Aligned",R[R.Angular=2]="Angular",R[R.Diameter=3]="Diameter",R[R.Radius=4]="Radius",R[R.Angular3Point=5]="Angular3Point",R[R.Ordinate=6]="Ordinate",R[R.ReferenceIsExclusive=32]="ReferenceIsExclusive",R[R.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",R[R.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",exports.AttachmentPoint=void 0,(k=exports.AttachmentPoint||(exports.AttachmentPoint={}))[k.TopLeft=1]="TopLeft",k[k.TopCenter=2]="TopCenter",k[k.TopRight=3]="TopRight",k[k.MiddleLeft=4]="MiddleLeft",k[k.MiddleCenter=5]="MiddleCenter",k[k.MiddleRight=6]="MiddleRight",k[k.BottomLeft=7]="BottomLeft",k[k.BottomCenter=8]="BottomCenter",k[k.BottomRight=9]="BottomRight",exports.DimensionTextLineSpacing=void 0,(F=exports.DimensionTextLineSpacing||(exports.DimensionTextLineSpacing={}))[F.AtLeast=1]="AtLeast",F[F.Exact=2]="Exact",exports.DimensionTextVertical=void 0,(w=exports.DimensionTextVertical||(exports.DimensionTextVertical={}))[w.Center=0]="Center",w[w.Above=1]="Above",w[w.Outside=2]="Outside",w[w.JIS=3]="JIS",w[w.Below=4]="Below",exports.DimensionZeroSuppression=void 0,(V=exports.DimensionZeroSuppression||(exports.DimensionZeroSuppression={}))[V.Feet=0]="Feet",V[V.None=1]="None",V[V.Inch=2]="Inch",V[V.FeetAndInch=3]="FeetAndInch",V[V.Leading=4]="Leading",V[V.Trailing=8]="Trailing",V[V.LeadingAndTrailing=12]="LeadingAndTrailing",exports.DimensionZeroSuppressionAngular=void 0,(B=exports.DimensionZeroSuppressionAngular||(exports.DimensionZeroSuppressionAngular={}))[B.None=0]="None",B[B.Leading=1]="Leading",B[B.Trailing=2]="Trailing",B[B.LeadingAndTrailing=3]="LeadingAndTrailing",exports.DimensionTextHorizontal=void 0,(H=exports.DimensionTextHorizontal||(exports.DimensionTextHorizontal={}))[H.Center=0]="Center",H[H.Left=1]="Left",H[H.Right=2]="Right",H[H.OverFirst=3]="OverFirst",H[H.OverSecond=4]="OverSecond",exports.DimensionToleranceTextVertical=void 0,(G=exports.DimensionToleranceTextVertical||(exports.DimensionToleranceTextVertical={}))[G.Bottom=0]="Bottom",G[G.Center=1]="Center",G[G.Top=2]="Top",exports.HatchSolidFill=void 0,(U=exports.HatchSolidFill||(exports.HatchSolidFill={}))[U.PatternFill=0]="PatternFill",U[U.SolidFill=1]="SolidFill",exports.HatchAssociativity=void 0,(W=exports.HatchAssociativity||(exports.HatchAssociativity={}))[W.NonAssociative=0]="NonAssociative",W[W.Associative=1]="Associative",exports.HatchStyle=void 0,(Y=exports.HatchStyle||(exports.HatchStyle={}))[Y.Normal=0]="Normal",Y[Y.Outer=1]="Outer",Y[Y.Ignore=2]="Ignore",exports.HatchPatternType=void 0,(j=exports.HatchPatternType||(exports.HatchPatternType={}))[j.UserDefined=0]="UserDefined",j[j.Predefined=1]="Predefined",j[j.Custom=2]="Custom",exports.HatchBoundaryAnnotation=void 0,(z=exports.HatchBoundaryAnnotation||(exports.HatchBoundaryAnnotation={}))[z.NotAnnotated=0]="NotAnnotated",z[z.Annotated=1]="Annotated",exports.HatchGradientFlag=void 0,(X=exports.HatchGradientFlag||(exports.HatchGradientFlag={}))[X.Solid=0]="Solid",X[X.Gradient=1]="Gradient",exports.HatchGradientColorFlag=void 0,(K=exports.HatchGradientColorFlag||(exports.HatchGradientColorFlag={}))[K.TwoColor=0]="TwoColor",K[K.OneColor=1]="OneColor",exports.BoundaryPathTypeFlag=void 0,(Z=exports.BoundaryPathTypeFlag||(exports.BoundaryPathTypeFlag={}))[Z.Default=0]="Default",Z[Z.External=1]="External",Z[Z.Polyline=2]="Polyline",Z[Z.Derived=4]="Derived",Z[Z.Textbox=8]="Textbox",Z[Z.Outermost=16]="Outermost",exports.BoundaryPathEdgeType=void 0,(J=exports.BoundaryPathEdgeType||(exports.BoundaryPathEdgeType={}))[J.Line=1]="Line",J[J.Circular=2]="Circular",J[J.Elliptic=3]="Elliptic",J[J.Spline=4]="Spline",exports.ObscuredLineTypes=void 0,($=exports.ObscuredLineTypes||(exports.ObscuredLineTypes={}))[$.Off=0]="Off",$[$.Solid=1]="Solid",$[$.Dashed=2]="Dashed",$[$.Dotted=3]="Dotted",$[$.ShotDash=4]="ShotDash",$[$.MediumDash=5]="MediumDash",$[$.LongDash=6]="LongDash",$[$.DoubleShortDash=7]="DoubleShortDash",$[$.DoubleMediumDash=8]="DoubleMediumDash",$[$.DoubleLongDash=9]="DoubleLongDash",$[$.DoubleMediumLongDash=10]="DoubleMediumLongDash",$[$.SparseDot=11]="SparseDot";const e={DRAGVS:"NULL",INTERFERECOLOR:1,INTERFEREOBJVS:"Conceptual",INTERFEREVPVS:"3d Wireframe",OBSLTYPE:exports.ObscuredLineTypes.Off,SHADEDIF:70};function r(e,r,a){return e.code===r&&(null==a||e.value===a)}function a(e,a,t){for(;r(e,102);){var n;let o=e.value;if(e=a.next(),!o.startsWith("{")){console.warn(`Invalid application group, expected to start with "{" but received: ${o}`),function(e,a){for(;!r(e,102)&&!r(e,0,"EOF");)e=a.next()}(e,a),e=a.next();continue}let s=o.slice(1).trim();t.extensions??(t.extensions={}),(n=t.extensions)[s]??(n[s]=[]),function(e,a,t){for(;!r(e,102,"}")&&!r(e,0,"EOF");)t.push(e),e=a.next()}(e,a,t.extensions[s]),e=a.next()}}exports.ReservedLineweight=void 0,(q=exports.ReservedLineweight||(exports.ReservedLineweight={}))[q.Standard=-3]="Standard",q[q.ByLayer=-2]="ByLayer",q[q.ByBlock=-1]="ByBlock",exports.Measurement=void 0,(Q=exports.Measurement||(exports.Measurement={}))[Q.English=0]="English",Q[Q.Metric=1]="Metric",exports.ViewportStatusFlag=void 0,(ee=exports.ViewportStatusFlag||(exports.ViewportStatusFlag={}))[ee.PERSPECTIVE_MODE=1]="PERSPECTIVE_MODE",ee[ee.FRONT_CLIPPING=2]="FRONT_CLIPPING",ee[ee.BACK_CLIPPING=4]="BACK_CLIPPING",ee[ee.UCS_FOLLOW=8]="UCS_FOLLOW",ee[ee.FRONT_CLIP_NOT_AT_EYE=16]="FRONT_CLIP_NOT_AT_EYE",ee[ee.UCS_ICON_VISIBILITY=32]="UCS_ICON_VISIBILITY",ee[ee.UCS_ICON_AT_ORIGIN=64]="UCS_ICON_AT_ORIGIN",ee[ee.FAST_ZOOM=128]="FAST_ZOOM",ee[ee.SNAP_MODE=256]="SNAP_MODE",ee[ee.GRID_MODE=512]="GRID_MODE",ee[ee.ISOMETRIC_SNAP_STYLE=1024]="ISOMETRIC_SNAP_STYLE",ee[ee.HIDE_PLOT_MODE=2048]="HIDE_PLOT_MODE",ee[ee.K_ISO_PAIR_TOP=4096]="K_ISO_PAIR_TOP",ee[ee.K_ISO_PAIR_RIGHT=8192]="K_ISO_PAIR_RIGHT",ee[ee.VIEWPORT_ZOOM_LOCKING=16384]="VIEWPORT_ZOOM_LOCKING",ee[ee.UNUSED=32768]="UNUSED",ee[ee.NON_RECTANGULAR_CLIPPING=65536]="NON_RECTANGULAR_CLIPPING",ee[ee.VIEWPORT_OFF=131072]="VIEWPORT_OFF",ee[ee.GRID_BEYOND_DRAWING_LIMITS=262144]="GRID_BEYOND_DRAWING_LIMITS",ee[ee.ADAPTIVE_GRID_DISPLAY=524288]="ADAPTIVE_GRID_DISPLAY",ee[ee.SUBDIVISION_BELOW_SPACING=1048576]="SUBDIVISION_BELOW_SPACING",ee[ee.GRID_FOLLOWS_WORKPLANE=2097152]="GRID_FOLLOWS_WORKPLANE",exports.RenderMode=void 0,(er=exports.RenderMode||(exports.RenderMode={}))[er.OPTIMIZED_2D=0]="OPTIMIZED_2D",er[er.WIREFRAME=1]="WIREFRAME",er[er.HIDDEN_LINE=2]="HIDDEN_LINE",er[er.FLAT_SHADED=3]="FLAT_SHADED",er[er.GOURAUD_SHADED=4]="GOURAUD_SHADED",er[er.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",er[er.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME",exports.UCSPerViewport=void 0,(ea=exports.UCSPerViewport||(exports.UCSPerViewport={}))[ea.UCS_UNCHANGED=0]="UCS_UNCHANGED",ea[ea.HAS_OWN_UCS=1]="HAS_OWN_UCS",exports.OrthographicType=void 0,(et=exports.OrthographicType||(exports.OrthographicType={}))[et.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",et[et.TOP=1]="TOP",et[et.BOTTOM=2]="BOTTOM",et[et.FRONT=3]="FRONT",et[et.BACK=4]="BACK",et[et.LEFT=5]="LEFT",et[et.RIGHT=6]="RIGHT",exports.ShadePlotMode=void 0,(en=exports.ShadePlotMode||(exports.ShadePlotMode={}))[en.AS_DISPLAYED=0]="AS_DISPLAYED",en[en.WIREFRAME=1]="WIREFRAME",en[en.HIDDEN=2]="HIDDEN",en[en.RENDERED=3]="RENDERED",exports.DefaultLightingType=void 0,(eo=exports.DefaultLightingType||(exports.DefaultLightingType={}))[eo.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",eo[eo.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS";var t,n,o,s,i,c,d,l,p,u,m,E,h,I,f,b,T,D,O,g,x,S,N,y,_,L,A,v,P,C,M,R,k,F,w,V,B,H,G,U,W,Y,j,z,X,K,Z,J,$,q,Q,ee,er,ea,et,en,eo,es,ei,ec,ed,el,ep,eu,em,eE,eh,eI,ef,eb,eT,eD,eO,eg,ex,eS,eN,ey,e_,eL=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215];function eA(e){let r={};e.rewind();let a=e.next(),t=a.code;if(r.x=a.value,(a=e.next()).code!==t+10)throw Error("Expected code for point value to be 20 but got "+a.code+".");return(r.y=a.value,(a=e.next()).code!==t+20)?e.rewind():r.z=a.value,r}const ev=Symbol();function eP(e,a){return(t,n,o)=>{let s=e.reduce((e,r)=>{r.pushContext&&e.push({});let a=e[e.length-1];for(let e of"number"==typeof r.code?[r.code]:r.code){let t=a[e]??(a[e]=[]);r.isMultiple&&t.length,t.push(r)}return e},[{}]),i=!1,c=s.length-1;for(;!r(t,0,"EOF");){let e=function(e,r,a){return e.find((e,t)=>t>=a&&e[r]?.length)}(s,t.code,c),r=e?.[t.code].at(-1);if(!e||!r){n.rewind();break}r.isMultiple||e[t.code].pop();let{name:a,parser:d,isMultiple:l,isReducible:p}=r,u=d?.(t,n,o);if(u===ev){n.rewind();break}if(a){let[e,r]=function(e,r){let a=r.split("."),t=e;for(let e=0;e<a.length-1;++e){let r=a[e];Object.prototype.hasOwnProperty.call(t,r)||(t[r]={}),t=t[r]}return[t,a.at(-1)]}(o,a);l&&!p?(Object.prototype.hasOwnProperty.call(e,r)||(e[r]=[]),e[r].push(u)):e[r]=u}r.pushContext&&(c-=1),i=!0,t=n.next()}return a&&Object.setPrototypeOf(o,a),i}}function eC({value:e}){return e}function eM(e,r){return eA(r)}function eR({value:e}){return!!e}function ek(e,a){if(!r(e,1001))throw Error("XData must starts with code 1001");let t={appName:e.value,value:[]};e=a.next();let n=[t.value];for(;!r(e,0,"EOF")&&e.code>=1e3;){let r=n.at(-1);switch(e.code){case 1002:"{"===e.value?n.push([]):(n.pop(),n.at(-1)?.push(r));break;case 1e3:case 1004:case 1040:case 1070:case 1071:r.push({type:eF(e.code),value:e.value});break;case 1003:r.push({name:"layer",type:eF(e.code),value:e.value});break;case 1005:r.push({name:"handle",type:eF(e.code),value:e.value});break;case 1010:r.push({type:eF(e.code),value:eA(a)});break;case 1011:r.push({name:"worldSpacePosition",type:eF(e.code),value:eA(a)});break;case 1012:r.push({name:"worldSpaceDisplacement",type:eF(e.code),value:eA(a)});break;case 1013:r.push({name:"worldSpaceDirection",type:eF(e.code),value:eA(a)});break;case 1041:r.push({name:"distance",type:eF(e.code),value:e.value});break;case 1042:r.push({name:"scale",type:eF(e.code),value:e.value})}e=a.next()}return a.rewind(),t}function eF(e){switch(e){case 1e3:case 1003:case 1005:return"string";case 1004:return"hex";case 1040:case 1041:case 1042:return"real";case 1070:return"integer";case 1071:return"long";case 1010:case 1011:case 1012:case 1013:return"point";default:return""}}exports.ShadowMode=void 0,(t=exports.ShadowMode||(exports.ShadowMode={}))[t.CAST_AND_RECEIVE=0]="CAST_AND_RECEIVE",t[t.CAST=1]="CAST",t[t.RECEIVE=2]="RECEIVE",t[t.IGNORE=3]="IGNORE";const ew=[{code:1001,name:"xdata",parser:ek},{code:284,name:"shadowMode",parser:eC},{code:390,name:"plotStyleHardId",parser:eC},{code:440,name:"transparency",parser:eC},{code:430,name:"colorName",parser:eC},{code:420,name:"color",parser:eC},{code:310,name:"proxyEntity",parser:eC},{code:92,name:"proxyByte",parser:eC},{code:60,name:"isVisible",parser:eR},{code:48,name:"lineTypeScale",parser:eC},{code:370,name:"lineweight",parser:eC},{code:62,name:"colorIndex",parser(e,r,a){let t=e.value;return a.color=eL[Math.abs(t)],t}},{code:347,name:"materialObjectHardId",parser:eC},{code:6,name:"lineType",parser:eC},{code:8,name:"layer",parser:eC},{code:410,name:"layoutTabName",parser:eC},{code:67,name:"isInPaperSpace",parser:eR},{code:100},{code:330,name:"ownerBlockRecordSoftId",parser:eC},{code:102,parser:a},{code:102,parser:a},{code:102,parser:a},{code:5,name:"handle",parser:eC}];let eV=0;function eB(e){if(!e)throw TypeError("entity cannot be undefined or null");e.handle||(e.handle=eV++)}function eH(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}const eG={extrusionDirection:{x:0,y:0,z:1}},eU=[{code:210,name:"extrusionDirection",parser:eM},{code:51,name:"endAngle",parser:eC},{code:50,name:"startAngle",parser:eC},{code:100,name:"subclassMarker",parser:eC},{code:40,name:"radius",parser:eC},{code:10,name:"center",parser:eM},{code:39,name:"thickness",parser:eC},{code:100},...ew];class eW{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eH(this,"parser",eP(eU,eG))}}function eY(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eH(eW,"ForEntityName","ARC"),(n=es||(es={}))[n.NONE=0]="NONE",n[n.INVISIBLE=1]="INVISIBLE",n[n.CONSTANT=2]="CONSTANT",n[n.VERIFICATION_REQUIRED=4]="VERIFICATION_REQUIRED",n[n.PRESET=8]="PRESET",(o=ei||(ei={}))[o.MULTILINE=2]="MULTILINE",o[o.CONSTANT_MULTILINE=4]="CONSTANT_MULTILINE",(s=ec||(ec={}))[s.NONE=0]="NONE",s[s.MIRRORED_X=2]="MIRRORED_X",s[s.MIRRORED_Y=4]="MIRRORED_Y",(i=ed||(ed={}))[i.LEFT=0]="LEFT",i[i.CENTER=1]="CENTER",i[i.RIGHT=2]="RIGHT",i[i.ALIGNED=3]="ALIGNED",i[i.MIDDLE=4]="MIDDLE",i[i.FIT=5]="FIT",(c=el||(el={}))[c.BASELINE=0]="BASELINE",c[c.BOTTOM=1]="BOTTOM",c[c.MIDDLE=2]="MIDDLE",c[c.TOP=3]="TOP";const ej={thickness:0,rotation:0,xScale:1,obliqueAngle:0,styleName:"STANDARD",generationFlag:0,halign:ed.LEFT,valign:el.BASELINE,extrusionDirection:{x:0,y:0,z:1}},ez=[{code:73,name:"valign",parser:eC},{code:100},{code:210,name:"extrusionDirection",parser:eM},{code:11,name:"endPoint",parser:eM},{code:72,name:"valign",parser:eC},{code:72,name:"halign",parser:eC},{code:71,name:"generationFlag",parser:eC},{code:7,name:"styleName",parser:eC},{code:51,name:"obliqueAngle",parser:eC},{code:41,name:"xScale",parser:eC},{code:50,name:"rotation",parser:eC},{code:1,name:"text",parser:eC},{code:40,name:"textHeight",parser:eC},{code:10,name:"startPoint",parser:eM},{code:39,name:"thickness",parser:eC},{code:100,name:"subclassMarker",parser:eC},...ew];class eX{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eY(this,"parser",eP(ez,ej))}}function eK(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eY(eX,"ForEntityName","TEXT");const eZ={...ej},eJ=[{code:2},{code:40,name:"annotationScale",parser:eC},{code:10,name:"alignmentPoint",parser:eM},{code:340,name:"secondaryAttributesHardIds",isMultiple:!0,parser:eC},{code:70,name:"numberOfSecondaryAttributes",parser:eC},{code:70,name:"isReallyLocked",parser:eR},{code:70,name:"mtextFlag",parser:eC},{code:280,name:"isDuplicatedRecord",parser:eR},{code:100},{code:280,name:"isLocked",parser:eR},{code:74,name:"valign",parser:eC},{code:73},{code:70,name:"attributeFlag",parser:eC},{code:2,name:"tag",parser:eC},{code:3,name:"prompt",parser:eC},{code:280},{code:100,name:"subclassMarker",parser:eC},...ez.slice(2)];class e${parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eK(this,"parser",eP(eJ,eZ))}}function eq(e,r){let a={};for(let t of e){let e=r(t);null!=e&&(a[e]??(a[e]=[]),a[e].push(t))}return a}function*eQ(e,r=1/0,a=1){for(let t=e;t!==r;t+=a)yield t}function e0(e){return{x:e.x??0,y:e.y??0,z:e.z??0}}function e1(e,t,n){if(r(t,102))return a(t,n,e),!0;switch(t.code){case 0:e.type=t.value;break;case 5:e.handle=t.value;break;case 330:e.ownerBlockRecordSoftId=t.value;break;case 67:e.isInPaperSpace=!!t.value;break;case 8:e.layer=t.value;break;case 6:e.lineType=t.value;break;case 347:e.materialObjectHardId=t.value;break;case 62:e.colorIndex=t.value,e.color=eL[Math.abs(t.value)];break;case 370:e.lineweight=t.value;break;case 48:e.lineTypeScale=t.value;break;case 60:e.isVisible=!!t.value;break;case 92:e.proxyByte=t.value;break;case 310:e.proxyEntity=t.value;break;case 100:break;case 420:e.color=t.value;break;case 430:e.transparency=t.value;break;case 390:e.plotStyleHardId=t.value;break;case 284:e.shadowMode=t.value;break;case 1001:e.xdata=ek(t,n);break;default:return!1}return!0}function e4(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eK(e$,"ForEntityName","ATTDEF"),(d=ep||(ep={}))[d.INVISIBLE=1]="INVISIBLE",d[d.CONSTANT=2]="CONSTANT",d[d.REQUIRE_VERIFICATION=4]="REQUIRE_VERIFICATION",d[d.PRESET=8]="PRESET",(l=eu||(eu={}))[l.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",l[l.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",l[l.BY_STYLE=5]="BY_STYLE";const e2={textStyle:"STANDARD",extrusionDirection:{x:0,y:0,z:1},rotation:0},e3=[{code:46,name:"annotationHeight",parser:eC},{code:101,parser(e,r){!function(e){e.rewind();let r=e.next();if(101!==r.code)throw Error("Bad call for skipEmbeddedObject()");do r=e.next();while(0!==r.code);e.rewind()}(r)}},{code:50,name:"columnHeight",parser:eC},{code:49,name:"columnGutter",parser:eC},{code:48,name:"columnWidth",parser:eC},{code:79,name:"columnAutoHeight",parser:eC},{code:78,name:"columnFlowReversed",parser:eC},{code:76,name:"columnCount",parser:eC},{code:75,name:"columnType",parser:eC},{code:441,name:"backgroundFillTransparency",parser:eC},{code:63,name:"backgroundFillColor",parser:eC},{code:45,name:"fillBoxScale",parser:eC},{code:[...eQ(430,440)],name:"backgroundColor",parser:eC},{code:[...eQ(420,430)],name:"backgroundColor",parser:eC},{code:90,name:"backgroundFill",parser:eC},{code:44,name:"lineSpacing",parser:eC},{code:73,name:"lineSpacingStyle",parser:eC},{code:50,name:"rotation",parser:eC},{code:43},{code:42},{code:11,name:"direction",parser:eM},{code:210,name:"extrusionDirection",parser:eM},{code:7,name:"styleName",parser:eC},{code:3,name:"text",parser:(e,r,a)=>(a._code3text=(a._code3text??"")+e.value,a._code3text+(a._code1text??"")),isMultiple:!0,isReducible:!0},{code:1,name:"text",parser:(e,r,a)=>(a._code1text=e.value,(a._code3text??"")+a._code1text)},{code:72,name:"drawingDirection",parser:eC},{code:71,name:"attachmentPoint",parser:eC},{code:41,name:"width",parser:eC},{code:40,name:"height",parser:eC},{code:10,name:"insertionPoint",parser:eM},{code:100,name:"subclassMarker",parser:eC},...ew];class e7{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){e4(this,"parser",eP(e3,e2))}}function e5(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}e4(e7,"ForEntityName","MTEXT");const e6={thickness:0,rotation:0,scale:1,obliqueAngle:0,textStyle:"STANDARD",textGenerationFlag:0,horizontalJustification:0,verticalJustification:0,extrusionDirection:{x:0,y:0,z:1}},e9=[...e3.slice(e3.findIndex(({name:e})=>"columnType"===e),e3.findIndex(({name:e})=>"subclassMarker"===e)+1),{code:100},{code:0,parser(e){if(!r(e,0,"MTEXT"))return ev}},{code:2,name:"definitionTag",parser:eC},{code:40,name:"annotationScale",parser:eC},{code:10,name:"alignmentPoint",parser:eM},{code:340,name:"secondaryAttributesHardId",parser:eC},{code:70,name:"numberOfSecondaryAttributes",parser:eC},{code:70,name:"isReallyLocked",parser:eR},{code:70,name:"mtextFlag",parser:eC},{code:280,name:"isDuplicatedEntriesKeep",parser:eR},{code:100},{code:280,name:"lockPositionFlag",parser:eR},{code:210,name:"extrusionDirection",parser:eM},{code:11,name:"alignmentPoint",parser:eM},{code:74,name:"verticalJustification",parser:eC},{code:72,name:"horizontalJustification",parser:eC},{code:71,name:"textGenerationFlag",parser:eC},{code:7,name:"textStyle",parser:eC},{code:51,name:"obliqueAngle",parser:eC},{code:41,name:"scale",parser:eC},{code:50,name:"rotation",parser:eC},{code:73},{code:70,name:"attributeFlag",parser:eC},{code:2,name:"tag",parser:eC},{code:280},{code:100,name:"subclassMarker",parser:eC},{code:1,name:"text",parser:eC},{code:40,name:"textHeight",parser:eC},{code:10,name:"startPoint",parser:eM},{code:39,name:"thickness",parser:eC},{code:100},...ew];class e8{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){e5(this,"parser",eP(e9,e6))}}function re(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}e5(e8,"ForEntityName","ATTRIB");const rr={thickness:0,extrusionDirection:{x:0,y:0,z:1}},ra=[{code:210,name:"extrusionDirection",parser:eM},{code:40,name:"radius",parser:eC},{code:10,name:"center",parser:eM},{code:39,name:"thickness",parser:eC},{code:100,name:"subclassMarker",parser:eC},...ew];class rt{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){re(this,"parser",eP(ra,rr))}}re(rt,"ForEntityName","CIRCLE");class rn{parseEntity(e,a){let t={};for(;!r(a,0,"EOF");){if(0===a.code){e.rewind();break}!function(e,r,a){switch(r.code){case 100:e.subclassMarker=r.value;break;case 280:e.version=r.value;break;case 2:e.name=r.value;break;case 10:e.definitionPoint=eA(a);break;case 11:e.textPoint=eA(a);break;case 12:e.insertionPoint=eA(a);break;case 13:e.subDefinitionPoint1=eA(a);break;case 14:e.subDefinitionPoint2=eA(a);break;case 15:e.centerPoint=eA(a);break;case 16:e.arcPoint=eA(a);break;case 70:e.dimensionType=r.value;break;case 71:e.attachmentPoint=r.value;break;case 72:e.textLineSpacingStyle=r.value;break;case 40:e.leaderLength=r.value;break;case 41:e.textLineSpacingFactor=r.value;break;case 42:e.measurement=r.value;break;case 1:e.text=r.value;break;case 50:e.rotationAngle=r.value;break;case 52:e.obliqueAngle=r.value;break;case 53:e.textRotation=r.value;break;case 51:e.ocsRotation=r.value;break;case 210:e.extrusionDirection=eA(a);break;case 3:e.styleName=r.value;break;default:e1(e,r,a)}}(t,a,e),a=e.next()}return t}}function ro(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}u="DIMENSION",(p="ForEntityName")in rn?Object.defineProperty(rn,p,{value:u,enumerable:!0,configurable:!0,writable:!0}):rn[p]=u;const rs={extrusionDirection:{x:0,y:0,z:1}},ri=[{code:42,name:"endAngle",parser:eC},{code:41,name:"startAngle",parser:eC},{code:40,name:"axisRatio",parser:eC},{code:210,name:"extrusionDirection",parser:eM},{code:11,name:"majorAxisEndPoint",parser:eM},{code:10,name:"center",parser:eM},{code:100,name:"subclassMarker",parser:eC},...ew];class rc{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ro(this,"parser",eP(ri,rs))}}function rd(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}ro(rc,"ForEntityName","ELLIPSE"),(m=em||(em={}))[m.ShowImage=1]="ShowImage",m[m.ShowImageWhenNotAlignedWithScreen=2]="ShowImageWhenNotAlignedWithScreen",m[m.UseClippingBoundary=4]="UseClippingBoundary",m[m.TransparencyIsOn=8]="TransparencyIsOn",(E=eE||(eE={}))[E.Rectangular=1]="Rectangular",E[E.Polygonal=2]="Polygonal",(h=eh||(eh={}))[h.Outside=0]="Outside",h[h.Inside=1]="Inside";const rl={brightness:50,contrast:50,fade:0,clippingBoundaryPath:[]},rp=[{code:290,name:"clipMode",parser:eC},{code:14,name:"clippingBoundaryPath",isMultiple:!0,parser:eM},{code:91,name:"countBoundaryPoints",parser:eC},{code:71,name:"clippingBoundaryType",parser:eC},{code:360,name:"imageDefReactorHandle",parser:eC},{code:283,name:"fade",parser:eC},{code:282,name:"contrast",parser:eC},{code:281,name:"brightness",parser:eC},{code:280,name:"isClipped",parser:eR},{code:70,name:"flags",parser:eC},{code:340,name:"imageDefHandle",parser:eC},{code:13,name:"imageSize",parser:eM},{code:12,name:"vPixel",parser:eM},{code:11,name:"uPixel",parser:eM},{code:10,name:"position",parser:eM},{code:90,name:"version",parser:eC},{code:100,name:"subclassMarker",parser:eC},...ew];class ru{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rd(this,"parser",eP(rp,rl))}}function rm(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rd(ru,"ForEntityName","IMAGE");const rE={xScale:1,yScale:1,zScale:1,rotation:0,columnCount:0,rowCount:0,columnSpacing:0,rowSpacing:0,extrusionDirection:{x:0,y:0,z:1}},rh=[{code:210,name:"extrusionDirection",parser:eM},{code:45,name:"rowSpacing",parser:eC},{code:44,name:"columnSpacing",parser:eC},{code:71,name:"rowCount",parser:eC},{code:70,name:"columnCount",parser:eC},{code:50,name:"rotation",parser:eC},{code:43,name:"zScale",parser:eC},{code:42,name:"yScale",parser:eC},{code:41,name:"xScale",parser:eC},{code:10,name:"insertionPoint",parser:eM},{code:2,name:"name",parser:eC},{code:66,name:"isVariableAttributes",parser:eR},{code:100,name:"subclassMarker",parser:eC},...ew];class rI{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rm(this,"parser",eP(rh,rE))}}function rf(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rm(rI,"ForEntityName","INSERT");const rb={isArrowheadEnabled:!0},rT=[{code:213,name:"offsetFromAnnotation",parser:eM},{code:212,name:"offsetFromBlock",parser:eM},{code:211,name:"horizontalDirection",parser:eM},{code:210,name:"normal",parser:eM},{code:340,name:"associatedAnnotation",parser:eC},{code:77,name:"byBlockColor",parser:eC},{code:10,name:"vertices",parser:eM,isMultiple:!0},{code:76,name:"numberOfVertices",parser:eC},{code:41,name:"textWidth",parser:eC},{code:40,name:"textHeight",parser:eC},{code:75,name:"isHooklineExists",parser:eR},{code:74,name:"isHooklineSameDirection",parser:eR},{code:73,name:"leaderCreationFlag",parser:eC},{code:72,name:"isSpline",parser:eR},{code:71,name:"isArrowheadEnabled",parser:eR},{code:3,name:"styleName",parser:eC},{code:100,name:"subclassMarker",parser:eC},...ew];class rD{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rf(this,"parser",eP(rT,rb))}}function rO(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rf(rD,"ForEntityName","LEADER"),(I=eI||(eI={}))[I.TextAnnotation=0]="TextAnnotation",I[I.ToleranceAnnotation=1]="ToleranceAnnotation",I[I.BlockReferenceAnnotation=2]="BlockReferenceAnnotation",I[I.NoAnnotation=3]="NoAnnotation";const rg={thickness:0,extrusionDirection:{x:0,y:0,z:1}},rx=[{code:210,name:"extrusionDirection",parser:eM},{code:11,name:"endPoint",parser:eM},{code:10,name:"startPoint",parser:eM},{code:39,name:"thickness",parser:eC},{code:100,name:"subclassMarker",parser:eC},...ew];class rS{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rO(this,"parser",eP(rx,rg))}}rO(rS,"ForEntityName","LINE"),(f=ef||(ef={}))[f.IS_CLOSED=1]="IS_CLOSED",f[f.PLINE_GEN=128]="PLINE_GEN";const rN={flag:0,elevation:0,thickness:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},ry={bulge:0},r_=[{code:42,name:"bulge",parser:eC},{code:41,name:"endWidth",parser:eC},{code:40,name:"startWidth",parser:eC},{code:91,name:"id",parser:eC},{code:20,name:"y",parser:eC},{code:10,name:"x",parser:eC}],rL=[{code:210,name:"extrusionDirection",parser:eM},{code:10,name:"vertices",isMultiple:!0,parser(e,r){let a={};return eP(r_,ry)(e,r,a),a}},{code:39,name:"thickness",parser:eC},{code:38,name:"elevation",parser:eC},{code:43,name:"constantWidth",parser:eC},{code:70,name:"flag",parser:eC},{code:90,name:"numberOfVertices",parser:eC},{code:100,name:"subclassMarker",parser:eC},...ew];class rA{parseEntity(e,r){let a={};return eP(rL,rN)(r,e,a),a}}function rv(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}T="LWPOLYLINE",(b="ForEntityName")in rA?Object.defineProperty(rA,b,{value:T,enumerable:!0,configurable:!0,writable:!0}):rA[b]=T;const rP={thickness:0,extrusionDirection:{x:0,y:0,z:1},angle:0},rC=[{code:50,name:"angle",parser:eC},{code:210,name:"extrusionDirection",parser:eM},{code:39,name:"thickness",parser:eC},{code:10,name:"position",parser:eM},{code:100,name:"subclassMarker",parser:eC},...ew];class rM{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rv(this,"parser",eP(rC,rP))}}function rR(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rv(rM,"ForEntityName","POINT"),(D=eb||(eb={}))[D.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",D[D.CURVE_FIT=2]="CURVE_FIT",D[D.SPLINE_FIT=4]="SPLINE_FIT",D[D.POLYLINE_3D=8]="POLYLINE_3D",D[D.POLYGON_3D=16]="POLYGON_3D",D[D.CLOSED_POLYGON=32]="CLOSED_POLYGON",D[D.POLYFACE=64]="POLYFACE",D[D.CONTINUOUS=128]="CONTINUOUS",(O=eT||(eT={}))[O.NONE=0]="NONE",O[O.QUADRATIC=5]="QUADRATIC",O[O.CUBIC=6]="CUBIC",O[O.BEZIER=8]="BEZIER",(g=eD||(eD={}))[g.CREATED_BY_CURVE_FIT=1]="CREATED_BY_CURVE_FIT",g[g.TANGENT_DEFINED=2]="TANGENT_DEFINED",g[g.NOT_USED=4]="NOT_USED",g[g.CREATED_BY_SPLINE_FIT=8]="CREATED_BY_SPLINE_FIT",g[g.SPLINE_CONTROL_POINT=16]="SPLINE_CONTROL_POINT",g[g.FOR_POLYLINE=32]="FOR_POLYLINE",g[g.FOR_POLYGON=64]="FOR_POLYGON",g[g.POLYFACE=128]="POLYFACE";const rk={startWidth:0,endWidth:0,bulge:0},rF=[{code:91,name:"id",parser:eC},{code:[...eQ(71,75)],name:"faces",isMultiple:!0,parser:eC},{code:50,name:"tangentDirection",parser:eC},{code:70,name:"flag",parser:eC},{code:42,name:"bulge",parser:eC},{code:41,name:"endWidth",parser:eC},{code:40,name:"startWidth",parser:eC},{code:30,name:"z",parser:eC},{code:20,name:"y",parser:eC},{code:10,name:"x",parser:eC},{code:100,name:"subclassMarker",parser:eC},{code:100},...ew];class rw{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rR(this,"parser",eP(rF,rk))}}function rV(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rR(rw,"ForEntityName","VERTEX");const rB={thickness:0,flag:0,startWidth:0,endWidth:0,meshMVertexCount:0,meshNVertexCount:0,surfaceMDensity:0,surfaceNDensity:0,smoothType:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rH=[{code:0,name:"vertices",isMultiple:!0,parser:(e,a)=>r(e,0,"VERTEX")?(e=a.next(),new rw().parseEntity(a,e)):ev},{code:210,name:"extrusionDirection",parser:eM},{code:75,name:"smoothType",parser:eC},{code:74,name:"surfaceNDensity",parser:eC},{code:73,name:"surfaceMDensity",parser:eC},{code:72,name:"meshNVertexCount",parser:eC},{code:71,name:"meshMVertexCount",parser:eC},{code:41,name:"endWidth",parser:eC},{code:40,name:"startWidth",parser:eC},{code:70,name:"flag",parser:eC},{code:39,name:"thickness",parser:eC},{code:30,name:"elevation",parser:eC},{code:20},{code:10},{code:66},{code:100,name:"subclassMarker",parser:eC},...ew];class rG{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rV(this,"parser",eP(rH,rB))}}function rU(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rV(rG,"ForEntityName","POLYLINE");const rW=[{code:11,name:"direction",parser:eM},{code:10,name:"position",parser:eM},{code:100,name:"subclassMarker",parser:eC},...ew];class rY{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rU(this,"parser",eP(rW))}}function rj(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rU(rY,"ForEntityName","RAY");const rz={vertices:[],backLineVertices:[]},rX=[{code:360,name:"geometrySettingHardId",parser:eC},{code:12,name:"backLineVertices",isMultiple:!0,parser:eM},{code:93,name:"numberOfBackLineVertices",parser:eC},{code:11,name:"vertices",isMultiple:!0,parser:eM},{code:92,name:"verticesCount",parser:eC},{code:[63,411],name:"indicatorColor",parser:eC},{code:70,name:"indicatorTransparency",parser:eC},{code:41,name:"bottomHeight",parser:eC},{code:40,name:"topHeight",parser:eC},{code:10,name:"verticalDirection",parser:eM},{code:1,name:"name",parser:eC},{code:91,name:"flag",parser:eC},{code:90,name:"state",parser:eC},{code:100,name:"subclassMarker",parser:eC},...ew];class rK{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rj(this,"parser",eP(rX,rz))}}function rZ(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rj(rK,"ForEntityName","SECTION");const rJ={points:[],thickness:0,extrusionDirection:{x:0,y:0,z:1}},r$=[{code:210,name:"extrusionDirection",parser:eM},{code:39,name:"thickness",parser:eC},{code:[...eQ(10,14)],name:"points",isMultiple:!0,parser:eM},{code:100,name:"subclassMarker",parser:eC},...ew];class rq{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rZ(this,"parser",eP(r$,rJ))}}function rQ(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rZ(rq,"ForEntityName","SOLID"),(x=eO||(eO={}))[x.NONE=0]="NONE",x[x.CLOSED=1]="CLOSED",x[x.PERIODIC=2]="PERIODIC",x[x.RATIONAL=4]="RATIONAL",x[x.PLANAR=8]="PLANAR",x[x.LINEAR=16]="LINEAR";const r0={knotTolerance:1e-6,controlTolerance:1e-6,fitTolerance:1e-9,knotValues:[],controlPoints:[],fitPoints:[]},r1=[{code:11,name:"fitPoints",isMultiple:!0,parser:eM},{code:10,name:"controlPoints",isMultiple:!0,parser:eM},{code:41,name:"weights",isMultiple:!0,parser:eC},{code:40,name:"knots",isMultiple:!0,parser:eC},{code:13,name:"endTangent",parser:eM},{code:12,name:"startTangent",parser:eM},{code:44,name:"fitTolerance",parser:eC},{code:43,name:"controlTolerance",parser:eC},{code:42,name:"knotTolerance",parser:eC},{code:74,name:"numberOfFitPoints",parser:eC},{code:73,name:"numberOfControlPoints",parser:eC},{code:72,name:"numberOfKnots",parser:eC},{code:71,name:"degree",parser:eC},{code:70,name:"flag",parser:eC},{code:210,name:"normal",parser:eM},{code:100,name:"subclassMarker",parser:eC},...ew];class r4{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rQ(this,"parser",eP(r1,r0))}}rQ(r4,"ForEntityName","SPLINE");const r2=[{code:330,name:"sourceBoundaryObjects",parser:eC,isMultiple:!0},{code:97,name:"numberOfSourceBoundaryObjects",parser:eC}],r3=[{code:11,name:"end",parser:eM},{code:10,name:"start",parser:eM}],r7=[{code:73,name:"isCCW",parser:eR},{code:51,name:"endAngle",parser:eC},{code:50,name:"startAngle",parser:eC},{code:40,name:"radius",parser:eC},{code:10,name:"center",parser:eM}],r5=[{code:73,name:"isCCW",parser:eR},{code:51,name:"endAngle",parser:eC},{code:50,name:"startAngle",parser:eC},{code:40,name:"lengthOfMinorAxis",parser:eC},{code:11,name:"end",parser:eM},{code:10,name:"center",parser:eM}],r6=[{code:13,name:"endTangent",parser:eM},{code:12,name:"startTangent",parser:eM},{code:11,name:"fitDatum",isMultiple:!0,parser:eM},{code:97,name:"numberOfFitData",parser:eC},{code:10,name:"controlPoints",isMultiple:!0,parser(e,r){let a={...eA(r),weight:1};return 42===(e=r.next()).code?a.weight=e.value:r.rewind(),a}},{code:40,name:"knots",isMultiple:!0,parser:eC},{code:96,name:"numberOfControlPoints",parser:eC},{code:95,name:"numberOfKnots",parser:eC},{code:74,name:"isPeriodic",parser:eR},{code:73,name:"splineFlag",parser:eC},{code:94,name:"degree",parser:eC}],r9={[exports.BoundaryPathEdgeType.Line]:r3,[exports.BoundaryPathEdgeType.Circular]:r7,[exports.BoundaryPathEdgeType.Elliptic]:r5,[exports.BoundaryPathEdgeType.Spline]:r6},r8=[...r2,{code:72,name:"edges",parser(e,r){let a={type:e.value},t=eP(r9[a.type]);if(!t)throw Error(`Invalid edge type ${a.type}`);return t(e=r.next(),r,a),a},isMultiple:!0},{code:93,name:"numberOfEdges",parser:eC}],ae=[...r2,{code:10,name:"vertices",parser(e,r){let a={...eA(r),bulge:0};return 42===(e=r.next()).code?a.bulge=e.value:r.rewind(),a},isMultiple:!0},{code:93,name:"numberOfVertices",parser:eC},{code:73,name:"isClosed",parser:eR},{code:72,name:"hasBulge",parser:eR}],ar=[{code:49,name:"dashLengths",parser:eC,isMultiple:!0},{code:79,name:"numberOfDashLengths",parser:eC},{code:45,name:"offset",parser:aa},{code:43,name:"base",parser:aa},{code:53,name:"angle",parser:eC}];function aa(e,r){let a=e.code+1,t={x:e.value,y:1};return(e=r.next()).code===a?t.y=e.value:r.rewind(),t}function at(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}const an={extrusionDirection:{x:0,y:0,z:1},gradientRotation:0,colorTint:0},ao=[{code:470},{code:463},{code:462,name:"colorTint",parser:eC},{code:461,name:"gradientDefinition",parser:eC},{code:460,name:"gradientRotation",parser:eC},{code:453,name:"numberOfColors",parser:eC},{code:452,name:"gradientColorFlag",parser:eC},{code:451},{code:450,name:"gradientFlag",parser:eC},{code:10,name:"seedPoints",parser:eM,isMultiple:!0},{code:99},{code:11,name:"offsetVector",parser:eM},{code:98,name:"numberOfSeedPoints",parser:eC},{code:47,name:"pixelSize",parser:eC},{code:53,name:"definitionLines",parser:function(e,r){let a={};return eP(ar)(e,r,a),a},isMultiple:!0},{code:78,name:"numberOfDefinitionLines",parser:eC},{code:77,name:"isDouble",parser:eR},{code:73,name:"isAnnotated",parser:eR},{code:41,name:"patternScale",parser:eC},{code:52,name:"patternAngle",parser:eC},{code:76,name:"patternType",parser:eC},{code:75,name:"hatchStyle",parser:eC},{code:92,name:"boundaryPaths",parser:function(e,r){let a={boundaryPathTypeFlag:e.value},t=a.boundaryPathTypeFlag&exports.BoundaryPathTypeFlag.Polyline;return(e=r.next(),t)?eP(ae)(e,r,a):eP(r8)(e,r,a),a},isMultiple:!0},{code:91,name:"numberOfBoundaryPaths",parser:eC},{code:71,name:"associativity",parser:eC},{code:63,name:"patternFillColor",parser:eC},{code:70,name:"solidFill",parser:eC},{code:2,name:"patternName",parser:eC},{code:210,name:"extrusionDirection",parser:eM},{code:10,name:"elevationPoint",parser:eM},{code:100,name:"subclassMarker",parser:eC,pushContext:!0},...ew];class as{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){at(this,"parser",eP(ao,an))}}at(as,"ForEntityName","HATCH");class ai{parseEntity(e,r){let a={};for(;"EOF"!==r;){if(0===r.code){e.rewind();break}!function(e,r,a){if("EOF"===a)return!1;switch(a.code){case 0:return!1;case 100:e.subclassMarker=a.value;break;case 10:e.viewportCenter=e0(eA(r));break;case 40:e.width=a.value;break;case 41:e.height=a.value;break;case 68:e.status=a.value;break;case 69:e.viewportId=a.value;break;case 12:e.displayCenter=eA(r);break;case 13:e.snapBase=eA(r);break;case 14:e.snapSpacing=eA(r);break;case 15:e.gridSpacing=eA(r);break;case 16:e.viewDirection=e0(eA(r));break;case 17:e.targetPoint=e0(eA(r));break;case 42:e.perspectiveLensLength=a.value;break;case 43:e.frontClipZ=a.value;break;case 44:e.backClipZ=a.value;break;case 45:e.viewHeight=a.value;break;case 50:e.snapAngle=a.value;break;case 51:e.viewTwistAngle=a.value;break;case 72:e.circleZoomPercent=a.value;break;case 331:e.frozenLayerIds??(e.frozenLayerIds=[]),e.frozenLayerIds.push(a.value);break;case 90:e.statusBitFlags=a.value;break;case 340:e.clippingBoundaryId=a.value;break;case 1:e.sheetName=a.value;break;case 281:e.renderMode=a.value;break;case 71:e.ucsPerViewport=a.value;break;case 110:e.ucsOrigin=e0(eA(r));break;case 111:e.ucsXAxis=e0(eA(r));break;case 112:e.ucsYAxis=e0(eA(r));break;case 345:e.ucsId=a.value;break;case 346:e.ucsBaseId=a.value;break;case 79:e.orthographicType=a.value;break;case 146:e.elevation=a.value;break;case 170:e.shadePlotMode=a.value;break;case 61:e.majorGridFrequency=a.value;break;case 332:e.backgroundId=a.value;break;case 333:e.shadePlotId=a.value;break;case 348:e.visualStyleId=a.value;break;case 292:e.isDefaultLighting=!!a.value;break;case 282:e.defaultLightingType=a.value;break;case 141:e.brightness=a.value;break;case 142:e.contrast=a.value;break;case 63:case 421:case 431:e.ambientLightColor=a.value;break;case 361:e.sunId=a.value;break;case 335:case 343:case 344:case 91:e.softPointer=a.value}return!0}(a,e,r)&&e1(a,r,e),r=e.next()}return a}}function ac(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}N="VIEWPORT",(S="ForEntityName")in ai?Object.defineProperty(ai,S,{value:N,enumerable:!0,configurable:!0,writable:!0}):ai[S]=N;const ad={},al=[{code:170,name:"multileaderType",parser:eC},{code:291,name:"doglegEnabled",parser:eR},{code:40,name:"doglegLength",parser:eC},{code:172,name:"contentType",parser:eC},{code:3,name:"textContent",parser:eC},{code:12,name:"textAnchor",parser:eM},{code:344,name:"blockHandle",parser:eC},{code:15,name:"blockPosition",parser:eM},{code:302,name:"leaderSections",parser:function(e,r,a){let t;let n={leaderLines:[]};for(;r.hasNext()&&303!==(t=r.next()).code;){switch(t.code){case 10:n.landingPoint=(t.value,eA(r));break;case 11:n.doglegVector=(t.value,eA(r));break;case 40:n.doglegLength=t.value;break;case 304:n.leaderLines.push(function(e,r,a){let t;let n={vertices:[]};for(;r.hasNext()&&305!==(t=r.next()).code;)10===t.code&&n.vertices.push((t.value,eA(r)));return n}(0,r))}}return n},isMultiple:!0},...ew];class ap{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ac(this,"parser",eP(al,ad))}}ac(ap,"ForEntityName","MULTILEADER");const au=Object.fromEntries([eW,e$,e8,rt,rn,rc,ru,rI,rD,rS,rA,e7,ap,rM,rG,rY,rK,rq,r4,eX,as,ai].map(e=>[e.ForEntityName,new e]));function am(e,a){let t=[];for(;!r(e,0,"EOF");){if(0===e.code){if("ENDBLK"===e.value||"ENDSEC"===e.value){a.rewind();break}let r=au[e.value];if(r){let n=e.value;e=a.next();let o=r.parseEntity(a,e);o.type=n,eB(o),t.push(o)}else console.warn(`Unsupported ENTITY type: ${e.value}`)}e=a.next()}return t}function aE(e,a){let t={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");){if(r(e,0,"BLOCK")){let r=ah(e=a.next(),a);eB(r),r.name&&(t[r.name]=r)}e=a.next()}return t}function ah(e,a){let t={};for(;!r(e,0,"EOF");){if(r(e,0,"ENDBLK")){for(e=a.next();!r(e,0,"EOF");){if(r(e,100,"AcDbBlockEnd"))return t;e=a.next()}break}switch(e.code){case 1:t.xrefPath=e.value;break;case 2:t.name=e.value;break;case 3:t.name2=e.value;break;case 5:t.handle=e.value;break;case 8:t.layer=e.value;break;case 10:t.position=eA(a);break;case 67:t.paperSpace=!!e.value&&1==e.value;break;case 70:0!==e.value&&(t.type=e.value);break;case 100:break;case 330:t.ownerHandle=e.value;break;case 0:t.entities=am(e,a)}e=a.next()}return t}function aI(e,a){let t=null,n={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");)9===e.code?t=e.value:10===e.code?n[t]=eA(a):n[t]=e.value,e=a.next();return n}const af=[{code:333,name:"shadePlotId",parser:eC},{code:149,name:"imageOriginY",parser:eC},{code:148,name:"imageOriginX",parser:eC},{code:147,name:"scaleFactor",parser:eC},{code:78,name:"shadePlotCustomDPI",parser:eC},{code:77,name:"shadePlotResolution",parser:eC},{code:76,name:"shadePlotMode",parser:eC},{code:75,name:"standardScaleType",parser:eC},{code:7,name:"currentStyleSheet",parser:eC},{code:74,name:"plotType",parser:eC},{code:73,name:"plotRotation",parser:eC},{code:72,name:"paperUnit",parser:eC},{code:70,name:"layoutFlag",parser:eC},{code:143,name:"printScaleDenominator",parser:eC},{code:142,name:"printScaleNominator",parser:eC},{code:141,name:"windowAreaYMax",parser:eC},{code:140,name:"windowAreaYMin",parser:eC},{code:49,name:"windowAreaXMax",parser:eC},{code:48,name:"windowAreaXMin",parser:eC},{code:47,name:"plotOriginY",parser:eC},{code:46,name:"plotOriginX",parser:eC},{code:45,name:"paperHeight",parser:eC},{code:44,name:"paperWidth",parser:eC},{code:43,name:"marginTop",parser:eC},{code:42,name:"marginRight",parser:eC},{code:41,name:"marginBottom",parser:eC},{code:40,name:"marginLeft",parser:eC},{code:6,name:"plotViewName",parser:eC},{code:4,name:"paperSize",parser:eC},{code:2,name:"configName",parser:eC},{code:1,name:"pageSetupName",parser:eC},{code:100,name:"subclassMarker",parser:eC}];(y=eg||(eg={}))[y.INCHES=0]="INCHES",y[y.MILLIMETERS=1]="MILLIMETERS",y[y.PIXELS=2]="PIXELS",(_=ex||(ex={}))[_.LAST_SCREEN_DISPLAY=0]="LAST_SCREEN_DISPLAY",_[_.DRAWING_EXTENTS=1]="DRAWING_EXTENTS",_[_.DRAWING_LIMITS=2]="DRAWING_LIMITS",_[_.VIEW_SPECIFIED=3]="VIEW_SPECIFIED",_[_.WINDOW_SPECIFIED=4]="WINDOW_SPECIFIED",_[_.LAYOUT_INFORMATION=5]="LAYOUT_INFORMATION",(L=eS||(eS={}))[L.AS_DISPLAYED=0]="AS_DISPLAYED",L[L.WIREFRAME=1]="WIREFRAME",L[L.HIDDEN=2]="HIDDEN",L[L.RENDERED=3]="RENDERED",(A=eN||(eN={}))[A.DRAFT=0]="DRAFT",A[A.PREVIEW=1]="PREVIEW",A[A.NORMAL=2]="NORMAL",A[A.PRESENTATION=3]="PRESENTATION",A[A.MAXIMUM=4]="MAXIMUM",A[A.CUSTOM=5]="CUSTOM";const ab=[{code:333,name:"shadePlotId",parser:eC},{code:346,name:"orthographicUcsId",parser:eC},{code:345,name:"namedUcsId",parser:eC},{code:331,name:"viewportId",parser:eC},{code:330,name:"paperSpaceTableId",parser:eC},{code:76,name:"orthographicType",parser:eC},{code:17,name:"ucsYAxis",parser:eM},{code:16,name:"ucsXAxis",parser:eM},{code:13,name:"ucsOrigin",parser:eM},{code:146,name:"elevation",parser:eC},{code:15,name:"maxExtent",parser:eM},{code:14,name:"minExtent",parser:eM},{code:12,name:"insertionBase",parser:eM},{code:11,name:"maxLimit",parser:eM},{code:10,name:"minLimit",parser:eM},{code:71,name:"tabOrder",parser:eC},{code:70,name:"controlFlag",parser:eC},{code:1,name:"layoutName",parser:eC},{code:100,name:"subclassMarker",parser:eC},...af];(v=ey||(ey={}))[v.PSLTSCALE=1]="PSLTSCALE",v[v.LIMCHECK=2]="LIMCHECK";const aT=[{code:330,name:"ownerObjectId",parser:eC},{code:102},{code:360,name:"ownerDictionaryIdHard",parser:eC},{code:102},{code:102},{code:330,name:"ownerDictionaryIdSoft",parser:eC},{code:102},{code:102},{code:102},{code:5,name:"handle",parser:eC}],aD=[{code:3,name:"entries",parser:(e,r)=>{let a={name:e.value};return 350===(e=r.next()).code?a.objectId=e.value:r.rewind(),a},isMultiple:!0},{code:281,name:"recordCloneFlag",parser:eC},{code:280,name:"isHardOwned",parser:eR},{code:100,name:"subclassMarker",parser:eC}];function aO(e){return"AcDbDictionary"===e.subclassMarker}(P=e_||(e_={}))[P.NOT_APPLICABLE=0]="NOT_APPLICABLE",P[P.KEEP_EXISTING=1]="KEEP_EXISTING",P[P.USE_CLONE=2]="USE_CLONE",P[P.XREF_VALUE_NAME=3]="XREF_VALUE_NAME",P[P.VALUE_NAME=4]="VALUE_NAME",P[P.UNMANGLE_NAME=5]="UNMANGLE_NAME";const ag={LAYOUT:ab,PLOTSETTINGS:af,DICTIONARY:aD};function ax(e,r){let a=[];for(;0!==e.code||!["EOF","ENDSEC"].includes(e.value);){let t=e.value,n=ag[t];if(0===e.code&&n?.length){let o=eP([...aT,...n]),s={name:t};o(e=r.next(),r,s)?(a.push(s),e=r.peek()):e=r.next()}else e=r.next()}return{byName:eq(a,({name:e})=>e),byTree:function(e){let r=Object.fromEntries(e.map(e=>[e.handle,e]));for(let a of e)(!aO(a)||"0"!==a.ownerDictionaryIdSoft)&&(a.ownerDictionaryIdSoft&&(a.ownerDictionarySoft=r[a.ownerDictionaryIdSoft]),a.ownerDictionaryIdHard&&(a.ownerDictionaryHard=r[a.ownerDictionaryIdHard]),a.ownerObjectId&&(a.ownerObject=r[a.ownerObjectId])),function(e,r){aO(e)&&e.entries&&(e.entries=Object.fromEntries(e.entries.map(({name:e,objectId:a})=>[e,r[a]])))}(a,r);return e[0]}(a)}}const aS=[{code:100,name:"subclassMarker",parser:eC},{code:330,name:"ownerObjectId",parser:eC},{code:102,parser(e,a){for(;!r(e,0,"EOF")&&!r(e,102,"}");)e=a.next()}},{code:5,name:"handle",parser:eC}],aN=eP([{code:310,name:"bmpPreview",parser:eC},{code:281,name:"scalability",parser:eC},{code:280,name:"explodability",parser:eC},{code:70,name:"insertionUnits",parser:eC},{code:340,name:"layoutObjects",parser:eC},{code:2,name:"name",parser:eC},{code:100,name:"subclassMarker",parser:eC},...aS]),ay=eP([...[{name:"DIMPOST",code:3},{name:"DIMAPOST",code:4},{name:"DIMBLK_OBSOLETE",code:5},{name:"DIMBLK1_OBSOLETE",code:6},{name:"DIMBLK2_OBSOLETE",code:7},{name:"DIMSCALE",code:40,defaultValue:1},{name:"DIMASZ",code:41,defaultValue:.25},{name:"DIMEXO",code:42,defaultValue:.625,defaultValueImperial:.0625},{name:"DIMDLI",code:43,defaultValue:3.75,defaultValueImperial:.38},{name:"DIMEXE",code:44,defaultValue:2.25,defaultValueImperial:.28},{name:"DIMRND",code:45,defaultValue:0},{name:"DIMDLE",code:46,defaultValue:0},{name:"DIMTP",code:47,defaultValue:0},{name:"DIMTM",code:48,defaultValue:0},{name:"DIMTXT",code:140,defaultValue:2.5,defaultValueImperial:.28},{name:"DIMCEN",code:141,defaultValue:2.5,defaultValueImperial:.09},{name:"DIMTSZ",code:142,defaultValue:0},{name:"DIMALTF",code:143,defaultValue:25.4},{name:"DIMLFAC",code:144,defaultValue:1},{name:"DIMTVP",code:145,defaultValue:0},{name:"DIMTFAC",code:146,defaultValue:1},{name:"DIMGAP",code:147,defaultValue:.625,defaultValueImperial:.09},{name:"DIMALTRND",code:148,defaultValue:0},{name:"DIMTOL",code:71,defaultValue:0,defaultValueImperial:1},{name:"DIMLIM",code:72,defaultValue:0},{name:"DIMTIH",code:73,defaultValue:0,defaultValueImperial:1},{name:"DIMTOH",code:74,defaultValue:0,defaultValueImperial:1},{name:"DIMSE1",code:75,defaultValue:0},{name:"DIMSE2",code:76,defaultValue:0},{name:"DIMTAD",code:77,defaultValue:exports.DimensionTextVertical.Above,defaultValueImperial:exports.DimensionTextVertical.Center},{name:"DIMZIN",code:78,defaultValue:exports.DimensionZeroSuppression.Trailing,defaultValueImperial:exports.DimensionZeroSuppression.Feet},{name:"DIMAZIN",code:79,defaultValue:exports.DimensionZeroSuppressionAngular.None},{name:"DIMALT",code:170,defaultValue:0},{name:"DIMALTD",code:171,defaultValue:3,defaultValueImperial:2},{name:"DIMTOFL",code:172,defaultValue:1,defaultValueImperial:0},{name:"DIMSAH",code:173,defaultValue:0},{name:"DIMTIX",code:174,defaultValue:0},{name:"DIMSOXD",code:175,defaultValue:0},{name:"DIMCLRD",code:176,defaultValue:0},{name:"DIMCLRE",code:177,defaultValue:0},{name:"DIMCLRT",code:178,defaultValue:0},{name:"DIMADEC",code:179},{name:"DIMUNIT",code:270},{name:"DIMDEC",code:271,defaultValue:2,defaultValueImperial:4},{name:"DIMTDEC",code:272,defaultValue:2,defaultValueImperial:4},{name:"DIMALTU",code:273,defaultValue:2},{name:"DIMALTTD",code:274,defaultValue:2,defaultValueImperial:4},{name:"DIMAUNIT",code:275,defaultValue:0},{name:"DIMFRAC",code:276,defaultValue:0},{name:"DIMLUNIT",code:277,defaultValue:2},{name:"DIMDSEP",code:278,defaultValue:",",defaultValueImperial:"."},{name:"DIMJUST",code:280,defaultValue:exports.DimensionTextHorizontal.Center},{name:"DIMSD1",code:281,defaultValue:0},{name:"DIMSD2",code:282,defaultValue:0},{name:"DIMTOLJ",code:283,defaultValue:exports.DimensionToleranceTextVertical.Center},{name:"DIMTZIN",code:284,defaultValue:exports.DimensionZeroSuppression.Trailing,defaultValueImperial:exports.DimensionZeroSuppression.Feet},{name:"DIMALTZ",code:285,defaultValue:exports.DimensionZeroSuppression.Trailing},{name:"DIMALTTZ",code:286,defaultValue:exports.DimensionZeroSuppression.Trailing},{name:"DIMFIT",code:287},{name:"DIMUPT",code:288,defaultValue:0},{name:"DIMATFIT",code:289,defaultValue:3},{name:"DIMTXSTY",code:340},{name:"DIMLDRBLK",code:341},{name:"DIMBLK",code:342},{name:"DIMBLK1",code:343},{name:"DIMBLK2",code:344},{name:"DIMLWD",code:371,defaultValue:-2},{name:"DIMLWD",code:372,defaultValue:-2}].map(e=>({...e,parser:eC})),{code:70,name:"standardFlag",parser:eC},{code:2,name:"name",parser:eC},{code:100,name:"subclassMarker",parser:eC},{code:105,name:"handle",parser:eC},...aS.filter(e=>5!==e.code)]),a_=eP([{code:347,name:"materialObjectId",parser:eC},{code:390,name:"plotStyleNameObjectId",parser:eC},{code:370,name:"lineweight",parser:eC},{code:290,name:"isPlotting",parser:eR},{code:6,name:"lineType",parser:eC},{code:62,name:"colorIndex",parser:eC},{code:70,name:"standardFlag",parser:eC},{code:2,name:"name",parser:eC},{code:100,name:"subclassMarker",parser:eC},...aS]),aL=eP([{code:9,name:"text",parser:eC},{code:45,name:"offsetY",parser:eC},{code:44,name:"offsetX",parser:eC},{code:50,name:"rotation",parser:eC},{code:46,name:"scale",parser:eC},{code:340,name:"styleObjectId",parser:eC},{code:75,name:"shapeNumber",parser:eC},{code:74,name:"elementTypeFlag",parser:eC},{code:49,name:"elementLength",parser:eC}],{elementTypeFlag:0,elementLength:0}),aA={BLOCK_RECORD:aN,DIMSTYLE:ay,LAYER:a_,LTYPE:eP([{code:49,name:"pattern",parser(e,r){let a={};return aL(e,r,a),a},isMultiple:!0},{code:40,name:"totalPatternLength",parser:eC},{code:73,name:"numberOfLineTypes",parser:eC},{code:72,parser:eC},{code:3,name:"description",parser:eC},{code:70,name:"standardFlag",parser:eC},{code:2,name:"name",parser:eC},{code:100,name:"subclassMarker",parser:eC},...aS]),STYLE:eP([{code:1e3,name:"extendedFont",parser:eC},{code:1001},{code:4,name:"bigFont",parser:eC},{code:3,name:"font",parser:eC},{code:42,name:"lastHeight",parser:eC},{code:71,name:"textGenerationFlag",parser:eC},{code:50,name:"obliqueAngle",parser:eC},{code:41,name:"widthFactor",parser:eC},{code:40,name:"fixedTextHeight",parser:eC},{code:70,name:"standardFlag",parser:eC},{code:2,name:"name",parser:eC},{code:100,name:"subclassMarker",parser:eC},...aS]),VPORT:eP([{code:[63,421,431],name:"ambientColor",parser:eC},{code:142,name:"contrast",parser:eC},{code:141,name:"brightness",parser:eC},{code:282,name:"defaultLightingType",parser:eC},{code:292,name:"isDefaultLightingOn",parser:eR},{code:348,name:"visualStyleObjectId",parser:eC},{code:333,name:"shadePlotObjectId",parser:eC},{code:332,name:"backgroundObjectId",parser:eC},{code:61,name:"majorGridLines",parser:eC},{code:170,name:"shadePlotSetting",parser:eC},{code:146,name:"elevation",parser:eC},{code:79,name:"orthographicType",parser:eC},{code:112,name:"ucsYAxis",parser:eM},{code:111,name:"ucsXAxis",parser:eM},{code:110,name:"ucsOrigin",parser:eM},{code:74,name:"ucsIconSetting",parser:eC},{code:71,name:"viewMode",parser:eC},{code:281,name:"renderMode",parser:eC},{code:1,name:"styleSheet",parser:eC},{code:[331,441],name:"frozenLayers",parser:eC,isMultiple:!0},{code:72,name:"circleSides",parser:eC},{code:51,name:"viewTwistAngle",parser:eC},{code:50,name:"snapRotationAngle",parser:eC},{code:45,name:"viewHeight",parser:eC},{code:44,name:"backClippingPlane",parser:eC},{code:43,name:"frontClippingPlane",parser:eC},{code:42,name:"lensLength",parser:eC},{code:17,name:"viewTarget",parser:eM},{code:16,name:"viewDirectionFromTarget",parser:eM},{code:15,name:"gridSpacing",parser:eM},{code:14,name:"snapSpacing",parser:eM},{code:13,name:"snapBasePoint",parser:eM},{code:12,name:"center",parser:eM},{code:11,name:"upperRightCorner",parser:eM},{code:10,name:"lowerLeftCorner",parser:eM},{code:70,name:"standardFlag",parser:eC},{code:2,name:"name",parser:eC},{code:100,name:"subclassMarker",parser:eC},...aS])},av=eP([{code:70,name:"maxNumberOfEntries",parser:eC},{code:100,name:"subclassMarker",parser:eC},{code:330,name:"ownerObjectId",parser:eC},{code:102},{code:360,isMultiple:!0},{code:102},{code:5,name:"handle",parser:eC},{code:2,name:"name",parser:eC}]);function aP(e,a){let t={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");){if(r(e,0,"TABLE")){e=a.next();let r={entries:[]};av(e,a,r),t[r.name]=r}if(r(e,0)&&!r(e,0,"ENDTAB")){let r=e.value;e=a.next();let n=aA[r];if(!n){a.debug&&console.warn(`parseTable: Invalid table name '${r}'`),e=a.next();continue}let o={};n(e,a,o),t[r]?.entries.push(o)}e=a.next()}return t}function aC(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class aM{next(){if(!this.hasNext())return this._eof?this.debug&&console.warn("Cannot call 'next' after EOF group has been read"):this.debug&&console.warn("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer]),{code:0,value:"EOF"};let e=parseInt(this._data[this._pointer++],10),a=aR(e,this._data[this._pointer++]),t={code:e,value:a};return r(t,0,"EOF")&&(this._eof=!0),this.lastReadGroup=t,t}peek(){if(!this.hasNext()){if(this._eof)throw Error("Cannot call 'next' after EOF group has been read");throw Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer])}let e={code:parseInt(this._data[this._pointer]),value:0};return e.value=aR(e.code,this._data[this._pointer+1]),e}rewind(e){e=e||1,this._pointer=this._pointer-2*e}hasNext(){return!this._eof&&!(this._pointer>this._data.length-2)}isEOF(){return this._eof}constructor(e,r){aC(this,"_pointer",void 0),aC(this,"_data",void 0),aC(this,"_eof",void 0),aC(this,"debug",!0),aC(this,"lastReadGroup",{code:0,value:0}),this._pointer=0,this._data=e,this._eof=!1,this.debug=r??!0}}function aR(e,r){return e<=9?r:e>=10&&e<=59?parseFloat(r.trim()):e>=60&&e<=99?parseInt(r.trim()):e>=100&&e<=109?r:e>=110&&e<=149?parseFloat(r.trim()):e>=160&&e<=179?parseInt(r.trim()):e>=210&&e<=239?parseFloat(r.trim()):e>=270&&e<=289?parseInt(r.trim()):e>=290&&e<=299?function(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}(r.trim()):e>=300&&e<=369?r:e>=370&&e<=389?parseInt(r.trim()):e>=390&&e<=399?r:e>=400&&e<=409?parseInt(r.trim()):e>=410&&e<=419?r:e>=420&&e<=429?parseInt(r.trim()):e>=430&&e<=439?r:e>=440&&e<=459?parseInt(r.trim()):e>=460&&e<=469?parseFloat(r.trim()):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?r:e>=1010&&e<=1059?parseFloat(r.trim()):e>=1060&&e<=1071?parseInt(r.trim()):(console.log("WARNING: Group code does not have a defined type: %j",{code:e,value:r}),r)}function ak(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class aF{parseStart(e){this.startCode=e.code}setPoint(e){if(this.code=e.code,this.value=e.value,this.startCode===this.code&&(this.x=this.value),this.startCode===this.code+10)this.y=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}if(this.startCode===this.code+20)this.z=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}}reset(){this.x=void 0,this.y=void 0,this.z=void 0}constructor(){ak(this,"point",{}),ak(this,"startCode",0),ak(this,"code",0),ak(this,"value",0),ak(this,"x",void 0),ak(this,"y",void 0),ak(this,"z",void 0)}}function aw(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class aV{constructor(){aw(this,"encoding","utf-8"),aw(this,"encodingFailureFatal",!1)}}class aB extends Error{constructor(e,r,a){let t=`[Line ${r}]: ${e}`;a?.cause&&(t+=`
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.BlockTypeFlag=void 0,(M=exports.BlockTypeFlag||(exports.BlockTypeFlag={}))[M.None=0]="None",M[M.Anonymous=1]="Anonymous",M[M.NonConstant=2]="NonConstant",M[M.Xref=4]="Xref",M[M.XrefOverlay=8]="XrefOverlay",M[M.ExternallyDependent=16]="ExternallyDependent",M[M.ResolvedOrDependent=32]="ResolvedOrDependent",M[M.ReferencedXref=64]="ReferencedXref",exports.ColorCode=void 0,(R=exports.ColorCode||(exports.ColorCode={}))[R.BYBLOCK=0]="BYBLOCK",R[R.BYLAYER=256]="BYLAYER",exports.DimensionType=void 0,(k=exports.DimensionType||(exports.DimensionType={}))[k.Rotated=0]="Rotated",k[k.Aligned=1]="Aligned",k[k.Angular=2]="Angular",k[k.Diameter=3]="Diameter",k[k.Radius=4]="Radius",k[k.Angular3Point=5]="Angular3Point",k[k.Ordinate=6]="Ordinate",k[k.ReferenceIsExclusive=32]="ReferenceIsExclusive",k[k.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",k[k.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",exports.AttachmentPoint=void 0,(F=exports.AttachmentPoint||(exports.AttachmentPoint={}))[F.TopLeft=1]="TopLeft",F[F.TopCenter=2]="TopCenter",F[F.TopRight=3]="TopRight",F[F.MiddleLeft=4]="MiddleLeft",F[F.MiddleCenter=5]="MiddleCenter",F[F.MiddleRight=6]="MiddleRight",F[F.BottomLeft=7]="BottomLeft",F[F.BottomCenter=8]="BottomCenter",F[F.BottomRight=9]="BottomRight",exports.DimensionTextLineSpacing=void 0,(w=exports.DimensionTextLineSpacing||(exports.DimensionTextLineSpacing={}))[w.AtLeast=1]="AtLeast",w[w.Exact=2]="Exact",exports.DimensionTextVertical=void 0,(V=exports.DimensionTextVertical||(exports.DimensionTextVertical={}))[V.Center=0]="Center",V[V.Above=1]="Above",V[V.Outside=2]="Outside",V[V.JIS=3]="JIS",V[V.Below=4]="Below",exports.DimensionZeroSuppression=void 0,(B=exports.DimensionZeroSuppression||(exports.DimensionZeroSuppression={}))[B.Feet=0]="Feet",B[B.None=1]="None",B[B.Inch=2]="Inch",B[B.FeetAndInch=3]="FeetAndInch",B[B.Leading=4]="Leading",B[B.Trailing=8]="Trailing",B[B.LeadingAndTrailing=12]="LeadingAndTrailing",exports.DimensionZeroSuppressionAngular=void 0,(H=exports.DimensionZeroSuppressionAngular||(exports.DimensionZeroSuppressionAngular={}))[H.None=0]="None",H[H.Leading=1]="Leading",H[H.Trailing=2]="Trailing",H[H.LeadingAndTrailing=3]="LeadingAndTrailing",exports.DimensionTextHorizontal=void 0,(G=exports.DimensionTextHorizontal||(exports.DimensionTextHorizontal={}))[G.Center=0]="Center",G[G.Left=1]="Left",G[G.Right=2]="Right",G[G.OverFirst=3]="OverFirst",G[G.OverSecond=4]="OverSecond",exports.DimensionToleranceTextVertical=void 0,(U=exports.DimensionToleranceTextVertical||(exports.DimensionToleranceTextVertical={}))[U.Bottom=0]="Bottom",U[U.Center=1]="Center",U[U.Top=2]="Top",exports.HatchSolidFill=void 0,(W=exports.HatchSolidFill||(exports.HatchSolidFill={}))[W.PatternFill=0]="PatternFill",W[W.SolidFill=1]="SolidFill",exports.HatchAssociativity=void 0,(Y=exports.HatchAssociativity||(exports.HatchAssociativity={}))[Y.NonAssociative=0]="NonAssociative",Y[Y.Associative=1]="Associative",exports.HatchStyle=void 0,(j=exports.HatchStyle||(exports.HatchStyle={}))[j.Normal=0]="Normal",j[j.Outer=1]="Outer",j[j.Ignore=2]="Ignore",exports.HatchPatternType=void 0,(X=exports.HatchPatternType||(exports.HatchPatternType={}))[X.UserDefined=0]="UserDefined",X[X.Predefined=1]="Predefined",X[X.Custom=2]="Custom",exports.HatchBoundaryAnnotation=void 0,(z=exports.HatchBoundaryAnnotation||(exports.HatchBoundaryAnnotation={}))[z.NotAnnotated=0]="NotAnnotated",z[z.Annotated=1]="Annotated",exports.HatchGradientFlag=void 0,(K=exports.HatchGradientFlag||(exports.HatchGradientFlag={}))[K.Solid=0]="Solid",K[K.Gradient=1]="Gradient",exports.HatchGradientColorFlag=void 0,(Z=exports.HatchGradientColorFlag||(exports.HatchGradientColorFlag={}))[Z.TwoColor=0]="TwoColor",Z[Z.OneColor=1]="OneColor",exports.BoundaryPathTypeFlag=void 0,(J=exports.BoundaryPathTypeFlag||(exports.BoundaryPathTypeFlag={}))[J.Default=0]="Default",J[J.External=1]="External",J[J.Polyline=2]="Polyline",J[J.Derived=4]="Derived",J[J.Textbox=8]="Textbox",J[J.Outermost=16]="Outermost",exports.BoundaryPathEdgeType=void 0,($=exports.BoundaryPathEdgeType||(exports.BoundaryPathEdgeType={}))[$.Line=1]="Line",$[$.Circular=2]="Circular",$[$.Elliptic=3]="Elliptic",$[$.Spline=4]="Spline",exports.ObscuredLineTypes=void 0,(q=exports.ObscuredLineTypes||(exports.ObscuredLineTypes={}))[q.Off=0]="Off",q[q.Solid=1]="Solid",q[q.Dashed=2]="Dashed",q[q.Dotted=3]="Dotted",q[q.ShotDash=4]="ShotDash",q[q.MediumDash=5]="MediumDash",q[q.LongDash=6]="LongDash",q[q.DoubleShortDash=7]="DoubleShortDash",q[q.DoubleMediumDash=8]="DoubleMediumDash",q[q.DoubleLongDash=9]="DoubleLongDash",q[q.DoubleMediumLongDash=10]="DoubleMediumLongDash",q[q.SparseDot=11]="SparseDot";const e={DRAGVS:"NULL",INTERFERECOLOR:1,INTERFEREOBJVS:"Conceptual",INTERFEREVPVS:"3d Wireframe",OBSLTYPE:exports.ObscuredLineTypes.Off,SHADEDIF:70};function r(e,r,a){return e.code===r&&(null==a||e.value===a)}function a(e,a,t){for(;r(e,102);){var n;let o=e.value;if(e=a.next(),!o.startsWith("{")){console.warn(`Invalid application group, expected to start with "{" but received: ${o}`),function(e,a){for(;!r(e,102)&&!r(e,0,"EOF");)e=a.next()}(e,a),e=a.next();continue}let s=o.slice(1).trim();t.extensions??(t.extensions={}),(n=t.extensions)[s]??(n[s]=[]),function(e,a,t){for(;!r(e,102,"}")&&!r(e,0,"EOF");)t.push(e),e=a.next()}(e,a,t.extensions[s]),e=a.next()}}exports.ReservedLineweight=void 0,(Q=exports.ReservedLineweight||(exports.ReservedLineweight={}))[Q.Standard=-3]="Standard",Q[Q.ByLayer=-2]="ByLayer",Q[Q.ByBlock=-1]="ByBlock",exports.Measurement=void 0,(ee=exports.Measurement||(exports.Measurement={}))[ee.English=0]="English",ee[ee.Metric=1]="Metric",exports.ViewportStatusFlag=void 0,(er=exports.ViewportStatusFlag||(exports.ViewportStatusFlag={}))[er.PERSPECTIVE_MODE=1]="PERSPECTIVE_MODE",er[er.FRONT_CLIPPING=2]="FRONT_CLIPPING",er[er.BACK_CLIPPING=4]="BACK_CLIPPING",er[er.UCS_FOLLOW=8]="UCS_FOLLOW",er[er.FRONT_CLIP_NOT_AT_EYE=16]="FRONT_CLIP_NOT_AT_EYE",er[er.UCS_ICON_VISIBILITY=32]="UCS_ICON_VISIBILITY",er[er.UCS_ICON_AT_ORIGIN=64]="UCS_ICON_AT_ORIGIN",er[er.FAST_ZOOM=128]="FAST_ZOOM",er[er.SNAP_MODE=256]="SNAP_MODE",er[er.GRID_MODE=512]="GRID_MODE",er[er.ISOMETRIC_SNAP_STYLE=1024]="ISOMETRIC_SNAP_STYLE",er[er.HIDE_PLOT_MODE=2048]="HIDE_PLOT_MODE",er[er.K_ISO_PAIR_TOP=4096]="K_ISO_PAIR_TOP",er[er.K_ISO_PAIR_RIGHT=8192]="K_ISO_PAIR_RIGHT",er[er.VIEWPORT_ZOOM_LOCKING=16384]="VIEWPORT_ZOOM_LOCKING",er[er.UNUSED=32768]="UNUSED",er[er.NON_RECTANGULAR_CLIPPING=65536]="NON_RECTANGULAR_CLIPPING",er[er.VIEWPORT_OFF=131072]="VIEWPORT_OFF",er[er.GRID_BEYOND_DRAWING_LIMITS=262144]="GRID_BEYOND_DRAWING_LIMITS",er[er.ADAPTIVE_GRID_DISPLAY=524288]="ADAPTIVE_GRID_DISPLAY",er[er.SUBDIVISION_BELOW_SPACING=1048576]="SUBDIVISION_BELOW_SPACING",er[er.GRID_FOLLOWS_WORKPLANE=2097152]="GRID_FOLLOWS_WORKPLANE",exports.RenderMode=void 0,(ea=exports.RenderMode||(exports.RenderMode={}))[ea.OPTIMIZED_2D=0]="OPTIMIZED_2D",ea[ea.WIREFRAME=1]="WIREFRAME",ea[ea.HIDDEN_LINE=2]="HIDDEN_LINE",ea[ea.FLAT_SHADED=3]="FLAT_SHADED",ea[ea.GOURAUD_SHADED=4]="GOURAUD_SHADED",ea[ea.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",ea[ea.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME",exports.UCSPerViewport=void 0,(et=exports.UCSPerViewport||(exports.UCSPerViewport={}))[et.UCS_UNCHANGED=0]="UCS_UNCHANGED",et[et.HAS_OWN_UCS=1]="HAS_OWN_UCS",exports.OrthographicType=void 0,(en=exports.OrthographicType||(exports.OrthographicType={}))[en.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",en[en.TOP=1]="TOP",en[en.BOTTOM=2]="BOTTOM",en[en.FRONT=3]="FRONT",en[en.BACK=4]="BACK",en[en.LEFT=5]="LEFT",en[en.RIGHT=6]="RIGHT",exports.ShadePlotMode=void 0,(eo=exports.ShadePlotMode||(exports.ShadePlotMode={}))[eo.AS_DISPLAYED=0]="AS_DISPLAYED",eo[eo.WIREFRAME=1]="WIREFRAME",eo[eo.HIDDEN=2]="HIDDEN",eo[eo.RENDERED=3]="RENDERED",exports.DefaultLightingType=void 0,(es=exports.DefaultLightingType||(exports.DefaultLightingType={}))[es.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",es[es.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS";var t,n,o,s,i,c,d,l,p,u,m,E,h,I,f,b,T,D,O,g,x,S,y,N,_,L,A,v,P,C,M,R,k,F,w,V,B,H,G,U,W,Y,j,X,z,K,Z,J,$,q,Q,ee,er,ea,et,en,eo,es,ei,ec,ed,el,ep,eu,em,eE,eh,eI,ef,eb,eT,eD,eO,eg,ex,eS,ey,eN,e_,eL,eA=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215];function ev(e){let r={};e.rewind();let a=e.next(),t=a.code;if(r.x=a.value,(a=e.next()).code!==t+10)throw Error("Expected code for point value to be 20 but got "+a.code+".");return(r.y=a.value,(a=e.next()).code!==t+20)?e.rewind():r.z=a.value,r}const eP=Symbol();function eC(e,a){return(t,n,o)=>{let s=e.reduce((e,r)=>{r.pushContext&&e.push({});let a=e[e.length-1];for(let e of"number"==typeof r.code?[r.code]:r.code){let t=a[e]??(a[e]=[]);r.isMultiple&&t.length,t.push(r)}return e},[{}]),i=!1,c=s.length-1;for(;!r(t,0,"EOF");){let e=function(e,r,a){return e.find((e,t)=>t>=a&&e[r]?.length)}(s,t.code,c),r=e?.[t.code].at(-1);if(!e||!r){n.rewind();break}r.isMultiple||e[t.code].pop();let{name:a,parser:d,isMultiple:l,isReducible:p}=r,u=d?.(t,n,o);if(u===eP){n.rewind();break}if(a){let[e,r]=function(e,r){let a=r.split("."),t=e;for(let e=0;e<a.length-1;++e){let r=a[e];Object.prototype.hasOwnProperty.call(t,r)||(t[r]={}),t=t[r]}return[t,a.at(-1)]}(o,a);l&&!p?(Object.prototype.hasOwnProperty.call(e,r)||(e[r]=[]),e[r].push(u)):e[r]=u}r.pushContext&&(c-=1),i=!0,t=n.next()}return a&&Object.setPrototypeOf(o,a),i}}function eM({value:e}){return e}function eR(e,r){return ev(r)}function ek({value:e}){return!!e}const eF=[{code:1001,name:"xdata",parser:ew}];function ew(e,a){if(!r(e,1001))throw Error("XData must starts with code 1001");let t={appName:e.value,value:[]};e=a.next();let n=[t.value];for(;!r(e,0,"EOF")&&e.code>=1e3;){let r=n.at(-1);switch(e.code){case 1002:"{"===e.value?n.push([]):(n.pop(),n.at(-1)?.push(r));break;case 1e3:case 1004:case 1040:case 1070:case 1071:r.push({type:eV(e.code),value:e.value});break;case 1003:r.push({name:"layer",type:eV(e.code),value:e.value});break;case 1005:r.push({name:"handle",type:eV(e.code),value:e.value});break;case 1010:r.push({type:eV(e.code),value:ev(a)});break;case 1011:r.push({name:"worldSpacePosition",type:eV(e.code),value:ev(a)});break;case 1012:r.push({name:"worldSpaceDisplacement",type:eV(e.code),value:ev(a)});break;case 1013:r.push({name:"worldSpaceDirection",type:eV(e.code),value:ev(a)});break;case 1041:r.push({name:"distance",type:eV(e.code),value:e.value});break;case 1042:r.push({name:"scale",type:eV(e.code),value:e.value})}e=a.next()}return a.rewind(),t}function eV(e){switch(e){case 1e3:case 1003:case 1005:return"string";case 1004:return"hex";case 1040:case 1041:case 1042:return"real";case 1070:return"integer";case 1071:return"long";case 1010:case 1011:case 1012:case 1013:return"point";default:return""}}exports.ShadowMode=void 0,(t=exports.ShadowMode||(exports.ShadowMode={}))[t.CAST_AND_RECEIVE=0]="CAST_AND_RECEIVE",t[t.CAST=1]="CAST",t[t.RECEIVE=2]="RECEIVE",t[t.IGNORE=3]="IGNORE";const eB=[...eF,{code:284,name:"shadowMode",parser:eM},{code:390,name:"plotStyleHardId",parser:eM},{code:440,name:"transparency",parser:eM},{code:430,name:"colorName",parser:eM},{code:420,name:"color",parser:eM},{code:310,name:"proxyEntity",parser:eM},{code:92,name:"proxyByte",parser:eM},{code:60,name:"isVisible",parser:ek},{code:48,name:"lineTypeScale",parser:eM},{code:370,name:"lineweight",parser:eM},{code:62,name:"colorIndex",parser(e,r,a){let t=e.value;return a.color=eA[Math.abs(t)],t}},{code:347,name:"materialObjectHardId",parser:eM},{code:6,name:"lineType",parser:eM},{code:8,name:"layer",parser:eM},{code:410,name:"layoutTabName",parser:eM},{code:67,name:"isInPaperSpace",parser:ek},{code:100},{code:330,name:"ownerBlockRecordSoftId",parser:eM},{code:102,parser:a},{code:102,parser:a},{code:102,parser:a},{code:5,name:"handle",parser:eM}];let eH=0;function eG(e){if(!e)throw TypeError("entity cannot be undefined or null");e.handle||(e.handle=eH++)}function eU(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}const eW={extrusionDirection:{x:0,y:0,z:1}},eY=[{code:210,name:"extrusionDirection",parser:eR},{code:51,name:"endAngle",parser:eM},{code:50,name:"startAngle",parser:eM},{code:100,name:"subclassMarker",parser:eM},{code:40,name:"radius",parser:eM},{code:10,name:"center",parser:eR},{code:39,name:"thickness",parser:eM},{code:100},...eB];class ej{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eU(this,"parser",eC(eY,eW))}}function eX(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eU(ej,"ForEntityName","ARC"),(n=ei||(ei={}))[n.NONE=0]="NONE",n[n.INVISIBLE=1]="INVISIBLE",n[n.CONSTANT=2]="CONSTANT",n[n.VERIFICATION_REQUIRED=4]="VERIFICATION_REQUIRED",n[n.PRESET=8]="PRESET",(o=ec||(ec={}))[o.MULTILINE=2]="MULTILINE",o[o.CONSTANT_MULTILINE=4]="CONSTANT_MULTILINE",(s=ed||(ed={}))[s.NONE=0]="NONE",s[s.MIRRORED_X=2]="MIRRORED_X",s[s.MIRRORED_Y=4]="MIRRORED_Y",(i=el||(el={}))[i.LEFT=0]="LEFT",i[i.CENTER=1]="CENTER",i[i.RIGHT=2]="RIGHT",i[i.ALIGNED=3]="ALIGNED",i[i.MIDDLE=4]="MIDDLE",i[i.FIT=5]="FIT",(c=ep||(ep={}))[c.BASELINE=0]="BASELINE",c[c.BOTTOM=1]="BOTTOM",c[c.MIDDLE=2]="MIDDLE",c[c.TOP=3]="TOP";const ez={thickness:0,rotation:0,xScale:1,obliqueAngle:0,styleName:"STANDARD",generationFlag:0,halign:el.LEFT,valign:ep.BASELINE,extrusionDirection:{x:0,y:0,z:1}},eK=[{code:73,name:"valign",parser:eM},{code:100},{code:210,name:"extrusionDirection",parser:eR},{code:11,name:"endPoint",parser:eR},{code:72,name:"valign",parser:eM},{code:72,name:"halign",parser:eM},{code:71,name:"generationFlag",parser:eM},{code:7,name:"styleName",parser:eM},{code:51,name:"obliqueAngle",parser:eM},{code:41,name:"xScale",parser:eM},{code:50,name:"rotation",parser:eM},{code:1,name:"text",parser:eM},{code:40,name:"textHeight",parser:eM},{code:10,name:"startPoint",parser:eR},{code:39,name:"thickness",parser:eM},{code:100,name:"subclassMarker",parser:eM},...eB];class eZ{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eX(this,"parser",eC(eK,ez))}}function eJ(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eX(eZ,"ForEntityName","TEXT");const e$={...ez},eq=[{code:2},{code:40,name:"annotationScale",parser:eM},{code:10,name:"alignmentPoint",parser:eR},{code:340,name:"secondaryAttributesHardIds",isMultiple:!0,parser:eM},{code:70,name:"numberOfSecondaryAttributes",parser:eM},{code:70,name:"isReallyLocked",parser:ek},{code:70,name:"mtextFlag",parser:eM},{code:280,name:"isDuplicatedRecord",parser:ek},{code:100},{code:280,name:"isLocked",parser:ek},{code:74,name:"valign",parser:eM},{code:73},{code:70,name:"attributeFlag",parser:eM},{code:2,name:"tag",parser:eM},{code:3,name:"prompt",parser:eM},{code:280},{code:100,name:"subclassMarker",parser:eM},...eK.slice(2)];class eQ{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eJ(this,"parser",eC(eq,e$))}}function e0(e,r){let a={};for(let t of e){let e=r(t);null!=e&&(a[e]??(a[e]=[]),a[e].push(t))}return a}function*e1(e,r=1/0,a=1){for(let t=e;t!==r;t+=a)yield t}function e4(e){return{x:e.x??0,y:e.y??0,z:e.z??0}}function e2(e,t,n){if(r(t,102))return a(t,n,e),!0;switch(t.code){case 0:e.type=t.value;break;case 5:e.handle=t.value;break;case 330:e.ownerBlockRecordSoftId=t.value;break;case 67:e.isInPaperSpace=!!t.value;break;case 8:e.layer=t.value;break;case 6:e.lineType=t.value;break;case 347:e.materialObjectHardId=t.value;break;case 62:e.colorIndex=t.value,e.color=eA[Math.abs(t.value)];break;case 370:e.lineweight=t.value;break;case 48:e.lineTypeScale=t.value;break;case 60:e.isVisible=!!t.value;break;case 92:e.proxyByte=t.value;break;case 310:e.proxyEntity=t.value;break;case 100:break;case 420:e.color=t.value;break;case 430:e.transparency=t.value;break;case 390:e.plotStyleHardId=t.value;break;case 284:e.shadowMode=t.value;break;case 1001:e.xdata=ew(t,n);break;default:return!1}return!0}function e3(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eJ(eQ,"ForEntityName","ATTDEF"),(d=eu||(eu={}))[d.INVISIBLE=1]="INVISIBLE",d[d.CONSTANT=2]="CONSTANT",d[d.REQUIRE_VERIFICATION=4]="REQUIRE_VERIFICATION",d[d.PRESET=8]="PRESET",(l=em||(em={}))[l.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",l[l.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",l[l.BY_STYLE=5]="BY_STYLE";const e7={textStyle:"STANDARD",extrusionDirection:{x:0,y:0,z:1},rotation:0},e5=[{code:46,name:"annotationHeight",parser:eM},{code:101,parser(e,r){!function(e){e.rewind();let r=e.next();if(101!==r.code)throw Error("Bad call for skipEmbeddedObject()");do r=e.next();while(0!==r.code);e.rewind()}(r)}},{code:50,name:"columnHeight",parser:eM},{code:49,name:"columnGutter",parser:eM},{code:48,name:"columnWidth",parser:eM},{code:79,name:"columnAutoHeight",parser:eM},{code:78,name:"columnFlowReversed",parser:eM},{code:76,name:"columnCount",parser:eM},{code:75,name:"columnType",parser:eM},{code:441,name:"backgroundFillTransparency",parser:eM},{code:63,name:"backgroundFillColor",parser:eM},{code:45,name:"fillBoxScale",parser:eM},{code:[...e1(430,440)],name:"backgroundColor",parser:eM},{code:[...e1(420,430)],name:"backgroundColor",parser:eM},{code:90,name:"backgroundFill",parser:eM},{code:44,name:"lineSpacing",parser:eM},{code:73,name:"lineSpacingStyle",parser:eM},{code:50,name:"rotation",parser:eM},{code:43},{code:42},{code:11,name:"direction",parser:eR},{code:210,name:"extrusionDirection",parser:eR},{code:7,name:"styleName",parser:eM},{code:3,name:"text",parser:(e,r,a)=>(a._code3text=(a._code3text??"")+e.value,a._code3text+(a._code1text??"")),isMultiple:!0,isReducible:!0},{code:1,name:"text",parser:(e,r,a)=>(a._code1text=e.value,(a._code3text??"")+a._code1text)},{code:72,name:"drawingDirection",parser:eM},{code:71,name:"attachmentPoint",parser:eM},{code:41,name:"width",parser:eM},{code:40,name:"height",parser:eM},{code:10,name:"insertionPoint",parser:eR},{code:100,name:"subclassMarker",parser:eM},...eB];class e6{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){e3(this,"parser",eC(e5,e7))}}function e9(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}e3(e6,"ForEntityName","MTEXT");const e8={thickness:0,rotation:0,scale:1,obliqueAngle:0,textStyle:"STANDARD",textGenerationFlag:0,horizontalJustification:0,verticalJustification:0,extrusionDirection:{x:0,y:0,z:1}},re=[...e5.slice(e5.findIndex(({name:e})=>"columnType"===e),e5.findIndex(({name:e})=>"subclassMarker"===e)+1),{code:100},{code:0,parser(e){if(!r(e,0,"MTEXT"))return eP}},{code:2,name:"definitionTag",parser:eM},{code:40,name:"annotationScale",parser:eM},{code:10,name:"alignmentPoint",parser:eR},{code:340,name:"secondaryAttributesHardId",parser:eM},{code:70,name:"numberOfSecondaryAttributes",parser:eM},{code:70,name:"isReallyLocked",parser:ek},{code:70,name:"mtextFlag",parser:eM},{code:280,name:"isDuplicatedEntriesKeep",parser:ek},{code:100},{code:280,name:"lockPositionFlag",parser:ek},{code:210,name:"extrusionDirection",parser:eR},{code:11,name:"alignmentPoint",parser:eR},{code:74,name:"verticalJustification",parser:eM},{code:72,name:"horizontalJustification",parser:eM},{code:71,name:"textGenerationFlag",parser:eM},{code:7,name:"textStyle",parser:eM},{code:51,name:"obliqueAngle",parser:eM},{code:41,name:"scale",parser:eM},{code:50,name:"rotation",parser:eM},{code:73},{code:70,name:"attributeFlag",parser:eM},{code:2,name:"tag",parser:eM},{code:280},{code:100,name:"subclassMarker",parser:eM},{code:1,name:"text",parser:eM},{code:40,name:"textHeight",parser:eM},{code:10,name:"startPoint",parser:eR},{code:39,name:"thickness",parser:eM},{code:100},...eB];class rr{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){e9(this,"parser",eC(re,e8))}}function ra(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}e9(rr,"ForEntityName","ATTRIB");const rt={thickness:0,extrusionDirection:{x:0,y:0,z:1}},rn=[{code:210,name:"extrusionDirection",parser:eR},{code:40,name:"radius",parser:eM},{code:10,name:"center",parser:eR},{code:39,name:"thickness",parser:eM},{code:100,name:"subclassMarker",parser:eM},...eB];class ro{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ra(this,"parser",eC(rn,rt))}}ra(ro,"ForEntityName","CIRCLE");class rs{parseEntity(e,a){let t={};for(;!r(a,0,"EOF");){if(0===a.code){e.rewind();break}!function(e,r,a){switch(r.code){case 100:e.subclassMarker=r.value;break;case 280:e.version=r.value;break;case 2:e.name=r.value;break;case 10:e.definitionPoint=ev(a);break;case 11:e.textPoint=ev(a);break;case 12:e.insertionPoint=ev(a);break;case 13:e.subDefinitionPoint1=ev(a);break;case 14:e.subDefinitionPoint2=ev(a);break;case 15:e.centerPoint=ev(a);break;case 16:e.arcPoint=ev(a);break;case 70:e.dimensionType=r.value;break;case 71:e.attachmentPoint=r.value;break;case 72:e.textLineSpacingStyle=r.value;break;case 40:e.leaderLength=r.value;break;case 41:e.textLineSpacingFactor=r.value;break;case 42:e.measurement=r.value;break;case 1:e.text=r.value;break;case 50:e.rotationAngle=r.value;break;case 52:e.obliqueAngle=r.value;break;case 53:e.textRotation=r.value;break;case 51:e.ocsRotation=r.value;break;case 210:e.extrusionDirection=ev(a);break;case 3:e.styleName=r.value;break;default:e2(e,r,a)}}(t,a,e),a=e.next()}return t}}function ri(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}u="DIMENSION",(p="ForEntityName")in rs?Object.defineProperty(rs,p,{value:u,enumerable:!0,configurable:!0,writable:!0}):rs[p]=u;const rc={extrusionDirection:{x:0,y:0,z:1}},rd=[{code:42,name:"endAngle",parser:eM},{code:41,name:"startAngle",parser:eM},{code:40,name:"axisRatio",parser:eM},{code:210,name:"extrusionDirection",parser:eR},{code:11,name:"majorAxisEndPoint",parser:eR},{code:10,name:"center",parser:eR},{code:100,name:"subclassMarker",parser:eM},...eB];class rl{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ri(this,"parser",eC(rd,rc))}}function rp(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}ri(rl,"ForEntityName","ELLIPSE"),(m=eE||(eE={}))[m.ShowImage=1]="ShowImage",m[m.ShowImageWhenNotAlignedWithScreen=2]="ShowImageWhenNotAlignedWithScreen",m[m.UseClippingBoundary=4]="UseClippingBoundary",m[m.TransparencyIsOn=8]="TransparencyIsOn",(E=eh||(eh={}))[E.Rectangular=1]="Rectangular",E[E.Polygonal=2]="Polygonal",(h=eI||(eI={}))[h.Outside=0]="Outside",h[h.Inside=1]="Inside";const ru={brightness:50,contrast:50,fade:0,clippingBoundaryPath:[]},rm=[{code:290,name:"clipMode",parser:eM},{code:14,name:"clippingBoundaryPath",isMultiple:!0,parser:eR},{code:91,name:"countBoundaryPoints",parser:eM},{code:71,name:"clippingBoundaryType",parser:eM},{code:360,name:"imageDefReactorHandle",parser:eM},{code:283,name:"fade",parser:eM},{code:282,name:"contrast",parser:eM},{code:281,name:"brightness",parser:eM},{code:280,name:"isClipped",parser:ek},{code:70,name:"flags",parser:eM},{code:340,name:"imageDefHandle",parser:eM},{code:13,name:"imageSize",parser:eR},{code:12,name:"vPixel",parser:eR},{code:11,name:"uPixel",parser:eR},{code:10,name:"position",parser:eR},{code:90,name:"version",parser:eM},{code:100,name:"subclassMarker",parser:eM},...eB];class rE{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rp(this,"parser",eC(rm,ru))}}function rh(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rp(rE,"ForEntityName","IMAGE");const rI={xScale:1,yScale:1,zScale:1,rotation:0,columnCount:0,rowCount:0,columnSpacing:0,rowSpacing:0,extrusionDirection:{x:0,y:0,z:1}},rf=[{code:210,name:"extrusionDirection",parser:eR},{code:45,name:"rowSpacing",parser:eM},{code:44,name:"columnSpacing",parser:eM},{code:71,name:"rowCount",parser:eM},{code:70,name:"columnCount",parser:eM},{code:50,name:"rotation",parser:eM},{code:43,name:"zScale",parser:eM},{code:42,name:"yScale",parser:eM},{code:41,name:"xScale",parser:eM},{code:10,name:"insertionPoint",parser:eR},{code:2,name:"name",parser:eM},{code:66,name:"isVariableAttributes",parser:ek},{code:100,name:"subclassMarker",parser:eM},...eB];class rb{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rh(this,"parser",eC(rf,rI))}}function rT(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rh(rb,"ForEntityName","INSERT");const rD={isArrowheadEnabled:!0},rO=[{code:213,name:"offsetFromAnnotation",parser:eR},{code:212,name:"offsetFromBlock",parser:eR},{code:211,name:"horizontalDirection",parser:eR},{code:210,name:"normal",parser:eR},{code:340,name:"associatedAnnotation",parser:eM},{code:77,name:"byBlockColor",parser:eM},{code:10,name:"vertices",parser:eR,isMultiple:!0},{code:76,name:"numberOfVertices",parser:eM},{code:41,name:"textWidth",parser:eM},{code:40,name:"textHeight",parser:eM},{code:75,name:"isHooklineExists",parser:ek},{code:74,name:"isHooklineSameDirection",parser:ek},{code:73,name:"leaderCreationFlag",parser:eM},{code:72,name:"isSpline",parser:ek},{code:71,name:"isArrowheadEnabled",parser:ek},{code:3,name:"styleName",parser:eM},{code:100,name:"subclassMarker",parser:eM},...eB];class rg{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rT(this,"parser",eC(rO,rD))}}function rx(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rT(rg,"ForEntityName","LEADER"),(I=ef||(ef={}))[I.TextAnnotation=0]="TextAnnotation",I[I.ToleranceAnnotation=1]="ToleranceAnnotation",I[I.BlockReferenceAnnotation=2]="BlockReferenceAnnotation",I[I.NoAnnotation=3]="NoAnnotation";const rS={thickness:0,extrusionDirection:{x:0,y:0,z:1}},ry=[{code:210,name:"extrusionDirection",parser:eR},{code:11,name:"endPoint",parser:eR},{code:10,name:"startPoint",parser:eR},{code:39,name:"thickness",parser:eM},{code:100,name:"subclassMarker",parser:eM},...eB];class rN{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rx(this,"parser",eC(ry,rS))}}rx(rN,"ForEntityName","LINE"),(f=eb||(eb={}))[f.IS_CLOSED=1]="IS_CLOSED",f[f.PLINE_GEN=128]="PLINE_GEN";const r_={flag:0,elevation:0,thickness:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rL={bulge:0},rA=[{code:42,name:"bulge",parser:eM},{code:41,name:"endWidth",parser:eM},{code:40,name:"startWidth",parser:eM},{code:91,name:"id",parser:eM},{code:20,name:"y",parser:eM},{code:10,name:"x",parser:eM}],rv=[{code:210,name:"extrusionDirection",parser:eR},{code:10,name:"vertices",isMultiple:!0,parser(e,r){let a={};return eC(rA,rL)(e,r,a),a}},{code:39,name:"thickness",parser:eM},{code:38,name:"elevation",parser:eM},{code:43,name:"constantWidth",parser:eM},{code:70,name:"flag",parser:eM},{code:90,name:"numberOfVertices",parser:eM},{code:100,name:"subclassMarker",parser:eM},...eB];class rP{parseEntity(e,r){let a={};return eC(rv,r_)(r,e,a),a}}function rC(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}T="LWPOLYLINE",(b="ForEntityName")in rP?Object.defineProperty(rP,b,{value:T,enumerable:!0,configurable:!0,writable:!0}):rP[b]=T;const rM={thickness:0,extrusionDirection:{x:0,y:0,z:1},angle:0},rR=[{code:50,name:"angle",parser:eM},{code:210,name:"extrusionDirection",parser:eR},{code:39,name:"thickness",parser:eM},{code:10,name:"position",parser:eR},{code:100,name:"subclassMarker",parser:eM},...eB];class rk{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rC(this,"parser",eC(rR,rM))}}function rF(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rC(rk,"ForEntityName","POINT"),(D=eT||(eT={}))[D.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",D[D.CURVE_FIT=2]="CURVE_FIT",D[D.SPLINE_FIT=4]="SPLINE_FIT",D[D.POLYLINE_3D=8]="POLYLINE_3D",D[D.POLYGON_3D=16]="POLYGON_3D",D[D.CLOSED_POLYGON=32]="CLOSED_POLYGON",D[D.POLYFACE=64]="POLYFACE",D[D.CONTINUOUS=128]="CONTINUOUS",(O=eD||(eD={}))[O.NONE=0]="NONE",O[O.QUADRATIC=5]="QUADRATIC",O[O.CUBIC=6]="CUBIC",O[O.BEZIER=8]="BEZIER",(g=eO||(eO={}))[g.CREATED_BY_CURVE_FIT=1]="CREATED_BY_CURVE_FIT",g[g.TANGENT_DEFINED=2]="TANGENT_DEFINED",g[g.NOT_USED=4]="NOT_USED",g[g.CREATED_BY_SPLINE_FIT=8]="CREATED_BY_SPLINE_FIT",g[g.SPLINE_CONTROL_POINT=16]="SPLINE_CONTROL_POINT",g[g.FOR_POLYLINE=32]="FOR_POLYLINE",g[g.FOR_POLYGON=64]="FOR_POLYGON",g[g.POLYFACE=128]="POLYFACE";const rw={startWidth:0,endWidth:0,bulge:0},rV=[{code:91,name:"id",parser:eM},{code:[...e1(71,75)],name:"faces",isMultiple:!0,parser:eM},{code:50,name:"tangentDirection",parser:eM},{code:70,name:"flag",parser:eM},{code:42,name:"bulge",parser:eM},{code:41,name:"endWidth",parser:eM},{code:40,name:"startWidth",parser:eM},{code:30,name:"z",parser:eM},{code:20,name:"y",parser:eM},{code:10,name:"x",parser:eM},{code:100,name:"subclassMarker",parser:eM},{code:100},...eB];class rB{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rF(this,"parser",eC(rV,rw))}}function rH(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rF(rB,"ForEntityName","VERTEX");const rG={thickness:0,flag:0,startWidth:0,endWidth:0,meshMVertexCount:0,meshNVertexCount:0,surfaceMDensity:0,surfaceNDensity:0,smoothType:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rU=[{code:0,name:"vertices",isMultiple:!0,parser:(e,a)=>r(e,0,"VERTEX")?(e=a.next(),new rB().parseEntity(a,e)):eP},{code:210,name:"extrusionDirection",parser:eR},{code:75,name:"smoothType",parser:eM},{code:74,name:"surfaceNDensity",parser:eM},{code:73,name:"surfaceMDensity",parser:eM},{code:72,name:"meshNVertexCount",parser:eM},{code:71,name:"meshMVertexCount",parser:eM},{code:41,name:"endWidth",parser:eM},{code:40,name:"startWidth",parser:eM},{code:70,name:"flag",parser:eM},{code:39,name:"thickness",parser:eM},{code:30,name:"elevation",parser:eM},{code:20},{code:10},{code:66},{code:100,name:"subclassMarker",parser:eM},...eB];class rW{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rH(this,"parser",eC(rU,rG))}}function rY(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rH(rW,"ForEntityName","POLYLINE");const rj=[{code:11,name:"direction",parser:eR},{code:10,name:"position",parser:eR},{code:100,name:"subclassMarker",parser:eM},...eB];class rX{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rY(this,"parser",eC(rj))}}function rz(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rY(rX,"ForEntityName","RAY");const rK={vertices:[],backLineVertices:[]},rZ=[{code:360,name:"geometrySettingHardId",parser:eM},{code:12,name:"backLineVertices",isMultiple:!0,parser:eR},{code:93,name:"numberOfBackLineVertices",parser:eM},{code:11,name:"vertices",isMultiple:!0,parser:eR},{code:92,name:"verticesCount",parser:eM},{code:[63,411],name:"indicatorColor",parser:eM},{code:70,name:"indicatorTransparency",parser:eM},{code:41,name:"bottomHeight",parser:eM},{code:40,name:"topHeight",parser:eM},{code:10,name:"verticalDirection",parser:eR},{code:1,name:"name",parser:eM},{code:91,name:"flag",parser:eM},{code:90,name:"state",parser:eM},{code:100,name:"subclassMarker",parser:eM},...eB];class rJ{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rz(this,"parser",eC(rZ,rK))}}function r$(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rz(rJ,"ForEntityName","SECTION");const rq={points:[],thickness:0,extrusionDirection:{x:0,y:0,z:1}},rQ=[{code:210,name:"extrusionDirection",parser:eR},{code:39,name:"thickness",parser:eM},{code:[...e1(10,14)],name:"points",isMultiple:!0,parser:eR},{code:100,name:"subclassMarker",parser:eM},...eB];class r0{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){r$(this,"parser",eC(rQ,rq))}}function r1(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}r$(r0,"ForEntityName","SOLID"),(x=eg||(eg={}))[x.NONE=0]="NONE",x[x.CLOSED=1]="CLOSED",x[x.PERIODIC=2]="PERIODIC",x[x.RATIONAL=4]="RATIONAL",x[x.PLANAR=8]="PLANAR",x[x.LINEAR=16]="LINEAR";const r4={knotTolerance:1e-6,controlTolerance:1e-6,fitTolerance:1e-9,knotValues:[],controlPoints:[],fitPoints:[]},r2=[{code:11,name:"fitPoints",isMultiple:!0,parser:eR},{code:10,name:"controlPoints",isMultiple:!0,parser:eR},{code:41,name:"weights",isMultiple:!0,parser:eM},{code:40,name:"knots",isMultiple:!0,parser:eM},{code:13,name:"endTangent",parser:eR},{code:12,name:"startTangent",parser:eR},{code:44,name:"fitTolerance",parser:eM},{code:43,name:"controlTolerance",parser:eM},{code:42,name:"knotTolerance",parser:eM},{code:74,name:"numberOfFitPoints",parser:eM},{code:73,name:"numberOfControlPoints",parser:eM},{code:72,name:"numberOfKnots",parser:eM},{code:71,name:"degree",parser:eM},{code:70,name:"flag",parser:eM},{code:210,name:"normal",parser:eR},{code:100,name:"subclassMarker",parser:eM},...eB];class r3{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){r1(this,"parser",eC(r2,r4))}}r1(r3,"ForEntityName","SPLINE");const r7=[{code:330,name:"sourceBoundaryObjects",parser:eM,isMultiple:!0},{code:97,name:"numberOfSourceBoundaryObjects",parser:eM}],r5=[{code:11,name:"end",parser:eR},{code:10,name:"start",parser:eR}],r6=[{code:73,name:"isCCW",parser:ek},{code:51,name:"endAngle",parser:eM},{code:50,name:"startAngle",parser:eM},{code:40,name:"radius",parser:eM},{code:10,name:"center",parser:eR}],r9=[{code:73,name:"isCCW",parser:ek},{code:51,name:"endAngle",parser:eM},{code:50,name:"startAngle",parser:eM},{code:40,name:"lengthOfMinorAxis",parser:eM},{code:11,name:"end",parser:eR},{code:10,name:"center",parser:eR}],r8=[{code:13,name:"endTangent",parser:eR},{code:12,name:"startTangent",parser:eR},{code:11,name:"fitDatum",isMultiple:!0,parser:eR},{code:97,name:"numberOfFitData",parser:eM},{code:10,name:"controlPoints",isMultiple:!0,parser(e,r){let a={...ev(r),weight:1};return 42===(e=r.next()).code?a.weight=e.value:r.rewind(),a}},{code:40,name:"knots",isMultiple:!0,parser:eM},{code:96,name:"numberOfControlPoints",parser:eM},{code:95,name:"numberOfKnots",parser:eM},{code:74,name:"isPeriodic",parser:ek},{code:73,name:"splineFlag",parser:eM},{code:94,name:"degree",parser:eM}],ae={[exports.BoundaryPathEdgeType.Line]:r5,[exports.BoundaryPathEdgeType.Circular]:r6,[exports.BoundaryPathEdgeType.Elliptic]:r9,[exports.BoundaryPathEdgeType.Spline]:r8},ar=[...r7,{code:72,name:"edges",parser(e,r){let a={type:e.value},t=eC(ae[a.type]);if(!t)throw Error(`Invalid edge type ${a.type}`);return t(e=r.next(),r,a),a},isMultiple:!0},{code:93,name:"numberOfEdges",parser:eM}],aa=[...r7,{code:10,name:"vertices",parser(e,r){let a={...ev(r),bulge:0};return 42===(e=r.next()).code?a.bulge=e.value:r.rewind(),a},isMultiple:!0},{code:93,name:"numberOfVertices",parser:eM},{code:73,name:"isClosed",parser:ek},{code:72,name:"hasBulge",parser:ek}],at=[{code:49,name:"dashLengths",parser:eM,isMultiple:!0},{code:79,name:"numberOfDashLengths",parser:eM},{code:45,name:"offset",parser:an},{code:43,name:"base",parser:an},{code:53,name:"angle",parser:eM}];function an(e,r){let a=e.code+1,t={x:e.value,y:1};return(e=r.next()).code===a?t.y=e.value:r.rewind(),t}function ao(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}const as={extrusionDirection:{x:0,y:0,z:1},gradientRotation:0,colorTint:0},ai=[{code:470},{code:463},{code:462,name:"colorTint",parser:eM},{code:461,name:"gradientDefinition",parser:eM},{code:460,name:"gradientRotation",parser:eM},{code:453,name:"numberOfColors",parser:eM},{code:452,name:"gradientColorFlag",parser:eM},{code:451},{code:450,name:"gradientFlag",parser:eM},{code:10,name:"seedPoints",parser:eR,isMultiple:!0},{code:99},{code:11,name:"offsetVector",parser:eR},{code:98,name:"numberOfSeedPoints",parser:eM},{code:47,name:"pixelSize",parser:eM},{code:53,name:"definitionLines",parser:function(e,r){let a={};return eC(at)(e,r,a),a},isMultiple:!0},{code:78,name:"numberOfDefinitionLines",parser:eM},{code:77,name:"isDouble",parser:ek},{code:73,name:"isAnnotated",parser:ek},{code:41,name:"patternScale",parser:eM},{code:52,name:"patternAngle",parser:eM},{code:76,name:"patternType",parser:eM},{code:75,name:"hatchStyle",parser:eM},{code:92,name:"boundaryPaths",parser:function(e,r){let a={boundaryPathTypeFlag:e.value},t=a.boundaryPathTypeFlag&exports.BoundaryPathTypeFlag.Polyline;return(e=r.next(),t)?eC(aa)(e,r,a):eC(ar)(e,r,a),a},isMultiple:!0},{code:91,name:"numberOfBoundaryPaths",parser:eM},{code:71,name:"associativity",parser:eM},{code:63,name:"patternFillColor",parser:eM},{code:70,name:"solidFill",parser:eM},{code:2,name:"patternName",parser:eM},{code:210,name:"extrusionDirection",parser:eR},{code:10,name:"elevationPoint",parser:eR},{code:100,name:"subclassMarker",parser:eM,pushContext:!0},...eB];class ac{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ao(this,"parser",eC(ai,as))}}ao(ac,"ForEntityName","HATCH");class ad{parseEntity(e,r){let a={};for(;"EOF"!==r;){if(0===r.code){e.rewind();break}!function(e,r,a){if("EOF"===a)return!1;switch(a.code){case 0:return!1;case 100:e.subclassMarker=a.value;break;case 10:e.viewportCenter=e4(ev(r));break;case 40:e.width=a.value;break;case 41:e.height=a.value;break;case 68:e.status=a.value;break;case 69:e.viewportId=a.value;break;case 12:e.displayCenter=ev(r);break;case 13:e.snapBase=ev(r);break;case 14:e.snapSpacing=ev(r);break;case 15:e.gridSpacing=ev(r);break;case 16:e.viewDirection=e4(ev(r));break;case 17:e.targetPoint=e4(ev(r));break;case 42:e.perspectiveLensLength=a.value;break;case 43:e.frontClipZ=a.value;break;case 44:e.backClipZ=a.value;break;case 45:e.viewHeight=a.value;break;case 50:e.snapAngle=a.value;break;case 51:e.viewTwistAngle=a.value;break;case 72:e.circleZoomPercent=a.value;break;case 331:e.frozenLayerIds??(e.frozenLayerIds=[]),e.frozenLayerIds.push(a.value);break;case 90:e.statusBitFlags=a.value;break;case 340:e.clippingBoundaryId=a.value;break;case 1:e.sheetName=a.value;break;case 281:e.renderMode=a.value;break;case 71:e.ucsPerViewport=a.value;break;case 110:e.ucsOrigin=e4(ev(r));break;case 111:e.ucsXAxis=e4(ev(r));break;case 112:e.ucsYAxis=e4(ev(r));break;case 345:e.ucsId=a.value;break;case 346:e.ucsBaseId=a.value;break;case 79:e.orthographicType=a.value;break;case 146:e.elevation=a.value;break;case 170:e.shadePlotMode=a.value;break;case 61:e.majorGridFrequency=a.value;break;case 332:e.backgroundId=a.value;break;case 333:e.shadePlotId=a.value;break;case 348:e.visualStyleId=a.value;break;case 292:e.isDefaultLighting=!!a.value;break;case 282:e.defaultLightingType=a.value;break;case 141:e.brightness=a.value;break;case 142:e.contrast=a.value;break;case 63:case 421:case 431:e.ambientLightColor=a.value;break;case 361:e.sunId=a.value;break;case 335:case 343:case 344:case 91:e.softPointer=a.value}return!0}(a,e,r)&&e2(a,r,e),r=e.next()}return a}}function al(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}y="VIEWPORT",(S="ForEntityName")in ad?Object.defineProperty(ad,S,{value:y,enumerable:!0,configurable:!0,writable:!0}):ad[S]=y;const ap={},au=[{code:170,name:"multileaderType",parser:eM},{code:291,name:"doglegEnabled",parser:ek},{code:40,name:"doglegLength",parser:eM},{code:172,name:"contentType",parser:eM},{code:3,name:"textContent",parser:eM},{code:12,name:"textAnchor",parser:eR},{code:344,name:"blockHandle",parser:eM},{code:15,name:"blockPosition",parser:eR},{code:302,name:"leaderSections",parser:function(e,r,a){let t;let n={leaderLines:[]};for(;r.hasNext()&&303!==(t=r.next()).code;){switch(t.code){case 10:n.landingPoint=(t.value,ev(r));break;case 11:n.doglegVector=(t.value,ev(r));break;case 40:n.doglegLength=t.value;break;case 304:n.leaderLines.push(function(e,r,a){let t;let n={vertices:[]};for(;r.hasNext()&&305!==(t=r.next()).code;)10===t.code&&n.vertices.push((t.value,ev(r)));return n}(0,r))}}return n},isMultiple:!0},...eB];class am{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){al(this,"parser",eC(au,ap))}}al(am,"ForEntityName","MULTILEADER");const aE=Object.fromEntries([ej,eQ,rr,ro,rs,rl,rE,rb,rg,rN,rP,e6,am,rk,rW,rX,rJ,r0,r3,eZ,ac,ad].map(e=>[e.ForEntityName,new e]));function ah(e,a){let t=[];for(;!r(e,0,"EOF");){if(0===e.code){if("ENDBLK"===e.value||"ENDSEC"===e.value){a.rewind();break}let r=aE[e.value];if(r){let n=e.value;e=a.next();let o=r.parseEntity(a,e);o.type=n,eG(o),t.push(o)}else console.warn(`Unsupported ENTITY type: ${e.value}`)}e=a.next()}return t}function aI(e,a){let t={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");){if(r(e,0,"BLOCK")){let r=af(e=a.next(),a);eG(r),r.name&&(t[r.name]=r)}e=a.next()}return t}function af(e,a){let t={};for(;!r(e,0,"EOF");){if(r(e,0,"ENDBLK")){for(e=a.next();!r(e,0,"EOF");){if(r(e,100,"AcDbBlockEnd"))return t;e=a.next()}break}switch(e.code){case 1:t.xrefPath=e.value;break;case 2:t.name=e.value;break;case 3:t.name2=e.value;break;case 5:t.handle=e.value;break;case 8:t.layer=e.value;break;case 10:t.position=ev(a);break;case 67:t.paperSpace=!!e.value&&1==e.value;break;case 70:0!==e.value&&(t.type=e.value);break;case 100:break;case 330:t.ownerHandle=e.value;break;case 0:t.entities=ah(e,a)}e=a.next()}return t}function ab(e,a){let t=null,n={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");)9===e.code?t=e.value:10===e.code?n[t]=ev(a):n[t]=e.value,e=a.next();return n}const aT=[{code:333,name:"shadePlotId",parser:eM},{code:149,name:"imageOriginY",parser:eM},{code:148,name:"imageOriginX",parser:eM},{code:147,name:"scaleFactor",parser:eM},{code:78,name:"shadePlotCustomDPI",parser:eM},{code:77,name:"shadePlotResolution",parser:eM},{code:76,name:"shadePlotMode",parser:eM},{code:75,name:"standardScaleType",parser:eM},{code:7,name:"currentStyleSheet",parser:eM},{code:74,name:"plotType",parser:eM},{code:73,name:"plotRotation",parser:eM},{code:72,name:"paperUnit",parser:eM},{code:70,name:"layoutFlag",parser:eM},{code:143,name:"printScaleDenominator",parser:eM},{code:142,name:"printScaleNominator",parser:eM},{code:141,name:"windowAreaYMax",parser:eM},{code:140,name:"windowAreaYMin",parser:eM},{code:49,name:"windowAreaXMax",parser:eM},{code:48,name:"windowAreaXMin",parser:eM},{code:47,name:"plotOriginY",parser:eM},{code:46,name:"plotOriginX",parser:eM},{code:45,name:"paperHeight",parser:eM},{code:44,name:"paperWidth",parser:eM},{code:43,name:"marginTop",parser:eM},{code:42,name:"marginRight",parser:eM},{code:41,name:"marginBottom",parser:eM},{code:40,name:"marginLeft",parser:eM},{code:6,name:"plotViewName",parser:eM},{code:4,name:"paperSize",parser:eM},{code:2,name:"configName",parser:eM},{code:1,name:"pageSetupName",parser:eM},{code:100,name:"subclassMarker",parser:eM}];(N=ex||(ex={}))[N.INCHES=0]="INCHES",N[N.MILLIMETERS=1]="MILLIMETERS",N[N.PIXELS=2]="PIXELS",(_=eS||(eS={}))[_.LAST_SCREEN_DISPLAY=0]="LAST_SCREEN_DISPLAY",_[_.DRAWING_EXTENTS=1]="DRAWING_EXTENTS",_[_.DRAWING_LIMITS=2]="DRAWING_LIMITS",_[_.VIEW_SPECIFIED=3]="VIEW_SPECIFIED",_[_.WINDOW_SPECIFIED=4]="WINDOW_SPECIFIED",_[_.LAYOUT_INFORMATION=5]="LAYOUT_INFORMATION",(L=ey||(ey={}))[L.AS_DISPLAYED=0]="AS_DISPLAYED",L[L.WIREFRAME=1]="WIREFRAME",L[L.HIDDEN=2]="HIDDEN",L[L.RENDERED=3]="RENDERED",(A=eN||(eN={}))[A.DRAFT=0]="DRAFT",A[A.PREVIEW=1]="PREVIEW",A[A.NORMAL=2]="NORMAL",A[A.PRESENTATION=3]="PRESENTATION",A[A.MAXIMUM=4]="MAXIMUM",A[A.CUSTOM=5]="CUSTOM";const aD=[{code:333,name:"shadePlotId",parser:eM},{code:346,name:"orthographicUcsId",parser:eM},{code:345,name:"namedUcsId",parser:eM},{code:331,name:"viewportId",parser:eM},{code:330,name:"paperSpaceTableId",parser:eM},{code:76,name:"orthographicType",parser:eM},{code:17,name:"ucsYAxis",parser:eR},{code:16,name:"ucsXAxis",parser:eR},{code:13,name:"ucsOrigin",parser:eR},{code:146,name:"elevation",parser:eM},{code:15,name:"maxExtent",parser:eR},{code:14,name:"minExtent",parser:eR},{code:12,name:"insertionBase",parser:eR},{code:11,name:"maxLimit",parser:eR},{code:10,name:"minLimit",parser:eR},{code:71,name:"tabOrder",parser:eM},{code:70,name:"controlFlag",parser:eM},{code:1,name:"layoutName",parser:eM},{code:100,name:"subclassMarker",parser:eM},...aT];(v=e_||(e_={}))[v.PSLTSCALE=1]="PSLTSCALE",v[v.LIMCHECK=2]="LIMCHECK";const aO=[{code:330,name:"ownerObjectId",parser:eM},{code:102},{code:360,name:"ownerDictionaryIdHard",parser:eM},{code:102},{code:102},{code:330,name:"ownerDictionaryIdSoft",parser:eM},{code:102},{code:102},{code:102},{code:5,name:"handle",parser:eM}],ag=[{code:3,name:"entries",parser:(e,r)=>{let a={name:e.value};return 350===(e=r.next()).code?a.objectId=e.value:r.rewind(),a},isMultiple:!0},{code:281,name:"recordCloneFlag",parser:eM},{code:280,name:"isHardOwned",parser:ek},{code:100,name:"subclassMarker",parser:eM}];function ax(e){return"AcDbDictionary"===e.subclassMarker}(P=eL||(eL={}))[P.NOT_APPLICABLE=0]="NOT_APPLICABLE",P[P.KEEP_EXISTING=1]="KEEP_EXISTING",P[P.USE_CLONE=2]="USE_CLONE",P[P.XREF_VALUE_NAME=3]="XREF_VALUE_NAME",P[P.VALUE_NAME=4]="VALUE_NAME",P[P.UNMANGLE_NAME=5]="UNMANGLE_NAME";const aS={LAYOUT:aD,PLOTSETTINGS:aT,DICTIONARY:ag};function ay(e,r){let a=[];for(;0!==e.code||!["EOF","ENDSEC"].includes(e.value);){let t=e.value,n=aS[t];if(0===e.code&&n?.length){let o=eC([...aO,...n]),s={name:t};o(e=r.next(),r,s)?(a.push(s),e=r.peek()):e=r.next()}else e=r.next()}return{byName:e0(a,({name:e})=>e),byTree:function(e){let r=Object.fromEntries(e.map(e=>[e.handle,e]));for(let a of e)(!ax(a)||"0"!==a.ownerDictionaryIdSoft)&&(a.ownerDictionaryIdSoft&&(a.ownerDictionarySoft=r[a.ownerDictionaryIdSoft]),a.ownerDictionaryIdHard&&(a.ownerDictionaryHard=r[a.ownerDictionaryIdHard]),a.ownerObjectId&&(a.ownerObject=r[a.ownerObjectId])),function(e,r){ax(e)&&e.entries&&(e.entries=Object.fromEntries(e.entries.map(({name:e,objectId:a})=>[e,r[a]])))}(a,r);return e[0]}(a)}}const aN=[{name:"DIMPOST",code:3},{name:"DIMAPOST",code:4},{name:"DIMBLK_OBSOLETE",code:5},{name:"DIMBLK1_OBSOLETE",code:6},{name:"DIMBLK2_OBSOLETE",code:7},{name:"DIMSCALE",code:40,defaultValue:1},{name:"DIMASZ",code:41,defaultValue:.25},{name:"DIMEXO",code:42,defaultValue:.625,defaultValueImperial:.0625},{name:"DIMDLI",code:43,defaultValue:3.75,defaultValueImperial:.38},{name:"DIMEXE",code:44,defaultValue:2.25,defaultValueImperial:.28},{name:"DIMRND",code:45,defaultValue:0},{name:"DIMDLE",code:46,defaultValue:0},{name:"DIMTP",code:47,defaultValue:0},{name:"DIMTM",code:48,defaultValue:0},{name:"DIMTXT",code:140,defaultValue:2.5,defaultValueImperial:.28},{name:"DIMCEN",code:141,defaultValue:2.5,defaultValueImperial:.09},{name:"DIMTSZ",code:142,defaultValue:0},{name:"DIMALTF",code:143,defaultValue:25.4},{name:"DIMLFAC",code:144,defaultValue:1},{name:"DIMTVP",code:145,defaultValue:0},{name:"DIMTFAC",code:146,defaultValue:1},{name:"DIMGAP",code:147,defaultValue:.625,defaultValueImperial:.09},{name:"DIMALTRND",code:148,defaultValue:0},{name:"DIMTOL",code:71,defaultValue:0,defaultValueImperial:1},{name:"DIMLIM",code:72,defaultValue:0},{name:"DIMTIH",code:73,defaultValue:0,defaultValueImperial:1},{name:"DIMTOH",code:74,defaultValue:0,defaultValueImperial:1},{name:"DIMSE1",code:75,defaultValue:0},{name:"DIMSE2",code:76,defaultValue:0},{name:"DIMTAD",code:77,defaultValue:exports.DimensionTextVertical.Above,defaultValueImperial:exports.DimensionTextVertical.Center},{name:"DIMZIN",code:78,defaultValue:exports.DimensionZeroSuppression.Trailing,defaultValueImperial:exports.DimensionZeroSuppression.Feet},{name:"DIMAZIN",code:79,defaultValue:exports.DimensionZeroSuppressionAngular.None},{name:"DIMALT",code:170,defaultValue:0},{name:"DIMALTD",code:171,defaultValue:3,defaultValueImperial:2},{name:"DIMTOFL",code:172,defaultValue:1,defaultValueImperial:0},{name:"DIMSAH",code:173,defaultValue:0},{name:"DIMTIX",code:174,defaultValue:0},{name:"DIMSOXD",code:175,defaultValue:0},{name:"DIMCLRD",code:176,defaultValue:0},{name:"DIMCLRE",code:177,defaultValue:0},{name:"DIMCLRT",code:178,defaultValue:0},{name:"DIMADEC",code:179},{name:"DIMUNIT",code:270},{name:"DIMDEC",code:271,defaultValue:2,defaultValueImperial:4},{name:"DIMTDEC",code:272,defaultValue:2,defaultValueImperial:4},{name:"DIMALTU",code:273,defaultValue:2},{name:"DIMALTTD",code:274,defaultValue:2,defaultValueImperial:4},{name:"DIMAUNIT",code:275,defaultValue:0},{name:"DIMFRAC",code:276,defaultValue:0},{name:"DIMLUNIT",code:277,defaultValue:2},{name:"DIMDSEP",code:278,defaultValue:",",defaultValueImperial:"."},{name:"DIMJUST",code:280,defaultValue:exports.DimensionTextHorizontal.Center},{name:"DIMSD1",code:281,defaultValue:0},{name:"DIMSD2",code:282,defaultValue:0},{name:"DIMTOLJ",code:283,defaultValue:exports.DimensionToleranceTextVertical.Center},{name:"DIMTZIN",code:284,defaultValue:exports.DimensionZeroSuppression.Trailing,defaultValueImperial:exports.DimensionZeroSuppression.Feet},{name:"DIMALTZ",code:285,defaultValue:exports.DimensionZeroSuppression.Trailing},{name:"DIMALTTZ",code:286,defaultValue:exports.DimensionZeroSuppression.Trailing},{name:"DIMFIT",code:287},{name:"DIMUPT",code:288,defaultValue:0},{name:"DIMATFIT",code:289,defaultValue:3},{name:"DIMTXSTY",code:340},{name:"DIMLDRBLK",code:341},{name:"DIMBLK",code:342},{name:"DIMBLK1",code:343},{name:"DIMBLK2",code:344},{name:"DIMLWD",code:371,defaultValue:-2},{name:"DIMLWD",code:372,defaultValue:-2}];exports.LineTypeElementType=void 0,(C=exports.LineTypeElementType||(exports.LineTypeElementType={}))[C.NONE=0]="NONE",C[C.AbsoluteRotation=1]="AbsoluteRotation",C[C.TextEmbedded=2]="TextEmbedded",C[C.ShapeEmbedded=4]="ShapeEmbedded";const a_=[{code:100,name:"subclassMarker",parser:eM},{code:330,name:"ownerObjectId",parser:eM},{code:102,parser(e,a){for(;!r(e,0,"EOF")&&!r(e,102,"}");)e=a.next()}},{code:5,name:"handle",parser:eM}],aL=eC([{code:310,name:"bmpPreview",parser:eM},{code:281,name:"scalability",parser:eM},{code:280,name:"explodability",parser:eM},{code:70,name:"insertionUnits",parser:eM},{code:340,name:"layoutObjects",parser:eM},{code:2,name:"name",parser:eM},{code:100,name:"subclassMarker",parser:eM},...a_]),aA=eC([...aN.map(e=>({...e,parser:eM})),{code:70,name:"standardFlag",parser:eM},{code:2,name:"name",parser:eM},{code:100,name:"subclassMarker",parser:eM},{code:105,name:"handle",parser:eM},...a_.filter(e=>5!==e.code)]),av=eC([{code:347,name:"materialObjectId",parser:eM},{code:390,name:"plotStyleNameObjectId",parser:eM},{code:370,name:"lineweight",parser:eM},{code:290,name:"isPlotting",parser:ek},{code:6,name:"lineType",parser:eM},{code:62,name:"colorIndex",parser:eM},{code:70,name:"standardFlag",parser:eM},{code:2,name:"name",parser:eM},{code:100,name:"subclassMarker",parser:eM},...a_]),aP=eC([{code:9,name:"text",parser:eM},{code:45,name:"offsetY",parser:eM},{code:44,name:"offsetX",parser:eM},{code:50,name:"rotation",parser:eM},{code:46,name:"scale",parser:eM},{code:340,name:"styleObjectId",parser:eM},{code:75,name:"shapeNumber",parser:eM},{code:74,name:"elementTypeFlag",parser:eM},{code:49,name:"elementLength",parser:eM}],{elementTypeFlag:0,elementLength:0}),aC={BLOCK_RECORD:aL,DIMSTYLE:aA,LAYER:av,LTYPE:eC([{code:49,name:"pattern",parser(e,r){let a={};return aP(e,r,a),a},isMultiple:!0},{code:40,name:"totalPatternLength",parser:eM},{code:73,name:"numberOfLineTypes",parser:eM},{code:72,parser:eM},{code:3,name:"description",parser:eM},{code:70,name:"standardFlag",parser:eM},{code:2,name:"name",parser:eM},{code:100,name:"subclassMarker",parser:eM},...a_]),STYLE:eC([{code:1e3,name:"extendedFont",parser:eM},{code:1001},{code:4,name:"bigFont",parser:eM},{code:3,name:"font",parser:eM},{code:42,name:"lastHeight",parser:eM},{code:71,name:"textGenerationFlag",parser:eM},{code:50,name:"obliqueAngle",parser:eM},{code:41,name:"widthFactor",parser:eM},{code:40,name:"fixedTextHeight",parser:eM},{code:70,name:"standardFlag",parser:eM},{code:2,name:"name",parser:eM},{code:100,name:"subclassMarker",parser:eM},...a_]),VPORT:eC([{code:[63,421,431],name:"ambientColor",parser:eM},{code:142,name:"contrast",parser:eM},{code:141,name:"brightness",parser:eM},{code:282,name:"defaultLightingType",parser:eM},{code:292,name:"isDefaultLightingOn",parser:ek},{code:348,name:"visualStyleObjectId",parser:eM},{code:333,name:"shadePlotObjectId",parser:eM},{code:332,name:"backgroundObjectId",parser:eM},{code:61,name:"majorGridLines",parser:eM},{code:170,name:"shadePlotSetting",parser:eM},{code:146,name:"elevation",parser:eM},{code:79,name:"orthographicType",parser:eM},{code:112,name:"ucsYAxis",parser:eR},{code:111,name:"ucsXAxis",parser:eR},{code:110,name:"ucsOrigin",parser:eR},{code:74,name:"ucsIconSetting",parser:eM},{code:71,name:"viewMode",parser:eM},{code:281,name:"renderMode",parser:eM},{code:1,name:"styleSheet",parser:eM},{code:[331,441],name:"frozenLayers",parser:eM,isMultiple:!0},{code:72,name:"circleSides",parser:eM},{code:51,name:"viewTwistAngle",parser:eM},{code:50,name:"snapRotationAngle",parser:eM},{code:45,name:"viewHeight",parser:eM},{code:44,name:"backClippingPlane",parser:eM},{code:43,name:"frontClippingPlane",parser:eM},{code:42,name:"lensLength",parser:eM},{code:17,name:"viewTarget",parser:eR},{code:16,name:"viewDirectionFromTarget",parser:eR},{code:15,name:"gridSpacing",parser:eR},{code:14,name:"snapSpacing",parser:eR},{code:13,name:"snapBasePoint",parser:eR},{code:12,name:"center",parser:eR},{code:11,name:"upperRightCorner",parser:eR},{code:10,name:"lowerLeftCorner",parser:eR},{code:70,name:"standardFlag",parser:eM},{code:2,name:"name",parser:eM},{code:100,name:"subclassMarker",parser:eM},...a_])},aM=eC([{code:70,name:"maxNumberOfEntries",parser:eM},{code:100,name:"subclassMarker",parser:eM},{code:330,name:"ownerObjectId",parser:eM},{code:102},{code:360,isMultiple:!0},{code:102},{code:5,name:"handle",parser:eM},{code:2,name:"name",parser:eM}]);function aR(e,a){let t={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");){if(r(e,0,"TABLE")){e=a.next();let r={entries:[]};aM(e,a,r),t[r.name]=r}if(r(e,0)&&!r(e,0,"ENDTAB")){let r=e.value;e=a.next();let n=aC[r];if(!n){a.debug&&console.warn(`parseTable: Invalid table name '${r}'`),e=a.next();continue}let o={};n(e,a,o),t[r]?.entries.push(o)}e=a.next()}return t}function ak(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class aF{next(){if(!this.hasNext())return this._eof?this.debug&&console.warn("Cannot call 'next' after EOF group has been read"):this.debug&&console.warn("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer]),{code:0,value:"EOF"};let e=parseInt(this._data[this._pointer++],10),a=aw(e,this._data[this._pointer++]),t={code:e,value:a};return r(t,0,"EOF")&&(this._eof=!0),this.lastReadGroup=t,t}peek(){if(!this.hasNext()){if(this._eof)throw Error("Cannot call 'next' after EOF group has been read");throw Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer])}let e={code:parseInt(this._data[this._pointer]),value:0};return e.value=aw(e.code,this._data[this._pointer+1]),e}rewind(e){e=e||1,this._pointer=this._pointer-2*e}hasNext(){return!this._eof&&!(this._pointer>this._data.length-2)}isEOF(){return this._eof}constructor(e,r){ak(this,"_pointer",void 0),ak(this,"_data",void 0),ak(this,"_eof",void 0),ak(this,"debug",!0),ak(this,"lastReadGroup",{code:0,value:0}),this._pointer=0,this._data=e,this._eof=!1,this.debug=r??!0}}function aw(e,r){return e<=9?r:e>=10&&e<=59?parseFloat(r.trim()):e>=60&&e<=99?parseInt(r.trim()):e>=100&&e<=109?r:e>=110&&e<=149?parseFloat(r.trim()):e>=160&&e<=179?parseInt(r.trim()):e>=210&&e<=239?parseFloat(r.trim()):e>=270&&e<=289?parseInt(r.trim()):e>=290&&e<=299?function(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}(r.trim()):e>=300&&e<=369?r:e>=370&&e<=389?parseInt(r.trim()):e>=390&&e<=399?r:e>=400&&e<=409?parseInt(r.trim()):e>=410&&e<=419?r:e>=420&&e<=429?parseInt(r.trim()):e>=430&&e<=439?r:e>=440&&e<=459?parseInt(r.trim()):e>=460&&e<=469?parseFloat(r.trim()):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?r:e>=1010&&e<=1059?parseFloat(r.trim()):e>=1060&&e<=1071?parseInt(r.trim()):(console.log("WARNING: Group code does not have a defined type: %j",{code:e,value:r}),r)}function aV(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class aB{parseStart(e){this.startCode=e.code}setPoint(e){if(this.code=e.code,this.value=e.value,this.startCode===this.code&&(this.x=this.value),this.startCode===this.code+10)this.y=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}if(this.startCode===this.code+20)this.z=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}}reset(){this.x=void 0,this.y=void 0,this.z=void 0}constructor(){aV(this,"point",{}),aV(this,"startCode",0),aV(this,"code",0),aV(this,"value",0),aV(this,"x",void 0),aV(this,"y",void 0),aV(this,"z",void 0)}}function aH(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class aG{constructor(){aH(this,"encoding","utf-8"),aH(this,"encodingFailureFatal",!1)}}class aU extends Error{constructor(e,r,a){let t=`[Line ${r}]: ${e}`;a?.cause&&(t+=`
|
|
2
2
|
Caused by ${a.cause.toString()}
|
|
3
|
-
${a.cause.stack}`),super(t),
|
|
3
|
+
${a.cause.stack}`),super(t),aH(this,"line",void 0),this.line=r}}class aW extends EventTarget{Feed(e,r=!1){let a=this._decoder.decode(e??void 0,{stream:!r});this.FeedString(a,r)}FeedString(e,r=!1){if(this._finalChunkSeen)throw Error("Data fed after final chunk processed");r&&(this._finalChunkSeen=!0),this._curChunk+=e,this._ProcessCurChunk(),r&&this._Finalize()}_Finalize(){}async FeedFile(e,r){let a=e.byteLength;for(let t=0;t<a;t+=65536){r?.throwIfAborted();let n=Math.min(a-t,65536),o=await e.slice(t,t+n);this.Feed(o,t+n>=a)}}_ProcessCurChunk(){for(let e of this._ConsumeCurChunkLines())if(this._ProcessLine(e),this._curLineNum++,!this._eof&&"HEADER"===this._curSection){let e=this._curValue.value;9===this._curValue.code?this._currVarName=e:10===this._curValue.code?this._pointParser.parseStart(this._curValue):this._pointParser.startCode===this._curValue.code||this._pointParser.startCode+10===this._curValue.code||this._pointParser.startCode+20===this._curValue.code?e=this._pointParser.setPoint(this._curValue):this._currVarName&&(this.dxf.header[this._currVarName]=e)}}*_ConsumeCurChunkLines(){let e=0,r=this._curChunk.length;for(;e<r;){let a=this._curChunk.indexOf("\r",e),t=0;if(a>=0?(t=a+1)<r&&"\n"==this._curChunk.charAt(t)&&t++:(a=this._curChunk.indexOf("\n",e))>=0&&(t=a+1),a<0)break;yield this._curChunk.substring(e,a),e=t}0!=e&&(this._curChunk=this._curChunk.substring(e))}_ProcessLine(e){if(null===this._curGroupCode){let r=e.trim();this._curGroupCode=parseInt(r),isNaN(this._curGroupCode)&&this._Error("Bad group code: "+r);return}let a=new aY(this._curGroupCode,e);if(!r(a,0,"EOF")){switch(a.value){case"SECTION":this._curSection="SECTION";break;case"HEADER":this._curSection="HEADER";break;case"BLOCKS":this._curSection="BLOCKS";break;case"ENTITIES":this._curSection="ENTITIES";break;case"TABLES":this._curSection="TABLES";break;case"OBJECTS":this._curSection="OBJECTS"}this._eof=!1}r(a,0,"EOF")&&(this._eof=!0),this._curValue=a,this._curGroupCode=null}_Error(e,r=null){let a;throw r&&(a={cause:r}),new aU(e,this._curLineNum,a)}constructor(e=new aG){super(),aH(this,"dxf",{header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}}),aH(this,"_decoder",void 0),aH(this,"_pointParser",void 0),aH(this,"_finalChunkSeen",!1),aH(this,"_curChunk",""),aH(this,"_curGroupCode",null),aH(this,"_curLineNum",1),aH(this,"_eof",!1),aH(this,"_curValue",{code:0,value:0}),aH(this,"_curSection",""),aH(this,"_currVarName",""),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal}),this._pointParser=new aB}}class aY{constructor(e,r){aH(this,"code",void 0),aH(this,"value",void 0),this.code=e,this.value=aw(e,r)}}function aj(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class aX{constructor(){aj(this,"encoding","utf-8"),aj(this,"encodingFailureFatal",!1)}}class az extends EventTarget{parseSync(e){let r=new aF(e.split(/\r\n|\r|\n/g));if(!r.hasNext())throw Error("Empty file");return this.parseAll(r)}parseStream(e){let r="",a=this;return new Promise((t,n)=>{e.on("data",e=>{r+=e}),e.on("end",()=>{try{let e=r.split(/\r\n|\r|\n/g),n=new aF(e);if(!n.hasNext())throw Error("Empty file");t(a.parseAll(n))}catch(e){n(e)}}),e.on("error",e=>{n(e)})})}async parseFromUrl(e,r){let a=await fetch(e,r);if(!a.body)return null;let t=a.body.getReader(),n="";for(;;){let{done:e,value:r}=await t.read();if(e){n+=this._decoder.decode(new ArrayBuffer(0),{stream:!1});break}n+=this._decoder.decode(r,{stream:!0})}return this.parseSync(n)}parseAll(e){let a={header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}},t=e.next();for(;!r(t,0,"EOF");)r(t,0,"SECTION")&&(r(t=e.next(),2,"HEADER")?(t=e.next(),a.header=ab(t,e)):r(t,2,"BLOCKS")?(t=e.next(),a.blocks=aI(t,e)):r(t,2,"ENTITIES")?(t=e.next(),a.entities=ah(t,e)):r(t,2,"TABLES")?(t=e.next(),a.tables=aR(t,e)):r(t,2,"OBJECTS")&&(t=e.next(),a.objects=ay(t,e))),t=e.next();return a}constructor(e=new aX){super(),aj(this,"_decoder",void 0),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal})}}exports.CommonEntitySnippets=eB,exports.DefaultDxfHeaderVariables=e,exports.DimStyleVariablesSchema=aN,exports.DxfParsingError=aU,exports.DxfStreamParser=aW,exports.DxfStreamParserOptions=aG,exports.INDEXED_CHUNK_SIZE=65536,exports.SPLINE_SUBDIVISION=4,exports.TESSELLATION_ANGLE=Math.PI/24,exports.UndeterminedBlockColor=-1,exports.XDataParserSnippets=eF,exports.classify=e0,exports.createXDataCatcher=function({appName:e="ACAD",catcher:r,escaper:a}){return function*(t){if(t?.appName!==e)return;let n=!1,o=-1;for(let[e,s]of t.value.entries())if(n){if(yield s,a?.(s,e-o))return}else r(s)&&(n=!0,o=e)}},exports.createXDataControlInterpreter=function(e){return r=>{let a={};for(let t=0;t<r.length;t+=2){let n=e.find(({code:e})=>e===r[t].value);n&&(a[n.name]=r[t+1]?.value)}return a}},exports.default=az,exports.ensureHandle=eG,exports.ensurePoint3D=e4,exports.generateIntegers=e1,exports.getAcadColor=function(e){return eA[e]},exports.isMatched=r,exports.parseBlock=af,exports.parseBlocks=aI,exports.parseEntities=ah,exports.parseExtensions=a,exports.parseHeader=ab,exports.parseObjects=ay,exports.parseTables=aR,exports.parseXData=ew;
|
package/dist/bundle.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(F=el||(el={}))[F.None=0]="None",F[F.Anonymous=1]="Anonymous",F[F.NonConstant=2]="NonConstant",F[F.Xref=4]="Xref",F[F.XrefOverlay=8]="XrefOverlay",F[F.ExternallyDependent=16]="ExternallyDependent",F[F.ResolvedOrDependent=32]="ResolvedOrDependent",F[F.ReferencedXref=64]="ReferencedXref",(w=eu||(eu={}))[w.BYBLOCK=0]="BYBLOCK",w[w.BYLAYER=256]="BYLAYER";let e=-1,a=4,r=Math.PI/24;(V=ep||(ep={}))[V.Rotated=0]="Rotated",V[V.Aligned=1]="Aligned",V[V.Angular=2]="Angular",V[V.Diameter=3]="Diameter",V[V.Radius=4]="Radius",V[V.Angular3Point=5]="Angular3Point",V[V.Ordinate=6]="Ordinate",V[V.ReferenceIsExclusive=32]="ReferenceIsExclusive",V[V.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",V[V.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",(B=em||(em={}))[B.TopLeft=1]="TopLeft",B[B.TopCenter=2]="TopCenter",B[B.TopRight=3]="TopRight",B[B.MiddleLeft=4]="MiddleLeft",B[B.MiddleCenter=5]="MiddleCenter",B[B.MiddleRight=6]="MiddleRight",B[B.BottomLeft=7]="BottomLeft",B[B.BottomCenter=8]="BottomCenter",B[B.BottomRight=9]="BottomRight",(H=eE||(eE={}))[H.AtLeast=1]="AtLeast",H[H.Exact=2]="Exact",(G=eI||(eI={}))[G.Center=0]="Center",G[G.Above=1]="Above",G[G.Outside=2]="Outside",G[G.JIS=3]="JIS",G[G.Below=4]="Below",(U=eh||(eh={}))[U.Feet=0]="Feet",U[U.None=1]="None",U[U.Inch=2]="Inch",U[U.FeetAndInch=3]="FeetAndInch",U[U.Leading=4]="Leading",U[U.Trailing=8]="Trailing",U[U.LeadingAndTrailing=12]="LeadingAndTrailing",(W=ef||(ef={}))[W.None=0]="None",W[W.Leading=1]="Leading",W[W.Trailing=2]="Trailing",W[W.LeadingAndTrailing=3]="LeadingAndTrailing",(Y=eb||(eb={}))[Y.Center=0]="Center",Y[Y.Left=1]="Left",Y[Y.Right=2]="Right",Y[Y.OverFirst=3]="OverFirst",Y[Y.OverSecond=4]="OverSecond",(j=eT||(eT={}))[j.Bottom=0]="Bottom",j[j.Center=1]="Center",j[j.Top=2]="Top",(X=eD||(eD={}))[X.PatternFill=0]="PatternFill",X[X.SolidFill=1]="SolidFill",(z=eO||(eO={}))[z.NonAssociative=0]="NonAssociative",z[z.Associative=1]="Associative",(K=eg||(eg={}))[K.Normal=0]="Normal",K[K.Outer=1]="Outer",K[K.Ignore=2]="Ignore",(Z=eN||(eN={}))[Z.UserDefined=0]="UserDefined",Z[Z.Predefined=1]="Predefined",Z[Z.Custom=2]="Custom",(J=eS||(eS={}))[J.NotAnnotated=0]="NotAnnotated",J[J.Annotated=1]="Annotated",($=e_||(e_={}))[$.Solid=0]="Solid",$[$.Gradient=1]="Gradient",(q=eL||(eL={}))[q.TwoColor=0]="TwoColor",q[q.OneColor=1]="OneColor",(Q=eA||(eA={}))[Q.Default=0]="Default",Q[Q.External=1]="External",Q[Q.Polyline=2]="Polyline",Q[Q.Derived=4]="Derived",Q[Q.Textbox=8]="Textbox",Q[Q.Outermost=16]="Outermost",(ee=ey||(ey={}))[ee.Line=1]="Line",ee[ee.Circular=2]="Circular",ee[ee.Elliptic=3]="Elliptic",ee[ee.Spline=4]="Spline",(ea=eC||(eC={}))[ea.Off=0]="Off",ea[ea.Solid=1]="Solid",ea[ea.Dashed=2]="Dashed",ea[ea.Dotted=3]="Dotted",ea[ea.ShotDash=4]="ShotDash",ea[ea.MediumDash=5]="MediumDash",ea[ea.LongDash=6]="LongDash",ea[ea.DoubleShortDash=7]="DoubleShortDash",ea[ea.DoubleMediumDash=8]="DoubleMediumDash",ea[ea.DoubleLongDash=9]="DoubleLongDash",ea[ea.DoubleMediumLongDash=10]="DoubleMediumLongDash",ea[ea.SparseDot=11]="SparseDot";let n={DRAGVS:"NULL",INTERFERECOLOR:1,INTERFEREOBJVS:"Conceptual",INTERFEREVPVS:"3d Wireframe",OBSLTYPE:eC.Off,SHADEDIF:70};(er=eP||(eP={}))[er.Standard=-3]="Standard",er[er.ByLayer=-2]="ByLayer",er[er.ByBlock=-1]="ByBlock",(en=ev||(ev={}))[en.English=0]="English",en[en.Metric=1]="Metric";let t=65536;function o(e,a,r){return e.code===a&&(null==r||e.value===r)}function s(e,a,r){for(;o(e,102);){var n;let t=e.value;if(e=a.next(),!t.startsWith("{")){console.warn(`Invalid application group, expected to start with "{" but received: ${t}`),function(e,a){for(;!o(e,102)&&!o(e,0,"EOF");)e=a.next()}(e,a),e=a.next();continue}let s=t.slice(1).trim();r.extensions??(r.extensions={}),(n=r.extensions)[s]??(n[s]=[]),function(e,a,r){for(;!o(e,102,"}")&&!o(e,0,"EOF");)r.push(e),e=a.next()}(e,a,r.extensions[s]),e=a.next()}}(et=eM||(eM={}))[et.PERSPECTIVE_MODE=1]="PERSPECTIVE_MODE",et[et.FRONT_CLIPPING=2]="FRONT_CLIPPING",et[et.BACK_CLIPPING=4]="BACK_CLIPPING",et[et.UCS_FOLLOW=8]="UCS_FOLLOW",et[et.FRONT_CLIP_NOT_AT_EYE=16]="FRONT_CLIP_NOT_AT_EYE",et[et.UCS_ICON_VISIBILITY=32]="UCS_ICON_VISIBILITY",et[et.UCS_ICON_AT_ORIGIN=64]="UCS_ICON_AT_ORIGIN",et[et.FAST_ZOOM=128]="FAST_ZOOM",et[et.SNAP_MODE=256]="SNAP_MODE",et[et.GRID_MODE=512]="GRID_MODE",et[et.ISOMETRIC_SNAP_STYLE=1024]="ISOMETRIC_SNAP_STYLE",et[et.HIDE_PLOT_MODE=2048]="HIDE_PLOT_MODE",et[et.K_ISO_PAIR_TOP=4096]="K_ISO_PAIR_TOP",et[et.K_ISO_PAIR_RIGHT=8192]="K_ISO_PAIR_RIGHT",et[et.VIEWPORT_ZOOM_LOCKING=16384]="VIEWPORT_ZOOM_LOCKING",et[et.UNUSED=32768]="UNUSED",et[et.NON_RECTANGULAR_CLIPPING=65536]="NON_RECTANGULAR_CLIPPING",et[et.VIEWPORT_OFF=131072]="VIEWPORT_OFF",et[et.GRID_BEYOND_DRAWING_LIMITS=262144]="GRID_BEYOND_DRAWING_LIMITS",et[et.ADAPTIVE_GRID_DISPLAY=524288]="ADAPTIVE_GRID_DISPLAY",et[et.SUBDIVISION_BELOW_SPACING=1048576]="SUBDIVISION_BELOW_SPACING",et[et.GRID_FOLLOWS_WORKPLANE=2097152]="GRID_FOLLOWS_WORKPLANE",(eo=eR||(eR={}))[eo.OPTIMIZED_2D=0]="OPTIMIZED_2D",eo[eo.WIREFRAME=1]="WIREFRAME",eo[eo.HIDDEN_LINE=2]="HIDDEN_LINE",eo[eo.FLAT_SHADED=3]="FLAT_SHADED",eo[eo.GOURAUD_SHADED=4]="GOURAUD_SHADED",eo[eo.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",eo[eo.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME",(es=ek||(ek={}))[es.UCS_UNCHANGED=0]="UCS_UNCHANGED",es[es.HAS_OWN_UCS=1]="HAS_OWN_UCS",(ec=ex||(ex={}))[ec.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",ec[ec.TOP=1]="TOP",ec[ec.BOTTOM=2]="BOTTOM",ec[ec.FRONT=3]="FRONT",ec[ec.BACK=4]="BACK",ec[ec.LEFT=5]="LEFT",ec[ec.RIGHT=6]="RIGHT",(ei=eF||(eF={}))[ei.AS_DISPLAYED=0]="AS_DISPLAYED",ei[ei.WIREFRAME=1]="WIREFRAME",ei[ei.HIDDEN=2]="HIDDEN",ei[ei.RENDERED=3]="RENDERED",(ed=ew||(ew={}))[ed.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",ed[ed.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS";var c,i,d,l,u,p,m,E,I,h,f,b,T,D,O,g,N,S,_,L,A,y,C,P,v,M,R,k,x,F,w,V,B,H,G,U,W,Y,j,X,z,K,Z,J,$,q,Q,ee,ea,er,en,et,eo,es,ec,ei,ed,el,eu,ep,em,eE,eI,eh,ef,eb,eT,eD,eO,eg,eN,eS,e_,eL,eA,ey,eC,eP,ev,eM,eR,ek,ex,eF,ew,eV,eB,eH,eG,eU,eW,eY,ej,eX,ez,eK,eZ,eJ,e$,eq,eQ,e0,e1,e4,e2,e3,e7,e5,e6=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215];function e9(e){return e6[e]}function e8(e){let a={};e.rewind();let r=e.next(),n=r.code;if(a.x=r.value,(r=e.next()).code!==n+10)throw Error("Expected code for point value to be 20 but got "+r.code+".");return(a.y=r.value,(r=e.next()).code!==n+20)?e.rewind():a.z=r.value,a}let ae=Symbol();function aa(e,a){return(r,n,t)=>{let s=e.reduce((e,a)=>{a.pushContext&&e.push({});let r=e[e.length-1];for(let e of"number"==typeof a.code?[a.code]:a.code){let n=r[e]??(r[e]=[]);a.isMultiple&&n.length,n.push(a)}return e},[{}]),c=!1,i=s.length-1;for(;!o(r,0,"EOF");){let e=function(e,a,r){return e.find((e,n)=>n>=r&&e[a]?.length)}(s,r.code,i),a=e?.[r.code].at(-1);if(!e||!a){n.rewind();break}a.isMultiple||e[r.code].pop();let{name:o,parser:d,isMultiple:l,isReducible:u}=a,p=d?.(r,n,t);if(p===ae){n.rewind();break}if(o){let[e,a]=function(e,a){let r=a.split("."),n=e;for(let e=0;e<r.length-1;++e){let a=r[e];Object.prototype.hasOwnProperty.call(n,a)||(n[a]={}),n=n[a]}return[n,r.at(-1)]}(t,o);l&&!u?(Object.prototype.hasOwnProperty.call(e,a)||(e[a]=[]),e[a].push(p)):e[a]=p}a.pushContext&&(i-=1),c=!0,r=n.next()}return a&&Object.setPrototypeOf(t,a),c}}function ar({value:e}){return e}function an(e,a){return e8(a)}function at({value:e}){return!!e}function ao(e,a){if(!o(e,1001))throw Error("XData must starts with code 1001");let r={appName:e.value,value:[]};e=a.next();let n=[r.value];for(;!o(e,0,"EOF")&&e.code>=1e3;){let r=n.at(-1);switch(e.code){case 1002:"{"===e.value?n.push([]):(n.pop(),n.at(-1)?.push(r));break;case 1e3:case 1004:case 1040:case 1070:case 1071:r.push({type:as(e.code),value:e.value});break;case 1003:r.push({name:"layer",type:as(e.code),value:e.value});break;case 1005:r.push({name:"handle",type:as(e.code),value:e.value});break;case 1010:r.push({type:as(e.code),value:e8(a)});break;case 1011:r.push({name:"worldSpacePosition",type:as(e.code),value:e8(a)});break;case 1012:r.push({name:"worldSpaceDisplacement",type:as(e.code),value:e8(a)});break;case 1013:r.push({name:"worldSpaceDirection",type:as(e.code),value:e8(a)});break;case 1041:r.push({name:"distance",type:as(e.code),value:e.value});break;case 1042:r.push({name:"scale",type:as(e.code),value:e.value})}e=a.next()}return a.rewind(),r}function as(e){switch(e){case 1e3:case 1003:case 1005:return"string";case 1004:return"hex";case 1040:case 1041:case 1042:return"real";case 1070:return"integer";case 1071:return"long";case 1010:case 1011:case 1012:case 1013:return"point";default:return""}}(c=eV||(eV={}))[c.CAST_AND_RECEIVE=0]="CAST_AND_RECEIVE",c[c.CAST=1]="CAST",c[c.RECEIVE=2]="RECEIVE",c[c.IGNORE=3]="IGNORE";let ac=[{code:1001,name:"xdata",parser:ao},{code:284,name:"shadowMode",parser:ar},{code:390,name:"plotStyleHardId",parser:ar},{code:440,name:"transparency",parser:ar},{code:430,name:"colorName",parser:ar},{code:420,name:"color",parser:ar},{code:310,name:"proxyEntity",parser:ar},{code:92,name:"proxyByte",parser:ar},{code:60,name:"isVisible",parser:at},{code:48,name:"lineTypeScale",parser:ar},{code:370,name:"lineweight",parser:ar},{code:62,name:"colorIndex",parser(e,a,r){let n=e.value;return r.color=e9(Math.abs(n)),n}},{code:347,name:"materialObjectHardId",parser:ar},{code:6,name:"lineType",parser:ar},{code:8,name:"layer",parser:ar},{code:410,name:"layoutTabName",parser:ar},{code:67,name:"isInPaperSpace",parser:at},{code:100},{code:330,name:"ownerBlockRecordSoftId",parser:ar},{code:102,parser:s},{code:102,parser:s},{code:102,parser:s},{code:5,name:"handle",parser:ar}],ai=0;function ad(e){if(!e)throw TypeError("entity cannot be undefined or null");e.handle||(e.handle=ai++)}function al(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}let au={extrusionDirection:{x:0,y:0,z:1}},ap=[{code:210,name:"extrusionDirection",parser:an},{code:51,name:"endAngle",parser:ar},{code:50,name:"startAngle",parser:ar},{code:100,name:"subclassMarker",parser:ar},{code:40,name:"radius",parser:ar},{code:10,name:"center",parser:an},{code:39,name:"thickness",parser:ar},{code:100},...ac];class am{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){al(this,"parser",aa(ap,au))}}function aE(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}al(am,"ForEntityName","ARC"),(i=eB||(eB={}))[i.NONE=0]="NONE",i[i.INVISIBLE=1]="INVISIBLE",i[i.CONSTANT=2]="CONSTANT",i[i.VERIFICATION_REQUIRED=4]="VERIFICATION_REQUIRED",i[i.PRESET=8]="PRESET",(d=eH||(eH={}))[d.MULTILINE=2]="MULTILINE",d[d.CONSTANT_MULTILINE=4]="CONSTANT_MULTILINE",(l=eG||(eG={}))[l.NONE=0]="NONE",l[l.MIRRORED_X=2]="MIRRORED_X",l[l.MIRRORED_Y=4]="MIRRORED_Y",(u=eU||(eU={}))[u.LEFT=0]="LEFT",u[u.CENTER=1]="CENTER",u[u.RIGHT=2]="RIGHT",u[u.ALIGNED=3]="ALIGNED",u[u.MIDDLE=4]="MIDDLE",u[u.FIT=5]="FIT",(p=eW||(eW={}))[p.BASELINE=0]="BASELINE",p[p.BOTTOM=1]="BOTTOM",p[p.MIDDLE=2]="MIDDLE",p[p.TOP=3]="TOP";let aI={thickness:0,rotation:0,xScale:1,obliqueAngle:0,styleName:"STANDARD",generationFlag:0,halign:eU.LEFT,valign:eW.BASELINE,extrusionDirection:{x:0,y:0,z:1}},ah=[{code:73,name:"valign",parser:ar},{code:100},{code:210,name:"extrusionDirection",parser:an},{code:11,name:"endPoint",parser:an},{code:72,name:"valign",parser:ar},{code:72,name:"halign",parser:ar},{code:71,name:"generationFlag",parser:ar},{code:7,name:"styleName",parser:ar},{code:51,name:"obliqueAngle",parser:ar},{code:41,name:"xScale",parser:ar},{code:50,name:"rotation",parser:ar},{code:1,name:"text",parser:ar},{code:40,name:"textHeight",parser:ar},{code:10,name:"startPoint",parser:an},{code:39,name:"thickness",parser:ar},{code:100,name:"subclassMarker",parser:ar},...ac];class af{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aE(this,"parser",aa(ah,aI))}}function ab(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aE(af,"ForEntityName","TEXT");let aT={...aI},aD=[{code:2},{code:40,name:"annotationScale",parser:ar},{code:10,name:"alignmentPoint",parser:an},{code:340,name:"secondaryAttributesHardIds",isMultiple:!0,parser:ar},{code:70,name:"numberOfSecondaryAttributes",parser:ar},{code:70,name:"isReallyLocked",parser:at},{code:70,name:"mtextFlag",parser:ar},{code:280,name:"isDuplicatedRecord",parser:at},{code:100},{code:280,name:"isLocked",parser:at},{code:74,name:"valign",parser:ar},{code:73},{code:70,name:"attributeFlag",parser:ar},{code:2,name:"tag",parser:ar},{code:3,name:"prompt",parser:ar},{code:280},{code:100,name:"subclassMarker",parser:ar},...ah.slice(2)];class aO{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ab(this,"parser",aa(aD,aT))}}function ag(e,a){let r={};for(let n of e){let e=a(n);null!=e&&(r[e]??(r[e]=[]),r[e].push(n))}return r}function*aN(e,a=1/0,r=1){for(let n=e;n!==a;n+=r)yield n}function aS(e){return{x:e.x??0,y:e.y??0,z:e.z??0}}function a_(e,a,r){if(o(a,102))return s(a,r,e),!0;switch(a.code){case 0:e.type=a.value;break;case 5:e.handle=a.value;break;case 330:e.ownerBlockRecordSoftId=a.value;break;case 67:e.isInPaperSpace=!!a.value;break;case 8:e.layer=a.value;break;case 6:e.lineType=a.value;break;case 347:e.materialObjectHardId=a.value;break;case 62:e.colorIndex=a.value,e.color=e9(Math.abs(a.value));break;case 370:e.lineweight=a.value;break;case 48:e.lineTypeScale=a.value;break;case 60:e.isVisible=!!a.value;break;case 92:e.proxyByte=a.value;break;case 310:e.proxyEntity=a.value;break;case 100:break;case 420:e.color=a.value;break;case 430:e.transparency=a.value;break;case 390:e.plotStyleHardId=a.value;break;case 284:e.shadowMode=a.value;break;case 1001:e.xdata=ao(a,r);break;default:return!1}return!0}function aL(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ab(aO,"ForEntityName","ATTDEF"),(m=eY||(eY={}))[m.INVISIBLE=1]="INVISIBLE",m[m.CONSTANT=2]="CONSTANT",m[m.REQUIRE_VERIFICATION=4]="REQUIRE_VERIFICATION",m[m.PRESET=8]="PRESET",(E=ej||(ej={}))[E.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",E[E.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",E[E.BY_STYLE=5]="BY_STYLE";let aA={textStyle:"STANDARD",extrusionDirection:{x:0,y:0,z:1},rotation:0},ay=[{code:46,name:"annotationHeight",parser:ar},{code:101,parser(e,a){!function(e){e.rewind();let a=e.next();if(101!==a.code)throw Error("Bad call for skipEmbeddedObject()");do a=e.next();while(0!==a.code);e.rewind()}(a)}},{code:50,name:"columnHeight",parser:ar},{code:49,name:"columnGutter",parser:ar},{code:48,name:"columnWidth",parser:ar},{code:79,name:"columnAutoHeight",parser:ar},{code:78,name:"columnFlowReversed",parser:ar},{code:76,name:"columnCount",parser:ar},{code:75,name:"columnType",parser:ar},{code:441,name:"backgroundFillTransparency",parser:ar},{code:63,name:"backgroundFillColor",parser:ar},{code:45,name:"fillBoxScale",parser:ar},{code:[...aN(430,440)],name:"backgroundColor",parser:ar},{code:[...aN(420,430)],name:"backgroundColor",parser:ar},{code:90,name:"backgroundFill",parser:ar},{code:44,name:"lineSpacing",parser:ar},{code:73,name:"lineSpacingStyle",parser:ar},{code:50,name:"rotation",parser:ar},{code:43},{code:42},{code:11,name:"direction",parser:an},{code:210,name:"extrusionDirection",parser:an},{code:7,name:"styleName",parser:ar},{code:3,name:"text",parser:(e,a,r)=>(r._code3text=(r._code3text??"")+e.value,r._code3text+(r._code1text??"")),isMultiple:!0,isReducible:!0},{code:1,name:"text",parser:(e,a,r)=>(r._code1text=e.value,(r._code3text??"")+r._code1text)},{code:72,name:"drawingDirection",parser:ar},{code:71,name:"attachmentPoint",parser:ar},{code:41,name:"width",parser:ar},{code:40,name:"height",parser:ar},{code:10,name:"insertionPoint",parser:an},{code:100,name:"subclassMarker",parser:ar},...ac];class aC{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aL(this,"parser",aa(ay,aA))}}function aP(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aL(aC,"ForEntityName","MTEXT");let av={thickness:0,rotation:0,scale:1,obliqueAngle:0,textStyle:"STANDARD",textGenerationFlag:0,horizontalJustification:0,verticalJustification:0,extrusionDirection:{x:0,y:0,z:1}},aM=[...ay.slice(ay.findIndex(({name:e})=>"columnType"===e),ay.findIndex(({name:e})=>"subclassMarker"===e)+1),{code:100},{code:0,parser(e){if(!o(e,0,"MTEXT"))return ae}},{code:2,name:"definitionTag",parser:ar},{code:40,name:"annotationScale",parser:ar},{code:10,name:"alignmentPoint",parser:an},{code:340,name:"secondaryAttributesHardId",parser:ar},{code:70,name:"numberOfSecondaryAttributes",parser:ar},{code:70,name:"isReallyLocked",parser:at},{code:70,name:"mtextFlag",parser:ar},{code:280,name:"isDuplicatedEntriesKeep",parser:at},{code:100},{code:280,name:"lockPositionFlag",parser:at},{code:210,name:"extrusionDirection",parser:an},{code:11,name:"alignmentPoint",parser:an},{code:74,name:"verticalJustification",parser:ar},{code:72,name:"horizontalJustification",parser:ar},{code:71,name:"textGenerationFlag",parser:ar},{code:7,name:"textStyle",parser:ar},{code:51,name:"obliqueAngle",parser:ar},{code:41,name:"scale",parser:ar},{code:50,name:"rotation",parser:ar},{code:73},{code:70,name:"attributeFlag",parser:ar},{code:2,name:"tag",parser:ar},{code:280},{code:100,name:"subclassMarker",parser:ar},{code:1,name:"text",parser:ar},{code:40,name:"textHeight",parser:ar},{code:10,name:"startPoint",parser:an},{code:39,name:"thickness",parser:ar},{code:100},...ac];class aR{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aP(this,"parser",aa(aM,av))}}function ak(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aP(aR,"ForEntityName","ATTRIB");let ax={thickness:0,extrusionDirection:{x:0,y:0,z:1}},aF=[{code:210,name:"extrusionDirection",parser:an},{code:40,name:"radius",parser:ar},{code:10,name:"center",parser:an},{code:39,name:"thickness",parser:ar},{code:100,name:"subclassMarker",parser:ar},...ac];class aw{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ak(this,"parser",aa(aF,ax))}}ak(aw,"ForEntityName","CIRCLE");class aV{parseEntity(e,a){let r={};for(;!o(a,0,"EOF");){if(0===a.code){e.rewind();break}!function(e,a,r){switch(a.code){case 100:e.subclassMarker=a.value;break;case 280:e.version=a.value;break;case 2:e.name=a.value;break;case 10:e.definitionPoint=e8(r);break;case 11:e.textPoint=e8(r);break;case 12:e.insertionPoint=e8(r);break;case 13:e.subDefinitionPoint1=e8(r);break;case 14:e.subDefinitionPoint2=e8(r);break;case 15:e.centerPoint=e8(r);break;case 16:e.arcPoint=e8(r);break;case 70:e.dimensionType=a.value;break;case 71:e.attachmentPoint=a.value;break;case 72:e.textLineSpacingStyle=a.value;break;case 40:e.leaderLength=a.value;break;case 41:e.textLineSpacingFactor=a.value;break;case 42:e.measurement=a.value;break;case 1:e.text=a.value;break;case 50:e.rotationAngle=a.value;break;case 52:e.obliqueAngle=a.value;break;case 53:e.textRotation=a.value;break;case 51:e.ocsRotation=a.value;break;case 210:e.extrusionDirection=e8(r);break;case 3:e.styleName=a.value;break;default:a_(e,a,r)}}(r,a,e),a=e.next()}return r}}function aB(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}h="DIMENSION",(I="ForEntityName")in aV?Object.defineProperty(aV,I,{value:h,enumerable:!0,configurable:!0,writable:!0}):aV[I]=h;let aH={extrusionDirection:{x:0,y:0,z:1}},aG=[{code:42,name:"endAngle",parser:ar},{code:41,name:"startAngle",parser:ar},{code:40,name:"axisRatio",parser:ar},{code:210,name:"extrusionDirection",parser:an},{code:11,name:"majorAxisEndPoint",parser:an},{code:10,name:"center",parser:an},{code:100,name:"subclassMarker",parser:ar},...ac];class aU{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aB(this,"parser",aa(aG,aH))}}function aW(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aB(aU,"ForEntityName","ELLIPSE"),(f=eX||(eX={}))[f.ShowImage=1]="ShowImage",f[f.ShowImageWhenNotAlignedWithScreen=2]="ShowImageWhenNotAlignedWithScreen",f[f.UseClippingBoundary=4]="UseClippingBoundary",f[f.TransparencyIsOn=8]="TransparencyIsOn",(b=ez||(ez={}))[b.Rectangular=1]="Rectangular",b[b.Polygonal=2]="Polygonal",(T=eK||(eK={}))[T.Outside=0]="Outside",T[T.Inside=1]="Inside";let aY={brightness:50,contrast:50,fade:0,clippingBoundaryPath:[]},aj=[{code:290,name:"clipMode",parser:ar},{code:14,name:"clippingBoundaryPath",isMultiple:!0,parser:an},{code:91,name:"countBoundaryPoints",parser:ar},{code:71,name:"clippingBoundaryType",parser:ar},{code:360,name:"imageDefReactorHandle",parser:ar},{code:283,name:"fade",parser:ar},{code:282,name:"contrast",parser:ar},{code:281,name:"brightness",parser:ar},{code:280,name:"isClipped",parser:at},{code:70,name:"flags",parser:ar},{code:340,name:"imageDefHandle",parser:ar},{code:13,name:"imageSize",parser:an},{code:12,name:"vPixel",parser:an},{code:11,name:"uPixel",parser:an},{code:10,name:"position",parser:an},{code:90,name:"version",parser:ar},{code:100,name:"subclassMarker",parser:ar},...ac];class aX{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aW(this,"parser",aa(aj,aY))}}function az(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aW(aX,"ForEntityName","IMAGE");let aK={xScale:1,yScale:1,zScale:1,rotation:0,columnCount:0,rowCount:0,columnSpacing:0,rowSpacing:0,extrusionDirection:{x:0,y:0,z:1}},aZ=[{code:210,name:"extrusionDirection",parser:an},{code:45,name:"rowSpacing",parser:ar},{code:44,name:"columnSpacing",parser:ar},{code:71,name:"rowCount",parser:ar},{code:70,name:"columnCount",parser:ar},{code:50,name:"rotation",parser:ar},{code:43,name:"zScale",parser:ar},{code:42,name:"yScale",parser:ar},{code:41,name:"xScale",parser:ar},{code:10,name:"insertionPoint",parser:an},{code:2,name:"name",parser:ar},{code:66,name:"isVariableAttributes",parser:at},{code:100,name:"subclassMarker",parser:ar},...ac];class aJ{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){az(this,"parser",aa(aZ,aK))}}function a$(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}az(aJ,"ForEntityName","INSERT");let aq={isArrowheadEnabled:!0},aQ=[{code:213,name:"offsetFromAnnotation",parser:an},{code:212,name:"offsetFromBlock",parser:an},{code:211,name:"horizontalDirection",parser:an},{code:210,name:"normal",parser:an},{code:340,name:"associatedAnnotation",parser:ar},{code:77,name:"byBlockColor",parser:ar},{code:10,name:"vertices",parser:an,isMultiple:!0},{code:76,name:"numberOfVertices",parser:ar},{code:41,name:"textWidth",parser:ar},{code:40,name:"textHeight",parser:ar},{code:75,name:"isHooklineExists",parser:at},{code:74,name:"isHooklineSameDirection",parser:at},{code:73,name:"leaderCreationFlag",parser:ar},{code:72,name:"isSpline",parser:at},{code:71,name:"isArrowheadEnabled",parser:at},{code:3,name:"styleName",parser:ar},{code:100,name:"subclassMarker",parser:ar},...ac];class a0{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a$(this,"parser",aa(aQ,aq))}}function a1(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}a$(a0,"ForEntityName","LEADER"),(D=eZ||(eZ={}))[D.TextAnnotation=0]="TextAnnotation",D[D.ToleranceAnnotation=1]="ToleranceAnnotation",D[D.BlockReferenceAnnotation=2]="BlockReferenceAnnotation",D[D.NoAnnotation=3]="NoAnnotation";let a4={thickness:0,extrusionDirection:{x:0,y:0,z:1}},a2=[{code:210,name:"extrusionDirection",parser:an},{code:11,name:"endPoint",parser:an},{code:10,name:"startPoint",parser:an},{code:39,name:"thickness",parser:ar},{code:100,name:"subclassMarker",parser:ar},...ac];class a3{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a1(this,"parser",aa(a2,a4))}}a1(a3,"ForEntityName","LINE"),(O=eJ||(eJ={}))[O.IS_CLOSED=1]="IS_CLOSED",O[O.PLINE_GEN=128]="PLINE_GEN";let a7={flag:0,elevation:0,thickness:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},a5={bulge:0},a6=[{code:42,name:"bulge",parser:ar},{code:41,name:"endWidth",parser:ar},{code:40,name:"startWidth",parser:ar},{code:91,name:"id",parser:ar},{code:20,name:"y",parser:ar},{code:10,name:"x",parser:ar}],a9=[{code:210,name:"extrusionDirection",parser:an},{code:10,name:"vertices",isMultiple:!0,parser(e,a){let r={};return aa(a6,a5)(e,a,r),r}},{code:39,name:"thickness",parser:ar},{code:38,name:"elevation",parser:ar},{code:43,name:"constantWidth",parser:ar},{code:70,name:"flag",parser:ar},{code:90,name:"numberOfVertices",parser:ar},{code:100,name:"subclassMarker",parser:ar},...ac];class a8{parseEntity(e,a){let r={};return aa(a9,a7)(a,e,r),r}}function re(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}N="LWPOLYLINE",(g="ForEntityName")in a8?Object.defineProperty(a8,g,{value:N,enumerable:!0,configurable:!0,writable:!0}):a8[g]=N;let ra={thickness:0,extrusionDirection:{x:0,y:0,z:1},angle:0},rr=[{code:50,name:"angle",parser:ar},{code:210,name:"extrusionDirection",parser:an},{code:39,name:"thickness",parser:ar},{code:10,name:"position",parser:an},{code:100,name:"subclassMarker",parser:ar},...ac];class rn{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){re(this,"parser",aa(rr,ra))}}function rt(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}re(rn,"ForEntityName","POINT"),(S=e$||(e$={}))[S.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",S[S.CURVE_FIT=2]="CURVE_FIT",S[S.SPLINE_FIT=4]="SPLINE_FIT",S[S.POLYLINE_3D=8]="POLYLINE_3D",S[S.POLYGON_3D=16]="POLYGON_3D",S[S.CLOSED_POLYGON=32]="CLOSED_POLYGON",S[S.POLYFACE=64]="POLYFACE",S[S.CONTINUOUS=128]="CONTINUOUS",(_=eq||(eq={}))[_.NONE=0]="NONE",_[_.QUADRATIC=5]="QUADRATIC",_[_.CUBIC=6]="CUBIC",_[_.BEZIER=8]="BEZIER",(L=eQ||(eQ={}))[L.CREATED_BY_CURVE_FIT=1]="CREATED_BY_CURVE_FIT",L[L.TANGENT_DEFINED=2]="TANGENT_DEFINED",L[L.NOT_USED=4]="NOT_USED",L[L.CREATED_BY_SPLINE_FIT=8]="CREATED_BY_SPLINE_FIT",L[L.SPLINE_CONTROL_POINT=16]="SPLINE_CONTROL_POINT",L[L.FOR_POLYLINE=32]="FOR_POLYLINE",L[L.FOR_POLYGON=64]="FOR_POLYGON",L[L.POLYFACE=128]="POLYFACE";let ro={startWidth:0,endWidth:0,bulge:0},rs=[{code:91,name:"id",parser:ar},{code:[...aN(71,75)],name:"faces",isMultiple:!0,parser:ar},{code:50,name:"tangentDirection",parser:ar},{code:70,name:"flag",parser:ar},{code:42,name:"bulge",parser:ar},{code:41,name:"endWidth",parser:ar},{code:40,name:"startWidth",parser:ar},{code:30,name:"z",parser:ar},{code:20,name:"y",parser:ar},{code:10,name:"x",parser:ar},{code:100,name:"subclassMarker",parser:ar},{code:100},...ac];class rc{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rt(this,"parser",aa(rs,ro))}}function ri(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rt(rc,"ForEntityName","VERTEX");let rd={thickness:0,flag:0,startWidth:0,endWidth:0,meshMVertexCount:0,meshNVertexCount:0,surfaceMDensity:0,surfaceNDensity:0,smoothType:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rl=[{code:0,name:"vertices",isMultiple:!0,parser:(e,a)=>o(e,0,"VERTEX")?(e=a.next(),new rc().parseEntity(a,e)):ae},{code:210,name:"extrusionDirection",parser:an},{code:75,name:"smoothType",parser:ar},{code:74,name:"surfaceNDensity",parser:ar},{code:73,name:"surfaceMDensity",parser:ar},{code:72,name:"meshNVertexCount",parser:ar},{code:71,name:"meshMVertexCount",parser:ar},{code:41,name:"endWidth",parser:ar},{code:40,name:"startWidth",parser:ar},{code:70,name:"flag",parser:ar},{code:39,name:"thickness",parser:ar},{code:30,name:"elevation",parser:ar},{code:20},{code:10},{code:66},{code:100,name:"subclassMarker",parser:ar},...ac];class ru{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ri(this,"parser",aa(rl,rd))}}function rp(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ri(ru,"ForEntityName","POLYLINE");let rm=[{code:11,name:"direction",parser:an},{code:10,name:"position",parser:an},{code:100,name:"subclassMarker",parser:ar},...ac];class rE{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rp(this,"parser",aa(rm))}}function rI(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rp(rE,"ForEntityName","RAY");let rh={vertices:[],backLineVertices:[]},rf=[{code:360,name:"geometrySettingHardId",parser:ar},{code:12,name:"backLineVertices",isMultiple:!0,parser:an},{code:93,name:"numberOfBackLineVertices",parser:ar},{code:11,name:"vertices",isMultiple:!0,parser:an},{code:92,name:"verticesCount",parser:ar},{code:[63,411],name:"indicatorColor",parser:ar},{code:70,name:"indicatorTransparency",parser:ar},{code:41,name:"bottomHeight",parser:ar},{code:40,name:"topHeight",parser:ar},{code:10,name:"verticalDirection",parser:an},{code:1,name:"name",parser:ar},{code:91,name:"flag",parser:ar},{code:90,name:"state",parser:ar},{code:100,name:"subclassMarker",parser:ar},...ac];class rb{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rI(this,"parser",aa(rf,rh))}}function rT(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rI(rb,"ForEntityName","SECTION");let rD={points:[],thickness:0,extrusionDirection:{x:0,y:0,z:1}},rO=[{code:210,name:"extrusionDirection",parser:an},{code:39,name:"thickness",parser:ar},{code:[...aN(10,14)],name:"points",isMultiple:!0,parser:an},{code:100,name:"subclassMarker",parser:ar},...ac];class rg{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rT(this,"parser",aa(rO,rD))}}function rN(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rT(rg,"ForEntityName","SOLID"),(A=e0||(e0={}))[A.NONE=0]="NONE",A[A.CLOSED=1]="CLOSED",A[A.PERIODIC=2]="PERIODIC",A[A.RATIONAL=4]="RATIONAL",A[A.PLANAR=8]="PLANAR",A[A.LINEAR=16]="LINEAR";let rS={knotTolerance:1e-6,controlTolerance:1e-6,fitTolerance:1e-9,knotValues:[],controlPoints:[],fitPoints:[]},r_=[{code:11,name:"fitPoints",isMultiple:!0,parser:an},{code:10,name:"controlPoints",isMultiple:!0,parser:an},{code:41,name:"weights",isMultiple:!0,parser:ar},{code:40,name:"knots",isMultiple:!0,parser:ar},{code:13,name:"endTangent",parser:an},{code:12,name:"startTangent",parser:an},{code:44,name:"fitTolerance",parser:ar},{code:43,name:"controlTolerance",parser:ar},{code:42,name:"knotTolerance",parser:ar},{code:74,name:"numberOfFitPoints",parser:ar},{code:73,name:"numberOfControlPoints",parser:ar},{code:72,name:"numberOfKnots",parser:ar},{code:71,name:"degree",parser:ar},{code:70,name:"flag",parser:ar},{code:210,name:"normal",parser:an},{code:100,name:"subclassMarker",parser:ar},...ac];class rL{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rN(this,"parser",aa(r_,rS))}}rN(rL,"ForEntityName","SPLINE");let rA=[{code:330,name:"sourceBoundaryObjects",parser:ar,isMultiple:!0},{code:97,name:"numberOfSourceBoundaryObjects",parser:ar}],ry=[{code:11,name:"end",parser:an},{code:10,name:"start",parser:an}],rC=[{code:73,name:"isCCW",parser:at},{code:51,name:"endAngle",parser:ar},{code:50,name:"startAngle",parser:ar},{code:40,name:"radius",parser:ar},{code:10,name:"center",parser:an}],rP=[{code:73,name:"isCCW",parser:at},{code:51,name:"endAngle",parser:ar},{code:50,name:"startAngle",parser:ar},{code:40,name:"lengthOfMinorAxis",parser:ar},{code:11,name:"end",parser:an},{code:10,name:"center",parser:an}],rv=[{code:13,name:"endTangent",parser:an},{code:12,name:"startTangent",parser:an},{code:11,name:"fitDatum",isMultiple:!0,parser:an},{code:97,name:"numberOfFitData",parser:ar},{code:10,name:"controlPoints",isMultiple:!0,parser(e,a){let r={...e8(a),weight:1};return 42===(e=a.next()).code?r.weight=e.value:a.rewind(),r}},{code:40,name:"knots",isMultiple:!0,parser:ar},{code:96,name:"numberOfControlPoints",parser:ar},{code:95,name:"numberOfKnots",parser:ar},{code:74,name:"isPeriodic",parser:at},{code:73,name:"splineFlag",parser:ar},{code:94,name:"degree",parser:ar}],rM={[ey.Line]:ry,[ey.Circular]:rC,[ey.Elliptic]:rP,[ey.Spline]:rv},rR=[...rA,{code:72,name:"edges",parser(e,a){let r={type:e.value},n=aa(rM[r.type]);if(!n)throw Error(`Invalid edge type ${r.type}`);return n(e=a.next(),a,r),r},isMultiple:!0},{code:93,name:"numberOfEdges",parser:ar}],rk=[...rA,{code:10,name:"vertices",parser(e,a){let r={...e8(a),bulge:0};return 42===(e=a.next()).code?r.bulge=e.value:a.rewind(),r},isMultiple:!0},{code:93,name:"numberOfVertices",parser:ar},{code:73,name:"isClosed",parser:at},{code:72,name:"hasBulge",parser:at}],rx=[{code:49,name:"dashLengths",parser:ar,isMultiple:!0},{code:79,name:"numberOfDashLengths",parser:ar},{code:45,name:"offset",parser:rF},{code:43,name:"base",parser:rF},{code:53,name:"angle",parser:ar}];function rF(e,a){let r=e.code+1,n={x:e.value,y:1};return(e=a.next()).code===r?n.y=e.value:a.rewind(),n}function rw(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}let rV={extrusionDirection:{x:0,y:0,z:1},gradientRotation:0,colorTint:0},rB=[{code:470},{code:463},{code:462,name:"colorTint",parser:ar},{code:461,name:"gradientDefinition",parser:ar},{code:460,name:"gradientRotation",parser:ar},{code:453,name:"numberOfColors",parser:ar},{code:452,name:"gradientColorFlag",parser:ar},{code:451},{code:450,name:"gradientFlag",parser:ar},{code:10,name:"seedPoints",parser:an,isMultiple:!0},{code:99},{code:11,name:"offsetVector",parser:an},{code:98,name:"numberOfSeedPoints",parser:ar},{code:47,name:"pixelSize",parser:ar},{code:53,name:"definitionLines",parser:function(e,a){let r={};return aa(rx)(e,a,r),r},isMultiple:!0},{code:78,name:"numberOfDefinitionLines",parser:ar},{code:77,name:"isDouble",parser:at},{code:73,name:"isAnnotated",parser:at},{code:41,name:"patternScale",parser:ar},{code:52,name:"patternAngle",parser:ar},{code:76,name:"patternType",parser:ar},{code:75,name:"hatchStyle",parser:ar},{code:92,name:"boundaryPaths",parser:function(e,a){let r={boundaryPathTypeFlag:e.value},n=r.boundaryPathTypeFlag&eA.Polyline;return(e=a.next(),n)?aa(rk)(e,a,r):aa(rR)(e,a,r),r},isMultiple:!0},{code:91,name:"numberOfBoundaryPaths",parser:ar},{code:71,name:"associativity",parser:ar},{code:63,name:"patternFillColor",parser:ar},{code:70,name:"solidFill",parser:ar},{code:2,name:"patternName",parser:ar},{code:210,name:"extrusionDirection",parser:an},{code:10,name:"elevationPoint",parser:an},{code:100,name:"subclassMarker",parser:ar,pushContext:!0},...ac];class rH{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rw(this,"parser",aa(rB,rV))}}rw(rH,"ForEntityName","HATCH");class rG{parseEntity(e,a){let r={};for(;"EOF"!==a;){if(0===a.code){e.rewind();break}!function(e,a,r){if("EOF"===r)return!1;switch(r.code){case 0:return!1;case 100:e.subclassMarker=r.value;break;case 10:e.viewportCenter=aS(e8(a));break;case 40:e.width=r.value;break;case 41:e.height=r.value;break;case 68:e.status=r.value;break;case 69:e.viewportId=r.value;break;case 12:e.displayCenter=e8(a);break;case 13:e.snapBase=e8(a);break;case 14:e.snapSpacing=e8(a);break;case 15:e.gridSpacing=e8(a);break;case 16:e.viewDirection=aS(e8(a));break;case 17:e.targetPoint=aS(e8(a));break;case 42:e.perspectiveLensLength=r.value;break;case 43:e.frontClipZ=r.value;break;case 44:e.backClipZ=r.value;break;case 45:e.viewHeight=r.value;break;case 50:e.snapAngle=r.value;break;case 51:e.viewTwistAngle=r.value;break;case 72:e.circleZoomPercent=r.value;break;case 331:e.frozenLayerIds??(e.frozenLayerIds=[]),e.frozenLayerIds.push(r.value);break;case 90:e.statusBitFlags=r.value;break;case 340:e.clippingBoundaryId=r.value;break;case 1:e.sheetName=r.value;break;case 281:e.renderMode=r.value;break;case 71:e.ucsPerViewport=r.value;break;case 110:e.ucsOrigin=aS(e8(a));break;case 111:e.ucsXAxis=aS(e8(a));break;case 112:e.ucsYAxis=aS(e8(a));break;case 345:e.ucsId=r.value;break;case 346:e.ucsBaseId=r.value;break;case 79:e.orthographicType=r.value;break;case 146:e.elevation=r.value;break;case 170:e.shadePlotMode=r.value;break;case 61:e.majorGridFrequency=r.value;break;case 332:e.backgroundId=r.value;break;case 333:e.shadePlotId=r.value;break;case 348:e.visualStyleId=r.value;break;case 292:e.isDefaultLighting=!!r.value;break;case 282:e.defaultLightingType=r.value;break;case 141:e.brightness=r.value;break;case 142:e.contrast=r.value;break;case 63:case 421:case 431:e.ambientLightColor=r.value;break;case 361:e.sunId=r.value;break;case 335:case 343:case 344:case 91:e.softPointer=r.value}return!0}(r,e,a)&&a_(r,a,e),a=e.next()}return r}}function rU(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}C="VIEWPORT",(y="ForEntityName")in rG?Object.defineProperty(rG,y,{value:C,enumerable:!0,configurable:!0,writable:!0}):rG[y]=C;let rW={},rY=[{code:170,name:"multileaderType",parser:ar},{code:291,name:"doglegEnabled",parser:at},{code:40,name:"doglegLength",parser:ar},{code:172,name:"contentType",parser:ar},{code:3,name:"textContent",parser:ar},{code:12,name:"textAnchor",parser:an},{code:344,name:"blockHandle",parser:ar},{code:15,name:"blockPosition",parser:an},{code:302,name:"leaderSections",parser:function(e,a,r){let n;let t={leaderLines:[]};for(;a.hasNext()&&303!==(n=a.next()).code;){switch(n.code){case 10:t.landingPoint=(n.value,e8(a));break;case 11:t.doglegVector=(n.value,e8(a));break;case 40:t.doglegLength=n.value;break;case 304:t.leaderLines.push(function(e,a,r){let n;let t={vertices:[]};for(;a.hasNext()&&305!==(n=a.next()).code;)10===n.code&&t.vertices.push((n.value,e8(a)));return t}(0,a))}}return t},isMultiple:!0},...ac];class rj{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rU(this,"parser",aa(rY,rW))}}rU(rj,"ForEntityName","MULTILEADER");let rX=Object.fromEntries([am,aO,aR,aw,aV,aU,aX,aJ,a0,a3,a8,aC,rj,rn,ru,rE,rb,rg,rL,af,rH,rG].map(e=>[e.ForEntityName,new e]));function rz(e,a){let r=[];for(;!o(e,0,"EOF");){if(0===e.code){if("ENDBLK"===e.value||"ENDSEC"===e.value){a.rewind();break}let n=rX[e.value];if(n){let t=e.value;e=a.next();let o=n.parseEntity(a,e);o.type=t,ad(o),r.push(o)}else console.warn(`Unsupported ENTITY type: ${e.value}`)}e=a.next()}return r}function rK(e,a){let r={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");){if(o(e,0,"BLOCK")){let n=rZ(e=a.next(),a);ad(n),n.name&&(r[n.name]=n)}e=a.next()}return r}function rZ(e,a){let r={};for(;!o(e,0,"EOF");){if(o(e,0,"ENDBLK")){for(e=a.next();!o(e,0,"EOF");){if(o(e,100,"AcDbBlockEnd"))return r;e=a.next()}break}switch(e.code){case 1:r.xrefPath=e.value;break;case 2:r.name=e.value;break;case 3:r.name2=e.value;break;case 5:r.handle=e.value;break;case 8:r.layer=e.value;break;case 10:r.position=e8(a);break;case 67:r.paperSpace=!!e.value&&1==e.value;break;case 70:0!==e.value&&(r.type=e.value);break;case 100:break;case 330:r.ownerHandle=e.value;break;case 0:r.entities=rz(e,a)}e=a.next()}return r}function rJ(e,a){let r=null,n={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");)9===e.code?r=e.value:10===e.code?n[r]=e8(a):n[r]=e.value,e=a.next();return n}let r$=[{code:333,name:"shadePlotId",parser:ar},{code:149,name:"imageOriginY",parser:ar},{code:148,name:"imageOriginX",parser:ar},{code:147,name:"scaleFactor",parser:ar},{code:78,name:"shadePlotCustomDPI",parser:ar},{code:77,name:"shadePlotResolution",parser:ar},{code:76,name:"shadePlotMode",parser:ar},{code:75,name:"standardScaleType",parser:ar},{code:7,name:"currentStyleSheet",parser:ar},{code:74,name:"plotType",parser:ar},{code:73,name:"plotRotation",parser:ar},{code:72,name:"paperUnit",parser:ar},{code:70,name:"layoutFlag",parser:ar},{code:143,name:"printScaleDenominator",parser:ar},{code:142,name:"printScaleNominator",parser:ar},{code:141,name:"windowAreaYMax",parser:ar},{code:140,name:"windowAreaYMin",parser:ar},{code:49,name:"windowAreaXMax",parser:ar},{code:48,name:"windowAreaXMin",parser:ar},{code:47,name:"plotOriginY",parser:ar},{code:46,name:"plotOriginX",parser:ar},{code:45,name:"paperHeight",parser:ar},{code:44,name:"paperWidth",parser:ar},{code:43,name:"marginTop",parser:ar},{code:42,name:"marginRight",parser:ar},{code:41,name:"marginBottom",parser:ar},{code:40,name:"marginLeft",parser:ar},{code:6,name:"plotViewName",parser:ar},{code:4,name:"paperSize",parser:ar},{code:2,name:"configName",parser:ar},{code:1,name:"pageSetupName",parser:ar},{code:100,name:"subclassMarker",parser:ar}];(P=e1||(e1={}))[P.INCHES=0]="INCHES",P[P.MILLIMETERS=1]="MILLIMETERS",P[P.PIXELS=2]="PIXELS",(v=e4||(e4={}))[v.LAST_SCREEN_DISPLAY=0]="LAST_SCREEN_DISPLAY",v[v.DRAWING_EXTENTS=1]="DRAWING_EXTENTS",v[v.DRAWING_LIMITS=2]="DRAWING_LIMITS",v[v.VIEW_SPECIFIED=3]="VIEW_SPECIFIED",v[v.WINDOW_SPECIFIED=4]="WINDOW_SPECIFIED",v[v.LAYOUT_INFORMATION=5]="LAYOUT_INFORMATION",(M=e2||(e2={}))[M.AS_DISPLAYED=0]="AS_DISPLAYED",M[M.WIREFRAME=1]="WIREFRAME",M[M.HIDDEN=2]="HIDDEN",M[M.RENDERED=3]="RENDERED",(R=e3||(e3={}))[R.DRAFT=0]="DRAFT",R[R.PREVIEW=1]="PREVIEW",R[R.NORMAL=2]="NORMAL",R[R.PRESENTATION=3]="PRESENTATION",R[R.MAXIMUM=4]="MAXIMUM",R[R.CUSTOM=5]="CUSTOM";let rq=[{code:333,name:"shadePlotId",parser:ar},{code:346,name:"orthographicUcsId",parser:ar},{code:345,name:"namedUcsId",parser:ar},{code:331,name:"viewportId",parser:ar},{code:330,name:"paperSpaceTableId",parser:ar},{code:76,name:"orthographicType",parser:ar},{code:17,name:"ucsYAxis",parser:an},{code:16,name:"ucsXAxis",parser:an},{code:13,name:"ucsOrigin",parser:an},{code:146,name:"elevation",parser:ar},{code:15,name:"maxExtent",parser:an},{code:14,name:"minExtent",parser:an},{code:12,name:"insertionBase",parser:an},{code:11,name:"maxLimit",parser:an},{code:10,name:"minLimit",parser:an},{code:71,name:"tabOrder",parser:ar},{code:70,name:"controlFlag",parser:ar},{code:1,name:"layoutName",parser:ar},{code:100,name:"subclassMarker",parser:ar},...r$];(k=e7||(e7={}))[k.PSLTSCALE=1]="PSLTSCALE",k[k.LIMCHECK=2]="LIMCHECK";let rQ=[{code:330,name:"ownerObjectId",parser:ar},{code:102},{code:360,name:"ownerDictionaryIdHard",parser:ar},{code:102},{code:102},{code:330,name:"ownerDictionaryIdSoft",parser:ar},{code:102},{code:102},{code:102},{code:5,name:"handle",parser:ar}],r0=[{code:3,name:"entries",parser:(e,a)=>{let r={name:e.value};return 350===(e=a.next()).code?r.objectId=e.value:a.rewind(),r},isMultiple:!0},{code:281,name:"recordCloneFlag",parser:ar},{code:280,name:"isHardOwned",parser:at},{code:100,name:"subclassMarker",parser:ar}];function r1(e){return"AcDbDictionary"===e.subclassMarker}(x=e5||(e5={}))[x.NOT_APPLICABLE=0]="NOT_APPLICABLE",x[x.KEEP_EXISTING=1]="KEEP_EXISTING",x[x.USE_CLONE=2]="USE_CLONE",x[x.XREF_VALUE_NAME=3]="XREF_VALUE_NAME",x[x.VALUE_NAME=4]="VALUE_NAME",x[x.UNMANGLE_NAME=5]="UNMANGLE_NAME";let r4={LAYOUT:rq,PLOTSETTINGS:r$,DICTIONARY:r0};function r2(e,a){let r=[];for(;0!==e.code||!["EOF","ENDSEC"].includes(e.value);){let n=e.value,t=r4[n];if(0===e.code&&t?.length){let o=aa([...rQ,...t]),s={name:n};o(e=a.next(),a,s)?(r.push(s),e=a.peek()):e=a.next()}else e=a.next()}return{byName:ag(r,({name:e})=>e),byTree:function(e){let a=Object.fromEntries(e.map(e=>[e.handle,e]));for(let r of e)(!r1(r)||"0"!==r.ownerDictionaryIdSoft)&&(r.ownerDictionaryIdSoft&&(r.ownerDictionarySoft=a[r.ownerDictionaryIdSoft]),r.ownerDictionaryIdHard&&(r.ownerDictionaryHard=a[r.ownerDictionaryIdHard]),r.ownerObjectId&&(r.ownerObject=a[r.ownerObjectId])),function(e,a){r1(e)&&e.entries&&(e.entries=Object.fromEntries(e.entries.map(({name:e,objectId:r})=>[e,a[r]])))}(r,a);return e[0]}(r)}}let r3=[{code:100,name:"subclassMarker",parser:ar},{code:330,name:"ownerObjectId",parser:ar},{code:102,parser(e,a){for(;!o(e,0,"EOF")&&!o(e,102,"}");)e=a.next()}},{code:5,name:"handle",parser:ar}],r7=aa([{code:310,name:"bmpPreview",parser:ar},{code:281,name:"scalability",parser:ar},{code:280,name:"explodability",parser:ar},{code:70,name:"insertionUnits",parser:ar},{code:340,name:"layoutObjects",parser:ar},{code:2,name:"name",parser:ar},{code:100,name:"subclassMarker",parser:ar},...r3]),r5=aa([...[{name:"DIMPOST",code:3},{name:"DIMAPOST",code:4},{name:"DIMBLK_OBSOLETE",code:5},{name:"DIMBLK1_OBSOLETE",code:6},{name:"DIMBLK2_OBSOLETE",code:7},{name:"DIMSCALE",code:40,defaultValue:1},{name:"DIMASZ",code:41,defaultValue:.25},{name:"DIMEXO",code:42,defaultValue:.625,defaultValueImperial:.0625},{name:"DIMDLI",code:43,defaultValue:3.75,defaultValueImperial:.38},{name:"DIMEXE",code:44,defaultValue:2.25,defaultValueImperial:.28},{name:"DIMRND",code:45,defaultValue:0},{name:"DIMDLE",code:46,defaultValue:0},{name:"DIMTP",code:47,defaultValue:0},{name:"DIMTM",code:48,defaultValue:0},{name:"DIMTXT",code:140,defaultValue:2.5,defaultValueImperial:.28},{name:"DIMCEN",code:141,defaultValue:2.5,defaultValueImperial:.09},{name:"DIMTSZ",code:142,defaultValue:0},{name:"DIMALTF",code:143,defaultValue:25.4},{name:"DIMLFAC",code:144,defaultValue:1},{name:"DIMTVP",code:145,defaultValue:0},{name:"DIMTFAC",code:146,defaultValue:1},{name:"DIMGAP",code:147,defaultValue:.625,defaultValueImperial:.09},{name:"DIMALTRND",code:148,defaultValue:0},{name:"DIMTOL",code:71,defaultValue:0,defaultValueImperial:1},{name:"DIMLIM",code:72,defaultValue:0},{name:"DIMTIH",code:73,defaultValue:0,defaultValueImperial:1},{name:"DIMTOH",code:74,defaultValue:0,defaultValueImperial:1},{name:"DIMSE1",code:75,defaultValue:0},{name:"DIMSE2",code:76,defaultValue:0},{name:"DIMTAD",code:77,defaultValue:eI.Above,defaultValueImperial:eI.Center},{name:"DIMZIN",code:78,defaultValue:eh.Trailing,defaultValueImperial:eh.Feet},{name:"DIMAZIN",code:79,defaultValue:ef.None},{name:"DIMALT",code:170,defaultValue:0},{name:"DIMALTD",code:171,defaultValue:3,defaultValueImperial:2},{name:"DIMTOFL",code:172,defaultValue:1,defaultValueImperial:0},{name:"DIMSAH",code:173,defaultValue:0},{name:"DIMTIX",code:174,defaultValue:0},{name:"DIMSOXD",code:175,defaultValue:0},{name:"DIMCLRD",code:176,defaultValue:0},{name:"DIMCLRE",code:177,defaultValue:0},{name:"DIMCLRT",code:178,defaultValue:0},{name:"DIMADEC",code:179},{name:"DIMUNIT",code:270},{name:"DIMDEC",code:271,defaultValue:2,defaultValueImperial:4},{name:"DIMTDEC",code:272,defaultValue:2,defaultValueImperial:4},{name:"DIMALTU",code:273,defaultValue:2},{name:"DIMALTTD",code:274,defaultValue:2,defaultValueImperial:4},{name:"DIMAUNIT",code:275,defaultValue:0},{name:"DIMFRAC",code:276,defaultValue:0},{name:"DIMLUNIT",code:277,defaultValue:2},{name:"DIMDSEP",code:278,defaultValue:",",defaultValueImperial:"."},{name:"DIMJUST",code:280,defaultValue:eb.Center},{name:"DIMSD1",code:281,defaultValue:0},{name:"DIMSD2",code:282,defaultValue:0},{name:"DIMTOLJ",code:283,defaultValue:eT.Center},{name:"DIMTZIN",code:284,defaultValue:eh.Trailing,defaultValueImperial:eh.Feet},{name:"DIMALTZ",code:285,defaultValue:eh.Trailing},{name:"DIMALTTZ",code:286,defaultValue:eh.Trailing},{name:"DIMFIT",code:287},{name:"DIMUPT",code:288,defaultValue:0},{name:"DIMATFIT",code:289,defaultValue:3},{name:"DIMTXSTY",code:340},{name:"DIMLDRBLK",code:341},{name:"DIMBLK",code:342},{name:"DIMBLK1",code:343},{name:"DIMBLK2",code:344},{name:"DIMLWD",code:371,defaultValue:-2},{name:"DIMLWD",code:372,defaultValue:-2}].map(e=>({...e,parser:ar})),{code:70,name:"standardFlag",parser:ar},{code:2,name:"name",parser:ar},{code:100,name:"subclassMarker",parser:ar},{code:105,name:"handle",parser:ar},...r3.filter(e=>5!==e.code)]),r6=aa([{code:347,name:"materialObjectId",parser:ar},{code:390,name:"plotStyleNameObjectId",parser:ar},{code:370,name:"lineweight",parser:ar},{code:290,name:"isPlotting",parser:at},{code:6,name:"lineType",parser:ar},{code:62,name:"colorIndex",parser:ar},{code:70,name:"standardFlag",parser:ar},{code:2,name:"name",parser:ar},{code:100,name:"subclassMarker",parser:ar},...r3]),r9=aa([{code:9,name:"text",parser:ar},{code:45,name:"offsetY",parser:ar},{code:44,name:"offsetX",parser:ar},{code:50,name:"rotation",parser:ar},{code:46,name:"scale",parser:ar},{code:340,name:"styleObjectId",parser:ar},{code:75,name:"shapeNumber",parser:ar},{code:74,name:"elementTypeFlag",parser:ar},{code:49,name:"elementLength",parser:ar}],{elementTypeFlag:0,elementLength:0}),r8={BLOCK_RECORD:r7,DIMSTYLE:r5,LAYER:r6,LTYPE:aa([{code:49,name:"pattern",parser(e,a){let r={};return r9(e,a,r),r},isMultiple:!0},{code:40,name:"totalPatternLength",parser:ar},{code:73,name:"numberOfLineTypes",parser:ar},{code:72,parser:ar},{code:3,name:"description",parser:ar},{code:70,name:"standardFlag",parser:ar},{code:2,name:"name",parser:ar},{code:100,name:"subclassMarker",parser:ar},...r3]),STYLE:aa([{code:1e3,name:"extendedFont",parser:ar},{code:1001},{code:4,name:"bigFont",parser:ar},{code:3,name:"font",parser:ar},{code:42,name:"lastHeight",parser:ar},{code:71,name:"textGenerationFlag",parser:ar},{code:50,name:"obliqueAngle",parser:ar},{code:41,name:"widthFactor",parser:ar},{code:40,name:"fixedTextHeight",parser:ar},{code:70,name:"standardFlag",parser:ar},{code:2,name:"name",parser:ar},{code:100,name:"subclassMarker",parser:ar},...r3]),VPORT:aa([{code:[63,421,431],name:"ambientColor",parser:ar},{code:142,name:"contrast",parser:ar},{code:141,name:"brightness",parser:ar},{code:282,name:"defaultLightingType",parser:ar},{code:292,name:"isDefaultLightingOn",parser:at},{code:348,name:"visualStyleObjectId",parser:ar},{code:333,name:"shadePlotObjectId",parser:ar},{code:332,name:"backgroundObjectId",parser:ar},{code:61,name:"majorGridLines",parser:ar},{code:170,name:"shadePlotSetting",parser:ar},{code:146,name:"elevation",parser:ar},{code:79,name:"orthographicType",parser:ar},{code:112,name:"ucsYAxis",parser:an},{code:111,name:"ucsXAxis",parser:an},{code:110,name:"ucsOrigin",parser:an},{code:74,name:"ucsIconSetting",parser:ar},{code:71,name:"viewMode",parser:ar},{code:281,name:"renderMode",parser:ar},{code:1,name:"styleSheet",parser:ar},{code:[331,441],name:"frozenLayers",parser:ar,isMultiple:!0},{code:72,name:"circleSides",parser:ar},{code:51,name:"viewTwistAngle",parser:ar},{code:50,name:"snapRotationAngle",parser:ar},{code:45,name:"viewHeight",parser:ar},{code:44,name:"backClippingPlane",parser:ar},{code:43,name:"frontClippingPlane",parser:ar},{code:42,name:"lensLength",parser:ar},{code:17,name:"viewTarget",parser:an},{code:16,name:"viewDirectionFromTarget",parser:an},{code:15,name:"gridSpacing",parser:an},{code:14,name:"snapSpacing",parser:an},{code:13,name:"snapBasePoint",parser:an},{code:12,name:"center",parser:an},{code:11,name:"upperRightCorner",parser:an},{code:10,name:"lowerLeftCorner",parser:an},{code:70,name:"standardFlag",parser:ar},{code:2,name:"name",parser:ar},{code:100,name:"subclassMarker",parser:ar},...r3])},ne=aa([{code:70,name:"maxNumberOfEntries",parser:ar},{code:100,name:"subclassMarker",parser:ar},{code:330,name:"ownerObjectId",parser:ar},{code:102},{code:360,isMultiple:!0},{code:102},{code:5,name:"handle",parser:ar},{code:2,name:"name",parser:ar}]);function na(e,a){let r={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");){if(o(e,0,"TABLE")){e=a.next();let n={entries:[]};ne(e,a,n),r[n.name]=n}if(o(e,0)&&!o(e,0,"ENDTAB")){let n=e.value;e=a.next();let t=r8[n];if(!t){a.debug&&console.warn(`parseTable: Invalid table name '${n}'`),e=a.next();continue}let o={};t(e,a,o),r[n]?.entries.push(o)}e=a.next()}return r}function nr(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class nn{next(){if(!this.hasNext())return this._eof?this.debug&&console.warn("Cannot call 'next' after EOF group has been read"):this.debug&&console.warn("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer]),{code:0,value:"EOF"};let e=parseInt(this._data[this._pointer++],10),a=nt(e,this._data[this._pointer++]),r={code:e,value:a};return o(r,0,"EOF")&&(this._eof=!0),this.lastReadGroup=r,r}peek(){if(!this.hasNext()){if(this._eof)throw Error("Cannot call 'next' after EOF group has been read");throw Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer])}let e={code:parseInt(this._data[this._pointer]),value:0};return e.value=nt(e.code,this._data[this._pointer+1]),e}rewind(e){e=e||1,this._pointer=this._pointer-2*e}hasNext(){return!this._eof&&!(this._pointer>this._data.length-2)}isEOF(){return this._eof}constructor(e,a){nr(this,"_pointer",void 0),nr(this,"_data",void 0),nr(this,"_eof",void 0),nr(this,"debug",!0),nr(this,"lastReadGroup",{code:0,value:0}),this._pointer=0,this._data=e,this._eof=!1,this.debug=a??!0}}function nt(e,a){return e<=9?a:e>=10&&e<=59?parseFloat(a.trim()):e>=60&&e<=99?parseInt(a.trim()):e>=100&&e<=109?a:e>=110&&e<=149?parseFloat(a.trim()):e>=160&&e<=179?parseInt(a.trim()):e>=210&&e<=239?parseFloat(a.trim()):e>=270&&e<=289?parseInt(a.trim()):e>=290&&e<=299?function(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}(a.trim()):e>=300&&e<=369?a:e>=370&&e<=389?parseInt(a.trim()):e>=390&&e<=399?a:e>=400&&e<=409?parseInt(a.trim()):e>=410&&e<=419?a:e>=420&&e<=429?parseInt(a.trim()):e>=430&&e<=439?a:e>=440&&e<=459?parseInt(a.trim()):e>=460&&e<=469?parseFloat(a.trim()):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?a:e>=1010&&e<=1059?parseFloat(a.trim()):e>=1060&&e<=1071?parseInt(a.trim()):(console.log("WARNING: Group code does not have a defined type: %j",{code:e,value:a}),a)}function no(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class ns{parseStart(e){this.startCode=e.code}setPoint(e){if(this.code=e.code,this.value=e.value,this.startCode===this.code&&(this.x=this.value),this.startCode===this.code+10)this.y=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}if(this.startCode===this.code+20)this.z=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}}reset(){this.x=void 0,this.y=void 0,this.z=void 0}constructor(){no(this,"point",{}),no(this,"startCode",0),no(this,"code",0),no(this,"value",0),no(this,"x",void 0),no(this,"y",void 0),no(this,"z",void 0)}}function nc(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class ni{constructor(){nc(this,"encoding","utf-8"),nc(this,"encodingFailureFatal",!1)}}class nd extends Error{constructor(e,a,r){let n=`[Line ${a}]: ${e}`;r?.cause&&(n+=`
|
|
1
|
+
(w=eu||(eu={}))[w.None=0]="None",w[w.Anonymous=1]="Anonymous",w[w.NonConstant=2]="NonConstant",w[w.Xref=4]="Xref",w[w.XrefOverlay=8]="XrefOverlay",w[w.ExternallyDependent=16]="ExternallyDependent",w[w.ResolvedOrDependent=32]="ResolvedOrDependent",w[w.ReferencedXref=64]="ReferencedXref",(V=ep||(ep={}))[V.BYBLOCK=0]="BYBLOCK",V[V.BYLAYER=256]="BYLAYER";let e=-1,a=4,r=Math.PI/24;(B=em||(em={}))[B.Rotated=0]="Rotated",B[B.Aligned=1]="Aligned",B[B.Angular=2]="Angular",B[B.Diameter=3]="Diameter",B[B.Radius=4]="Radius",B[B.Angular3Point=5]="Angular3Point",B[B.Ordinate=6]="Ordinate",B[B.ReferenceIsExclusive=32]="ReferenceIsExclusive",B[B.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",B[B.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",(H=eE||(eE={}))[H.TopLeft=1]="TopLeft",H[H.TopCenter=2]="TopCenter",H[H.TopRight=3]="TopRight",H[H.MiddleLeft=4]="MiddleLeft",H[H.MiddleCenter=5]="MiddleCenter",H[H.MiddleRight=6]="MiddleRight",H[H.BottomLeft=7]="BottomLeft",H[H.BottomCenter=8]="BottomCenter",H[H.BottomRight=9]="BottomRight",(G=eI||(eI={}))[G.AtLeast=1]="AtLeast",G[G.Exact=2]="Exact",(U=eh||(eh={}))[U.Center=0]="Center",U[U.Above=1]="Above",U[U.Outside=2]="Outside",U[U.JIS=3]="JIS",U[U.Below=4]="Below",(W=ef||(ef={}))[W.Feet=0]="Feet",W[W.None=1]="None",W[W.Inch=2]="Inch",W[W.FeetAndInch=3]="FeetAndInch",W[W.Leading=4]="Leading",W[W.Trailing=8]="Trailing",W[W.LeadingAndTrailing=12]="LeadingAndTrailing",(Y=eb||(eb={}))[Y.None=0]="None",Y[Y.Leading=1]="Leading",Y[Y.Trailing=2]="Trailing",Y[Y.LeadingAndTrailing=3]="LeadingAndTrailing",(j=eD||(eD={}))[j.Center=0]="Center",j[j.Left=1]="Left",j[j.Right=2]="Right",j[j.OverFirst=3]="OverFirst",j[j.OverSecond=4]="OverSecond",(X=eT||(eT={}))[X.Bottom=0]="Bottom",X[X.Center=1]="Center",X[X.Top=2]="Top",(z=eO||(eO={}))[z.PatternFill=0]="PatternFill",z[z.SolidFill=1]="SolidFill",(K=eg||(eg={}))[K.NonAssociative=0]="NonAssociative",K[K.Associative=1]="Associative",(Z=eN||(eN={}))[Z.Normal=0]="Normal",Z[Z.Outer=1]="Outer",Z[Z.Ignore=2]="Ignore",(J=eS||(eS={}))[J.UserDefined=0]="UserDefined",J[J.Predefined=1]="Predefined",J[J.Custom=2]="Custom",($=e_||(e_={}))[$.NotAnnotated=0]="NotAnnotated",$[$.Annotated=1]="Annotated",(q=eL||(eL={}))[q.Solid=0]="Solid",q[q.Gradient=1]="Gradient",(Q=eA||(eA={}))[Q.TwoColor=0]="TwoColor",Q[Q.OneColor=1]="OneColor",(ee=ey||(ey={}))[ee.Default=0]="Default",ee[ee.External=1]="External",ee[ee.Polyline=2]="Polyline",ee[ee.Derived=4]="Derived",ee[ee.Textbox=8]="Textbox",ee[ee.Outermost=16]="Outermost",(ea=eC||(eC={}))[ea.Line=1]="Line",ea[ea.Circular=2]="Circular",ea[ea.Elliptic=3]="Elliptic",ea[ea.Spline=4]="Spline",(er=eP||(eP={}))[er.Off=0]="Off",er[er.Solid=1]="Solid",er[er.Dashed=2]="Dashed",er[er.Dotted=3]="Dotted",er[er.ShotDash=4]="ShotDash",er[er.MediumDash=5]="MediumDash",er[er.LongDash=6]="LongDash",er[er.DoubleShortDash=7]="DoubleShortDash",er[er.DoubleMediumDash=8]="DoubleMediumDash",er[er.DoubleLongDash=9]="DoubleLongDash",er[er.DoubleMediumLongDash=10]="DoubleMediumLongDash",er[er.SparseDot=11]="SparseDot";let t={DRAGVS:"NULL",INTERFERECOLOR:1,INTERFEREOBJVS:"Conceptual",INTERFEREVPVS:"3d Wireframe",OBSLTYPE:eP.Off,SHADEDIF:70};(et=ev||(ev={}))[et.Standard=-3]="Standard",et[et.ByLayer=-2]="ByLayer",et[et.ByBlock=-1]="ByBlock",(en=eM||(eM={}))[en.English=0]="English",en[en.Metric=1]="Metric";let n=65536;function o(e,a,r){return e.code===a&&(null==r||e.value===r)}function s(e,a,r){for(;o(e,102);){var t;let n=e.value;if(e=a.next(),!n.startsWith("{")){console.warn(`Invalid application group, expected to start with "{" but received: ${n}`),function(e,a){for(;!o(e,102)&&!o(e,0,"EOF");)e=a.next()}(e,a),e=a.next();continue}let s=n.slice(1).trim();r.extensions??(r.extensions={}),(t=r.extensions)[s]??(t[s]=[]),function(e,a,r){for(;!o(e,102,"}")&&!o(e,0,"EOF");)r.push(e),e=a.next()}(e,a,r.extensions[s]),e=a.next()}}(eo=eR||(eR={}))[eo.PERSPECTIVE_MODE=1]="PERSPECTIVE_MODE",eo[eo.FRONT_CLIPPING=2]="FRONT_CLIPPING",eo[eo.BACK_CLIPPING=4]="BACK_CLIPPING",eo[eo.UCS_FOLLOW=8]="UCS_FOLLOW",eo[eo.FRONT_CLIP_NOT_AT_EYE=16]="FRONT_CLIP_NOT_AT_EYE",eo[eo.UCS_ICON_VISIBILITY=32]="UCS_ICON_VISIBILITY",eo[eo.UCS_ICON_AT_ORIGIN=64]="UCS_ICON_AT_ORIGIN",eo[eo.FAST_ZOOM=128]="FAST_ZOOM",eo[eo.SNAP_MODE=256]="SNAP_MODE",eo[eo.GRID_MODE=512]="GRID_MODE",eo[eo.ISOMETRIC_SNAP_STYLE=1024]="ISOMETRIC_SNAP_STYLE",eo[eo.HIDE_PLOT_MODE=2048]="HIDE_PLOT_MODE",eo[eo.K_ISO_PAIR_TOP=4096]="K_ISO_PAIR_TOP",eo[eo.K_ISO_PAIR_RIGHT=8192]="K_ISO_PAIR_RIGHT",eo[eo.VIEWPORT_ZOOM_LOCKING=16384]="VIEWPORT_ZOOM_LOCKING",eo[eo.UNUSED=32768]="UNUSED",eo[eo.NON_RECTANGULAR_CLIPPING=65536]="NON_RECTANGULAR_CLIPPING",eo[eo.VIEWPORT_OFF=131072]="VIEWPORT_OFF",eo[eo.GRID_BEYOND_DRAWING_LIMITS=262144]="GRID_BEYOND_DRAWING_LIMITS",eo[eo.ADAPTIVE_GRID_DISPLAY=524288]="ADAPTIVE_GRID_DISPLAY",eo[eo.SUBDIVISION_BELOW_SPACING=1048576]="SUBDIVISION_BELOW_SPACING",eo[eo.GRID_FOLLOWS_WORKPLANE=2097152]="GRID_FOLLOWS_WORKPLANE",(es=ex||(ex={}))[es.OPTIMIZED_2D=0]="OPTIMIZED_2D",es[es.WIREFRAME=1]="WIREFRAME",es[es.HIDDEN_LINE=2]="HIDDEN_LINE",es[es.FLAT_SHADED=3]="FLAT_SHADED",es[es.GOURAUD_SHADED=4]="GOURAUD_SHADED",es[es.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",es[es.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME",(ei=ek||(ek={}))[ei.UCS_UNCHANGED=0]="UCS_UNCHANGED",ei[ei.HAS_OWN_UCS=1]="HAS_OWN_UCS",(ec=eF||(eF={}))[ec.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",ec[ec.TOP=1]="TOP",ec[ec.BOTTOM=2]="BOTTOM",ec[ec.FRONT=3]="FRONT",ec[ec.BACK=4]="BACK",ec[ec.LEFT=5]="LEFT",ec[ec.RIGHT=6]="RIGHT",(ed=ew||(ew={}))[ed.AS_DISPLAYED=0]="AS_DISPLAYED",ed[ed.WIREFRAME=1]="WIREFRAME",ed[ed.HIDDEN=2]="HIDDEN",ed[ed.RENDERED=3]="RENDERED",(el=eV||(eV={}))[el.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",el[el.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS";var i,c,d,l,u,p,m,E,I,h,f,b,D,T,O,g,N,S,_,L,A,y,C,P,v,M,R,x,k,F,w,V,B,H,G,U,W,Y,j,X,z,K,Z,J,$,q,Q,ee,ea,er,et,en,eo,es,ei,ec,ed,el,eu,ep,em,eE,eI,eh,ef,eb,eD,eT,eO,eg,eN,eS,e_,eL,eA,ey,eC,eP,ev,eM,eR,ex,ek,eF,ew,eV,eB,eH,eG,eU,eW,eY,ej,eX,ez,eK,eZ,eJ,e$,eq,eQ,e0,e1,e4,e2,e3,e7,e5,e6,e9,e8=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215];function ae(e){return e8[e]}function aa(e){let a={};e.rewind();let r=e.next(),t=r.code;if(a.x=r.value,(r=e.next()).code!==t+10)throw Error("Expected code for point value to be 20 but got "+r.code+".");return(a.y=r.value,(r=e.next()).code!==t+20)?e.rewind():a.z=r.value,a}let ar=Symbol();function at(e,a){return(r,t,n)=>{let s=e.reduce((e,a)=>{a.pushContext&&e.push({});let r=e[e.length-1];for(let e of"number"==typeof a.code?[a.code]:a.code){let t=r[e]??(r[e]=[]);a.isMultiple&&t.length,t.push(a)}return e},[{}]),i=!1,c=s.length-1;for(;!o(r,0,"EOF");){let e=function(e,a,r){return e.find((e,t)=>t>=r&&e[a]?.length)}(s,r.code,c),a=e?.[r.code].at(-1);if(!e||!a){t.rewind();break}a.isMultiple||e[r.code].pop();let{name:o,parser:d,isMultiple:l,isReducible:u}=a,p=d?.(r,t,n);if(p===ar){t.rewind();break}if(o){let[e,a]=function(e,a){let r=a.split("."),t=e;for(let e=0;e<r.length-1;++e){let a=r[e];Object.prototype.hasOwnProperty.call(t,a)||(t[a]={}),t=t[a]}return[t,r.at(-1)]}(n,o);l&&!u?(Object.prototype.hasOwnProperty.call(e,a)||(e[a]=[]),e[a].push(p)):e[a]=p}a.pushContext&&(c-=1),i=!0,r=t.next()}return a&&Object.setPrototypeOf(n,a),i}}function an({value:e}){return e}function ao(e,a){return aa(a)}function as({value:e}){return!!e}let ai=[{code:1001,name:"xdata",parser:ac}];function ac(e,a){if(!o(e,1001))throw Error("XData must starts with code 1001");let r={appName:e.value,value:[]};e=a.next();let t=[r.value];for(;!o(e,0,"EOF")&&e.code>=1e3;){let r=t.at(-1);switch(e.code){case 1002:"{"===e.value?t.push([]):(t.pop(),t.at(-1)?.push(r));break;case 1e3:case 1004:case 1040:case 1070:case 1071:r.push({type:ad(e.code),value:e.value});break;case 1003:r.push({name:"layer",type:ad(e.code),value:e.value});break;case 1005:r.push({name:"handle",type:ad(e.code),value:e.value});break;case 1010:r.push({type:ad(e.code),value:aa(a)});break;case 1011:r.push({name:"worldSpacePosition",type:ad(e.code),value:aa(a)});break;case 1012:r.push({name:"worldSpaceDisplacement",type:ad(e.code),value:aa(a)});break;case 1013:r.push({name:"worldSpaceDirection",type:ad(e.code),value:aa(a)});break;case 1041:r.push({name:"distance",type:ad(e.code),value:e.value});break;case 1042:r.push({name:"scale",type:ad(e.code),value:e.value})}e=a.next()}return a.rewind(),r}function ad(e){switch(e){case 1e3:case 1003:case 1005:return"string";case 1004:return"hex";case 1040:case 1041:case 1042:return"real";case 1070:return"integer";case 1071:return"long";case 1010:case 1011:case 1012:case 1013:return"point";default:return""}}function al(e){return a=>{let r={};for(let t=0;t<a.length;t+=2){let n=e.find(({code:e})=>e===a[t].value);n&&(r[n.name]=a[t+1]?.value)}return r}}function au({appName:e="ACAD",catcher:a,escaper:r}){return function*(t){if(t?.appName!==e)return;let n=!1,o=-1;for(let[e,s]of t.value.entries())if(n){if(yield s,r?.(s,e-o))return}else a(s)&&(n=!0,o=e)}}(i=eB||(eB={}))[i.CAST_AND_RECEIVE=0]="CAST_AND_RECEIVE",i[i.CAST=1]="CAST",i[i.RECEIVE=2]="RECEIVE",i[i.IGNORE=3]="IGNORE";let ap=[...ai,{code:284,name:"shadowMode",parser:an},{code:390,name:"plotStyleHardId",parser:an},{code:440,name:"transparency",parser:an},{code:430,name:"colorName",parser:an},{code:420,name:"color",parser:an},{code:310,name:"proxyEntity",parser:an},{code:92,name:"proxyByte",parser:an},{code:60,name:"isVisible",parser:as},{code:48,name:"lineTypeScale",parser:an},{code:370,name:"lineweight",parser:an},{code:62,name:"colorIndex",parser(e,a,r){let t=e.value;return r.color=ae(Math.abs(t)),t}},{code:347,name:"materialObjectHardId",parser:an},{code:6,name:"lineType",parser:an},{code:8,name:"layer",parser:an},{code:410,name:"layoutTabName",parser:an},{code:67,name:"isInPaperSpace",parser:as},{code:100},{code:330,name:"ownerBlockRecordSoftId",parser:an},{code:102,parser:s},{code:102,parser:s},{code:102,parser:s},{code:5,name:"handle",parser:an}],am=0;function aE(e){if(!e)throw TypeError("entity cannot be undefined or null");e.handle||(e.handle=am++)}function aI(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}let ah={extrusionDirection:{x:0,y:0,z:1}},af=[{code:210,name:"extrusionDirection",parser:ao},{code:51,name:"endAngle",parser:an},{code:50,name:"startAngle",parser:an},{code:100,name:"subclassMarker",parser:an},{code:40,name:"radius",parser:an},{code:10,name:"center",parser:ao},{code:39,name:"thickness",parser:an},{code:100},...ap];class ab{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aI(this,"parser",at(af,ah))}}function aD(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aI(ab,"ForEntityName","ARC"),(c=eH||(eH={}))[c.NONE=0]="NONE",c[c.INVISIBLE=1]="INVISIBLE",c[c.CONSTANT=2]="CONSTANT",c[c.VERIFICATION_REQUIRED=4]="VERIFICATION_REQUIRED",c[c.PRESET=8]="PRESET",(d=eG||(eG={}))[d.MULTILINE=2]="MULTILINE",d[d.CONSTANT_MULTILINE=4]="CONSTANT_MULTILINE",(l=eU||(eU={}))[l.NONE=0]="NONE",l[l.MIRRORED_X=2]="MIRRORED_X",l[l.MIRRORED_Y=4]="MIRRORED_Y",(u=eW||(eW={}))[u.LEFT=0]="LEFT",u[u.CENTER=1]="CENTER",u[u.RIGHT=2]="RIGHT",u[u.ALIGNED=3]="ALIGNED",u[u.MIDDLE=4]="MIDDLE",u[u.FIT=5]="FIT",(p=eY||(eY={}))[p.BASELINE=0]="BASELINE",p[p.BOTTOM=1]="BOTTOM",p[p.MIDDLE=2]="MIDDLE",p[p.TOP=3]="TOP";let aT={thickness:0,rotation:0,xScale:1,obliqueAngle:0,styleName:"STANDARD",generationFlag:0,halign:eW.LEFT,valign:eY.BASELINE,extrusionDirection:{x:0,y:0,z:1}},aO=[{code:73,name:"valign",parser:an},{code:100},{code:210,name:"extrusionDirection",parser:ao},{code:11,name:"endPoint",parser:ao},{code:72,name:"valign",parser:an},{code:72,name:"halign",parser:an},{code:71,name:"generationFlag",parser:an},{code:7,name:"styleName",parser:an},{code:51,name:"obliqueAngle",parser:an},{code:41,name:"xScale",parser:an},{code:50,name:"rotation",parser:an},{code:1,name:"text",parser:an},{code:40,name:"textHeight",parser:an},{code:10,name:"startPoint",parser:ao},{code:39,name:"thickness",parser:an},{code:100,name:"subclassMarker",parser:an},...ap];class ag{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aD(this,"parser",at(aO,aT))}}function aN(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aD(ag,"ForEntityName","TEXT");let aS={...aT},a_=[{code:2},{code:40,name:"annotationScale",parser:an},{code:10,name:"alignmentPoint",parser:ao},{code:340,name:"secondaryAttributesHardIds",isMultiple:!0,parser:an},{code:70,name:"numberOfSecondaryAttributes",parser:an},{code:70,name:"isReallyLocked",parser:as},{code:70,name:"mtextFlag",parser:an},{code:280,name:"isDuplicatedRecord",parser:as},{code:100},{code:280,name:"isLocked",parser:as},{code:74,name:"valign",parser:an},{code:73},{code:70,name:"attributeFlag",parser:an},{code:2,name:"tag",parser:an},{code:3,name:"prompt",parser:an},{code:280},{code:100,name:"subclassMarker",parser:an},...aO.slice(2)];class aL{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aN(this,"parser",at(a_,aS))}}function aA(e,a){let r={};for(let t of e){let e=a(t);null!=e&&(r[e]??(r[e]=[]),r[e].push(t))}return r}function*ay(e,a=1/0,r=1){for(let t=e;t!==a;t+=r)yield t}function aC(e){return{x:e.x??0,y:e.y??0,z:e.z??0}}function aP(e,a,r){if(o(a,102))return s(a,r,e),!0;switch(a.code){case 0:e.type=a.value;break;case 5:e.handle=a.value;break;case 330:e.ownerBlockRecordSoftId=a.value;break;case 67:e.isInPaperSpace=!!a.value;break;case 8:e.layer=a.value;break;case 6:e.lineType=a.value;break;case 347:e.materialObjectHardId=a.value;break;case 62:e.colorIndex=a.value,e.color=ae(Math.abs(a.value));break;case 370:e.lineweight=a.value;break;case 48:e.lineTypeScale=a.value;break;case 60:e.isVisible=!!a.value;break;case 92:e.proxyByte=a.value;break;case 310:e.proxyEntity=a.value;break;case 100:break;case 420:e.color=a.value;break;case 430:e.transparency=a.value;break;case 390:e.plotStyleHardId=a.value;break;case 284:e.shadowMode=a.value;break;case 1001:e.xdata=ac(a,r);break;default:return!1}return!0}function av(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aN(aL,"ForEntityName","ATTDEF"),(m=ej||(ej={}))[m.INVISIBLE=1]="INVISIBLE",m[m.CONSTANT=2]="CONSTANT",m[m.REQUIRE_VERIFICATION=4]="REQUIRE_VERIFICATION",m[m.PRESET=8]="PRESET",(E=eX||(eX={}))[E.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",E[E.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",E[E.BY_STYLE=5]="BY_STYLE";let aM={textStyle:"STANDARD",extrusionDirection:{x:0,y:0,z:1},rotation:0},aR=[{code:46,name:"annotationHeight",parser:an},{code:101,parser(e,a){!function(e){e.rewind();let a=e.next();if(101!==a.code)throw Error("Bad call for skipEmbeddedObject()");do a=e.next();while(0!==a.code);e.rewind()}(a)}},{code:50,name:"columnHeight",parser:an},{code:49,name:"columnGutter",parser:an},{code:48,name:"columnWidth",parser:an},{code:79,name:"columnAutoHeight",parser:an},{code:78,name:"columnFlowReversed",parser:an},{code:76,name:"columnCount",parser:an},{code:75,name:"columnType",parser:an},{code:441,name:"backgroundFillTransparency",parser:an},{code:63,name:"backgroundFillColor",parser:an},{code:45,name:"fillBoxScale",parser:an},{code:[...ay(430,440)],name:"backgroundColor",parser:an},{code:[...ay(420,430)],name:"backgroundColor",parser:an},{code:90,name:"backgroundFill",parser:an},{code:44,name:"lineSpacing",parser:an},{code:73,name:"lineSpacingStyle",parser:an},{code:50,name:"rotation",parser:an},{code:43},{code:42},{code:11,name:"direction",parser:ao},{code:210,name:"extrusionDirection",parser:ao},{code:7,name:"styleName",parser:an},{code:3,name:"text",parser:(e,a,r)=>(r._code3text=(r._code3text??"")+e.value,r._code3text+(r._code1text??"")),isMultiple:!0,isReducible:!0},{code:1,name:"text",parser:(e,a,r)=>(r._code1text=e.value,(r._code3text??"")+r._code1text)},{code:72,name:"drawingDirection",parser:an},{code:71,name:"attachmentPoint",parser:an},{code:41,name:"width",parser:an},{code:40,name:"height",parser:an},{code:10,name:"insertionPoint",parser:ao},{code:100,name:"subclassMarker",parser:an},...ap];class ax{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){av(this,"parser",at(aR,aM))}}function ak(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}av(ax,"ForEntityName","MTEXT");let aF={thickness:0,rotation:0,scale:1,obliqueAngle:0,textStyle:"STANDARD",textGenerationFlag:0,horizontalJustification:0,verticalJustification:0,extrusionDirection:{x:0,y:0,z:1}},aw=[...aR.slice(aR.findIndex(({name:e})=>"columnType"===e),aR.findIndex(({name:e})=>"subclassMarker"===e)+1),{code:100},{code:0,parser(e){if(!o(e,0,"MTEXT"))return ar}},{code:2,name:"definitionTag",parser:an},{code:40,name:"annotationScale",parser:an},{code:10,name:"alignmentPoint",parser:ao},{code:340,name:"secondaryAttributesHardId",parser:an},{code:70,name:"numberOfSecondaryAttributes",parser:an},{code:70,name:"isReallyLocked",parser:as},{code:70,name:"mtextFlag",parser:an},{code:280,name:"isDuplicatedEntriesKeep",parser:as},{code:100},{code:280,name:"lockPositionFlag",parser:as},{code:210,name:"extrusionDirection",parser:ao},{code:11,name:"alignmentPoint",parser:ao},{code:74,name:"verticalJustification",parser:an},{code:72,name:"horizontalJustification",parser:an},{code:71,name:"textGenerationFlag",parser:an},{code:7,name:"textStyle",parser:an},{code:51,name:"obliqueAngle",parser:an},{code:41,name:"scale",parser:an},{code:50,name:"rotation",parser:an},{code:73},{code:70,name:"attributeFlag",parser:an},{code:2,name:"tag",parser:an},{code:280},{code:100,name:"subclassMarker",parser:an},{code:1,name:"text",parser:an},{code:40,name:"textHeight",parser:an},{code:10,name:"startPoint",parser:ao},{code:39,name:"thickness",parser:an},{code:100},...ap];class aV{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ak(this,"parser",at(aw,aF))}}function aB(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ak(aV,"ForEntityName","ATTRIB");let aH={thickness:0,extrusionDirection:{x:0,y:0,z:1}},aG=[{code:210,name:"extrusionDirection",parser:ao},{code:40,name:"radius",parser:an},{code:10,name:"center",parser:ao},{code:39,name:"thickness",parser:an},{code:100,name:"subclassMarker",parser:an},...ap];class aU{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aB(this,"parser",at(aG,aH))}}aB(aU,"ForEntityName","CIRCLE");class aW{parseEntity(e,a){let r={};for(;!o(a,0,"EOF");){if(0===a.code){e.rewind();break}!function(e,a,r){switch(a.code){case 100:e.subclassMarker=a.value;break;case 280:e.version=a.value;break;case 2:e.name=a.value;break;case 10:e.definitionPoint=aa(r);break;case 11:e.textPoint=aa(r);break;case 12:e.insertionPoint=aa(r);break;case 13:e.subDefinitionPoint1=aa(r);break;case 14:e.subDefinitionPoint2=aa(r);break;case 15:e.centerPoint=aa(r);break;case 16:e.arcPoint=aa(r);break;case 70:e.dimensionType=a.value;break;case 71:e.attachmentPoint=a.value;break;case 72:e.textLineSpacingStyle=a.value;break;case 40:e.leaderLength=a.value;break;case 41:e.textLineSpacingFactor=a.value;break;case 42:e.measurement=a.value;break;case 1:e.text=a.value;break;case 50:e.rotationAngle=a.value;break;case 52:e.obliqueAngle=a.value;break;case 53:e.textRotation=a.value;break;case 51:e.ocsRotation=a.value;break;case 210:e.extrusionDirection=aa(r);break;case 3:e.styleName=a.value;break;default:aP(e,a,r)}}(r,a,e),a=e.next()}return r}}function aY(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}h="DIMENSION",(I="ForEntityName")in aW?Object.defineProperty(aW,I,{value:h,enumerable:!0,configurable:!0,writable:!0}):aW[I]=h;let aj={extrusionDirection:{x:0,y:0,z:1}},aX=[{code:42,name:"endAngle",parser:an},{code:41,name:"startAngle",parser:an},{code:40,name:"axisRatio",parser:an},{code:210,name:"extrusionDirection",parser:ao},{code:11,name:"majorAxisEndPoint",parser:ao},{code:10,name:"center",parser:ao},{code:100,name:"subclassMarker",parser:an},...ap];class az{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aY(this,"parser",at(aX,aj))}}function aK(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aY(az,"ForEntityName","ELLIPSE"),(f=ez||(ez={}))[f.ShowImage=1]="ShowImage",f[f.ShowImageWhenNotAlignedWithScreen=2]="ShowImageWhenNotAlignedWithScreen",f[f.UseClippingBoundary=4]="UseClippingBoundary",f[f.TransparencyIsOn=8]="TransparencyIsOn",(b=eK||(eK={}))[b.Rectangular=1]="Rectangular",b[b.Polygonal=2]="Polygonal",(D=eZ||(eZ={}))[D.Outside=0]="Outside",D[D.Inside=1]="Inside";let aZ={brightness:50,contrast:50,fade:0,clippingBoundaryPath:[]},aJ=[{code:290,name:"clipMode",parser:an},{code:14,name:"clippingBoundaryPath",isMultiple:!0,parser:ao},{code:91,name:"countBoundaryPoints",parser:an},{code:71,name:"clippingBoundaryType",parser:an},{code:360,name:"imageDefReactorHandle",parser:an},{code:283,name:"fade",parser:an},{code:282,name:"contrast",parser:an},{code:281,name:"brightness",parser:an},{code:280,name:"isClipped",parser:as},{code:70,name:"flags",parser:an},{code:340,name:"imageDefHandle",parser:an},{code:13,name:"imageSize",parser:ao},{code:12,name:"vPixel",parser:ao},{code:11,name:"uPixel",parser:ao},{code:10,name:"position",parser:ao},{code:90,name:"version",parser:an},{code:100,name:"subclassMarker",parser:an},...ap];class a${parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aK(this,"parser",at(aJ,aZ))}}function aq(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aK(a$,"ForEntityName","IMAGE");let aQ={xScale:1,yScale:1,zScale:1,rotation:0,columnCount:0,rowCount:0,columnSpacing:0,rowSpacing:0,extrusionDirection:{x:0,y:0,z:1}},a0=[{code:210,name:"extrusionDirection",parser:ao},{code:45,name:"rowSpacing",parser:an},{code:44,name:"columnSpacing",parser:an},{code:71,name:"rowCount",parser:an},{code:70,name:"columnCount",parser:an},{code:50,name:"rotation",parser:an},{code:43,name:"zScale",parser:an},{code:42,name:"yScale",parser:an},{code:41,name:"xScale",parser:an},{code:10,name:"insertionPoint",parser:ao},{code:2,name:"name",parser:an},{code:66,name:"isVariableAttributes",parser:as},{code:100,name:"subclassMarker",parser:an},...ap];class a1{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aq(this,"parser",at(a0,aQ))}}function a4(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aq(a1,"ForEntityName","INSERT");let a2={isArrowheadEnabled:!0},a3=[{code:213,name:"offsetFromAnnotation",parser:ao},{code:212,name:"offsetFromBlock",parser:ao},{code:211,name:"horizontalDirection",parser:ao},{code:210,name:"normal",parser:ao},{code:340,name:"associatedAnnotation",parser:an},{code:77,name:"byBlockColor",parser:an},{code:10,name:"vertices",parser:ao,isMultiple:!0},{code:76,name:"numberOfVertices",parser:an},{code:41,name:"textWidth",parser:an},{code:40,name:"textHeight",parser:an},{code:75,name:"isHooklineExists",parser:as},{code:74,name:"isHooklineSameDirection",parser:as},{code:73,name:"leaderCreationFlag",parser:an},{code:72,name:"isSpline",parser:as},{code:71,name:"isArrowheadEnabled",parser:as},{code:3,name:"styleName",parser:an},{code:100,name:"subclassMarker",parser:an},...ap];class a7{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a4(this,"parser",at(a3,a2))}}function a5(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}a4(a7,"ForEntityName","LEADER"),(T=eJ||(eJ={}))[T.TextAnnotation=0]="TextAnnotation",T[T.ToleranceAnnotation=1]="ToleranceAnnotation",T[T.BlockReferenceAnnotation=2]="BlockReferenceAnnotation",T[T.NoAnnotation=3]="NoAnnotation";let a6={thickness:0,extrusionDirection:{x:0,y:0,z:1}},a9=[{code:210,name:"extrusionDirection",parser:ao},{code:11,name:"endPoint",parser:ao},{code:10,name:"startPoint",parser:ao},{code:39,name:"thickness",parser:an},{code:100,name:"subclassMarker",parser:an},...ap];class a8{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a5(this,"parser",at(a9,a6))}}a5(a8,"ForEntityName","LINE"),(O=e$||(e$={}))[O.IS_CLOSED=1]="IS_CLOSED",O[O.PLINE_GEN=128]="PLINE_GEN";let re={flag:0,elevation:0,thickness:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},ra={bulge:0},rr=[{code:42,name:"bulge",parser:an},{code:41,name:"endWidth",parser:an},{code:40,name:"startWidth",parser:an},{code:91,name:"id",parser:an},{code:20,name:"y",parser:an},{code:10,name:"x",parser:an}],rt=[{code:210,name:"extrusionDirection",parser:ao},{code:10,name:"vertices",isMultiple:!0,parser(e,a){let r={};return at(rr,ra)(e,a,r),r}},{code:39,name:"thickness",parser:an},{code:38,name:"elevation",parser:an},{code:43,name:"constantWidth",parser:an},{code:70,name:"flag",parser:an},{code:90,name:"numberOfVertices",parser:an},{code:100,name:"subclassMarker",parser:an},...ap];class rn{parseEntity(e,a){let r={};return at(rt,re)(a,e,r),r}}function ro(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}N="LWPOLYLINE",(g="ForEntityName")in rn?Object.defineProperty(rn,g,{value:N,enumerable:!0,configurable:!0,writable:!0}):rn[g]=N;let rs={thickness:0,extrusionDirection:{x:0,y:0,z:1},angle:0},ri=[{code:50,name:"angle",parser:an},{code:210,name:"extrusionDirection",parser:ao},{code:39,name:"thickness",parser:an},{code:10,name:"position",parser:ao},{code:100,name:"subclassMarker",parser:an},...ap];class rc{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ro(this,"parser",at(ri,rs))}}function rd(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ro(rc,"ForEntityName","POINT"),(S=eq||(eq={}))[S.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",S[S.CURVE_FIT=2]="CURVE_FIT",S[S.SPLINE_FIT=4]="SPLINE_FIT",S[S.POLYLINE_3D=8]="POLYLINE_3D",S[S.POLYGON_3D=16]="POLYGON_3D",S[S.CLOSED_POLYGON=32]="CLOSED_POLYGON",S[S.POLYFACE=64]="POLYFACE",S[S.CONTINUOUS=128]="CONTINUOUS",(_=eQ||(eQ={}))[_.NONE=0]="NONE",_[_.QUADRATIC=5]="QUADRATIC",_[_.CUBIC=6]="CUBIC",_[_.BEZIER=8]="BEZIER",(L=e0||(e0={}))[L.CREATED_BY_CURVE_FIT=1]="CREATED_BY_CURVE_FIT",L[L.TANGENT_DEFINED=2]="TANGENT_DEFINED",L[L.NOT_USED=4]="NOT_USED",L[L.CREATED_BY_SPLINE_FIT=8]="CREATED_BY_SPLINE_FIT",L[L.SPLINE_CONTROL_POINT=16]="SPLINE_CONTROL_POINT",L[L.FOR_POLYLINE=32]="FOR_POLYLINE",L[L.FOR_POLYGON=64]="FOR_POLYGON",L[L.POLYFACE=128]="POLYFACE";let rl={startWidth:0,endWidth:0,bulge:0},ru=[{code:91,name:"id",parser:an},{code:[...ay(71,75)],name:"faces",isMultiple:!0,parser:an},{code:50,name:"tangentDirection",parser:an},{code:70,name:"flag",parser:an},{code:42,name:"bulge",parser:an},{code:41,name:"endWidth",parser:an},{code:40,name:"startWidth",parser:an},{code:30,name:"z",parser:an},{code:20,name:"y",parser:an},{code:10,name:"x",parser:an},{code:100,name:"subclassMarker",parser:an},{code:100},...ap];class rp{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rd(this,"parser",at(ru,rl))}}function rm(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rd(rp,"ForEntityName","VERTEX");let rE={thickness:0,flag:0,startWidth:0,endWidth:0,meshMVertexCount:0,meshNVertexCount:0,surfaceMDensity:0,surfaceNDensity:0,smoothType:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rI=[{code:0,name:"vertices",isMultiple:!0,parser:(e,a)=>o(e,0,"VERTEX")?(e=a.next(),new rp().parseEntity(a,e)):ar},{code:210,name:"extrusionDirection",parser:ao},{code:75,name:"smoothType",parser:an},{code:74,name:"surfaceNDensity",parser:an},{code:73,name:"surfaceMDensity",parser:an},{code:72,name:"meshNVertexCount",parser:an},{code:71,name:"meshMVertexCount",parser:an},{code:41,name:"endWidth",parser:an},{code:40,name:"startWidth",parser:an},{code:70,name:"flag",parser:an},{code:39,name:"thickness",parser:an},{code:30,name:"elevation",parser:an},{code:20},{code:10},{code:66},{code:100,name:"subclassMarker",parser:an},...ap];class rh{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rm(this,"parser",at(rI,rE))}}function rf(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rm(rh,"ForEntityName","POLYLINE");let rb=[{code:11,name:"direction",parser:ao},{code:10,name:"position",parser:ao},{code:100,name:"subclassMarker",parser:an},...ap];class rD{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rf(this,"parser",at(rb))}}function rT(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rf(rD,"ForEntityName","RAY");let rO={vertices:[],backLineVertices:[]},rg=[{code:360,name:"geometrySettingHardId",parser:an},{code:12,name:"backLineVertices",isMultiple:!0,parser:ao},{code:93,name:"numberOfBackLineVertices",parser:an},{code:11,name:"vertices",isMultiple:!0,parser:ao},{code:92,name:"verticesCount",parser:an},{code:[63,411],name:"indicatorColor",parser:an},{code:70,name:"indicatorTransparency",parser:an},{code:41,name:"bottomHeight",parser:an},{code:40,name:"topHeight",parser:an},{code:10,name:"verticalDirection",parser:ao},{code:1,name:"name",parser:an},{code:91,name:"flag",parser:an},{code:90,name:"state",parser:an},{code:100,name:"subclassMarker",parser:an},...ap];class rN{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rT(this,"parser",at(rg,rO))}}function rS(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rT(rN,"ForEntityName","SECTION");let r_={points:[],thickness:0,extrusionDirection:{x:0,y:0,z:1}},rL=[{code:210,name:"extrusionDirection",parser:ao},{code:39,name:"thickness",parser:an},{code:[...ay(10,14)],name:"points",isMultiple:!0,parser:ao},{code:100,name:"subclassMarker",parser:an},...ap];class rA{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rS(this,"parser",at(rL,r_))}}function ry(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rS(rA,"ForEntityName","SOLID"),(A=e1||(e1={}))[A.NONE=0]="NONE",A[A.CLOSED=1]="CLOSED",A[A.PERIODIC=2]="PERIODIC",A[A.RATIONAL=4]="RATIONAL",A[A.PLANAR=8]="PLANAR",A[A.LINEAR=16]="LINEAR";let rC={knotTolerance:1e-6,controlTolerance:1e-6,fitTolerance:1e-9,knotValues:[],controlPoints:[],fitPoints:[]},rP=[{code:11,name:"fitPoints",isMultiple:!0,parser:ao},{code:10,name:"controlPoints",isMultiple:!0,parser:ao},{code:41,name:"weights",isMultiple:!0,parser:an},{code:40,name:"knots",isMultiple:!0,parser:an},{code:13,name:"endTangent",parser:ao},{code:12,name:"startTangent",parser:ao},{code:44,name:"fitTolerance",parser:an},{code:43,name:"controlTolerance",parser:an},{code:42,name:"knotTolerance",parser:an},{code:74,name:"numberOfFitPoints",parser:an},{code:73,name:"numberOfControlPoints",parser:an},{code:72,name:"numberOfKnots",parser:an},{code:71,name:"degree",parser:an},{code:70,name:"flag",parser:an},{code:210,name:"normal",parser:ao},{code:100,name:"subclassMarker",parser:an},...ap];class rv{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ry(this,"parser",at(rP,rC))}}ry(rv,"ForEntityName","SPLINE");let rM=[{code:330,name:"sourceBoundaryObjects",parser:an,isMultiple:!0},{code:97,name:"numberOfSourceBoundaryObjects",parser:an}],rR=[{code:11,name:"end",parser:ao},{code:10,name:"start",parser:ao}],rx=[{code:73,name:"isCCW",parser:as},{code:51,name:"endAngle",parser:an},{code:50,name:"startAngle",parser:an},{code:40,name:"radius",parser:an},{code:10,name:"center",parser:ao}],rk=[{code:73,name:"isCCW",parser:as},{code:51,name:"endAngle",parser:an},{code:50,name:"startAngle",parser:an},{code:40,name:"lengthOfMinorAxis",parser:an},{code:11,name:"end",parser:ao},{code:10,name:"center",parser:ao}],rF=[{code:13,name:"endTangent",parser:ao},{code:12,name:"startTangent",parser:ao},{code:11,name:"fitDatum",isMultiple:!0,parser:ao},{code:97,name:"numberOfFitData",parser:an},{code:10,name:"controlPoints",isMultiple:!0,parser(e,a){let r={...aa(a),weight:1};return 42===(e=a.next()).code?r.weight=e.value:a.rewind(),r}},{code:40,name:"knots",isMultiple:!0,parser:an},{code:96,name:"numberOfControlPoints",parser:an},{code:95,name:"numberOfKnots",parser:an},{code:74,name:"isPeriodic",parser:as},{code:73,name:"splineFlag",parser:an},{code:94,name:"degree",parser:an}],rw={[eC.Line]:rR,[eC.Circular]:rx,[eC.Elliptic]:rk,[eC.Spline]:rF},rV=[...rM,{code:72,name:"edges",parser(e,a){let r={type:e.value},t=at(rw[r.type]);if(!t)throw Error(`Invalid edge type ${r.type}`);return t(e=a.next(),a,r),r},isMultiple:!0},{code:93,name:"numberOfEdges",parser:an}],rB=[...rM,{code:10,name:"vertices",parser(e,a){let r={...aa(a),bulge:0};return 42===(e=a.next()).code?r.bulge=e.value:a.rewind(),r},isMultiple:!0},{code:93,name:"numberOfVertices",parser:an},{code:73,name:"isClosed",parser:as},{code:72,name:"hasBulge",parser:as}],rH=[{code:49,name:"dashLengths",parser:an,isMultiple:!0},{code:79,name:"numberOfDashLengths",parser:an},{code:45,name:"offset",parser:rG},{code:43,name:"base",parser:rG},{code:53,name:"angle",parser:an}];function rG(e,a){let r=e.code+1,t={x:e.value,y:1};return(e=a.next()).code===r?t.y=e.value:a.rewind(),t}function rU(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}let rW={extrusionDirection:{x:0,y:0,z:1},gradientRotation:0,colorTint:0},rY=[{code:470},{code:463},{code:462,name:"colorTint",parser:an},{code:461,name:"gradientDefinition",parser:an},{code:460,name:"gradientRotation",parser:an},{code:453,name:"numberOfColors",parser:an},{code:452,name:"gradientColorFlag",parser:an},{code:451},{code:450,name:"gradientFlag",parser:an},{code:10,name:"seedPoints",parser:ao,isMultiple:!0},{code:99},{code:11,name:"offsetVector",parser:ao},{code:98,name:"numberOfSeedPoints",parser:an},{code:47,name:"pixelSize",parser:an},{code:53,name:"definitionLines",parser:function(e,a){let r={};return at(rH)(e,a,r),r},isMultiple:!0},{code:78,name:"numberOfDefinitionLines",parser:an},{code:77,name:"isDouble",parser:as},{code:73,name:"isAnnotated",parser:as},{code:41,name:"patternScale",parser:an},{code:52,name:"patternAngle",parser:an},{code:76,name:"patternType",parser:an},{code:75,name:"hatchStyle",parser:an},{code:92,name:"boundaryPaths",parser:function(e,a){let r={boundaryPathTypeFlag:e.value},t=r.boundaryPathTypeFlag&ey.Polyline;return(e=a.next(),t)?at(rB)(e,a,r):at(rV)(e,a,r),r},isMultiple:!0},{code:91,name:"numberOfBoundaryPaths",parser:an},{code:71,name:"associativity",parser:an},{code:63,name:"patternFillColor",parser:an},{code:70,name:"solidFill",parser:an},{code:2,name:"patternName",parser:an},{code:210,name:"extrusionDirection",parser:ao},{code:10,name:"elevationPoint",parser:ao},{code:100,name:"subclassMarker",parser:an,pushContext:!0},...ap];class rj{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rU(this,"parser",at(rY,rW))}}rU(rj,"ForEntityName","HATCH");class rX{parseEntity(e,a){let r={};for(;"EOF"!==a;){if(0===a.code){e.rewind();break}!function(e,a,r){if("EOF"===r)return!1;switch(r.code){case 0:return!1;case 100:e.subclassMarker=r.value;break;case 10:e.viewportCenter=aC(aa(a));break;case 40:e.width=r.value;break;case 41:e.height=r.value;break;case 68:e.status=r.value;break;case 69:e.viewportId=r.value;break;case 12:e.displayCenter=aa(a);break;case 13:e.snapBase=aa(a);break;case 14:e.snapSpacing=aa(a);break;case 15:e.gridSpacing=aa(a);break;case 16:e.viewDirection=aC(aa(a));break;case 17:e.targetPoint=aC(aa(a));break;case 42:e.perspectiveLensLength=r.value;break;case 43:e.frontClipZ=r.value;break;case 44:e.backClipZ=r.value;break;case 45:e.viewHeight=r.value;break;case 50:e.snapAngle=r.value;break;case 51:e.viewTwistAngle=r.value;break;case 72:e.circleZoomPercent=r.value;break;case 331:e.frozenLayerIds??(e.frozenLayerIds=[]),e.frozenLayerIds.push(r.value);break;case 90:e.statusBitFlags=r.value;break;case 340:e.clippingBoundaryId=r.value;break;case 1:e.sheetName=r.value;break;case 281:e.renderMode=r.value;break;case 71:e.ucsPerViewport=r.value;break;case 110:e.ucsOrigin=aC(aa(a));break;case 111:e.ucsXAxis=aC(aa(a));break;case 112:e.ucsYAxis=aC(aa(a));break;case 345:e.ucsId=r.value;break;case 346:e.ucsBaseId=r.value;break;case 79:e.orthographicType=r.value;break;case 146:e.elevation=r.value;break;case 170:e.shadePlotMode=r.value;break;case 61:e.majorGridFrequency=r.value;break;case 332:e.backgroundId=r.value;break;case 333:e.shadePlotId=r.value;break;case 348:e.visualStyleId=r.value;break;case 292:e.isDefaultLighting=!!r.value;break;case 282:e.defaultLightingType=r.value;break;case 141:e.brightness=r.value;break;case 142:e.contrast=r.value;break;case 63:case 421:case 431:e.ambientLightColor=r.value;break;case 361:e.sunId=r.value;break;case 335:case 343:case 344:case 91:e.softPointer=r.value}return!0}(r,e,a)&&aP(r,a,e),a=e.next()}return r}}function rz(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}C="VIEWPORT",(y="ForEntityName")in rX?Object.defineProperty(rX,y,{value:C,enumerable:!0,configurable:!0,writable:!0}):rX[y]=C;let rK={},rZ=[{code:170,name:"multileaderType",parser:an},{code:291,name:"doglegEnabled",parser:as},{code:40,name:"doglegLength",parser:an},{code:172,name:"contentType",parser:an},{code:3,name:"textContent",parser:an},{code:12,name:"textAnchor",parser:ao},{code:344,name:"blockHandle",parser:an},{code:15,name:"blockPosition",parser:ao},{code:302,name:"leaderSections",parser:function(e,a,r){let t;let n={leaderLines:[]};for(;a.hasNext()&&303!==(t=a.next()).code;){switch(t.code){case 10:n.landingPoint=(t.value,aa(a));break;case 11:n.doglegVector=(t.value,aa(a));break;case 40:n.doglegLength=t.value;break;case 304:n.leaderLines.push(function(e,a,r){let t;let n={vertices:[]};for(;a.hasNext()&&305!==(t=a.next()).code;)10===t.code&&n.vertices.push((t.value,aa(a)));return n}(0,a))}}return n},isMultiple:!0},...ap];class rJ{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rz(this,"parser",at(rZ,rK))}}rz(rJ,"ForEntityName","MULTILEADER");let r$=Object.fromEntries([ab,aL,aV,aU,aW,az,a$,a1,a7,a8,rn,ax,rJ,rc,rh,rD,rN,rA,rv,ag,rj,rX].map(e=>[e.ForEntityName,new e]));function rq(e,a){let r=[];for(;!o(e,0,"EOF");){if(0===e.code){if("ENDBLK"===e.value||"ENDSEC"===e.value){a.rewind();break}let t=r$[e.value];if(t){let n=e.value;e=a.next();let o=t.parseEntity(a,e);o.type=n,aE(o),r.push(o)}else console.warn(`Unsupported ENTITY type: ${e.value}`)}e=a.next()}return r}function rQ(e,a){let r={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");){if(o(e,0,"BLOCK")){let t=r0(e=a.next(),a);aE(t),t.name&&(r[t.name]=t)}e=a.next()}return r}function r0(e,a){let r={};for(;!o(e,0,"EOF");){if(o(e,0,"ENDBLK")){for(e=a.next();!o(e,0,"EOF");){if(o(e,100,"AcDbBlockEnd"))return r;e=a.next()}break}switch(e.code){case 1:r.xrefPath=e.value;break;case 2:r.name=e.value;break;case 3:r.name2=e.value;break;case 5:r.handle=e.value;break;case 8:r.layer=e.value;break;case 10:r.position=aa(a);break;case 67:r.paperSpace=!!e.value&&1==e.value;break;case 70:0!==e.value&&(r.type=e.value);break;case 100:break;case 330:r.ownerHandle=e.value;break;case 0:r.entities=rq(e,a)}e=a.next()}return r}function r1(e,a){let r=null,t={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");)9===e.code?r=e.value:10===e.code?t[r]=aa(a):t[r]=e.value,e=a.next();return t}let r4=[{code:333,name:"shadePlotId",parser:an},{code:149,name:"imageOriginY",parser:an},{code:148,name:"imageOriginX",parser:an},{code:147,name:"scaleFactor",parser:an},{code:78,name:"shadePlotCustomDPI",parser:an},{code:77,name:"shadePlotResolution",parser:an},{code:76,name:"shadePlotMode",parser:an},{code:75,name:"standardScaleType",parser:an},{code:7,name:"currentStyleSheet",parser:an},{code:74,name:"plotType",parser:an},{code:73,name:"plotRotation",parser:an},{code:72,name:"paperUnit",parser:an},{code:70,name:"layoutFlag",parser:an},{code:143,name:"printScaleDenominator",parser:an},{code:142,name:"printScaleNominator",parser:an},{code:141,name:"windowAreaYMax",parser:an},{code:140,name:"windowAreaYMin",parser:an},{code:49,name:"windowAreaXMax",parser:an},{code:48,name:"windowAreaXMin",parser:an},{code:47,name:"plotOriginY",parser:an},{code:46,name:"plotOriginX",parser:an},{code:45,name:"paperHeight",parser:an},{code:44,name:"paperWidth",parser:an},{code:43,name:"marginTop",parser:an},{code:42,name:"marginRight",parser:an},{code:41,name:"marginBottom",parser:an},{code:40,name:"marginLeft",parser:an},{code:6,name:"plotViewName",parser:an},{code:4,name:"paperSize",parser:an},{code:2,name:"configName",parser:an},{code:1,name:"pageSetupName",parser:an},{code:100,name:"subclassMarker",parser:an}];(P=e4||(e4={}))[P.INCHES=0]="INCHES",P[P.MILLIMETERS=1]="MILLIMETERS",P[P.PIXELS=2]="PIXELS",(v=e2||(e2={}))[v.LAST_SCREEN_DISPLAY=0]="LAST_SCREEN_DISPLAY",v[v.DRAWING_EXTENTS=1]="DRAWING_EXTENTS",v[v.DRAWING_LIMITS=2]="DRAWING_LIMITS",v[v.VIEW_SPECIFIED=3]="VIEW_SPECIFIED",v[v.WINDOW_SPECIFIED=4]="WINDOW_SPECIFIED",v[v.LAYOUT_INFORMATION=5]="LAYOUT_INFORMATION",(M=e3||(e3={}))[M.AS_DISPLAYED=0]="AS_DISPLAYED",M[M.WIREFRAME=1]="WIREFRAME",M[M.HIDDEN=2]="HIDDEN",M[M.RENDERED=3]="RENDERED",(R=e7||(e7={}))[R.DRAFT=0]="DRAFT",R[R.PREVIEW=1]="PREVIEW",R[R.NORMAL=2]="NORMAL",R[R.PRESENTATION=3]="PRESENTATION",R[R.MAXIMUM=4]="MAXIMUM",R[R.CUSTOM=5]="CUSTOM";let r2=[{code:333,name:"shadePlotId",parser:an},{code:346,name:"orthographicUcsId",parser:an},{code:345,name:"namedUcsId",parser:an},{code:331,name:"viewportId",parser:an},{code:330,name:"paperSpaceTableId",parser:an},{code:76,name:"orthographicType",parser:an},{code:17,name:"ucsYAxis",parser:ao},{code:16,name:"ucsXAxis",parser:ao},{code:13,name:"ucsOrigin",parser:ao},{code:146,name:"elevation",parser:an},{code:15,name:"maxExtent",parser:ao},{code:14,name:"minExtent",parser:ao},{code:12,name:"insertionBase",parser:ao},{code:11,name:"maxLimit",parser:ao},{code:10,name:"minLimit",parser:ao},{code:71,name:"tabOrder",parser:an},{code:70,name:"controlFlag",parser:an},{code:1,name:"layoutName",parser:an},{code:100,name:"subclassMarker",parser:an},...r4];(x=e5||(e5={}))[x.PSLTSCALE=1]="PSLTSCALE",x[x.LIMCHECK=2]="LIMCHECK";let r3=[{code:330,name:"ownerObjectId",parser:an},{code:102},{code:360,name:"ownerDictionaryIdHard",parser:an},{code:102},{code:102},{code:330,name:"ownerDictionaryIdSoft",parser:an},{code:102},{code:102},{code:102},{code:5,name:"handle",parser:an}],r7=[{code:3,name:"entries",parser:(e,a)=>{let r={name:e.value};return 350===(e=a.next()).code?r.objectId=e.value:a.rewind(),r},isMultiple:!0},{code:281,name:"recordCloneFlag",parser:an},{code:280,name:"isHardOwned",parser:as},{code:100,name:"subclassMarker",parser:an}];function r5(e){return"AcDbDictionary"===e.subclassMarker}(k=e6||(e6={}))[k.NOT_APPLICABLE=0]="NOT_APPLICABLE",k[k.KEEP_EXISTING=1]="KEEP_EXISTING",k[k.USE_CLONE=2]="USE_CLONE",k[k.XREF_VALUE_NAME=3]="XREF_VALUE_NAME",k[k.VALUE_NAME=4]="VALUE_NAME",k[k.UNMANGLE_NAME=5]="UNMANGLE_NAME";let r6={LAYOUT:r2,PLOTSETTINGS:r4,DICTIONARY:r7};function r9(e,a){let r=[];for(;0!==e.code||!["EOF","ENDSEC"].includes(e.value);){let t=e.value,n=r6[t];if(0===e.code&&n?.length){let o=at([...r3,...n]),s={name:t};o(e=a.next(),a,s)?(r.push(s),e=a.peek()):e=a.next()}else e=a.next()}return{byName:aA(r,({name:e})=>e),byTree:function(e){let a=Object.fromEntries(e.map(e=>[e.handle,e]));for(let r of e)(!r5(r)||"0"!==r.ownerDictionaryIdSoft)&&(r.ownerDictionaryIdSoft&&(r.ownerDictionarySoft=a[r.ownerDictionaryIdSoft]),r.ownerDictionaryIdHard&&(r.ownerDictionaryHard=a[r.ownerDictionaryIdHard]),r.ownerObjectId&&(r.ownerObject=a[r.ownerObjectId])),function(e,a){r5(e)&&e.entries&&(e.entries=Object.fromEntries(e.entries.map(({name:e,objectId:r})=>[e,a[r]])))}(r,a);return e[0]}(r)}}let r8=[{name:"DIMPOST",code:3},{name:"DIMAPOST",code:4},{name:"DIMBLK_OBSOLETE",code:5},{name:"DIMBLK1_OBSOLETE",code:6},{name:"DIMBLK2_OBSOLETE",code:7},{name:"DIMSCALE",code:40,defaultValue:1},{name:"DIMASZ",code:41,defaultValue:.25},{name:"DIMEXO",code:42,defaultValue:.625,defaultValueImperial:.0625},{name:"DIMDLI",code:43,defaultValue:3.75,defaultValueImperial:.38},{name:"DIMEXE",code:44,defaultValue:2.25,defaultValueImperial:.28},{name:"DIMRND",code:45,defaultValue:0},{name:"DIMDLE",code:46,defaultValue:0},{name:"DIMTP",code:47,defaultValue:0},{name:"DIMTM",code:48,defaultValue:0},{name:"DIMTXT",code:140,defaultValue:2.5,defaultValueImperial:.28},{name:"DIMCEN",code:141,defaultValue:2.5,defaultValueImperial:.09},{name:"DIMTSZ",code:142,defaultValue:0},{name:"DIMALTF",code:143,defaultValue:25.4},{name:"DIMLFAC",code:144,defaultValue:1},{name:"DIMTVP",code:145,defaultValue:0},{name:"DIMTFAC",code:146,defaultValue:1},{name:"DIMGAP",code:147,defaultValue:.625,defaultValueImperial:.09},{name:"DIMALTRND",code:148,defaultValue:0},{name:"DIMTOL",code:71,defaultValue:0,defaultValueImperial:1},{name:"DIMLIM",code:72,defaultValue:0},{name:"DIMTIH",code:73,defaultValue:0,defaultValueImperial:1},{name:"DIMTOH",code:74,defaultValue:0,defaultValueImperial:1},{name:"DIMSE1",code:75,defaultValue:0},{name:"DIMSE2",code:76,defaultValue:0},{name:"DIMTAD",code:77,defaultValue:eh.Above,defaultValueImperial:eh.Center},{name:"DIMZIN",code:78,defaultValue:ef.Trailing,defaultValueImperial:ef.Feet},{name:"DIMAZIN",code:79,defaultValue:eb.None},{name:"DIMALT",code:170,defaultValue:0},{name:"DIMALTD",code:171,defaultValue:3,defaultValueImperial:2},{name:"DIMTOFL",code:172,defaultValue:1,defaultValueImperial:0},{name:"DIMSAH",code:173,defaultValue:0},{name:"DIMTIX",code:174,defaultValue:0},{name:"DIMSOXD",code:175,defaultValue:0},{name:"DIMCLRD",code:176,defaultValue:0},{name:"DIMCLRE",code:177,defaultValue:0},{name:"DIMCLRT",code:178,defaultValue:0},{name:"DIMADEC",code:179},{name:"DIMUNIT",code:270},{name:"DIMDEC",code:271,defaultValue:2,defaultValueImperial:4},{name:"DIMTDEC",code:272,defaultValue:2,defaultValueImperial:4},{name:"DIMALTU",code:273,defaultValue:2},{name:"DIMALTTD",code:274,defaultValue:2,defaultValueImperial:4},{name:"DIMAUNIT",code:275,defaultValue:0},{name:"DIMFRAC",code:276,defaultValue:0},{name:"DIMLUNIT",code:277,defaultValue:2},{name:"DIMDSEP",code:278,defaultValue:",",defaultValueImperial:"."},{name:"DIMJUST",code:280,defaultValue:eD.Center},{name:"DIMSD1",code:281,defaultValue:0},{name:"DIMSD2",code:282,defaultValue:0},{name:"DIMTOLJ",code:283,defaultValue:eT.Center},{name:"DIMTZIN",code:284,defaultValue:ef.Trailing,defaultValueImperial:ef.Feet},{name:"DIMALTZ",code:285,defaultValue:ef.Trailing},{name:"DIMALTTZ",code:286,defaultValue:ef.Trailing},{name:"DIMFIT",code:287},{name:"DIMUPT",code:288,defaultValue:0},{name:"DIMATFIT",code:289,defaultValue:3},{name:"DIMTXSTY",code:340},{name:"DIMLDRBLK",code:341},{name:"DIMBLK",code:342},{name:"DIMBLK1",code:343},{name:"DIMBLK2",code:344},{name:"DIMLWD",code:371,defaultValue:-2},{name:"DIMLWD",code:372,defaultValue:-2}];(F=e9||(e9={}))[F.NONE=0]="NONE",F[F.AbsoluteRotation=1]="AbsoluteRotation",F[F.TextEmbedded=2]="TextEmbedded",F[F.ShapeEmbedded=4]="ShapeEmbedded";let te=[{code:100,name:"subclassMarker",parser:an},{code:330,name:"ownerObjectId",parser:an},{code:102,parser(e,a){for(;!o(e,0,"EOF")&&!o(e,102,"}");)e=a.next()}},{code:5,name:"handle",parser:an}],ta=at([{code:310,name:"bmpPreview",parser:an},{code:281,name:"scalability",parser:an},{code:280,name:"explodability",parser:an},{code:70,name:"insertionUnits",parser:an},{code:340,name:"layoutObjects",parser:an},{code:2,name:"name",parser:an},{code:100,name:"subclassMarker",parser:an},...te]),tr=at([...r8.map(e=>({...e,parser:an})),{code:70,name:"standardFlag",parser:an},{code:2,name:"name",parser:an},{code:100,name:"subclassMarker",parser:an},{code:105,name:"handle",parser:an},...te.filter(e=>5!==e.code)]),tt=at([{code:347,name:"materialObjectId",parser:an},{code:390,name:"plotStyleNameObjectId",parser:an},{code:370,name:"lineweight",parser:an},{code:290,name:"isPlotting",parser:as},{code:6,name:"lineType",parser:an},{code:62,name:"colorIndex",parser:an},{code:70,name:"standardFlag",parser:an},{code:2,name:"name",parser:an},{code:100,name:"subclassMarker",parser:an},...te]),tn=at([{code:9,name:"text",parser:an},{code:45,name:"offsetY",parser:an},{code:44,name:"offsetX",parser:an},{code:50,name:"rotation",parser:an},{code:46,name:"scale",parser:an},{code:340,name:"styleObjectId",parser:an},{code:75,name:"shapeNumber",parser:an},{code:74,name:"elementTypeFlag",parser:an},{code:49,name:"elementLength",parser:an}],{elementTypeFlag:0,elementLength:0}),to={BLOCK_RECORD:ta,DIMSTYLE:tr,LAYER:tt,LTYPE:at([{code:49,name:"pattern",parser(e,a){let r={};return tn(e,a,r),r},isMultiple:!0},{code:40,name:"totalPatternLength",parser:an},{code:73,name:"numberOfLineTypes",parser:an},{code:72,parser:an},{code:3,name:"description",parser:an},{code:70,name:"standardFlag",parser:an},{code:2,name:"name",parser:an},{code:100,name:"subclassMarker",parser:an},...te]),STYLE:at([{code:1e3,name:"extendedFont",parser:an},{code:1001},{code:4,name:"bigFont",parser:an},{code:3,name:"font",parser:an},{code:42,name:"lastHeight",parser:an},{code:71,name:"textGenerationFlag",parser:an},{code:50,name:"obliqueAngle",parser:an},{code:41,name:"widthFactor",parser:an},{code:40,name:"fixedTextHeight",parser:an},{code:70,name:"standardFlag",parser:an},{code:2,name:"name",parser:an},{code:100,name:"subclassMarker",parser:an},...te]),VPORT:at([{code:[63,421,431],name:"ambientColor",parser:an},{code:142,name:"contrast",parser:an},{code:141,name:"brightness",parser:an},{code:282,name:"defaultLightingType",parser:an},{code:292,name:"isDefaultLightingOn",parser:as},{code:348,name:"visualStyleObjectId",parser:an},{code:333,name:"shadePlotObjectId",parser:an},{code:332,name:"backgroundObjectId",parser:an},{code:61,name:"majorGridLines",parser:an},{code:170,name:"shadePlotSetting",parser:an},{code:146,name:"elevation",parser:an},{code:79,name:"orthographicType",parser:an},{code:112,name:"ucsYAxis",parser:ao},{code:111,name:"ucsXAxis",parser:ao},{code:110,name:"ucsOrigin",parser:ao},{code:74,name:"ucsIconSetting",parser:an},{code:71,name:"viewMode",parser:an},{code:281,name:"renderMode",parser:an},{code:1,name:"styleSheet",parser:an},{code:[331,441],name:"frozenLayers",parser:an,isMultiple:!0},{code:72,name:"circleSides",parser:an},{code:51,name:"viewTwistAngle",parser:an},{code:50,name:"snapRotationAngle",parser:an},{code:45,name:"viewHeight",parser:an},{code:44,name:"backClippingPlane",parser:an},{code:43,name:"frontClippingPlane",parser:an},{code:42,name:"lensLength",parser:an},{code:17,name:"viewTarget",parser:ao},{code:16,name:"viewDirectionFromTarget",parser:ao},{code:15,name:"gridSpacing",parser:ao},{code:14,name:"snapSpacing",parser:ao},{code:13,name:"snapBasePoint",parser:ao},{code:12,name:"center",parser:ao},{code:11,name:"upperRightCorner",parser:ao},{code:10,name:"lowerLeftCorner",parser:ao},{code:70,name:"standardFlag",parser:an},{code:2,name:"name",parser:an},{code:100,name:"subclassMarker",parser:an},...te])},ts=at([{code:70,name:"maxNumberOfEntries",parser:an},{code:100,name:"subclassMarker",parser:an},{code:330,name:"ownerObjectId",parser:an},{code:102},{code:360,isMultiple:!0},{code:102},{code:5,name:"handle",parser:an},{code:2,name:"name",parser:an}]);function ti(e,a){let r={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");){if(o(e,0,"TABLE")){e=a.next();let t={entries:[]};ts(e,a,t),r[t.name]=t}if(o(e,0)&&!o(e,0,"ENDTAB")){let t=e.value;e=a.next();let n=to[t];if(!n){a.debug&&console.warn(`parseTable: Invalid table name '${t}'`),e=a.next();continue}let o={};n(e,a,o),r[t]?.entries.push(o)}e=a.next()}return r}function tc(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class td{next(){if(!this.hasNext())return this._eof?this.debug&&console.warn("Cannot call 'next' after EOF group has been read"):this.debug&&console.warn("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer]),{code:0,value:"EOF"};let e=parseInt(this._data[this._pointer++],10),a=tl(e,this._data[this._pointer++]),r={code:e,value:a};return o(r,0,"EOF")&&(this._eof=!0),this.lastReadGroup=r,r}peek(){if(!this.hasNext()){if(this._eof)throw Error("Cannot call 'next' after EOF group has been read");throw Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer])}let e={code:parseInt(this._data[this._pointer]),value:0};return e.value=tl(e.code,this._data[this._pointer+1]),e}rewind(e){e=e||1,this._pointer=this._pointer-2*e}hasNext(){return!this._eof&&!(this._pointer>this._data.length-2)}isEOF(){return this._eof}constructor(e,a){tc(this,"_pointer",void 0),tc(this,"_data",void 0),tc(this,"_eof",void 0),tc(this,"debug",!0),tc(this,"lastReadGroup",{code:0,value:0}),this._pointer=0,this._data=e,this._eof=!1,this.debug=a??!0}}function tl(e,a){return e<=9?a:e>=10&&e<=59?parseFloat(a.trim()):e>=60&&e<=99?parseInt(a.trim()):e>=100&&e<=109?a:e>=110&&e<=149?parseFloat(a.trim()):e>=160&&e<=179?parseInt(a.trim()):e>=210&&e<=239?parseFloat(a.trim()):e>=270&&e<=289?parseInt(a.trim()):e>=290&&e<=299?function(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}(a.trim()):e>=300&&e<=369?a:e>=370&&e<=389?parseInt(a.trim()):e>=390&&e<=399?a:e>=400&&e<=409?parseInt(a.trim()):e>=410&&e<=419?a:e>=420&&e<=429?parseInt(a.trim()):e>=430&&e<=439?a:e>=440&&e<=459?parseInt(a.trim()):e>=460&&e<=469?parseFloat(a.trim()):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?a:e>=1010&&e<=1059?parseFloat(a.trim()):e>=1060&&e<=1071?parseInt(a.trim()):(console.log("WARNING: Group code does not have a defined type: %j",{code:e,value:a}),a)}function tu(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class tp{parseStart(e){this.startCode=e.code}setPoint(e){if(this.code=e.code,this.value=e.value,this.startCode===this.code&&(this.x=this.value),this.startCode===this.code+10)this.y=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}if(this.startCode===this.code+20)this.z=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}}reset(){this.x=void 0,this.y=void 0,this.z=void 0}constructor(){tu(this,"point",{}),tu(this,"startCode",0),tu(this,"code",0),tu(this,"value",0),tu(this,"x",void 0),tu(this,"y",void 0),tu(this,"z",void 0)}}function tm(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class tE{constructor(){tm(this,"encoding","utf-8"),tm(this,"encodingFailureFatal",!1)}}class tI extends Error{constructor(e,a,r){let t=`[Line ${a}]: ${e}`;r?.cause&&(t+=`
|
|
2
2
|
Caused by ${r.cause.toString()}
|
|
3
|
-
${r.cause.stack}`),super(
|
|
3
|
+
${r.cause.stack}`),super(t),tm(this,"line",void 0),this.line=a}}class th extends EventTarget{Feed(e,a=!1){let r=this._decoder.decode(e??void 0,{stream:!a});this.FeedString(r,a)}FeedString(e,a=!1){if(this._finalChunkSeen)throw Error("Data fed after final chunk processed");a&&(this._finalChunkSeen=!0),this._curChunk+=e,this._ProcessCurChunk(),a&&this._Finalize()}_Finalize(){}async FeedFile(e,a){let r=e.byteLength;for(let t=0;t<r;t+=65536){a?.throwIfAborted();let n=Math.min(r-t,65536),o=await e.slice(t,t+n);this.Feed(o,t+n>=r)}}_ProcessCurChunk(){for(let e of this._ConsumeCurChunkLines())if(this._ProcessLine(e),this._curLineNum++,!this._eof&&"HEADER"===this._curSection){let e=this._curValue.value;9===this._curValue.code?this._currVarName=e:10===this._curValue.code?this._pointParser.parseStart(this._curValue):this._pointParser.startCode===this._curValue.code||this._pointParser.startCode+10===this._curValue.code||this._pointParser.startCode+20===this._curValue.code?e=this._pointParser.setPoint(this._curValue):this._currVarName&&(this.dxf.header[this._currVarName]=e)}}*_ConsumeCurChunkLines(){let e=0,a=this._curChunk.length;for(;e<a;){let r=this._curChunk.indexOf("\r",e),t=0;if(r>=0?(t=r+1)<a&&"\n"==this._curChunk.charAt(t)&&t++:(r=this._curChunk.indexOf("\n",e))>=0&&(t=r+1),r<0)break;yield this._curChunk.substring(e,r),e=t}0!=e&&(this._curChunk=this._curChunk.substring(e))}_ProcessLine(e){if(null===this._curGroupCode){let a=e.trim();this._curGroupCode=parseInt(a),isNaN(this._curGroupCode)&&this._Error("Bad group code: "+a);return}let a=new tf(this._curGroupCode,e);if(!o(a,0,"EOF")){switch(a.value){case"SECTION":this._curSection="SECTION";break;case"HEADER":this._curSection="HEADER";break;case"BLOCKS":this._curSection="BLOCKS";break;case"ENTITIES":this._curSection="ENTITIES";break;case"TABLES":this._curSection="TABLES";break;case"OBJECTS":this._curSection="OBJECTS"}this._eof=!1}o(a,0,"EOF")&&(this._eof=!0),this._curValue=a,this._curGroupCode=null}_Error(e,a=null){let r;throw a&&(r={cause:a}),new tI(e,this._curLineNum,r)}constructor(e=new tE){super(),tm(this,"dxf",{header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}}),tm(this,"_decoder",void 0),tm(this,"_pointParser",void 0),tm(this,"_finalChunkSeen",!1),tm(this,"_curChunk",""),tm(this,"_curGroupCode",null),tm(this,"_curLineNum",1),tm(this,"_eof",!1),tm(this,"_curValue",{code:0,value:0}),tm(this,"_curSection",""),tm(this,"_currVarName",""),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal}),this._pointParser=new tp}}class tf{constructor(e,a){tm(this,"code",void 0),tm(this,"value",void 0),this.code=e,this.value=tl(e,a)}}function tb(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class tD{constructor(){tb(this,"encoding","utf-8"),tb(this,"encodingFailureFatal",!1)}}class tT extends EventTarget{parseSync(e){let a=new td(e.split(/\r\n|\r|\n/g));if(!a.hasNext())throw Error("Empty file");return this.parseAll(a)}parseStream(e){let a="",r=this;return new Promise((t,n)=>{e.on("data",e=>{a+=e}),e.on("end",()=>{try{let e=a.split(/\r\n|\r|\n/g),n=new td(e);if(!n.hasNext())throw Error("Empty file");t(r.parseAll(n))}catch(e){n(e)}}),e.on("error",e=>{n(e)})})}async parseFromUrl(e,a){let r=await fetch(e,a);if(!r.body)return null;let t=r.body.getReader(),n="";for(;;){let{done:e,value:a}=await t.read();if(e){n+=this._decoder.decode(new ArrayBuffer(0),{stream:!1});break}n+=this._decoder.decode(a,{stream:!0})}return this.parseSync(n)}parseAll(e){let a={header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}},r=e.next();for(;!o(r,0,"EOF");)o(r,0,"SECTION")&&(o(r=e.next(),2,"HEADER")?(r=e.next(),a.header=r1(r,e)):o(r,2,"BLOCKS")?(r=e.next(),a.blocks=rQ(r,e)):o(r,2,"ENTITIES")?(r=e.next(),a.entities=rq(r,e)):o(r,2,"TABLES")?(r=e.next(),a.tables=ti(r,e)):o(r,2,"OBJECTS")&&(r=e.next(),a.objects=r9(r,e))),r=e.next();return a}constructor(e=new tD){super(),tb(this,"_decoder",void 0),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal})}}export{eE as AttachmentPoint,eu as BlockTypeFlag,eC as BoundaryPathEdgeType,ey as BoundaryPathTypeFlag,ep as ColorCode,ap as CommonEntitySnippets,t as DefaultDxfHeaderVariables,eV as DefaultLightingType,r8 as DimStyleVariablesSchema,eD as DimensionTextHorizontal,eI as DimensionTextLineSpacing,eh as DimensionTextVertical,eT as DimensionToleranceTextVertical,em as DimensionType,ef as DimensionZeroSuppression,eb as DimensionZeroSuppressionAngular,tI as DxfParsingError,th as DxfStreamParser,tE as DxfStreamParserOptions,eg as HatchAssociativity,e_ as HatchBoundaryAnnotation,eA as HatchGradientColorFlag,eL as HatchGradientFlag,eS as HatchPatternType,eO as HatchSolidFill,eN as HatchStyle,n as INDEXED_CHUNK_SIZE,e9 as LineTypeElementType,eM as Measurement,eP as ObscuredLineTypes,eF as OrthographicType,ex as RenderMode,ev as ReservedLineweight,a as SPLINE_SUBDIVISION,ew as ShadePlotMode,eB as ShadowMode,r as TESSELLATION_ANGLE,ek as UCSPerViewport,e as UndeterminedBlockColor,eR as ViewportStatusFlag,ai as XDataParserSnippets,aA as classify,au as createXDataCatcher,al as createXDataControlInterpreter,tT as default,aE as ensureHandle,aC as ensurePoint3D,ay as generateIntegers,ae as getAcadColor,o as isMatched,r0 as parseBlock,rQ as parseBlocks,rq as parseEntities,s as parseExtensions,r1 as parseHeader,r9 as parseObjects,ti as parseTables,ac as parseXData};
|
|
@@ -1,2 +1,10 @@
|
|
|
1
|
+
export type * from './blockRecord';
|
|
2
|
+
export type * from './dimStyle';
|
|
3
|
+
export type * from './layer';
|
|
4
|
+
export type * from './ltype';
|
|
5
|
+
export type * from './style';
|
|
6
|
+
export type * from './vport';
|
|
1
7
|
export type * from './types';
|
|
8
|
+
export * from './dimStyle/consts';
|
|
9
|
+
export * from './ltype/consts';
|
|
2
10
|
export * from './parser';
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
export type * from './blockRecord';
|
|
2
|
-
export type * from './dimStyle';
|
|
3
|
-
export type * from './layer';
|
|
4
|
-
export type * from './ltype';
|
|
5
|
-
export type * from './style';
|
|
6
|
-
export type * from './vport';
|
|
7
1
|
export interface DxfTable<T extends CommonDxfTableEntry> {
|
|
8
2
|
subclassMarker: 'AcDbSymbolTable';
|
|
9
3
|
name: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dxf-json",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "perfect dxf parser",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/bundle.cjs",
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
"types": "./dist/index.d.ts",
|
|
14
14
|
"scripts": {
|
|
15
15
|
"build": "tsc && rollup --config",
|
|
16
|
-
"test": "jest --silent=false"
|
|
16
|
+
"test": "jest --silent=false",
|
|
17
|
+
"analyze": "depcruise src --include-only \".*(types|index|consts).ts\" -T dot | dot -Grankdir=TD -Gsplines=ortho -T svg > dependency-graph.svg"
|
|
17
18
|
},
|
|
18
19
|
"repository": {
|
|
19
20
|
"type": "git",
|
|
@@ -52,6 +53,7 @@
|
|
|
52
53
|
"@types/jest": "^29.5.11",
|
|
53
54
|
"@types/readable-stream": "^4.0.10",
|
|
54
55
|
"@types/three": "^0.160.0",
|
|
56
|
+
"dependency-cruiser": "^17.0.0",
|
|
55
57
|
"jest": "^29.7.0",
|
|
56
58
|
"resolve-typescript-plugin": "^2.0.1",
|
|
57
59
|
"rollup": "^4.9.6",
|