@imgly/psd-importer
Version:
Import PSD files into the Creative Editor Ecosystem
1 lines • 106 kB
JavaScript
var w;(function(e){e.SectionDividerSetting="lsct",e.TypeToolObjectSetting="TySh",e.UnicodeLayerName="luni",e.VectorStrokeData="vstk",e.ObjectBasedEffects="lfx2",e.MultipleObjectBasedEffects="lmfx",e.ObjectBasedUndocumented="lfxs",e.GradientFillSetting="GdFl",e.SolidColorSheetSetting="SoCo",e.PatternFillSetting="PtFl",e.VectorStrokeContentData="vscg",e.VectorOriginationData="vogk",e.BlendOptionsCapacity="iOpa",e.VectorMaskSetting1="vmsk",e.VectorMaskSetting2="vsms",e.HueSaturation="hue2",e.NestedSectionDividerSetting="lsdk",e.LayerId="lyid",e.ArtboardData="artb",e.SmartObjectPlacedLayerData="SoLE",e.PlacedLayerData="SoLd",e.LinkedLayer="lnkD",e.LinkedLayer2="lnk2",e.LinkedLayer3="lnk3",e.LayerNameSourceSetting="lnsr",e.BrightnessAndContrast="brit",e.Levels="levl",e.Curves="curv",e.Exposure="expA",e.Vibrance="vibA",e.HueSaturationOld="hue ",e.ColorBalance="blnc",e.BlackAndWhite="blwh",e.PhotoFilter="phfl",e.ChannelMixer="mixr",e.ColorLookup="clrL",e.Invert="nvrt",e.Posterize="post",e.Threshold="thrs",e.GradientMapSettings="grdm",e.SelectiveColor="selc",e.Pattern1="Patt",e.Pattern2="Pat2",e.Pattern3="Pat3"})(w||(w={}));var Ve;(function(e){e[e.Normal=0]="Normal",e[e.SceneGroup=1]="SceneGroup"})(Ve||(Ve={}));var v;(function(e){e[e.ClosedSubpathLength=0]="ClosedSubpathLength",e[e.ClosedSubpathBezierKnotLinked=1]="ClosedSubpathBezierKnotLinked",e[e.ClosedSubpathBezierKnotUnlinked=2]="ClosedSubpathBezierKnotUnlinked",e[e.OpenSubpathLength=3]="OpenSubpathLength",e[e.OpenSubpathBezierKnotLinked=4]="OpenSubpathBezierKnotLinked",e[e.OpenSubpathBezierKnotUnlinked=5]="OpenSubpathBezierKnotUnlinked",e[e.PathFillRule=6]="PathFillRule",e[e.Clipboard=7]="Clipboard",e[e.InitialFillRule=8]="InitialFillRule"})(v||(v={}));var qe=(e,A)=>{let t=Math.max(e.length,A.length);for(let n=0;n<t;n++)if(e[n]!==A[n])return!1;return!0},h=class extends Error{constructor(A){super(A),Object.setPrototypeOf(this,new.target.prototype),this.name=new.target.name}},ze=class extends h{},ke=class extends h{},Ze=class extends h{},De=class extends h{},We=class extends h{},Xe=class extends h{},$e=class extends h{},eA=class extends h{},AA=class extends h{},tA=class extends h{},Fe=class extends h{},nA=class extends h{},iA=class extends h{},rA=class extends h{},Se=class extends h{},oA=class extends h{},aA=class extends h{},sA=class extends h{},gA=class extends h{},cA=class extends h{},lA=class extends h{},IA=class extends h{},BA=class extends h{},CA=class extends h{},dA=class extends h{},uA=class extends h{},hA=class extends h{},ie=class extends h{},Re=class extends h{},pe=class extends h{},Me=class extends h{},Ee=class extends h{},EA=class extends h{},QA=class extends h{},fA=class extends h{},pA=class extends h{},yA=class extends h{},wA=class extends h{},bA=class extends h{},mA=class extends h{},kA=class extends h{},DA=class extends h{},FA=class extends h{},Ne=class extends h{},Qe=class extends h{},SA=class extends h{},RA=class extends h{};function It(e,A){let t=e.getUint32(A),n=e.getUint32(A+4);if(t>=2097152)throw new Re;return t*4294967296+n}function Ot(e,A){let t=e.getInt32(A),n=e.getUint32(A+4);if(t>=2097152||t<-2097152||t===-2097152&&n===0)throw new Re;return t*4294967296+n}var jt={u8:1,i8:1,u16:2,i16:2,u32:4,i32:4,f32:4,u64:8,i64:8,f64:8},re=class e{static from(A){return new e(new DataView(A.buffer,A.byteOffset,A.byteLength))}constructor(A,t=0){this.dataView=A,this.position=t}get length(){return this.dataView.byteLength}clone(A){let t=A!==void 0?A:this.position;return new e(new DataView(this.dataView.buffer,this.dataView.byteOffset,this.dataView.byteLength),t)}pass(A){this.position+=A}unpass(A){this.position-=A}extract(A){if(this.position+A>this.dataView.byteLength)throw new BA;return new Uint8Array(this.dataView.buffer,this.dataView.byteOffset+this.position,A)}iter(){return new Uint8Array(this.dataView.buffer,this.dataView.byteOffset+this.position)}take(A){let t=this.extract(A);return this.pass(A),t}peek(){return this.dataView.getUint8(this.position)}one(){let A=this.dataView.getUint8(this.position);return this.position+=1,A}read(A){let{dataView:t,position:n}=this;switch(this.pass(jt[A]),A){case"u8":return t.getUint8(n);case"u16":return t.getUint16(n);case"u32":return t.getUint32(n);case"u64":return It(t,n);case"i8":return t.getInt8(n);case"i16":return t.getInt16(n);case"i32":return t.getInt32(n);case"i64":return Ot(t,n);case"f32":return t.getFloat32(n);case"f64":return t.getFloat64(n);default:throw new TypeError(`Invalid ReadType: ${A}`)}}readString(A){let t=this.take(A);return new TextDecoder().decode(t)}readPascalString(A=0){let t=this.read("u8"),n=this.readString(t);if(A){let i=(t+1)%A;i>0&&this.pass(A-i)}return n}readUnicodeString(A=4){let t=this.read("u32")*2,n=this.take(t),i=new TextDecoder("utf-16be").decode(n);return this.padding(4+t,A),i.charCodeAt(i.length-1)===0?i.slice(0,-1):i}readFixedPoint32bit(){return this.read("u32")/65536}readIdString(){let A=this.read("u32");return this.readString(A||4)}padding(A,t){let n=A%t;n>0&&this.pass(t-n)}rleCompressedSize(A,t){return Array.from(Array(A),()=>this.read(t)).reduce((n,i)=>n+i)}},He=(e,A,t)=>A<=e&&e<=t;function fe(e){return e?e.bottom-e.top:0}function Bt(e){return e?e.right-e.left:0}function _t(e){return{width:Bt(e),height:fe(e)}}function Ge(e){return e?Bt(e)*fe(e):0}var ve;(function(e){e.PassThrough="pass",e.Normal="norm",e.Dissolve="diss",e.Darken="dark",e.Multiply="mul ",e.ColorBurn="idiv",e.LinearBurn="lbrn",e.DarkerColor="dkCl",e.Lighten="lite",e.Screen="scrn",e.ColorDodge="div ",e.LinearDodge="lddg",e.LighterColor="lgCl",e.Overlay="over",e.SoftLight="sLit",e.HardLight="hLit",e.VividLight="vLit",e.LinearLight="lLit",e.PinLight="pLit",e.HardMix="hMix",e.Difference="diff",e.Exclusion="smud",e.Subtract="fsub",e.Divide="fdiv",e.Hue="hue ",e.Saturation="sat ",e.Color="colr",e.Luminosity="lum "})(ve||(ve={}));function Ct(e){let A=Object.keys(ve);for(let t of A)if(ve[t]===e)return e;throw new tA}var te;(function(e){e[e.Base=0]="Base",e[e.NonBase=1]="NonBase"})(te||(te={}));function Vt(e){if(e===te.Base)return te.Base;if(e===te.NonBase)return te.NonBase;throw new gA}var Le;(function(e){e[e.Bitmap=0]="Bitmap",e[e.Grayscale=1]="Grayscale",e[e.Indexed=2]="Indexed",e[e.Rgb=3]="Rgb",e[e.Cmyk=4]="Cmyk",e[e.Multichannel=7]="Multichannel",e[e.Duotone=8]="Duotone",e[e.Lab=9]="Lab"})(Le||(Le={}));var MA;(function(e){e[e.One=1]="One",e[e.Eight=8]="Eight",e[e.Sixteen=16]="Sixteen",e[e.ThirtyTwo=32]="ThirtyTwo"})(MA||(MA={}));var F;(function(e){e.Alias="alis",e.Boolean="bool",e.Class="type",e.Descriptor="Objc",e.Double="doub",e.Enumerated="enum",e.GlobalClass="GlbC",e.GlobalObject="GlbO",e.Integer="long",e.LargeInteger="comp",e.List="VlLs",e.RawData="tdta",e.Reference="obj ",e.String="TEXT",e.UnitFloat="UntF",e.UnitFloats="UnFl",e.ObjectArray="ObAr"})(F||(F={}));var NA;(function(e){e.Angle="#Ang",e.Density="#Rsl",e.Distance="#Rlt",e.Millimeters="#Mlm",e.None="#Nne",e.Percent="#Prc",e.Pixels="#Pxl",e.Points="#Pnt",e.RulerCm="RrCm",e.RulerInches="RrIn"})(NA||(NA={}));function ge(e,A,t){let n=e.items.get(A);if(!n)throw new yA(`Cannot find key "${A}" in descriptor`);if(n.type!==t)throw new wA(`Unexpected descriptor value type: expected "${t}" but got "${n.type}"`);return n}var Be;(function(e){e[e.PSD=1]="PSD",e[e.PSB=2]="PSB"})(Be||(Be={}));var qt=[56,66,80,83],zt=[0,0,0,0,0,0],Zt=[1,8,16,32],Wt=1,Xt=56,$A=1;function $t(e){let A=new re(e),t=A.take(4);if(!qe(t,qt))throw new ze;let n=A.read("u16");if(!(n===Be.PSD||n===Be.PSB))throw new ke;let i=jA(n),r=A.take(6);if(!qe(r,zt))throw new Ze;let o=A.read("u16");if(!He(o,Wt,Xt))throw new Xe;let s=A.read("u32"),a=A.read("u32");if(!He(s,$A,i.maxPixels)||!He(a,$A,i.maxPixels))throw new $e;let c=A.read("u16");if(!Zt.includes(c))throw new We;let g=A.read("u16");if(!(g in Le))throw new De;return{channelCount:o,version:n,width:a,height:s,depth:c,colorMode:g}}function en(e,A,t){let n=(e.length-2)/t,i=e.extract(n),r=t>=2?e.extract(n):void 0,o=t>=3?e.extract(n):void 0,s=t>=4?e.extract(n):void 0;if(A===MA.Eight)return{red:i,green:r,blue:o,alpha:s};throw new oA(`Unsupported image bit depth: ${A}`)}function An(e,A,t,n){let i=0,r=0,o=0,s=0,a=n.rleScanlineLengthFieldReadType;for(let d=0;d<t;d++)i+=e.read(a);if(A>=2)for(let d=0;d<t;d++)r+=e.read(a);if(A>=3)for(let d=0;d<t;d++)o+=e.read(a);if(A===4)for(let d=0;d<t;d++)s+=e.read(a);let c=2+A*t*n.rleScanlineLengthFieldSize,g=e.clone(c),I=g.take(i),u=r?g.take(r):void 0,l=o?g.take(o):void 0,C=s?g.take(s):void 0;return{red:I,green:u,blue:l,alpha:C}}function tn(e,A,t,n,i){let r=new re(e),o=r.read("u16");if(!(o in V))throw new Fe;let{red:s,green:a,blue:c,alpha:g}=(()=>{switch(o){case V.RawData:return en(r,A,n);case V.RleCompressed:return An(r,n,t,i);default:throw new Se}})();return{compression:o,red:s,green:a,blue:c,alpha:g}}function nn(e){let A=e.read("u32");if(A!==1)throw new CA;let t=e.read("u32"),n=e.read("u32"),i=e.read("u32"),r=[];for(let o=0;o<i;++o){let s=e.read("i32"),a=bi(e.read("u8"));r.push({position:s,direction:a})}return{version:A,gridSizeX:t,gridSizeY:n,guides:r}}function rn(e,A){return e.take(A-e.position)}function on(e){let A=e.readFixedPoint32bit(),t=e.read("u16"),n=e.read("u16"),i=e.readFixedPoint32bit(),r=e.read("u16"),o=e.read("u16");return{horizontal:A,horizontalUnit:t,widthUnit:n,vertical:i,verticalUnit:r,heightUnit:o}}function et(e,A=255){if(!(0<=A&&A<=255))throw new lA;let t=e.length/4,n=he(T.TransparencyMask),i=A/255;for(let r=0;r<t;r++){let o=r*4+n;e[o]=Math.floor(i*e[o])}return e}var At,tt,nt,it,rt,ot,dt,ut,ht,Et,Qt=(async()=>{let e="data:application/wasm;base64,AGFzbQEAAAABcw9gAn9/AGADf39/AX9gAn9/AX9gAX8AYAN/f38AYAF/AX9gBH9/f38Bf2AFf39/f38AYAR/f39/AGAAAGAAAX9gDn9/f39/f39/f39/f39/AGAGf39/f39/AGALf39/f39/f39/f38AYAh/f39/f39/fwACmAIFGy4vd2VidG9vbl9wc2RfZGVjb2Rlcl9iZy5qcxpfX3diZ19uZXdfYWJkYTc2ZTg4M2JhOGE1ZgAKGy4vd2VidG9vbl9wc2RfZGVjb2Rlcl9iZy5qcxxfX3diZ19zdGFja182NTgyNzlmZTQ0NTQxY2Y2AAAbLi93ZWJ0b29uX3BzZF9kZWNvZGVyX2JnLmpzHF9fd2JnX2Vycm9yX2Y4NTE2NjdhZjcxYmNmYzYAABsuL3dlYnRvb25fcHNkX2RlY29kZXJfYmcuanMaX193YmluZGdlbl9vYmplY3RfZHJvcF9yZWYAAxsuL3dlYnRvb25fcHNkX2RlY29kZXJfYmcuanMQX193YmluZGdlbl90aHJvdwAAAzo5BQMBAAIAAgIABwsADA0EBAgIDgAHAAQFAQEAAgQGAAYJAwMABgQCAgAAAAACBAIDBQICCQIAAQEABAUBcAEaGgUDAQARBgkBfwFBgIDAAAsHxwELBm1lbW9yeQIAB21haW5fanMAJQpkZWNvZGVfcmdiABILZGVjb2RlX3JnYmEADxBkZWNvZGVfZ3JheXNjYWxlABkSZGVjb2RlX2dyYXlzY2FsZV9hABcfX193YmluZGdlbl9hZGRfdG9fc3RhY2tfcG9pbnRlcgA1EV9fd2JpbmRnZW5fbWFsbG9jACAPX193YmluZGdlbl9mcmVlACoSX193YmluZGdlbl9yZWFsbG9jACQQX193YmluZGdlbl9zdGFydAAlCR8BAEEBCxk9PT0nHQs2NzMaJx4MOS8tHzAmEBguKzEuCvSUATmnJAIJfwF+IwBBEGsiCCQAAkACQAJAAkACQAJAAkAgAEH1AU8EQCAAQc3/e08NByAAQQtqIgBBeHEhBUGYkcAAKAIAIglFDQRBACAFayEDAn9BACAFQYACSQ0AGkEfIAVB////B0sNABogBUEGIABBCHZnIgBrdkEBcSAAQQF0a0E+agsiB0ECdEH8jcAAaigCACIBRQRAQQAhAAwCC0EAIQAgBUEZIAdBAXZrQQAgB0EfRxt0IQQDQAJAIAEoAgRBeHEiBiAFSQ0AIAYgBWsiBiADTw0AIAEhAiAGIgMNAEEAIQMgASEADAQLIAEoAhQiBiAAIAYgASAEQR12QQRxakEQaigCACIBRxsgACAGGyEAIARBAXQhBCABDQALDAELQZSRwAAoAgAiAkEQIABBC2pB+ANxIABBC0kbIgVBA3YiAHYiAUEDcQRAAkAgAUF/c0EBcSAAaiIBQQN0IgBBjI/AAGoiBCAAQZSPwABqKAIAIgAoAggiA0cEQCADIAQ2AgwgBCADNgIIDAELQZSRwAAgAkF+IAF3cTYCAAsgAEEIaiEDIAAgAUEDdCIBQQNyNgIEIAAgAWoiACAAKAIEQQFyNgIEDAcLIAVBnJHAACgCAE0NAwJAAkAgAUUEQEGYkcAAKAIAIgBFDQYgAGhBAnRB/I3AAGooAgAiAigCBEF4cSAFayEDIAIhAQNAAkAgAigCECIADQAgAigCFCIADQAgASgCGCEHAkACQCABIAEoAgwiAEYEQCABQRRBECABKAIUIgAbaigCACICDQFBACEADAILIAEoAggiAiAANgIMIAAgAjYCCAwBCyABQRRqIAFBEGogABshBANAIAQhBiACIgBBFGogAEEQaiAAKAIUIgIbIQQgAEEUQRAgAhtqKAIAIgINAAsgBkEANgIACyAHRQ0EIAEgASgCHEECdEH8jcAAaiICKAIARwRAIAdBEEEUIAcoAhAgAUYbaiAANgIAIABFDQUMBAsgAiAANgIAIAANA0GYkcAAQZiRwAAoAgBBfiABKAIcd3E2AgAMBAsgACgCBEF4cSAFayICIAMgAiADSSICGyEDIAAgASACGyEBIAAhAgwACwALAkBBAiAAdCIEQQAgBGtyIAEgAHRxaCIBQQN0IgBBjI/AAGoiBCAAQZSPwABqKAIAIgAoAggiA0cEQCADIAQ2AgwgBCADNgIIDAELQZSRwAAgAkF+IAF3cTYCAAsgACAFQQNyNgIEIAAgBWoiBiABQQN0IgEgBWsiBEEBcjYCBCAAIAFqIAQ2AgBBnJHAACgCACIDBEAgA0F4cUGMj8AAaiEBQaSRwAAoAgAhAgJ/QZSRwAAoAgAiBUEBIANBA3Z0IgNxRQRAQZSRwAAgAyAFcjYCACABDAELIAEoAggLIQMgASACNgIIIAMgAjYCDCACIAE2AgwgAiADNgIICyAAQQhqIQNBpJHAACAGNgIAQZyRwAAgBDYCAAwICyAAIAc2AhggASgCECICBEAgACACNgIQIAIgADYCGAsgASgCFCICRQ0AIAAgAjYCFCACIAA2AhgLAkACQCADQRBPBEAgASAFQQNyNgIEIAEgBWoiBCADQQFyNgIEIAMgBGogAzYCAEGckcAAKAIAIgZFDQEgBkF4cUGMj8AAaiEAQaSRwAAoAgAhAgJ/QZSRwAAoAgAiBUEBIAZBA3Z0IgZxRQRAQZSRwAAgBSAGcjYCACAADAELIAAoAggLIQYgACACNgIIIAYgAjYCDCACIAA2AgwgAiAGNgIIDAELIAEgAyAFaiIAQQNyNgIEIAAgAWoiACAAKAIEQQFyNgIEDAELQaSRwAAgBDYCAEGckcAAIAM2AgALIAFBCGohAwwGCyAAIAJyRQRAQQAhAkECIAd0IgBBACAAa3IgCXEiAEUNAyAAaEECdEH8jcAAaigCACEACyAARQ0BCwNAIAAgAiAAKAIEQXhxIgQgBWsiBiADSSIHGyEJIAAoAhAiAUUEQCAAKAIUIQELIAIgCSAEIAVJIgAbIQIgAyAGIAMgBxsgABshAyABIgANAAsLIAJFDQAgBUGckcAAKAIAIgBNIAMgACAFa09xDQAgAigCGCEHAkACQCACIAIoAgwiAEYEQCACQRRBECACKAIUIgAbaigCACIBDQFBACEADAILIAIoAggiASAANgIMIAAgATYCCAwBCyACQRRqIAJBEGogABshBANAIAQhBiABIgBBFGogAEEQaiAAKAIUIgEbIQQgAEEUQRAgARtqKAIAIgENAAsgBkEANgIACyAHRQ0CIAIgAigCHEECdEH8jcAAaiIBKAIARwRAIAdBEEEUIAcoAhAgAkYbaiAANgIAIABFDQMMAgsgASAANgIAIAANAUGYkcAAQZiRwAAoAgBBfiACKAIcd3E2AgAMAgsCQAJAAkACQAJAIAVBnJHAACgCACIBSwRAIAVBoJHAACgCACIATwRAIAVBr4AEakGAgHxxIgJBEHZAACEAIAhBBGoiAUEANgIIIAFBACACQYCAfHEgAEF/RiICGzYCBCABQQAgAEEQdCACGzYCACAIKAIEIgFFBEBBACEDDAoLIAgoAgwhBkGskcAAIAgoAggiA0GskcAAKAIAaiIANgIAQbCRwABBsJHAACgCACICIAAgACACSRs2AgACQAJAQaiRwAAoAgAiAgRAQfyOwAAhAANAIAEgACgCACIEIAAoAgQiB2pGDQIgACgCCCIADQALDAILQbiRwAAoAgAiAEEAIAAgAU0bRQRAQbiRwAAgATYCAAtBvJHAAEH/HzYCAEGIj8AAIAY2AgBBgI/AACADNgIAQfyOwAAgATYCAEGYj8AAQYyPwAA2AgBBoI/AAEGUj8AANgIAQZSPwABBjI/AADYCAEGoj8AAQZyPwAA2AgBBnI/AAEGUj8AANgIAQbCPwABBpI/AADYCAEGkj8AAQZyPwAA2AgBBuI/AAEGsj8AANgIAQayPwABBpI/AADYCAEHAj8AAQbSPwAA2AgBBtI/AAEGsj8AANgIAQciPwABBvI/AADYCAEG8j8AAQbSPwAA2AgBB0I/AAEHEj8AANgIAQcSPwABBvI/AADYCAEHYj8AAQcyPwAA2AgBBzI/AAEHEj8AANgIAQdSPwABBzI/AADYCAEHgj8AAQdSPwAA2AgBB3I/AAEHUj8AANgIAQeiPwABB3I/AADYCAEHkj8AAQdyPwAA2AgBB8I/AAEHkj8AANgIAQeyPwABB5I/AADYCAEH4j8AAQeyPwAA2AgBB9I/AAEHsj8AANgIAQYCQwABB9I/AADYCAEH8j8AAQfSPwAA2AgBBiJDAAEH8j8AANgIAQYSQwABB/I/AADYCAEGQkMAAQYSQwAA2AgBBjJDAAEGEkMAANgIAQZiQwABBjJDAADYCAEGgkMAAQZSQwAA2AgBBlJDAAEGMkMAANgIAQaiQwABBnJDAADYCAEGckMAAQZSQwAA2AgBBsJDAAEGkkMAANgIAQaSQwABBnJDAADYCAEG4kMAAQayQwAA2AgBBrJDAAEGkkMAANgIAQcCQwABBtJDAADYCAEG0kMAAQayQwAA2AgBByJDAAEG8kMAANgIAQbyQwABBtJDAADYCAEHQkMAAQcSQwAA2AgBBxJDAAEG8kMAANgIAQdiQwABBzJDAADYCAEHMkMAAQcSQwAA2AgBB4JDAAEHUkMAANgIAQdSQwABBzJDAADYCAEHokMAAQdyQwAA2AgBB3JDAAEHUkMAANgIAQfCQwABB5JDAADYCAEHkkMAAQdyQwAA2AgBB+JDAAEHskMAANgIAQeyQwABB5JDAADYCAEGAkcAAQfSQwAA2AgBB9JDAAEHskMAANgIAQYiRwABB/JDAADYCAEH8kMAAQfSQwAA2AgBBkJHAAEGEkcAANgIAQYSRwABB/JDAADYCAEGokcAAIAFBD2pBeHEiAEEIayICNgIAQYyRwABBhJHAADYCAEGgkcAAIANBKGsiBCABIABrakEIaiIANgIAIAIgAEEBcjYCBCABIARqQSg2AgRBtJHAAEGAgIABNgIADAgLIAIgBEkgASACTXINACAAKAIMIgRBAXENACAEQQF2IAZGDQMLQbiRwABBuJHAACgCACIAIAEgACABSRs2AgAgASADaiEEQfyOwAAhAAJAAkADQCAEIAAoAgBHBEAgACgCCCIADQEMAgsLIAAoAgwiB0EBcQ0AIAdBAXYgBkYNAQtB/I7AACEAA0ACQCACIAAoAgAiBE8EQCAEIAAoAgRqIgcgAksNAQsgACgCCCEADAELC0GokcAAIAFBD2pBeHEiAEEIayIENgIAQaCRwAAgA0EoayIJIAEgAGtqQQhqIgA2AgAgBCAAQQFyNgIEIAEgCWpBKDYCBEG0kcAAQYCAgAE2AgAgAiAHQSBrQXhxQQhrIgAgACACQRBqSRsiBEEbNgIEQfyOwAApAgAhCiAEQRBqQYSPwAApAgA3AgAgBCAKNwIIQYiPwAAgBjYCAEGAj8AAIAM2AgBB/I7AACABNgIAQYSPwAAgBEEIajYCACAEQRxqIQADQCAAQQc2AgAgAEEEaiIAIAdJDQALIAIgBEYNByAEIAQoAgRBfnE2AgQgAiAEIAJrIgBBAXI2AgQgBCAANgIAIABBgAJPBEAgAiAAEA0MCAsgAEF4cUGMj8AAaiEBAn9BlJHAACgCACIEQQEgAEEDdnQiAHFFBEBBlJHAACAAIARyNgIAIAEMAQsgASgCCAshACABIAI2AgggACACNgIMIAIgATYCDCACIAA2AggMBwsgACABNgIAIAAgACgCBCADajYCBCABQQ9qQXhxQQhrIgYgBUEDcjYCBCAEQQ9qQXhxQQhrIgMgBSAGaiIAayEFIANBqJHAACgCAEYNAyADQaSRwAAoAgBGDQQgAygCBCICQQNxQQFGBEAgAyACQXhxIgEQCiABIAVqIQUgASADaiIDKAIEIQILIAMgAkF+cTYCBCAAIAVBAXI2AgQgACAFaiAFNgIAIAVBgAJPBEAgACAFEA0MBgsgBUF4cUGMj8AAaiEBAn9BlJHAACgCACICQQEgBUEDdnQiBHFFBEBBlJHAACACIARyNgIAIAEMAQsgASgCCAshAiABIAA2AgggAiAANgIMIAAgATYCDCAAIAI2AggMBQtBoJHAACAAIAVrIgE2AgBBqJHAAEGokcAAKAIAIgAgBWoiAjYCACACIAFBAXI2AgQgACAFQQNyNgIEIABBCGohAwwIC0GkkcAAKAIAIQACQCABIAVrIgJBD00EQEGkkcAAQQA2AgBBnJHAAEEANgIAIAAgAUEDcjYCBCAAIAFqIgEgASgCBEEBcjYCBAwBC0GckcAAIAI2AgBBpJHAACAAIAVqIgQ2AgAgBCACQQFyNgIEIAAgAWogAjYCACAAIAVBA3I2AgQLIABBCGohAwwHCyAAIAMgB2o2AgRBqJHAAEGokcAAKAIAIgBBD2pBeHEiAUEIayICNgIAQaCRwABBoJHAACgCACADaiIEIAAgAWtqQQhqIgE2AgAgAiABQQFyNgIEIAAgBGpBKDYCBEG0kcAAQYCAgAE2AgAMAwtBqJHAACAANgIAQaCRwABBoJHAACgCACAFaiIBNgIAIAAgAUEBcjYCBAwBC0GkkcAAIAA2AgBBnJHAAEGckcAAKAIAIAVqIgE2AgAgACABQQFyNgIEIAAgAWogATYCAAsgBkEIaiEDDAMLQQAhA0GgkcAAKAIAIgAgBU0NAkGgkcAAIAAgBWsiATYCAEGokcAAQaiRwAAoAgAiACAFaiICNgIAIAIgAUEBcjYCBCAAIAVBA3I2AgQgAEEIaiEDDAILIAAgBzYCGCACKAIQIgEEQCAAIAE2AhAgASAANgIYCyACKAIUIgFFDQAgACABNgIUIAEgADYCGAsCQCADQRBPBEAgAiAFQQNyNgIEIAIgBWoiACADQQFyNgIEIAAgA2ogAzYCACADQYACTwRAIAAgAxANDAILIANBeHFBjI/AAGohAQJ/QZSRwAAoAgAiBEEBIANBA3Z0IgNxRQRAQZSRwAAgAyAEcjYCACABDAELIAEoAggLIQQgASAANgIIIAQgADYCDCAAIAE2AgwgACAENgIIDAELIAIgAyAFaiIAQQNyNgIEIAAgAmoiACAAKAIEQQFyNgIECyACQQhqIQMLIAhBEGokACADC/wFAQV/IABBCGsiASAAQQRrKAIAIgNBeHEiAGohAgJAAkACQAJAIANBAXENACADQQJxRQ0BIAEoAgAiAyAAaiEAIAEgA2siAUGkkcAAKAIARgRAIAIoAgRBA3FBA0cNAUGckcAAIAA2AgAgAiACKAIEQX5xNgIEIAEgAEEBcjYCBCACIAA2AgAPCyABIAMQCgsCQAJAIAIoAgQiA0ECcUUEQCACQaiRwAAoAgBGDQIgAkGkkcAAKAIARg0FIAIgA0F4cSICEAogASAAIAJqIgBBAXI2AgQgACABaiAANgIAIAFBpJHAACgCAEcNAUGckcAAIAA2AgAPCyACIANBfnE2AgQgASAAQQFyNgIEIAAgAWogADYCAAsgAEGAAkkNAiABIAAQDUEAIQFBvJHAAEG8kcAAKAIAQQFrIgA2AgAgAA0BQYSPwAAoAgAiAARAA0AgAUEBaiEBIAAoAggiAA0ACwtBvJHAAEH/HyABIAFB/x9NGzYCAA8LQaiRwAAgATYCAEGgkcAAQaCRwAAoAgAgAGoiADYCACABIABBAXI2AgRBpJHAACgCACABRgRAQZyRwABBADYCAEGkkcAAQQA2AgALIABBtJHAACgCACIDTQ0AQaiRwAAoAgAiAkUNAEEAIQECQEGgkcAAKAIAIgRBKUkNAEH8jsAAIQADQCACIAAoAgAiBU8EQCAFIAAoAgRqIAJLDQILIAAoAggiAA0ACwtBhI/AACgCACIABEADQCABQQFqIQEgACgCCCIADQALC0G8kcAAQf8fIAEgAUH/H00bNgIAIAMgBE8NAEG0kcAAQX82AgALDwsgAEF4cUGMj8AAaiECAn9BlJHAACgCACIDQQEgAEEDdnQiAHFFBEBBlJHAACAAIANyNgIAIAIMAQsgAigCCAshACACIAE2AgggACABNgIMIAEgAjYCDCABIAA2AggPC0GkkcAAIAE2AgBBnJHAAEGckcAAKAIAIABqIgA2AgAgASAAQQFyNgIEIAAgAWogADYCAAvuBAEKfyMAQTBrIgMkACADQQM6ACwgA0EgNgIcIANBADYCKCADIAE2AiQgAyAANgIgIANBADYCFCADQQA2AgwCfwJAAkACQCACKAIQIgpFBEAgAigCDCIARQ0BIAIoAgghASAAQQN0IQUgAEEBa0H/////AXFBAWohByACKAIAIQADQCAAQQRqKAIAIgQEQCADKAIgIAAoAgAgBCADKAIkKAIMEQEADQQLIAEoAgAgA0EMaiABKAIEEQIADQMgAUEIaiEBIABBCGohACAFQQhrIgUNAAsMAQsgAigCFCIARQ0AIABBBXQhCyAAQQFrQf///z9xQQFqIQcgAigCCCEIIAIoAgAhAANAIABBBGooAgAiAQRAIAMoAiAgACgCACABIAMoAiQoAgwRAQANAwsgAyAFIApqIgFBEGooAgA2AhwgAyABQRxqLQAAOgAsIAMgAUEYaigCADYCKCABQQxqKAIAIQRBACEJQQAhBgJAAkACQCABQQhqKAIAQQFrDgIAAgELIARBA3QgCGoiDCgCBA0BIAwoAgAhBAtBASEGCyADIAQ2AhAgAyAGNgIMIAFBBGooAgAhBAJAAkACQCABKAIAQQFrDgIAAgELIARBA3QgCGoiBigCBA0BIAYoAgAhBAtBASEJCyADIAQ2AhggAyAJNgIUIAggAUEUaigCAEEDdGoiASgCACADQQxqIAEoAgQRAgANAiAAQQhqIQAgCyAFQSBqIgVHDQALCyAHIAIoAgRPDQEgAygCICACKAIAIAdBA3RqIgAoAgAgACgCBCADKAIkKAIMEQEARQ0BC0EBDAELQQALIANBMGokAAv4AwECfyAAIAFqIQICQAJAIAAoAgQiA0EBcQ0AIANBAnFFDQEgACgCACIDIAFqIQEgACADayIAQaSRwAAoAgBGBEAgAigCBEEDcUEDRw0BQZyRwAAgATYCACACIAIoAgRBfnE2AgQgACABQQFyNgIEIAIgATYCAAwCCyAAIAMQCgsCQAJAAkAgAigCBCIDQQJxRQRAIAJBqJHAACgCAEYNAiACQaSRwAAoAgBGDQMgAiADQXhxIgIQCiAAIAEgAmoiAUEBcjYCBCAAIAFqIAE2AgAgAEGkkcAAKAIARw0BQZyRwAAgATYCAA8LIAIgA0F+cTYCBCAAIAFBAXI2AgQgACABaiABNgIACyABQYACTwRAIAAgARANDwsgAUF4cUGMj8AAaiECAn9BlJHAACgCACIDQQEgAUEDdnQiAXFFBEBBlJHAACABIANyNgIAIAIMAQsgAigCCAshASACIAA2AgggASAANgIMIAAgAjYCDCAAIAE2AggPC0GokcAAIAA2AgBBoJHAAEGgkcAAKAIAIAFqIgE2AgAgACABQQFyNgIEIABBpJHAACgCAEcNAUGckcAAQQA2AgBBpJHAAEEANgIADwtBpJHAACAANgIAQZyRwABBnJHAACgCACABaiIBNgIAIAAgAUEBcjYCBCAAIAFqIAE2AgALC+cCAQV/AkBBzf97QRAgACAAQRBNGyIAayABTQ0AIABBECABQQtqQXhxIAFBC0kbIgRqQQxqEAUiAkUNACACQQhrIQECQCAAQQFrIgMgAnFFBEAgASEADAELIAJBBGsiBSgCACIGQXhxIAIgA2pBACAAa3FBCGsiAiAAQQAgAiABa0EQTRtqIgAgAWsiAmshAyAGQQNxBEAgACADIAAoAgRBAXFyQQJyNgIEIAAgA2oiAyADKAIEQQFyNgIEIAUgAiAFKAIAQQFxckECcjYCACABIAJqIgMgAygCBEEBcjYCBCABIAIQCAwBCyABKAIAIQEgACADNgIEIAAgASACajYCAAsCQCAAKAIEIgFBA3FFDQAgAUF4cSICIARBEGpNDQAgACAEIAFBAXFyQQJyNgIEIAAgBGoiASACIARrIgRBA3I2AgQgACACaiICIAIoAgRBAXI2AgQgASAEEAgLIABBCGohAwsgAwvxAgEEfyAAKAIMIQICQAJAIAFBgAJPBEAgACgCGCEDAkACQCAAIAJGBEAgAEEUQRAgACgCFCICG2ooAgAiAQ0BQQAhAgwCCyAAKAIIIgEgAjYCDCACIAE2AggMAQsgAEEUaiAAQRBqIAIbIQQDQCAEIQUgASICQRRqIAJBEGogAigCFCIBGyEEIAJBFEEQIAEbaigCACIBDQALIAVBADYCAAsgA0UNAiAAIAAoAhxBAnRB/I3AAGoiASgCAEcEQCADQRBBFCADKAIQIABGG2ogAjYCACACRQ0DDAILIAEgAjYCACACDQFBmJHAAEGYkcAAKAIAQX4gACgCHHdxNgIADAILIAAoAggiACACRwRAIAAgAjYCDCACIAA2AggPC0GUkcAAQZSRwAAoAgBBfiABQQN2d3E2AgAPCyACIAM2AhggACgCECIBBEAgAiABNgIQIAEgAjYCGAsgACgCFCIARQ0AIAIgADYCFCAAIAI2AhgLC+IDAQZ/IwBBEGsiAyQAAkACfwJAIAFBgAFPBEAgA0EANgIMIAFBgBBJDQEgAUGAgARJBEAgAyABQT9xQYABcjoADiADIAFBDHZB4AFyOgAMIAMgAUEGdkE/cUGAAXI6AA1BAwwDCyADIAFBP3FBgAFyOgAPIAMgAUEGdkE/cUGAAXI6AA4gAyABQQx2QT9xQYABcjoADSADIAFBEnZBB3FB8AFyOgAMQQQMAgsgACgCCCIHIAAoAgBGBEAjAEEgayICJAAgACgCACIFQQFqIgRFBEBBAEEAECgAC0EIIAVBAXQiBiAEIAQgBkkbIgQgBEEITRsiBEF/c0EfdiEGIAIgBQR/IAIgBTYCHCACIAAoAgQ2AhRBAQVBAAs2AhggAkEIaiAGIAQgAkEUahAWIAIoAggEQCACKAIMIAIoAhAQKAALIAIoAgwhBSAAIAQ2AgAgACAFNgIEIAJBIGokAAsgACAHQQFqNgIIIAAoAgQgB2ogAToAAAwCCyADIAFBP3FBgAFyOgANIAMgAUEGdkHAAXI6AAxBAgshASABIAAoAgAgACgCCCICa0sEQCAAIAIgARATIAAoAgghAgsgACgCBCACaiADQQxqIAEQPBogACABIAJqNgIICyADQRBqJABBAAviAwEGfyMAQRBrIgMkAAJAAn8CQCABQYABTwRAIANBADYCDCABQYAQSQ0BIAFBgIAESQRAIAMgAUE/cUGAAXI6AA4gAyABQQx2QeABcjoADCADIAFBBnZBP3FBgAFyOgANQQMMAwsgAyABQT9xQYABcjoADyADIAFBBnZBP3FBgAFyOgAOIAMgAUEMdkE/cUGAAXI6AA0gAyABQRJ2QQdxQfABcjoADEEEDAILIAAoAggiByAAKAIARgRAIwBBIGsiAiQAIAAoAgAiBUEBaiIERQRAQQBBABAoAAtBCCAFQQF0IgYgBCAEIAZJGyIEIARBCE0bIgRBf3NBH3YhBiACIAUEfyACIAU2AhwgAiAAKAIENgIUQQEFQQALNgIYIAJBCGogBiAEIAJBFGoQFSACKAIIBEAgAigCDCACKAIQECgACyACKAIMIQUgACAENgIAIAAgBTYCBCACQSBqJAALIAAgB0EBajYCCCAAKAIEIAdqIAE6AAAMAgsgAyABQT9xQYABcjoADSADIAFBBnZBwAFyOgAMQQILIQEgASAAKAIAIAAoAggiAmtLBEAgACACIAEQFCAAKAIIIQILIAAoAgQgAmogA0EMaiABEDwaIAAgASACajYCCAsgA0EQaiQAQQALxAIBBH8gAEIANwIQIAACf0EAIAFBgAJJDQAaQR8gAUH///8HSw0AGiABQQYgAUEIdmciA2t2QQFxIANBAXRrQT5qCyICNgIcIAJBAnRB/I3AAGohBEEBIAJ0IgNBmJHAACgCAHFFBEAgBCAANgIAIAAgBDYCGCAAIAA2AgwgACAANgIIQZiRwABBmJHAACgCACADcjYCAA8LAkACQCABIAQoAgAiAygCBEF4cUYEQCADIQIMAQsgAUEZIAJBAXZrQQAgAkEfRxt0IQUDQCADIAVBHXZBBHFqQRBqIgQoAgAiAkUNAiAFQQF0IQUgAiEDIAIoAgRBeHEgAUcNAAsLIAIoAggiASAANgIMIAIgADYCCCAAQQA2AhggACACNgIMIAAgATYCCA8LIAQgADYCACAAIAM2AhggACAANgIMIAAgADYCCAuWAgEDfyAAIAFqIQcCQAJAAkACQANAIAAgB0cEQCAALQAAIQUgAEEBaiIBIQAgBUGAAUYNASAFwEEATgRAQQAhBgNAIAAgB0YNBiACIARPDQcgAiADaiAALQAAOgAAIAJBBGohAiAAQQFqIQAgBkH/AXEgBkEBaiEGIAVJDQALDAILIAEgB0YNAiABQQFqIQAgAS0AACEBQQAhBkEBIAVrQf8BcSEFA0AgAiAETw0EIAIgA2ogAToAACACQQRqIQIgBSAGQQFqIgZB/wFxSw0ACwwBCwsPC0GcgsAAQTtB2ILAABAbAAtB6IHAAEEZQeiCwAAQGwALQfiCwABBwQBBvIPAABAbAAtB6IHAAEEZQcyDwAAQGwAL9QQBDH8jAEEQayIRJAACQAJAAkAgBA4CAQACC0EBIQ8LAkACQCAHDgIBAAILQQEhEAtBACEHQQAhBAJAAkAgCg4CAQACC0EBIQQLAkACQCANDgIBAAILQQEhBwsgEUEIaiEYIAIhEiADIRMgDyENIAUhFCAGIRUgECEKIAghFiAJIRcgCyEPIAwhEAJAAkACQAJAIAFBAnQiDkUEQEEBIQEMAQsgDkEASA0BQQEhGSAOEBwiAUUNAQsCQCANRQRAIBNFDQFBACENA0AgDSAOTw0EIAEgDWogEi0AADoAACANQQRqIQ0gEkEBaiESIBNBAWsiEw0ACwwBCyASIBNBACABIA4QDgsCQCAKRQRAIBVFDQFBASENA0AgDSAOTw0EIAEgDWogFC0AADoAACANQQRqIQ0gFEEBaiEUIBVBAWsiFQ0ACwwBCyAUIBVBASABIA4QDgsCQCAERQRAIBdFDQFBAiENA0AgDSAOTw0EIAEgDWogFi0AADoAACANQQRqIQ0gFkEBaiEWIBdBAWsiFw0ACwwBCyAWIBdBAiABIA4QDgsCQCAHRQRAIBBFDQFBAyENA0AgDSAOTw0EIAEgDWogDy0AADoAACANQQRqIQ0gD0EBaiEPIBBBAWsiEA0ACwwBCyAPIBBBAyABIA4QDgsgGCAONgIEIBggATYCAAwCCyAZIA4QKAALQeiBwABBGUGMgsAAEBsACyARKAIMIQQgESgCCCEBIAwEQCALIAxBARAyCyAJBEAgCCAJQQEQMgsgBgRAIAUgBkEBEDILIAMEQCACIANBARAyCyAAIAE2AgAgACAENgIEIBFBEGokAA8LEDgAC/YBAgN/AX4jAEEwayICJAAgASgCAEGAgICAeEYEQCABKAIMIQMgAkEsaiIEQQA2AgAgAkKAgICAEDcCJCACQSRqQciGwAAgAxAHGiACQSBqIAQoAgAiAzYCACACIAIpAiQiBTcDGCABQQhqIAM2AgAgASAFNwIACyABKQIAIQUgAUKAgICAEDcCACACQRBqIgMgAUEIaiIBKAIANgIAIAFBADYCAEHFjcAALQAAGiACIAU3AwhBDEEEECwiAUUEQEEEQQwQOgALIAEgAikDCDcCACABQQhqIAMoAgA2AgAgAEHcicAANgIEIAAgATYCACACQTBqJAALgQIBAn8jAEEgayIGJABB+I3AAEH4jcAAKAIAIgdBAWo2AgACQAJAIAdBAEgNAEHEkcAALQAADQBBxJHAAEEBOgAAQcCRwABBwJHAACgCAEEBajYCACAGIAU6AB0gBiAEOgAcIAYgAzYCGCAGIAI2AhQgBkGkisAANgIQIAZBATYCDEHsjcAAKAIAIgJBAEgNAEHsjcAAIAJBAWo2AgBB7I3AAEHwjcAAKAIABH8gBiAAIAEoAhARAAAgBiAGKQMANwIMQfCNwAAoAgAgBkEMakH0jcAAKAIAKAIUEQAAQeyNwAAoAgBBAWsFIAILNgIAQcSRwABBADoAACAEDQELAAsAC5MEAQp/IwBBEGsiDyQAAkACQAJAIAQOAgEAAgtBASENCwJAAkAgBw4CAQACC0EBIQ4LQQAhBAJAAkAgCg4CAQACC0EBIQQLIA9BCGohEiACIQcgAyEKIA0hEyAFIQ0gBiEQIA4hFCAIIQ4gCSERAkACQAJAAkAgAUECdCILRQRAQQEhAQwBCyALQQBIDQFBxY3AAC0AABpBASEMIAtBARAsIgFFDQELIAFB/wEgCxA7IQwCQCATRQRAIApFDQFBACEBA0AgASALTw0EIAEgDGogBy0AADoAACABQQRqIQEgB0EBaiEHIApBAWsiCg0ACwwBCyAHIApBACAMIAsQDgsCQCAURQRAIBBFDQFBASEBA0AgASALTw0EIAEgDGogDS0AADoAACABQQRqIQEgDUEBaiENIBBBAWsiEA0ACwwBCyANIBBBASAMIAsQDgsCQCAERQRAIBFFDQFBAiEBA0AgASALTw0EIAEgDGogDi0AADoAACABQQRqIQEgDkEBaiEOIBFBAWsiEQ0ACwwBCyAOIBFBAiAMIAsQDgsgEiALNgIEIBIgDDYCAAwCCyAMIAsQKAALQeiBwABBGUGMgsAAEBsACyAPKAIMIQEgDygCCCEEIAkEQCAIIAlBARAyCyAGBEAgBSAGQQEQMgsgAwRAIAIgA0EBEDILIAAgBDYCACAAIAE2AgQgD0EQaiQADwsQOAALtQEBA38jAEEgayIDJAAgASABIAJqIgJLBEBBAEEAECgAC0EBIQFBCCAAKAIAIgVBAXQiBCACIAIgBEkbIgIgAkEITRsiAkF/c0EfdiEEAkAgBUUEQEEAIQEMAQsgAyAFNgIcIAMgACgCBDYCFAsgAyABNgIYIANBCGogBCACIANBFGoQFiADKAIIBEAgAygCDCADKAIQECgACyADKAIMIQEgACACNgIAIAAgATYCBCADQSBqJAALtQEBA38jAEEgayIDJAAgASABIAJqIgJLBEBBAEEAECgAC0EBIQFBCCAAKAIAIgVBAXQiBCACIAIgBEkbIgIgAkEITRsiAkF/c0EfdiEEAkAgBUUEQEEAIQEMAQsgAyAFNgIcIAMgACgCBDYCFAsgAyABNgIYIANBCGogBCACIANBFGoQFSADKAIIBEAgAygCDCADKAIQECgACyADKAIMIQEgACACNgIAIAAgATYCBCADQSBqJAALmQEBAX8CQAJAIAEEQCACQQBIDQECfyADKAIEBEACQCADKAIIIgRFBEAMAQsgAygCACAEIAEgAhApDAILCyABIAJFDQAaQcWNwAAtAAAaIAIgARAsCyIDBEAgACACNgIIIAAgAzYCBCAAQQA2AgAPCyAAIAI2AgggACABNgIEDAILIABBADYCBAwBCyAAQQA2AgQLIABBATYCAAukAQACQCABBEAgAkEASA0BAn8gAygCBARAIAMoAggiAUUEQEHFjcAALQAAGiACQQEQLAwCCyADKAIAIAFBASACECkMAQtBxY3AAC0AABogAkEBECwLIgEEQCAAIAI2AgggACABNgIEIABBADYCAA8LIAAgAjYCCCAAQQE2AgQgAEEBNgIADwsgAEEANgIEIABBATYCAA8LIABBADYCBCAAQQE2AgALjwQBCX8jAEEQayIMJAACQAJAAkACQAJAAkAgBA4CAQACC0EBIQsLIAcOAgIBAwsQOAALQQEhEAsgDEEIaiEPIAIhBCADIQcgBSENIAYhDgJAAkACQAJAIAFBAnQiCUUEQEEBIQoMAQtBACEBIAlBAEgNAUEBIQEgCRAcIgpFDQELAkAgC0UEQCAHRQ0BIAchCyAEIQEDQCAIIAlPDQQgCCAKaiABLQAAOgAAIAhBBGohCCABQQFqIQEgC0EBayILDQALIAchC0EBIQggBCEBA0AgCCAJTw0EIAggCmogAS0AADoAACAIQQRqIQggAUEBaiEBIAtBAWsiCw0AC0ECIQgDQCAIIAlPDQQgCCAKaiAELQAAOgAAIAhBBGohCCAEQQFqIQQgB0EBayIHDQALDAELIAQgB0EAIAogCRAOIAQgB0EBIAogCRAOIAQgB0ECIAogCRAOCwJAIBBFBEAgDkUNAUEDIQgDQCAIIAlPDQQgCCAKaiANLQAAOgAAIAhBBGohCCANQQFqIQ0gDkEBayIODQALDAELIA0gDkEDIAogCRAOCyAPIAk2AgQgDyAKNgIADAILIAEgCRAoAAtB6IHAAEEZQYyCwAAQGwALIAwoAgwhASAMKAIIIQQgBgRAIAUgBkEBEDILIAMEQCACIANBARAyCyAAIAQ2AgAgACABNgIEIAxBEGokAA8LEDgAC48BAgN/AX4jAEEgayICJAAgASgCAEGAgICAeEYEQCABKAIMIQMgAkEcaiIEQQA2AgAgAkKAgICAEDcCFCACQRRqQciGwAAgAxAHGiACQRBqIAQoAgAiAzYCACACIAIpAhQiBTcDCCABQQhqIAM2AgAgASAFNwIACyAAQdyJwAA2AgQgACABNgIAIAJBIGokAAurAwEIfyMAQRBrIgokAAJAAkACQCAEDgIBAAILQQEhDAsgCkEIaiELIAIhByADIQQCQAJAAkACQCABQQJ0IgZFBEBBASEFDAELIAZBAEgNAUHFjcAALQAAGkEBIQggBkEBECwiBUUNAQsgBUH/ASAGEDshCQJAIAxFBEAgBEUNAUEAIQUgBCEIIAchAQNAIAUgBk8NBCAFIAlqIAEtAAA6AAAgBUEEaiEFIAFBAWohASAIQQFrIggNAAsgBCEIQQEhBSAHIQEDQCAFIAZPDQQgBSAJaiABLQAAOgAAIAVBBGohBSABQQFqIQEgCEEBayIIDQALQQIhBQNAIAUgBk8NBCAFIAlqIActAAA6AAAgBUEEaiEFIAdBAWohByAEQQFrIgQNAAsMAQsgByAEQQAgCSAGEA4gByAEQQEgCSAGEA4gByAEQQIgCSAGEA4LIAsgBjYCBCALIAk2AgAMAgsgCCAGECgAC0HogcAAQRlBjILAABAbAAsgCigCDCEEIAooAgghASADBEAgAiADQQEQMgsgACABNgIAIAAgBDYCBCAKQRBqJAAPCxA4AAtmACMAQTBrIgAkAEHEjcAALQAABEAgAEECNgIMIABBrIjAADYCCCAAQgE3AhQgACABNgIsIAAgAEEsaq1CgICAgJABhDcDICAAIABBIGo2AhAgAEEIakHUiMAAECMACyAAQTBqJAALWgEBfyMAQTBrIgMkACADIAE2AgwgAyAANgIIIANBATYCFCADQfyKwAA2AhAgA0IBNwIcIAMgA0EIaq1CgICAgIADhDcDKCADIANBKGo2AhggA0EQaiACECMACykBAX8CQCAAEAUiAUUNACABQQRrLQAAQQNxRQ0AIAFBACAAEDsaCyABC0EBAX8gAiAAKAIAIAAoAggiA2tLBEAgACADIAIQEyAAKAIIIQMLIAAoAgQgA2ogASACEDwaIAAgAiADajYCCEEAC0EBAX8gAiAAKAIAIAAoAggiA2tLBEAgACADIAIQFCAAKAIIIQMLIAAoAgQgA2ogASACEDwaIAAgAiADajYCCEEAC00BAn9BxY3AAC0AABogASgCBCECIAEoAgAhA0EIQQQQLCIBRQRAQQRBCBA6AAsgASACNgIEIAEgAzYCACAAQeyJwAA2AgQgACABNgIACzcAAkAgAWlBAUdBgICAgHggAWsgAElyDQAgAARAQcWNwAAtAAAaIAAgARAsIgFFDQELIAEPCwALQQEBfyMAQSBrIgMkACADQQA2AhAgA0EBNgIEIANCBDcCCCADIAE2AhwgAyAANgIYIAMgA0EYajYCACADIAIQIwALOQACQAJ/IAJBgIDEAEcEQEEBIAAgAiABKAIQEQIADQEaCyADDQFBAAsPCyAAIANBACABKAIMEQEAC6kCAQJ/IwBBIGsiAiQAIAJBATsBHCACIAE2AhggAiAANgIUIAJB2IvAADYCECACQQE2AgwjAEEQayIBJAAgAkEMaiIAKAIIIgJFBEBBzInAABA0AAsgASAAKAIMNgIMIAEgADYCCCABIAI2AgQjAEEQayIAJAAgAUEEaiIBKAIAIgIoAgwhAwJAAkACQAJAIAIoAgQOAgABAgsgAw0BQQEhAkEAIQMMAgsgAw0AIAIoAgAiAigCBCEDIAIoAgAhAgwBCyAAIAI2AgwgAEGAgICAeDYCACAAQZCKwAAgASgCBCIAKAIIIAEoAgggAC0AECAALQAREBEACyAAIAM2AgQgACACNgIAIABB/InAACABKAIEIgAoAgggASgCCCAALQAQIAAtABEQEQALLQACQCADaUEBR0GAgICAeCADayABSXJFBEAgACABIAMgAhApIgANAQsACyAAC6oDAQZ/IwBBEGsiAyQAQcaNwAAtAABBA0cEQCADQQE6AA8gA0EPaiEAIwBBIGsiASQAAkACQAJAAkACQAJAAkBBxo3AAC0AAEEBaw4DAgQBAAtBxo3AAEECOgAAIAAtAAAgAEEAOgAARQ0CIwBBIGsiACQAAkACQAJAQfiNwAAoAgBB/////wdxBEBBwJHAACgCAA0BC0HsjcAAKAIADQFB9I3AACgCACECQfSNwABBgIDAADYCAEHwjcAAKAIAIQRB8I3AAEEBNgIAQeyNwABBADYCAAJAIARFDQAgAigCACIFBEAgBCAFEQMACyACKAIEIgVFDQAgBCAFIAIoAggQMgsgAEEgaiQADAILIABBADYCGCAAQQE2AgwgAEGYicAANgIIIABCBDcCECAAQQhqQbyJwAAQIwALAAtBxo3AAEEDOgAACyABQSBqJAAMBAsgAUEANgIYIAFBATYCDCABQcSAwAA2AggMAgtB2IHAABA0AAsgAUEANgIYIAFBATYC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C8MFAQAAAAEAAAACAAAAAwAAAE9uY2UgaW5zdGFuY2UgaGFzIHByZXZpb3VzbHkgYmVlbiBwb2lzb25lZAAAGAAQACoAAABvbmUtdGltZSBpbml0aWFsaXphdGlvbiBtYXkgbm90IGJlIHBlcmZvcm1lZCByZWN1cnNpdmVseUwAEAA4AAAAL3J1c3RjLzA1MTQ3ODk1NzM3MWVlMDA4NGE3YzA5MTM5NDFkMmE4YzQ3NTdiYjkvbGlicmFyeS9zdGQvc3JjL3N5bmMvb25jZS5yc4wAEABMAAAAlQAAADIAAABvdXRwdXQgc2xpY2UgaXMgdG9vIHNtYWxsc3JjL2xpYi5ycwABARAACgAAAIIAAAAOAAAAaW5wdXQgdGVybWluYXRlZCB3aGlsZSBkZWNvZGluZyByZXBlYXQgc2VnbWVudCBpbiBSTEUgc2xpY2UAAQEQAAoAAAChAAAAEgAAAAEBEAAKAAAApgAAABYAAABpbnB1dCB0ZXJtaW5hdGVkIHdoaWxlIGRlY29kaW5nIHVuY29tcHJlc3NlZCBzZWdtZW50IGluIFJMRSBzbGljZQAAAAEBEAAKAAAAlgAAABYAAAABARAACgAAAJkAAAAWAAAAL1VzZXJzL21pcmtvYnVkc3p1aG4vLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9jb25zb2xlX2Vycm9yX3BhbmljX2hvb2stMC4xLjcvc3JjL2xpYi5ycwDcARAAcwAAAJUAAAAOAAAAaW52YWxpZCBlbnVtIHZhbHVlIHBhc3NlZAAAAAQAAAAMAAAABAAAAAUAAAAGAAAABwAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkAQdSFwAALzQQBAAAACAAAAC9ydXN0Yy8wNTE0Nzg5NTczNzFlZTAwODRhN2MwOTEzOTQxZDJhOGM0NzU3YmI5L2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwDcAhAASwAAAAMKAAAOAAAARXJyb3IKClN0YWNrOgoKAAsAAAAMAAAABAAAAAwAAAANAAAADgAAAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjYvc3JjL2RsbWFsbG9jLnJzYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPj0gc2l6ZSArIG1pbl9vdmVyaGVhZABgAxAAKQAAAKgEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6ZSArIG1heF9vdmVyaGVhZAAAYAMQACkAAACuBAAADQAAAG1lbW9yeSBhbGxvY2F0aW9uIG9mICBieXRlcyBmYWlsZWQAAAgEEAAVAAAAHQQQAA0AAABsaWJyYXJ5L3N0ZC9zcmMvYWxsb2MucnM8BBAAGAAAAGIBAAAJAAAAY2Fubm90IG1vZGlmeSB0aGUgcGFuaWMgaG9vayBmcm9tIGEgcGFuaWNraW5nIHRocmVhZGQEEAA0AAAAbGlicmFyeS9zdGQvc3JjL3Bhbmlja2luZy5yc6AEEAAcAAAAhgAAAAkAAACgBBAAHAAAAIsCAAAeAAAACwAAAAwAAAAEAAAADwAAAAAAAAAIAAAABAAAABAAAAAAAAAACAAAAAQAAAARAAAAEgAAABMAAAAQAAAABAAAABQAAAAVAEGsisAAC6kBAQAAABYAAABjYXBhY2l0eSBvdmVyZmxvdwAAADQFEAARAAAAbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy5yc1AFEAAcAAAAGQAAAAUAAAABAAAAAAAAADpjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlAQAAAAAAAACEBRAAAQAAAIQFEAABAAAAcGFuaWNrZWQgYXQgCgBB4IvAAAvkAQEAAAAZAAAAOiAAAAEAAAAAAAAA6AUQAAIAAAAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OQB7CXByb2R1Y2VycwIIbGFuZ3VhZ2UBBFJ1c3QADHByb2Nlc3NlZC1ieQMFcnVzdGMdMS44MC4wICgwNTE0Nzg5NTcgMjAyNC0wNy0yMSkGd2FscnVzBjAuMTkuMAx3YXNtLWJpbmRnZW4SMC4yLjg3IChmMGE4YWUzYjkpACwPdGFyZ2V0X2ZlYXR1cmVzAisPbXV0YWJsZS1nbG9iYWxzKwhzaWduLWV4dA==",A=async(B={},Q)=>{let p;if(Q.startsWith("data:")){let y=Q.replace(/^data:.*?base64,/,""),m;if(typeof Buffer=="function"&&typeof Buffer.from=="function")m=Buffer.from(y,"base64");else if(typeof atob=="function"){let N=atob(y);m=new Uint8Array(N.length);for(let D=0;D<N.length;D++)m[D]=N.charCodeAt(D)}else throw new Error("Cannot decode base64-encoded data URL");p=await WebAssembly.instantiate(m,B)}else{let y=await fetch(Q),m=y.headers.get("Content-Type")||"";if("instantiateStreaming"in WebAssembly&&m.startsWith("application/wasm"))p=await WebAssembly.instantiateStreaming(y,B);else{let N=await y.arrayBuffer();p=await WebAssembly.instantiate(N,B)}}return p.instance.exports},t;nt=function(B){t=B};let n=new Array(128).fill(void 0);n.push(void 0,null,!0,!1);function i(B){return n[B]}let r=n.length;function o(B){B<132||(n[B]=r,r=B)}function s(B){let Q=i(B);return o(B),Q}let a=typeof TextDecoder>"u"?(0,module.require)("util").TextDecoder:TextDecoder,c=new a("utf-8",{ignoreBOM:!0,fatal:!0});c.decode();let g=null;function I(){return(g===null||g.byteLength===0)&&(g=new Uint8Array(t.memory.buffer)),g}function u(B,Q){return B=B>>>0,c.decode(I().subarray(B,B+Q))}let l=0;function C(B,Q){let p=Q(B.length*1,1)>>>0;return I().set(B,p/1),l=B.length,p}let d=null;function f(){return(d===null||d.byteLength===0)&&(d=new Int32Array(t.memory.buffer)),d}function E(B,Q){return B=B>>>0,I().subarray(B/1,B/1+Q)}ht=function(B,Q,p,y,m,N,D){try{let W=t.__wbindgen_add_to_stack_pointer(-16),ue=C(Q,t.__wbindgen_malloc),ee=l,Ue=C(y,t.__wbindgen_malloc),Ye=l,Pe=C(N,t.__wbindgen_malloc),Je=l;t.decode_rgb(W,B,ue,ee,p,Ue,Ye,m,Pe,Je,D);var U=f()[W/4+0],K=f()[W/4+1],se=E(U,K).slice();return t.__wbindgen_free(U,K*1),se}finally{t.__wbindgen_add_to_stack_pointer(16)}},Et=function(B,Q,p,y,m,N,D,U,K){try{let ee=t.__wbindgen_add_to_stack_pointer(-16),Ue=C(Q,t.__wbindgen_malloc),Ye=l,Pe=C(y,t.__wbindgen_malloc),Je=l,Pt=C(N,t.__wbindgen_malloc),Jt=l,Ht=C(U,t.__wbindgen_malloc),Kt=l;t.decode_rgba(ee,B,Ue,Ye,p,Pe,Je,m,Pt,Jt,D,Ht,Kt,K);var se=f()[ee/4+0],W=f()[ee/4+1],ue=E(se,W).slice();return t.__wbindgen_free(se,W*1),ue}finally{t.__wbindgen_add_to_stack_pointer(16)}},dt=function(B,Q,p){try{let D=t.__wbindgen_add_to_stack_pointer(-16),U=C(Q,t.__wbindgen_malloc),K=l;t.decode_grayscale(D,B,U,K,p);var y=f()[D/4+0],m=f()[D/4+1],N=E(y,m).slice();return t.__wbindgen_free(y,m*1),N}finally{t.__wbindgen_add_to_stack_pointer(16)}},ut=function(B,Q,p,y,m){try{let K=t.__wbindgen_add_to_stack_pointer(-16),se=C(Q,t.__wbindgen_malloc),W=l,ue=C(y,t.__wbindgen_malloc),ee=l;t.decode_grayscale_a(K,B,se,W,p,ue,ee,m);var N=f()[K/4+0],D=f()[K/4+1],U=E(N,D).slice();return t.__wbindgen_free(N,D*1),U}finally{t.__wbindgen_add_to_stack_pointer(16)}};function G(B){r===n.length&&n.push(n.length+1);let Q=r;return r=n[Q],n[Q]=B,Q}let x=typeof TextEncoder>"u"?(0,module.require)("util").TextEncoder:TextEncoder,J=new x("utf-8"),P=typeof J.encodeInto=="function"?function(B,Q){return J.encodeInto(B,Q)}:function(B,Q){let p=J.encode(B);return Q.set(p),{read:B.length,written:p.length}};function oe(B,Q,p){if(p===void 0){let U=J.encode(B),K=Q(U.length,1)>>>0;return I().subarray(K,K+U.length).set(U),l=U.length,K}let y=B.length,m=Q(y,1)>>>0,N=I(),D=0;for(;D<y;D++){let U=B.charCodeAt(D);if(U>127)break;N[m+D]=U}if(D!==y){D!==0&&(B=B.slice(D)),m=p(m,y,y=D+B.length*3,1)>>>0;let U=I().subarray(m+D,m+y),K=P(B,U);D+=K.written}return l=D,m}tt=function(){let B=new Error;return G(B)},it=function(B,Q){let p=i(Q).stack,y=oe(p,t.__wbindgen_malloc,t.__wbindgen_realloc),m=l;f()[B/4+1]=m,f()[B/4+0]=y},At=function(B,Q){let p,y;try{p=B,y=Q,console.error(u(B,Q))}finally{t.__wbindgen_free(p,y,1)}},rt=function(B){s(B)},ot=function(B,Q){throw new Error(u(B,Q))},URL=globalThis.URL;let S=await A({"./webtoon_psd_decoder_bg.js":{__wbg_new_abda76e883ba8a5f:tt,__wbg_stack_658279fe44541cf6:it,__wbg_error_f851667af71bcfc6:At,__wbindgen_object_drop_ref:rt,__wbindgen_throw:ot}},e),j=S.memory,$=S.main_js,ae=S.decode_rgb,WA=S.decode_rgba,XA=S.decode_grayscale,k=S.decode_grayscale_a,H=S.__wbindgen_add_to_stack_pointer,b=S.__wbindgen_malloc,M=S.__wbindgen_free,Y=S.__wbindgen_realloc,_=S.__wbindgen_start,R=Object.freeze(Object.defineProperty({__proto__:null,__wbindgen_add_to_stack_pointer:H,__wbindgen_free:M,__wbindgen_malloc:b,__wbindgen_realloc:Y,__wbindgen_start:_,decode_grayscale:XA,decode_grayscale_a:k,decode_rgb:ae,decode_rgba:WA,main_js:$,memory:j},Symbol.toStringTag,{value:"Module"}));nt(R),_()})();async function ft(e,A,t,n,i,r){let o=e*A;if(!(o>0&&Number.isInteger(o)))throw new Error(`Pixel count must be a positive integer, got ${o}`);let s;if(n&&i)s=await an(o,t,n,i,r);else if(!i&&!n)s=await ye(o,t,r);else throw new Error(`Missing ${i?"green":"blue"} channel in RGB image`);return new Uint8ClampedArray(s.buffer,s.byteOffset,s.byteLength)}function ne(e){switch(e){case V.RawData:case V.RleCompressed:return}throw new Se(`Unsupported compression method: ${e}`)}async function an(e,A,t,n,i){return await Qt,ne(A.compression),ne(n.compression),ne(A.compression),i&&ne(i.compression),i?Et(e,A.data,A.compression,t.data,t.compression,n.data,n.compression,i.data,i.compression):ht(e,A.data,A.compression,t.data,t.compression,n.data,n.compression)}async function ye(e,A,t){return await Qt,ne(A.compression),t&&ne(t.compression),t?ut(e,A.data,A.compression,t.data,t.compression):dt(e,A.data,A.compression)}function sn(e){let A=Qi(e),{fileHeader:t}=A,n=jA(t.version),i=Qn(A.imageResources),r=hi(A.layerAndMaskInformation,n),o=tn(A.imageData,t.depth,t.height,t.channelCount,n);return{fileHeader:t,colorModeData:void 0,imageResources:i,layerAndMaskInfo:r,imageData:o}}function Ce(e){let A=e.readUnicodeString(0),t=e.readIdString(),n=e.read("u32"),i=new Map;for(;i.size<n;){let r=e.readIdString(),o=GA(e);if(i.has(r))throw new pA(`Duplicate descriptor key: ${r}`);i.set(r,o)}return{name:A,classId:t,items:i}}function q(e){let A=e.read("u32");if(A!==16)throw new fA(`Invalid descriptor version: ${A}`);let t=Ce(e);return{descriptorVersion:A,descriptor:t}}function GA(e){let A=e.readString(4);switch(A){case F.Alias:{let t=e.read("u32"),n=e.take(t);return{type:A,data:n}}case F.Boolean:{let t=!!e.read("u8");return{type:A,value:t}}case F.Class:case F.GlobalClass:{let t=e.readUnicodeString(0),n=e.readIdString();return{type:A,name:t,classId:n}}case F.Descriptor:case F.GlobalObject:{let t=Ce(e);return{type:A,descriptor:t}}case F.Double:{let t=e.read("f64");return{type:A,value:t}}case F.Enumerated:{let t=e.readIdString(),n=e.readIdString();return{type:A,enumType:t,enumValue:n}}case F.Integer:{let t=e.read("i32");return{type:A,value:t}}case F.LargeInteger:{let t=e.read("i64");return{type:A,value:t}}case F.List:{let t=e.read("u32"),n=[];for(;n.length<t;)n.push(GA(e));return{type:A,values:n}}case F.RawData:{let t=e.read("u32"),n=e.take(t);return{type:A,data:n}}case F.Reference:{let t=e.read("u32"),n=[];for(;n.length<t;)n.push(gn(e));return{type:A,references:n}}case F.String:{let t=e.readUnicodeString(0);return{type:A,value:t}}case F.UnitFloat:{let t=at(e.readString(4)),n=e.read("f64");return{type:A,unitType:t,value:n}}case F.ObjectArray:{e.read("u32");let t=e.readUnicodeString(0),n=e.readIdString(),i=e.read("u32"),r=Array.from(Array(i),()=>{let o=e.readIdString(),s=GA(e);return{key:o,value:s}});return{type:A,classObj:{name:t,classId:n},items:r}}case F.UnitFloats:{let t=at(e.readString(4)),n=e.read("u32"),i=Array.from(Array(n),()=>e.read("f64"));return{type:A,unitType:t,values:i}}default:throw new QA(`Unexpected descriptor type: ${A}`)}}function gn(e){let A=e.readString(4);switch(A){case Z.Class:{let t=e.readUnicodeString(0),n=e.readIdString();return{type:A,name:t,classId:n}}case Z.Enumerated:{let t=e.readUnicodeString(0),n=e.readIdString(),i=e.readIdString(),r=e.readIdString();return{type:A,name:t,classId:n,typeId:i,enumValue:r}}case Z.Identifier:{let t=e.readString(4);return{type:A,identifier:t}}case Z.Index:{let t=e.read("u32");return{type:A,index:t}}case Z.Name:{let t=e.readUnicodeString(0);return{type:A,name:t}}case Z.Offset:{let t=e.readUnicodeString(0),n=e.readIdString(),i=e.read("u32");return{type:A,name:t,classId:n,offset:i}}case Z.Property:{let t=e.readUnicodeString(0),n=e.readIdString(),i=e.readIdString();return{type:A,name:t,classId:n,keyId:i}}default:throw new bA(`Invalid reference type: ${A}`)}}function at(e){if(!Object.values(NA).includes(e))throw new mA(`Invalid Unit Float type: ${e}`);return e}var L;(function(e){e[e.String=0]="String",e[e.DictBeg=1]="DictBeg",e[e.DictEnd=2]="DictEnd",e[e.ArrBeg=3]="ArrBeg",e[e.ArrEnd=4]="ArrEnd",e[e.Name=5]="Name",e[e.Number=6]="Number",e[e.Boolean=7]="Boolean"})(L||(L={}));var vA=new Set([0,9,12,32,10,13]),cn=new Set([102,116]),z={"(":40,")":41,"<":60,">":62,"[":91,"]":93,"/":47,"\\":92},pt=new Set(Object.values(z)),yt=[];for(let e=0;e<256;e+=1)yt[e]=vA.has(e)||pt.has(e);var ln=new TextDecoder("utf-8");function In(e){let A=e.position,t=e.position;for(let n of e.iter()){if(yt[n])break;t+=1}return ln.decode(e.take(t-A))}var LA=class{constructor(A){this.cursor=re.from(A)}tokens(){let A=[];for(;!this.done();){let t=this.cursor.one();if(vA.has(t)){for(;!this.done()&&vA.has(this.cursor.peek());)this.cursor.pass(1);continue}if(pt.has(t)){if(t===z["("]){A.push({type:L.String,value:this.text()});continue}if(t===z["["]){A.push({type:L.ArrBeg});continue}if(t===z["]"]){A.push({type:L.ArrEnd});continue}if(t===z["<"]){this.cursor.pass(1),A.push({type:L.DictBeg});continue}if(t===z[">"]){this.cursor.pass(1),A.push({type:L.DictEnd});continue}if(t===z["/"]){A.push({type:L.Name,value:this.string()});continue}console.assert(!1,"Unhandled delimiter: '%s'",String.fromCharCode(t));continue}this.cursor.unpass(1),cn.has(t)?A.push({type:L.Boolean,value:this.boolean()}):A.push({type:L.Number,value:this.number()})}return A}done(){return this.cursor.position>=this.cursor.length}text(){let A=this.cursor.peek();if(A===z[")"])return this.cursor.pass(1),"";let t=A===255||A===254,n=new TextDecoder("utf-16be");t&&(n=this.textDecoderFromBOM());let i=[],r=this.cursor.clone();for(;r.peek()!==z[")"];)if(r.pass(1),r.peek()===z["\\"]){let a=r.position-this.cursor.position;i.push(n.decode(this.cursor.take(a),{stream:!0})),r.pass(2),this.cursor.pass(1),i.push(n.decode(this.cursor.take(1),{stream:!0}))}let o=r.position-this.cursor.position,s=this.cursor.take(o);return i.push(n.decode(s)),this.cursor.pass(1),i.join("")}textDecoderFromBOM(){let A=this.cursor.one(),t=this.cursor.one();if(A===255&&t===254)return new TextDecoder("utf-16le");if(A===254&&t===255)return new TextDecoder("utf-16be");throw new SA(`Unknown BOM value: [${A}, ${t}]`)}string(){return In(this.cursor)}number(){let A=this.string(),t=Number(A);if(Number.isNaN(t))throw new DA(`parsing '${A}' as Number failed`);return t}boolean(){let A=this.string();if(A==="true")return!0;if(A==="false")return!1;throw new kA(`'${A}' is neither 'true' nor 'false'`)}},Ke=Symbol(L[L.ArrBeg]),Oe=Symbol(L[L.DictBeg]),xA=class{constructor(A){this.tokens=A,this.stack=[]}parse(){this.runParser();let[A]=this.stack;if(typeof A=="object"&&!Array.isArray(A))return A;throw new FA(`EngineData top-level value is not a dict; is ${typeof A}`)}runParser(){for(let A of this.tokens)switch(A.type){case L.Name:case L.Number:case L.Boolean:case L.String:this.stack.push(A.value);continue;case L.DictBeg:this.stack.push(Oe);continue;case L.ArrBeg:this.stack.push(Ke);continue;case L.DictEnd:this.stack.push(this.dict());continue;case L.ArrEnd:this.stack.push(this.array().reverse());continue}}dict(){let A={};for(;;){let t=this.stack.pop();if(t===void 0)throw new