UNPKG

352 kBSource Map (JSON)View Raw
1{"mappings":"A,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,E,E,E,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,I,E,E,Q,CiBAM,SAAU,EAAW,CAAY,EACrC,MAAO,GAAA,MAAA,CAAG,EAAO,EAAI,IAAM,GAAE,MAAA,MAAA,CAAK,KAAK,GAAG,CAAC,GAAM,QAAQ,CAAC,IAAI,QAAQ,CAAC,EAAG,KAC5E,C,E,Q,S,C,C,C,E,G,E,Q,S,C,C,C,E,E,E,O,C,mB,I,G,I,E,E,S,E,E,QfEO,OAAe,UAAyB,EAAA,cAAa,CA4C3D,YAAsB,CAAc,CAAE,CAAc,CAAE,CAAY,CAAE,CACnE,KAAK,CAAC,EAAQ,EAAU,CAAE,GAAG,CAAO,CAAE,SAAU,CAAA,CAAK,GA5C9C,IAAA,CAAA,WAAA,CAAc,MACd,IAAA,CAAA,YAAA,CAAe,IAAI,gBAA4B,CACtD,UAAW,CAAC,EAAO,KAClB,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAM,MAAM,CAAE,GAAS,IAAI,CAAC,WAAW,CAClE,EAAW,OAAO,CAAC,EAAM,QAAQ,CAAC,EAAO,EAAQ,IAAI,CAAC,WAAW,EAEnE,CACD,GACQ,IAAA,CAAA,cAAA,CAAiB,IAAI,eAA4B,CACxD,MAAO,MAAO,EAAO,KACpB,IAAM,EAAY,IAAI,QAAQ,AAAC,GAC9B,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,oBAAqB,EAAS,CAC/D,KAAM,CAAA,CACP,GAKD,OAAO,CAAA,IAAI,CAAC,WAAW,CAAC,cAAc,EACrC,AAAA,EAAA,cAAa,CAAE,mBAAmB,CAAG,EAAM,UAAU,EAAI,CAAA,EAG1D,GAAI,CACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EACvB,CAAE,MAAO,EAAG,CACX,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAE,GAC7D,EAAW,KAAK,CAAC,GACjB,IAAI,CAAC,KAAK,EACX,CACD,CACD,GACU,IAAA,CAAA,MAAA,CAAS,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,GAE7C,IAAA,CAAA,cAAA,CAAiB,IAAI,eAA4B,CAC1D,MAAO,AAAC,IACP,IAAI,CAAC,IAAI,CAAC,OAAQ,KACjB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,UAAW,AAAC,IAC7C,EAAW,OAAO,CAAC,EAAE,IAAI,CAC1B,EACD,EACD,CACD,GAKM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAC3D,CAEgB,uBAAuB,CAAE,CAAE,CAC1C,KAAK,CAAC,uBAAuB,GAC7B,IAAI,CAAC,WAAW,CAAC,UAAU,CAAG,cAC9B,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAC1C,AAAA,EAAA,cAAa,CAAE,mBAAmB,CAAG,CACvC,CACD,C,G,E,Q,S,C,C,C,E,E,E,O,C,U,I,GChDE,CAHU,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,EAGV,CAAA,EAAA,QAAA,CAAA,EAAA,CAAA,WAIA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,SAIA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,CAAA,WAIA,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,CAAA,MAwDF,IAvEY,E,EAuEZ,EAAe,IApDf,MAGC,IAAI,UAAqB,CACxB,OAAO,IAAI,CAAC,SAAS,AACtB,CAEA,IAAI,SAAS,CAAkB,CAAE,CAChC,IAAI,CAAC,SAAS,CAAG,CAClB,CAEA,IAAI,GAAG,CAAW,CAAE,CACf,IAAI,CAAC,SAAS,EAAA,GACjB,IAAI,CAAC,MAAM,CAAA,KAAkB,EAE/B,CAEA,KAAK,GAAG,CAAW,CAAE,CAChB,IAAI,CAAC,SAAS,EAAA,GACjB,IAAI,CAAC,MAAM,CAAA,KAAuB,EAEpC,CAEA,MAAM,GAAG,CAAW,CAAE,CACjB,IAAI,CAAC,SAAS,EAAA,GACjB,IAAI,CAAC,MAAM,CAAA,KAAqB,EAElC,CAEA,eAAe,CAA6C,CAAQ,CACnE,IAAI,CAAC,MAAM,CAAG,CACf,CAEQ,OAAO,CAAkB,CAAE,GAAG,CAAW,CAAQ,CACxD,IAAM,EAAO,CA9DI,cA8DY,EAAK,CAElC,IAAK,IAAM,KAAK,EACX,CAAI,CAAC,EAAE,WAAY,OACtB,CAAA,CAAI,CAAC,EAAE,CAAG,IAAM,CAAI,CAAC,EAAE,CAAC,IAAI,CAAG,KAAO,CAAI,CAAC,EAAE,CAAC,OAAO,AAAP,CAI5C,CAAA,GAAA,EACH,QAAQ,GAAG,IAAI,GACL,GAAA,EACV,QAAQ,IAAI,CAAC,aAAc,GACjB,GAAA,GACV,QAAQ,KAAK,CAAC,WAAY,EAE5B,C,a,CAhDQ,IAAA,CAAA,SAAA,CAAA,C,CAiDT,C,G,E,Q,S,C,C,C,E,E,E,O,C,iB,I,G,I,E,E,S,E,E,S,E,E,S,E,E,S,E,E,QChDO,OAAe,UAAuB,EAAA,cAAa,CAI/B,OAAA,CAAA,CAAA,CAAA,IAAA,CAAA,SAAA,CAAY,KAAZ,AACA,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,mBAAA,CAAsB,OAAtB,AAM1B,KAAW,MAAO,CACjB,OAAO,AAAA,EAAA,cAAa,CAAE,IAAI,AAC3B,CAEA,YAAY,CAAc,CAAE,CAAc,CAAE,CAAY,CAAE,CACzD,KAAK,CAAC,EAAQ,EAAU,GAExB,IAAI,CAAC,YAAY,CAChB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAI,EAAe,SAAS,CAAG,AAAA,CAAA,EAAA,EAAA,WAAU,AAAV,IAEzD,IAAI,CAAC,KAAK,CAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAI,IAAI,CAAC,YAAY,CACpD,IAAI,CAAC,QAAQ,CAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAEvC,IAAI,CAAC,WAAW,CAAG,IAAI,EAAA,UAAS,CAAE,IAAI,EAEtC,IAAI,CAAC,WAAW,CAAC,eAAe,CAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAI,CACxB,WAAY,CAAA,EACZ,SAAU,IAAI,CAAC,QAAQ,AACxB,EAEF,CAGS,uBAAuB,CAAkB,CAAQ,CACzD,IAAI,CAAC,WAAW,CAAG,EAEnB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAG,KACzB,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,EAC1D,IAAI,CAAC,KAAK,CAAG,CAAA,EACb,IAAI,CAAC,IAAI,CAAC,OACX,EAEA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAG,AAAC,IAC7B,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAE,EAAE,IAAI,CAE3D,EAEA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAG,KAC1B,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAE,IAAI,CAAC,IAAI,EAC9D,IAAI,CAAC,KAAK,EACX,CACD,CAOA,MAAM,CAA6B,CAAQ,CAC1C,GAAI,GAAS,MAAO,CACnB,IAAI,CAAC,IAAI,CAAC,CACT,WAAY,CACX,KAAM,OACP,CACD,GACA,MACD,CACI,IAAI,CAAC,WAAW,GACnB,IAAI,CAAC,WAAW,CAAC,OAAO,GACxB,IAAI,CAAC,WAAW,CAAG,MAGhB,IAAI,CAAC,QAAQ,GAChB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAEpC,IAAI,CAAC,QAAQ,CAAG,MAGb,IAAI,CAAC,WAAW,GACnB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAG,KAC1B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAG,KAC7B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAG,KAC3B,IAAI,CAAC,WAAW,CAAG,MAGf,IAAI,CAAC,IAAI,GAId,IAAI,CAAC,KAAK,CAAG,CAAA,EAEb,KAAK,CAAC,KAAK,SACZ,CAKA,KAAY,CAAS,CAAE,EAAU,CAAA,CAAK,CAAE,CACvC,GAAI,CAAC,IAAI,CAAC,IAAI,CAAE,CACf,IAAI,CAAC,SAAS,CACb,AAAA,EAAA,uBAAsB,CAAE,UAAU,CAClC,2FAED,MACD,CACA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAM,EACzB,CAEA,MAAM,cAAc,CAAsB,CAAE,CAC3C,IAAM,EAAU,EAAQ,OAAO,CAE/B,OAAQ,EAAQ,IAAI,EACnB,KAAK,AAAA,EAAA,iBAAgB,CAAE,MAAM,CAC5B,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAQ,IAAI,CAAE,EAAQ,GAAG,EAC1D,KACD,MAAK,AAAA,EAAA,iBAAgB,CAAE,SAAS,CAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAQ,SAAS,EACxD,KACD,SACC,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,IAAI,CACV,6BACA,EAAQ,IAAI,CACZ,aACA,IAAI,CAAC,IAAI,CAGZ,CACD,CACD,C,G,E,Q,S,C,C,C,E,E,E,O,C,a,I,G,I,E,E,S,E,E,QCjJO,OAAM,EAIZ,YAAqB,CAA0B,CAAE,CAA5B,IAAA,CAAA,UAAA,CAAA,CAA6B,CAGlD,gBAAgB,CAAY,CAAE,CAC7B,IAAM,EAAiB,IAAI,CAAC,oBAAoB,GAUhD,GAPA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAG,EAE7B,IAAI,CAAC,UAAU,CAAC,IAAI,GAAK,AAAA,EAAA,cAAa,CAAE,KAAK,EAAI,EAAQ,OAAO,EACnE,IAAI,CAAC,sBAAsB,CAAC,EAAQ,OAAO,CAAE,GAI1C,EAAQ,UAAU,CAAE,CACvB,IAAM,EAAiB,IAAI,CAAC,UAAU,CAEhC,EAA6B,CAAE,QAAS,CAAC,CAAC,EAAQ,QAAQ,AAAC,EAE3D,EAAc,EAAe,iBAAiB,CACnD,EAAe,KAAK,CACpB,GAED,EAAe,sBAAsB,CAAC,GAEjC,IAAI,CAAC,UAAU,EACrB,MACM,IAAI,CAAC,SAAS,CAAC,QAAS,EAAQ,GAAG,CAE1C,CAGA,sBAAkD,CACjD,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,+BAEX,IAAM,EAAiB,IAAI,kBAC1B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAKxC,OAFA,IAAI,CAAC,eAAe,CAAC,GAEd,CACR,CAGQ,gBAAgB,CAAiC,CAAE,CAC1D,IAAM,EAAS,IAAI,CAAC,UAAU,CAAC,IAAI,CAC7B,EAAe,IAAI,CAAC,UAAU,CAAC,YAAY,CAC3C,EAAiB,IAAI,CAAC,UAAU,CAAC,IAAI,CACrC,EAAW,IAAI,CAAC,UAAU,CAAC,QAAQ,CAGzC,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,iCAEX,EAAe,cAAc,CAAG,AAAC,IAC3B,EAAI,SAAS,EAAK,EAAI,SAAS,CAAC,SAAS,GAE9C,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,CAAC,4BAA4B,EAAE,EAAO,CAAC,CAAC,CAAE,EAAI,SAAS,EAElE,EAAS,MAAM,CAAC,IAAI,CAAC,CACpB,KAAM,AAAA,EAAA,iBAAgB,CAAE,SAAS,CACjC,QAAS,CACR,UAAW,EAAI,SAAS,CACxB,KAAM,EACN,aAAc,CACf,EACA,IAAK,CACN,GACD,EAEA,EAAe,0BAA0B,CAAG,KAC3C,OAAQ,EAAe,kBAAkB,EACxC,IAAK,SACJ,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CACT,wDAA0D,GAE3D,IAAI,CAAC,UAAU,CAAC,SAAS,CACxB,AAAA,EAAA,uBAAsB,CAAE,iBAAiB,CACzC,gCAAkC,EAAS,YAE5C,IAAI,CAAC,UAAU,CAAC,KAAK,GACrB,KACD,KAAK,SACJ,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CACT,wDAA0D,GAE3D,IAAI,CAAC,UAAU,CAAC,SAAS,CACxB,AAAA,EAAA,uBAAsB,CAAE,gBAAgB,CACxC,iBAAmB,EAAS,YAE7B,IAAI,CAAC,UAAU,CAAC,KAAK,GACrB,KACD,KAAK,eACJ,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CACT,qEACC,GAEF,KACD,KAAK,YACJ,EAAe,cAAc,CAAG,KAAO,CAEzC,CAEA,IAAI,CAAC,UAAU,CAAC,IAAI,CACnB,kBACA,EAAe,kBAAkB,CAEnC,EAGA,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,8BAGX,EAAe,aAAa,CAAG,AAAC,IAC/B,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,yBAEX,IAAM,EAAc,EAAI,OAAO,CAK/B,AAHC,EAAS,aAAa,CAAC,EAAQ,GAGrB,sBAAsB,CAAC,EACnC,EAGA,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,+BAEX,EAAe,OAAO,CAAG,AAAC,IACzB,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,0BAEX,IAAM,EAAS,EAAI,OAAO,CAAC,EAAE,CACvB,EAAa,EAAS,aAAa,CAAC,EAAQ,EAE9C,CAAA,EAAW,IAAI,GAAK,AAAA,EAAA,cAAa,CAAE,KAAK,EAG3C,IAAI,CAAC,2BAA2B,CAAC,EAFQ,EAI3C,CACD,CAEA,SAAgB,CACf,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,iCAAmC,IAAI,CAAC,UAAU,CAAC,IAAI,EAElE,IAAM,EAAiB,IAAI,CAAC,UAAU,CAAC,cAAc,CAErD,GAAI,CAAC,EACJ,MAGD,CAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAG,KAGjC,EAAe,cAAc,CAC5B,EAAe,0BAA0B,CACzC,EAAe,aAAa,CAC5B,EAAe,OAAO,CACrB,KAAO,EAET,IAAM,EAA0B,AAAkC,WAAlC,EAAe,cAAc,CACzD,EAAuB,CAAA,EAErB,EAAc,IAAI,CAAC,UAAU,CAAC,WAAW,CAE3C,GACH,CAAA,EACC,CAAC,CAAC,EAAY,UAAU,EAAI,AAA2B,WAA3B,EAAY,UAAU,AAFpD,EAKI,CAAA,GAA2B,CAAA,GAC9B,EAAe,KAAK,EAEtB,CAEA,MAAc,YAA4B,CACzC,IAAM,EAAiB,IAAI,CAAC,UAAU,CAAC,cAAc,CAC/C,EAAW,IAAI,CAAC,UAAU,CAAC,QAAQ,CAEzC,GAAI,CACH,IAAM,EAAQ,MAAM,EAAe,WAAW,CAC7C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAGpC,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,kBAGV,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,EACpC,AAAgD,YAAhD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,EAE3C,CAAA,EAAM,GAAG,CACR,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,EAAM,GAAG,GAAK,EAAM,GAAG,AAAH,EAG3D,GAAI,CACH,MAAM,EAAe,mBAAmB,CAAC,GAEzC,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CACT,wBACA,EACA,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAG9B,IAAI,EAAe,CAClB,IAAK,EACL,KAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAC1B,aAAc,IAAI,CAAC,UAAU,CAAC,YAAY,CAC1C,SAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,AACnC,EAEA,GAAI,IAAI,CAAC,UAAU,CAAC,IAAI,GAAK,AAAA,EAAA,cAAa,CAAE,IAAI,CAAE,CACjD,IAAM,EAA2C,IAAI,CAAC,UAAU,CAEhE,EAAU,CACT,GAAG,CAAO,CACV,MAAO,EAAe,KAAK,CAC3B,SAAU,EAAe,QAAQ,CACjC,cAAe,EAAe,aAAa,AAC5C,CACD,CAEA,EAAS,MAAM,CAAC,IAAI,CAAC,CACpB,KAAM,AAAA,EAAA,iBAAgB,CAAE,KAAK,CAC7B,QAAA,EACA,IAAK,IAAI,CAAC,UAAU,CAAC,IAAI,AAC1B,EACD,CAAE,MAAO,EAAK,CAIZ,0FADA,IAGA,EAAS,SAAS,CAAC,AAAA,EAAA,aAAY,CAAE,MAAM,CAAE,GACzC,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,kCAAmC,GAEhD,CACD,CAAE,MAAO,EAAO,CACf,EAAS,SAAS,CAAC,AAAA,EAAA,aAAY,CAAE,MAAM,CAAE,GACzC,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,0BAA2B,EACvC,CACD,CAEA,MAAc,aAA6B,CAC1C,IAAM,EAAiB,IAAI,CAAC,UAAU,CAAC,cAAc,CAC/C,EAAW,IAAI,CAAC,UAAU,CAAC,QAAQ,CAEzC,GAAI,CACH,IAAM,EAAS,MAAM,EAAe,YAAY,GAChD,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,mBAGV,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,EACpC,AAAgD,YAAhD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,EAE3C,CAAA,EAAO,GAAG,CACT,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,EAAO,GAAG,GAAK,EAAO,GAAG,AAAH,EAG7D,GAAI,CACH,MAAM,EAAe,mBAAmB,CAAC,GAEzC,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CACT,wBACA,EACA,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAG9B,EAAS,MAAM,CAAC,IAAI,CAAC,CACpB,KAAM,AAAA,EAAA,iBAAgB,CAAE,MAAM,CAC9B,QAAS,CACR,IAAK,EACL,KAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAC1B,aAAc,IAAI,CAAC,UAAU,CAAC,YAAY,AAC3C,EACA,IAAK,IAAI,CAAC,UAAU,CAAC,IAAI,AAC1B,EACD,CAAE,MAAO,EAAK,CACb,EAAS,SAAS,CAAC,AAAA,EAAA,aAAY,CAAE,MAAM,CAAE,GACzC,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,kCAAmC,EAC/C,CACD,CAAE,MAAO,EAAO,CACf,EAAS,SAAS,CAAC,AAAA,EAAA,aAAY,CAAE,MAAM,CAAE,GACzC,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,4BAA6B,EACzC,CACD,CAGA,MAAM,UAAU,CAAY,CAAE,CAAQ,CAAiB,CACtD,EAAM,IAAI,sBAAsB,GAChC,IAAM,EAAiB,IAAI,CAAC,UAAU,CAAC,cAAc,CAC/C,EAAW,IAAI,CAAC,UAAU,CAAC,QAAQ,CAEzC,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,6BAA8B,GAIzC,GAAI,CACH,MAAM,EAAe,oBAAoB,CAAC,GAC1C,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,CAAC,sBAAsB,EAAE,EAAK,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EACzD,UAAT,GACH,MAAM,AANK,IAAI,CAMJ,WAAW,EAExB,CAAE,MAAO,EAAK,CACb,EAAS,SAAS,CAAC,AAAA,EAAA,aAAY,CAAE,MAAM,CAAE,GACzC,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,mCAAoC,EAChD,CACD,CAGA,MAAM,gBAAgB,CAAoB,CAAE,CAC3C,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,mBAAoB,GAE/B,GAAI,CACH,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,GACrD,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,CAAC,wBAAwB,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAC7D,CAAE,MAAO,EAAK,CACb,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,AAAA,EAAA,aAAY,CAAE,MAAM,CAAE,GACzD,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,8BAA+B,EAC3C,CACD,CAEQ,uBACP,CAAmB,CACnB,CAAiC,CAC1B,CAGP,GAFA,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CAAC,CAAC,uBAAuB,EAAE,EAAO,EAAE,CAAC,mBAAmB,CAAC,EAE/D,CAAC,EAAe,QAAQ,CAC3B,MAAO,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,KAAK,CAClB,oEAIF,EAAO,SAAS,GAAG,OAAO,CAAC,AAAC,IAC3B,EAAe,QAAQ,CAAC,EAAO,EAChC,EACD,CAEQ,4BACP,CAAmB,CACnB,CAAgC,CACzB,CACP,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,GAAG,CACT,CAAC,WAAW,EAAE,EAAO,EAAE,CAAC,qBAAqB,EAAE,EAAgB,YAAY,CAAC,CAAC,EAG9E,EAAgB,SAAS,CAAC,EAC3B,CACD,C,G,E,Q,S,C,C,C,M,E,E,E,E,E,E,EC9WY,EAKA,EAyDA,EAKA,EAKA,EAOA,EAOA,E,E,E,O,C,iB,I,G,E,E,O,C,gB,I,G,E,E,O,C,0B,I,G,E,E,O,C,0B,I,G,E,E,O,C,oB,I,G,CAtFA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,G,I,C,O,E,K,C,QAQV,CAHU,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,GAGV,mBAAA,CAAA,uBAIA,EAAA,YAAA,CAAA,eAIA,EAAA,SAAA,CAAA,aAIA,EAAA,UAAA,CAAA,cAIA,EAAA,OAAA,CAAA,UAIA,EAAA,eAAA,CAAA,mBAIA,EAAA,cAAA,CAAA,kBAIA,EAAA,WAAA,CAAA,eAIA,EAAA,WAAA,CAAA,eAIA,EAAA,YAAA,CAAA,gBAUA,EAAA,aAAA,CAAA,iBAIA,EAAA,MAAA,CAAA,S,CAIU,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,G,iB,C,qB,E,gB,C,oB,CAKA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,G,U,C,e,E,Y,C,kB,CAKA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,G,M,C,S,E,U,C,c,E,I,C,O,E,I,C,M,CAOA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,G,O,C,U,E,Y,C,e,E,K,C,Q,E,K,C,Q,CAOA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,G,S,C,Y,E,S,C,Y,E,K,C,Q,E,M,C,S,E,I,C,O,E,K,C,Q,E,O,C,W,E,U,C,c,E,K,C,Q,E,M,C,Q,G,E,Q,S,C,C,C,E,E,E,O,C,iB,I,G,I,E,E,QCvDL,OAAe,UAGZ,EAAA,qBAAoB,CA2B7B,IAAI,MAAO,CACV,OAAO,IAAI,CAAC,KAAK,AAClB,CAEA,YAIU,CAAY,CACd,CAAc,CACZ,CAAY,CACpB,CACD,KAAK,GAJI,IAAA,CAAA,IAAA,CAAA,EACF,IAAA,CAAA,QAAA,CAAA,EACE,IAAA,CAAA,OAAA,CAAA,EAjCA,IAAA,CAAA,KAAA,CAAQ,CAAA,EAqCjB,IAAI,CAAC,QAAQ,CAAG,EAAQ,QAAQ,AACjC,CAcD,C,G,E,Q,S,C,C,C,E,E,E,O,C,wB,I,G,I,E,E,S,E,E,QCnFO,OAAM,UAGH,EAAA,YAAW,CAMpB,UAAU,CAAe,CAAE,CAAmB,CAAQ,CACrD,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,KAAK,CAAC,SAAU,GAGvB,IAAI,CAAC,IAAI,CAAC,QAAS,IAAI,EAA0B,CAAC,EAAE,EAAK,CAAC,CAAE,GAC7D,CACD,CAKO,MAAM,UAAoC,MAIhD,YAAY,CAAO,CAAE,CAAmB,CAAE,CACrC,AAAe,UAAf,OAAO,EACV,KAAK,CAAC,IAEN,KAAK,GACL,OAAO,MAAM,CAAC,IAAI,CAAE,IAGrB,IAAI,CAAC,IAAI,CAAG,CACb,CAGD,C,G,E,Q,S,C,C,C,ECzCA,IAAI,EAAM,OAAO,SAAS,CAAC,cAAc,CACrC,EAAS,IASb,SAAS,IAAU,CA4BnB,SAAS,EAAG,CAAE,CAAE,CAAO,CAAE,CAAI,EAC3B,IAAI,CAAC,EAAE,CAAG,EACV,IAAI,CAAC,OAAO,CAAG,EACf,IAAI,CAAC,IAAI,CAAG,GAAQ,CAAA,CACtB,CAaA,SAAS,EAAY,CAAO,CAAE,CAAK,CAAE,CAAE,CAAE,CAAO,CAAE,CAAI,EACpD,GAAI,AAAc,YAAd,OAAO,EACT,MAAM,AAAI,UAAU,mCAGtB,IAAI,EAAW,IAAI,EAAG,EAAI,GAAW,EAAS,GAC1C,EAAM,EAAS,EAAS,EAAQ,EAMpC,OAJK,EAAQ,OAAO,CAAC,EAAI,CACf,EAAQ,OAAO,CAAC,EAAI,CAAC,EAAE,CAC5B,EAAQ,OAAO,CAAC,EAAI,CAAG,CAAC,EAAQ,OAAO,CAAC,EAAI,CAAE,EAAS,CADzB,EAAQ,OAAO,CAAC,EAAI,CAAC,IAAI,CAAC,GADlC,CAAA,EAAQ,OAAO,CAAC,EAAI,CAAG,EAAU,EAAQ,YAAY,EAAhF,EAIO,CACT,CASA,SAAS,EAAW,CAAO,CAAE,CAAG,EAC1B,AAA2B,GAA3B,EAAE,EAAQ,YAAY,CAAQ,EAAQ,OAAO,CAAG,IAAI,EACnD,OAAO,EAAQ,OAAO,CAAC,EAAI,AAClC,CASA,SAAS,IACP,IAAI,CAAC,OAAO,CAAG,IAAI,EACnB,IAAI,CAAC,YAAY,CAAG,CACtB,CAzEI,OAAO,MAAM,GACf,EAAO,SAAS,CAAG,OAAO,MAAM,CAAC,MAM5B,IAAI,IAAS,SAAS,EAAE,CAAA,EAAS,CAAA,CAAtC,GA2EF,EAAa,SAAS,CAAC,UAAU,CAAG,WAClC,IACI,EACA,EAFA,EAAQ,EAAE,CAId,GAAI,AAAsB,IAAtB,IAAI,CAAC,YAAY,CAAQ,OAAO,EAEpC,IAAK,KAAS,EAAS,IAAI,CAAC,OAAO,CAC7B,EAAI,IAAI,CAAC,EAAQ,IAAO,EAAM,IAAI,CAAC,EAAS,EAAK,KAAK,CAAC,GAAK,UAGlE,AAAI,OAAO,qBAAqB,CACvB,EAAM,MAAM,CAAC,OAAO,qBAAqB,CAAC,IAG5C,CACT,EASA,EAAa,SAAS,CAAC,SAAS,CAAG,SAAmB,CAAK,EACzD,IAAI,EAAM,EAAS,EAAS,EAAQ,EAChC,EAAW,IAAI,CAAC,OAAO,CAAC,EAAI,CAEhC,GAAI,CAAC,EAAU,MAAO,EAAE,CACxB,GAAI,EAAS,EAAE,CAAE,MAAO,CAAC,EAAS,EAAE,CAAC,CAErC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,MAAM,CAAE,EAAK,AAAI,MAAM,GAAI,EAAI,EAAG,IAC7D,CAAE,CAAC,EAAE,CAAG,CAAQ,CAAC,EAAE,CAAC,EAAE,CAGxB,OAAO,CACT,EASA,EAAa,SAAS,CAAC,aAAa,CAAG,SAAuB,CAAK,EACjE,IAAI,EAAM,EAAS,EAAS,EAAQ,EAChC,EAAY,IAAI,CAAC,OAAO,CAAC,EAAI,QAEjC,AAAK,EACD,EAAU,EAAE,CAAS,EAClB,EAAU,MAAM,CAFA,CAGzB,EASA,EAAa,SAAS,CAAC,IAAI,CAAG,SAAc,CAAK,CAAE,CAAE,CAAE,CAAE,CAAE,CAAE,CAAE,CAAE,CAAE,CAAE,EACnE,IAAI,EAAM,EAAS,EAAS,EAAQ,EAEpC,GAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAI,CAAE,MAAO,CAAA,EAE/B,IAEI,EACA,EAHA,EAAY,IAAI,CAAC,OAAO,CAAC,EAAI,CAC7B,EAAM,UAAU,MAAM,CAI1B,GAAI,EAAU,EAAE,CAAE,CAGhB,OAFI,EAAU,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAAO,EAAU,EAAE,CAAE,KAAA,EAAW,CAAA,GAEhE,GACN,KAAK,EAAG,OAAO,EAAU,EAAE,CAAC,IAAI,CAAC,EAAU,OAAO,EAAG,CAAA,CACrD,MAAK,EAAG,OAAO,EAAU,EAAE,CAAC,IAAI,CAAC,EAAU,OAAO,CAAE,GAAK,CAAA,CACzD,MAAK,EAAG,OAAO,EAAU,EAAE,CAAC,IAAI,CAAC,EAAU,OAAO,CAAE,EAAI,GAAK,CAAA,CAC7D,MAAK,EAAG,OAAO,EAAU,EAAE,CAAC,IAAI,CAAC,EAAU,OAAO,CAAE,EAAI,EAAI,GAAK,CAAA,CACjE,MAAK,EAAG,OAAO,EAAU,EAAE,CAAC,IAAI,CAAC,EAAU,OAAO,CAAE,EAAI,EAAI,EAAI,GAAK,CAAA,CACrE,MAAK,EAAG,OAAO,EAAU,EAAE,CAAC,IAAI,CAAC,EAAU,OAAO,CAAE,EAAI,EAAI,EAAI,EAAI,GAAK,CAAA,CAC3E,CAEA,IAAK,EAAI,EAAG,EAAO,AAAI,MAAM,EAAK,GAAI,EAAI,EAAK,IAC7C,CAAI,CAAC,EAAI,EAAE,CAAG,SAAS,CAAC,EAAE,CAG5B,EAAU,EAAE,CAAC,KAAK,CAAC,EAAU,OAAO,CAAE,EACxC,KAAO,CACL,IACI,EADA,EAAS,EAAU,MAAM,CAG7B,IAAK,EAAI,EAAG,EAAI,EAAQ,IAGtB,OAFI,CAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAAO,CAAS,CAAC,EAAE,CAAC,EAAE,CAAE,KAAA,EAAW,CAAA,GAEtE,GACN,KAAK,EAAG,CAAS,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAS,CAAC,EAAE,CAAC,OAAO,EAAG,KACpD,MAAK,EAAG,CAAS,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAS,CAAC,EAAE,CAAC,OAAO,CAAE,GAAK,KACxD,MAAK,EAAG,CAAS,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAS,CAAC,EAAE,CAAC,OAAO,CAAE,EAAI,GAAK,KAC5D,MAAK,EAAG,CAAS,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAS,CAAC,EAAE,CAAC,OAAO,CAAE,EAAI,EAAI,GAAK,KAChE,SACE,GAAI,CAAC,EAAM,IAAK,EAAI,EAAG,EAAO,AAAI,MAAM,EAAK,GAAI,EAAI,EAAK,IACxD,CAAI,CAAC,EAAI,EAAE,CAAG,SAAS,CAAC,EAAE,CAG5B,CAAS,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAS,CAAC,EAAE,CAAC,OAAO,CAAE,EAChD,CAEJ,CAEA,MAAO,CAAA,CACT,EAWA,EAAa,SAAS,CAAC,EAAE,CAAG,SAAY,CAAK,CAAE,CAAE,CAAE,CAAO,EACxD,OAAO,EAAY,IAAI,CAAE,EAAO,EAAI,EAAS,CAAA,EAC/C,EAWA,EAAa,SAAS,CAAC,IAAI,CAAG,SAAc,CAAK,CAAE,CAAE,CAAE,CAAO,EAC5D,OAAO,EAAY,IAAI,CAAE,EAAO,EAAI,EAAS,CAAA,EAC/C,EAYA,EAAa,SAAS,CAAC,cAAc,CAAG,SAAwB,CAAK,CAAE,CAAE,CAAE,CAAO,CAAE,CAAI,EACtF,IAAI,EAAM,EAAS,EAAS,EAAQ,EAEpC,GAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAI,CAAE,OAAO,IAAI,CACnC,GAAI,CAAC,EAEH,OADA,EAAW,IAAI,CAAE,GACV,IAAI,CAGb,IAAI,EAAY,IAAI,CAAC,OAAO,CAAC,EAAI,CAEjC,GAAI,EAAU,EAAE,CAEZ,EAAU,EAAE,GAAK,GAChB,AAAC,IAAQ,EAAU,IAAG,EACtB,AAAC,GAAW,EAAU,OAAO,GAAK,GAEnC,EAAW,IAAI,CAAE,OAEd,CACL,IAAK,IAAI,EAAI,EAAG,EAAS,EAAE,CAAE,EAAS,EAAU,MAAM,CAAE,EAAI,EAAQ,IAEhE,CAAA,CAAS,CAAC,EAAE,CAAC,EAAE,GAAK,GACnB,GAAQ,CAAC,CAAS,CAAC,EAAE,CAAC,IAAI,EAC1B,GAAW,CAAS,CAAC,EAAE,CAAC,OAAO,GAAK,CAAA,GAErC,EAAO,IAAI,CAAC,CAAS,CAAC,EAAE,CAOxB,CAAA,EAAO,MAAM,CAAE,IAAI,CAAC,OAAO,CAAC,EAAI,CAAG,AAAkB,IAAlB,EAAO,MAAM,CAAS,CAAM,CAAC,EAAE,CAAG,EACpE,EAAW,IAAI,CAAE,EACxB,CAEA,OAAO,IAAI,AACb,EASA,EAAa,SAAS,CAAC,kBAAkB,CAAG,SAA4B,CAAK,EAC3E,IAAI,EAUJ,OARI,GACF,EAAM,EAAS,EAAS,EAAQ,EAC5B,IAAI,CAAC,OAAO,CAAC,EAAI,EAAE,EAAW,IAAI,CAAE,KAExC,IAAI,CAAC,OAAO,CAAG,IAAI,EACnB,IAAI,CAAC,YAAY,CAAG,GAGf,IAAI,AACb,EAKA,EAAa,SAAS,CAAC,GAAG,CAAG,EAAa,SAAS,CAAC,cAAc,CAClE,EAAa,SAAS,CAAC,WAAW,CAAG,EAAa,SAAS,CAAC,EAAE,CAK9D,EAAa,QAAQ,CAAG,EAKxB,EAAa,YAAY,CAAG,EAM1B,EAAA,OAAA,CAAiB,C,G,E,Q,S,C,C,C,E,E,E,O,C,c,I,GC9UZ,IAAM,EAAc,IAAM,KAAK,MAAM,GAAG,QAAQ,CAAC,IAAI,KAAK,CAAC,E,GWGlE,IAAA,EACE,SAAqB,CAAY,CAAW,CAAgB,EAAvC,IAAA,CAAA,IAAI,CAAJ,EAAuB,IAAA,CAAA,IAAI,CAAJ,CAAmB,E,G,E,S,C,C,C,E,M,A,C,E,O,c,E,A,C,C,U,E,A,C,Y,O,S,C,C,C,E,E,S,C,C,G,S,C,C,C,E,I,I,K,E,O,S,C,c,C,I,C,E,I,C,C,C,E,C,C,C,E,A,C,C,E,E,E,E,S,C,C,C,E,G,A,Y,O,G,A,O,E,M,A,U,uB,O,G,iC,S,I,I,C,W,C,C,C,E,E,G,E,S,C,A,O,E,O,M,C,G,C,E,S,C,E,S,C,I,C,C,GIJjE,EAAA,SAAA,CAAA,EACE,SAAA,EAAY,CAAe,EAA3B,IAAA,EACE,EAAA,IAAA,CAAA,IAAA,CAAM,IAAQ,IAAA,C,OAId,OAAO,cAAc,CAAC,EADsB,OAAO,MAAM,CAAC,EAAY,SAAS,GAG/E,OAAO,cAAc,CAAC,EAAM,OAAQ,CAClC,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,MAAO,EAAY,IAAI,AACxB,G,CACH,CACF,OAdiC,EAAA,EAAA,GAcjC,CAAA,EAdiC,OEc3B,SAAU,EAAS,CAAc,CAAE,CAAc,CAAE,CAAa,EAGpE,EAAK,SAAS,CAAC,EAFF,KAAK,KAAK,CAAC,EAAQ,aAGhC,EAAK,SAAS,CAAC,EAAS,EAFZ,EAGd,CAEM,SAAU,EAAS,CAAc,CAAE,CAAc,EAGrD,OAAO,AAAO,WAFD,EAAK,QAAQ,CAAC,GACf,EAAK,SAAS,CAAC,EAAS,EAEtC,CJ8EO,IAAM,EAAqB,CAChC,KApG2B,GAqG3B,OA/CI,SAAmC,CAAe,MAZhD,EACA,EACA,EAGA,SAQN,AAAI,aAAkB,KAEb,AA/CL,SAAoC,CAAuB,EAArB,IAAA,EAAG,EAAA,GAAA,CAAE,EAAI,EAAA,IAAA,CACnD,GAAI,GAAO,GAAK,GAAQ,GAAK,GAHH,YAG1B,CAEE,GAAI,AAAS,IAAT,GAAc,GANM,WAMsB,CAE5C,IAAM,EAAK,IAAI,WAAW,GACpB,EAAO,IAAI,SAAS,EAAG,MAAM,EAEnC,OADA,EAAK,SAAS,CAAC,EAAG,GACX,CACR,CAEC,IAAM,EAAU,EAAM,WAEhB,EAAK,IAAI,WAAW,GACpB,EAAO,IAAI,SAAS,EAAG,MAAM,EAKnC,OAHA,EAAK,SAAS,CAAC,EAAG,GAAS,EAAM,AAAU,EAAV,GAEjC,EAAK,SAAS,CAAC,EANA,AAAM,WAAN,GAOR,CAEJ,CAEL,IAAM,EAAK,IAAI,WAAW,IACpB,EAAO,IAAI,SAAS,EAAG,MAAM,EAGnC,OAFA,EAAK,SAAS,CAAC,EAAG,GAClB,AAAA,EAAS,EAAM,EAAG,GACX,CAEX,GAIQ,EAAM,KAAK,KAAK,CAAC,CADjB,EAAO,AAc2B,EAdtB,OAAO,IACK,KAIxB,EAAY,KAAK,KAAK,CAAC,CAHvB,EAAO,AAAC,CAAA,EAAO,AAAM,IAAN,CAAM,EAAO,KAGE,KAC7B,CACL,IAAK,EAAM,EACX,KAAM,EAAO,AAAY,IAAZ,CACd,IAQQ,IAEX,EAyCE,OARI,SAAmC,CAAgB,EACvD,IAAM,EAAW,AAhCb,SAAoC,CAAgB,EACxD,IAAM,EAAO,IAAI,SAAS,EAAK,MAAM,CAAE,EAAK,UAAU,CAAE,EAAK,UAAU,EAGvE,OAAQ,EAAK,UAAU,EACrB,KAAK,EAEH,IAAM,EAAM,EAAK,SAAS,CAAC,GACrB,EAAO,EACb,MAAO,CAAE,IAAG,EAAE,KADD,CACK,CAEpB,MAAK,EAEH,IAAM,EAAoB,EAAK,SAAS,CAAC,GAEnC,EAAM,AAAC,CAAA,AAAoB,EAApB,CAAoB,EAAO,WADvB,EAAK,SAAS,CAAC,GAE1B,EAAO,IAAsB,EACnC,MAAO,CAAE,IAAG,EAAE,KAAI,CAAA,CAEpB,MAAK,GAGH,IAAM,EAAM,AAAA,EAAS,EAAM,GACrB,EAAO,EAAK,SAAS,CAAC,GAC5B,MAAO,CAAE,IAAG,EAAE,KAAI,CAAA,CAEpB,SACE,MAAM,IAAI,EAAY,gEAAA,MAAA,CAAgE,EAAK,MAAM,EACpG,CACH,EAG6C,GAC3C,OAAO,IAAI,KAAK,AAAe,IAAf,EAAS,GAAG,CAAS,EAAS,IAAI,CAAG,IACvD,CAMC,EJtFD,EAAA,WAgBE,SAAA,IAPiB,IAAA,CAAA,eAAe,CAAgE,EAAE,CACjF,IAAA,CAAA,eAAe,CAAgE,EAAE,CAGjF,IAAA,CAAA,QAAQ,CAAgE,EAAE,CAC1E,IAAA,CAAA,QAAQ,CAAgE,EAAE,CAGzF,IAAI,CAAC,QAAQ,CAAC,EAChB,CAgEF,OA9DS,EAAA,SAAA,CAAA,QAAQ,CAAf,SAAgB,CAQf,EAPC,IAAA,EAAI,EAAA,IAAA,CACJ,EAAM,EAAA,MAAA,CACN,EAAM,EAAA,MAAA,CAMN,GAAI,GAAQ,EAEV,IAAI,CAAC,QAAQ,CAAC,EAAK,CAAG,EACtB,IAAI,CAAC,QAAQ,CAAC,EAAK,CAAG,MACjB,CAEL,IAAM,EAAQ,EAAI,CAClB,CAAA,IAAI,CAAC,eAAe,CAAC,EAAM,CAAG,EAC9B,IAAI,CAAC,eAAe,CAAC,EAAM,CAAG,CAC/B,CACH,EAEO,EAAA,SAAA,CAAA,WAAW,CAAlB,SAAmB,CAAe,CAAE,CAAoB,EAEtD,IAAK,IAAI,EAAI,EAAG,EAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAE,IAAK,CACpD,IAAM,EAAY,IAAI,CAAC,eAAe,CAAC,EAAE,CACzC,GAAI,AAAa,MAAb,EAAmB,CACrB,IAAM,EAAO,EAAU,EAAQ,GAC/B,GAAI,AAAQ,MAAR,EAAc,CAChB,IAAM,EAAO,GAAK,EAClB,OAAO,IAAI,EAAQ,EAAM,EAC1B,CACF,CACF,CAGD,IAAK,IAAI,EAAI,EAAG,EAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAE,IAAK,CAC7C,IAAM,EAAY,IAAI,CAAC,QAAQ,CAAC,EAAE,CAClC,GAAI,AAAa,MAAb,EAAmB,CACrB,IAAM,EAAO,EAAU,EAAQ,GAC/B,GAAI,AAAQ,MAAR,EAAc,CAChB,IAAM,EAAO,EACb,OAAO,IAAI,EAAQ,EAAM,EAC1B,CACF,CACF,QAED,AAAI,aAAkB,EAEb,EAEF,IACT,EAEO,EAAA,SAAA,CAAA,MAAM,CAAb,SAAc,CAAgB,CAAE,CAAY,CAAE,CAAoB,EAChE,IAAM,EAAY,EAAO,EAAI,IAAI,CAAC,eAAe,CAAC,GAAK,EAAK,CAAG,IAAI,CAAC,QAAQ,CAAC,EAAK,QAClF,AAAI,EACK,EAAU,EAAM,EAAM,GAGtB,IAAI,EAAQ,EAAM,EAE7B,EAhFuB,EAAA,YAAY,CAAkC,IAAI,EAiF3E,CAAC,I,E,E,SUpGK,EACJ,AAAC,CAAA,AAAmB,KAAA,IAAZ,GAA2B,AAAA,CAAA,AAAY,OAAZ,CAAA,EAAA,MAAA,EAAO,KAAA,EAAP,EAAS,GAAG,AAAH,GAAG,AAAA,KAAA,IAAA,EAAA,KAAA,EAAA,EAAG,aAAgB,AAAhB,IAAqB,OAAA,GACvE,AAAuB,aAAvB,OAAO,aACP,AAAuB,aAAvB,OAAO,YAEH,SAAU,EAAU,CAAW,EAKnC,IAJA,IAAM,EAAY,EAAI,MAAM,CAExB,EAAa,EACb,EAAM,EACH,EAAM,GAAW,CACtB,IAAI,EAAQ,EAAI,UAAU,CAAC,KAE3B,GAAK,AAAA,CAAA,AAAQ,WAAR,CAAQ,GAAgB,EAAG,CAE9B,IACA,QACD,CAAM,GAAI,AAAC,CAAA,AAAQ,WAAR,CAAQ,GAAgB,EAElC,GAAc,MACT,CAEL,GAAI,GAAS,OAAU,GAAS,OAE1B,EAAM,EAAW,CACnB,IAAM,EAAQ,EAAI,UAAU,CAAC,GACxB,CAAA,AAAQ,MAAR,CAAQ,GAAY,QACvB,EAAE,EACF,EAAQ,AAAC,CAAA,AAAC,CAAA,AAAQ,KAAR,CAAQ,GAAU,EAAA,EAAO,CAAA,AAAQ,KAAR,CAAQ,EAAS,MAEvD,CAGE,AAAA,CAAA,AAAQ,WAAR,CAAQ,GAAgB,EAE3B,GAAc,EAGd,GAAc,CAEjB,CACF,CACD,OAAO,CACT,CA6CA,IAAM,EAAoB,EAA0B,IAAI,YAAgB,KAAA,EAC3D,EAAyB,AAAC,EAEnC,AAAmB,KAAA,IAAZ,GAA2B,AAAA,CAAA,AAAY,OAAZ,CAAA,EAAA,MAAA,EAAO,KAAA,EAAP,EAAS,GAAA,AAAA,GAAG,AAAA,KAAA,IAAA,EAAA,KAAA,EAAA,EAAG,aAAgB,AAAhB,IAAqB,QACtE,IACA,EF9FsB,WEwGb,EAAe,AAAA,CAAA,MAAA,EAAiB,KAAA,EAAjB,EAAmB,UAAU,AAAV,EAJ/C,SAAgC,CAAW,CAAE,CAAkB,CAAE,CAAoB,EACnF,EAAmB,UAAU,CAAC,EAAK,EAAO,QAAQ,CAAC,GACrD,EANA,SAA4B,CAAW,CAAE,CAAkB,CAAE,CAAoB,EAC/E,EAAO,GAAG,CAAC,EAAmB,MAAM,CAAC,GAAM,EAC7C,EAUM,SAAU,EAAa,CAAiB,CAAE,CAAmB,CAAE,CAAkB,EAMrF,IALA,IAAI,EAAS,EACP,EAAM,EAAS,EAEf,EAAuB,EAAE,CAC3B,EAAS,GACN,EAAS,GAAK,CACnB,IAAM,EAAQ,CAAK,CAAC,IAAU,CAC9B,GAAK,AAAA,CAAA,AAAQ,IAAR,CAAQ,GAAU,EAErB,EAAM,IAAI,CAAC,QACN,GAAK,AAAA,CAAA,AAAQ,IAAR,CAAQ,GAAU,IAAM,CAElC,IAAM,EAAQ,AAAmB,GAAnB,CAAK,CAAC,IAAU,CAC9B,EAAM,IAAI,CAAG,AAAA,CAAA,AAAQ,GAAR,CAAQ,GAAS,EAAK,EACpC,MAAM,GAAI,AAAC,CAAA,AAAQ,IAAR,CAAQ,GAAU,IAAM,CAElC,IAAM,EAAQ,AAAmB,GAAnB,CAAK,CAAC,IAAU,CACxB,EAAQ,AAAmB,GAAnB,CAAK,CAAC,IAAU,CAC9B,EAAM,IAAI,CAAC,AAAE,CAAA,AAAQ,GAAR,CAAQ,GAAS,GAAO,GAAS,EAAK,EACpD,MAAM,GAAI,AAAC,CAAA,AAAQ,IAAR,CAAQ,GAAU,IAAM,CAElC,IAAM,EAAQ,AAAmB,GAAnB,CAAK,CAAC,IAAU,CACxB,EAAQ,AAAmB,GAAnB,CAAK,CAAC,IAAU,CAE1B,EAAS,AAAA,CAAA,AAAQ,EAAR,CAAQ,GAAS,GAAS,GAAS,GAAS,GAAS,EADpD,AAAmB,GAAnB,CAAK,CAAC,IAAU,CAE1B,EAAO,QACT,GAAQ,MACR,EAAM,IAAI,CAAG,IAAS,GAAM,KAAS,OACrC,EAAO,MAAU,AAAO,KAAP,GAEnB,EAAM,IAAI,CAAC,EACZ,MACC,EAAM,IAAI,CAAC,EAGT,CAAA,EAAM,MAAM,EAtCD,OAuCb,GAAU,OAAO,YAAY,CAAA,KAAA,CAAnB,OAAuB,GACjC,EAAM,MAAM,CAAG,EAElB,CAMD,OAJI,EAAM,MAAM,CAAG,GACjB,CAAA,GAAU,OAAO,YAAY,CAAA,KAAA,CAAnB,OAAuB,EADnC,EAIO,CACT,CAEA,IAAM,EAAoB,EAA0B,IAAI,YAAgB,KAC3D,EAAyB,AAAC,EAEnC,AAAmB,KAAA,IAAZ,GAA2B,AAAA,CAAA,AAAY,OAAZ,CAAA,EAAA,MAAA,EAAO,KAAA,EAAP,EAAS,GAAA,AAAA,GAAG,AAAA,KAAA,IAAA,EAAA,KAAA,EAAA,EAAG,YAAe,AAAf,IAAoB,QACrE,IACA,EFlKsB,WIFpB,SAAU,EAAiB,CAAsE,SACrG,AAAI,aAAkB,WACb,EACE,YAAY,MAAM,CAAC,GACrB,IAAI,WAAW,EAAO,MAAM,CAAE,EAAO,UAAU,CAAE,EAAO,UAAU,EAChE,aAAkB,YACpB,IAAI,WAAW,GAGf,WAAW,IAAI,CAAC,EAE3B,CEGA,IAAA,EAAA,WAKE,SAAA,EAAqB,CAAqC,CAAW,CAA4C,EAA5F,KAAA,IAAA,GAAA,CAAA,EAjBQ,EAiBR,EAAgD,KAAA,IAAA,GAAA,CAAA,EAhBpC,EAgBoC,EAAhD,IAAA,CAAA,YAAY,CAAZ,EAAgD,IAAA,CAAA,eAAe,CAAf,EAJrE,IAAA,CAAA,GAAG,CAAG,EACN,IAAA,CAAA,IAAI,CAAG,EAML,IAAI,CAAC,MAAM,CAAG,EAAE,CAChB,IAAK,IAAI,EAAI,EAAG,EAAI,IAAI,CAAC,YAAY,CAAE,IACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAEvB,CAiDF,OA/CS,EAAA,SAAA,CAAA,WAAW,CAAlB,SAAmB,CAAkB,EACnC,OAAO,EAAa,GAAK,GAAc,IAAI,CAAC,YAAY,AAC1D,EAEQ,EAAA,SAAA,CAAA,IAAI,CAAZ,SAAa,CAAiB,CAAE,CAAmB,CAAE,CAAkB,EACrE,IAAM,EAAU,IAAI,CAAC,MAAM,CAAC,EAAa,EAAG,CAE5C,EAAY,IAAqB,IAAA,EAAA,EAAA,EAAA,AAAA,EAAA,MAAO,CAAP,IAAS,CAGxC,IAAK,IAHgB,EAAM,AAAI,CAAJ,CAAA,EAAA,CACrB,EAAc,EAAO,KAAK,CAEvB,EAAI,EAAG,EAAI,EAAY,IAC9B,GAAI,CAAW,CAAC,EAAE,GAAK,CAAK,CAAC,EAAc,EAAE,CAC3C,SAAS,EAGb,OAAO,EAAO,GAAG,AAClB,CACD,OAAO,IACT,EAEQ,EAAA,SAAA,CAAA,KAAK,CAAb,SAAc,CAAiB,CAAE,CAAa,EAC5C,IAAM,EAAU,IAAI,CAAC,MAAM,CAAC,EAAM,MAAM,CAAG,EAAG,CACxC,EAAyB,CAAE,MAAK,EAAE,IAAK,CAAK,CAE9C,CAAA,EAAQ,MAAM,EAAI,IAAI,CAAC,eAAe,CAGxC,CAAO,CAAE,KAAK,MAAM,GAAK,EAAQ,MAAM,CAAI,EAAE,CAAG,EAEhD,EAAQ,IAAI,CAAC,EAEjB,EAEO,EAAA,SAAA,CAAA,MAAM,CAAb,SAAc,CAAiB,CAAE,CAAmB,CAAE,CAAkB,EACtE,IAAM,EAAc,IAAI,CAAC,IAAI,CAAC,EAAO,EAAa,GAClD,GAAI,AAAe,MAAf,EAEF,OADA,IAAI,CAAC,GAAG,GACD,CAET,CAAA,IAAI,CAAC,IAAI,GAET,IAAM,EAAM,AAAA,EAAa,EAAO,EAAa,GAEvC,EAAoB,WAAW,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAO,EAAa,EAAc,GAE5F,OADA,IAAI,CAAC,KAAK,CAAC,EAAmB,GACvB,CACT,EACF,CAAA,I,E,S,C,C,C,E,I,E,E,E,E,E,C,M,E,K,W,G,A,E,C,C,E,C,M,C,C,E,C,O,C,C,E,A,E,K,E,C,I,E,A,E,O,E,C,K,E,G,M,E,G,O,E,E,E,A,Y,O,Q,C,C,C,O,Q,C,C,W,O,I,A,C,E,E,S,E,C,E,O,S,C,E,O,A,S,C,E,G,E,M,A,U,mC,K,G,G,C,G,E,E,G,C,E,A,E,C,C,E,C,E,M,C,C,C,E,C,E,K,E,C,A,C,E,E,M,A,G,E,I,C,G,C,E,E,I,A,G,C,A,C,E,E,I,C,E,C,C,E,C,E,I,C,O,E,O,E,E,A,G,C,E,C,A,E,C,C,E,C,E,K,C,A,E,C,C,E,E,K,E,K,E,E,E,K,M,E,O,E,K,G,C,M,C,C,E,C,K,C,C,C,M,E,E,K,G,E,C,C,E,C,E,C,E,C,Q,M,E,E,E,G,C,G,G,E,I,C,G,G,Q,S,G,C,C,E,A,C,E,E,I,A,E,M,C,G,C,C,E,M,C,E,A,G,C,A,I,C,C,E,E,A,I,C,C,E,A,E,C,E,E,Q,C,G,A,I,C,C,E,E,C,C,G,C,C,E,C,C,C,E,E,C,C,E,C,C,C,E,A,E,C,E,K,C,C,C,E,C,K,C,G,A,I,C,C,E,E,E,K,C,C,C,E,C,C,E,K,C,C,C,E,C,E,E,K,C,G,G,E,K,C,C,C,E,C,C,E,K,C,C,C,E,C,E,G,C,I,C,G,K,C,C,C,E,E,E,G,C,G,G,E,I,C,G,G,Q,C,E,E,I,C,E,E,C,M,E,C,E,C,E,E,C,E,C,Q,C,E,E,C,C,G,A,E,C,C,E,C,M,C,C,E,C,M,C,M,C,C,E,C,C,C,E,C,K,E,K,C,C,C,E,C,E,E,C,C,C,E,E,S,C,E,G,C,O,a,C,M,A,U,wC,I,E,E,C,C,O,a,C,C,O,E,E,I,C,G,C,E,A,Y,O,S,S,G,C,C,O,Q,C,G,E,C,E,E,Q,E,S,E,U,C,C,O,a,C,C,W,O,I,A,E,C,E,S,E,C,E,C,C,E,C,C,C,E,E,S,C,E,O,I,Q,S,C,C,C,G,A,S,C,C,C,C,C,C,C,E,Q,O,C,G,I,C,S,C,E,E,C,M,E,K,C,E,E,E,E,E,E,A,C,E,C,C,E,C,E,E,I,C,E,K,C,E,C,C,E,E,S,C,E,O,I,Y,E,C,I,C,C,C,E,I,A,E,I,E,E,E,E,S,C,C,C,C,C,E,G,C,O,a,C,M,A,U,wC,I,E,E,E,K,C,E,G,E,E,E,E,C,O,E,C,E,E,Q,E,S,E,U,C,C,O,a,C,C,W,O,I,A,E,E,S,E,C,E,C,C,E,E,C,C,C,E,C,S,C,E,O,I,Q,S,C,C,C,E,E,I,C,C,E,E,E,E,E,G,E,E,E,E,C,C,C,S,E,C,C,C,E,G,K,C,E,E,C,C,E,C,I,K,Y,E,Q,O,C,E,K,C,C,E,I,C,E,G,E,C,C,E,C,E,C,E,C,M,E,C,E,C,C,E,C,E,C,E,C,C,S,E,C,E,E,O,E,C,S,E,C,E,E,Q,E,C,S,E,C,C,C,E,E,G,E,K,G,A,E,M,E,E,C,C,E,C,E,C,C,C,E,C,E,C,C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B,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAE1C,OAAO,CACT,EAEQ,EAAA,SAAA,CAAA,WAAW,CAAnB,SAAoB,CAAwC,E,O,E,I,C,S,C,E,O,E,K,E,K,EAC1D,IAAI,CAAC,iBAAiB,GACtB,IAAI,CAAC,SAAS,CAAC,G,E,K,C,C,M,EAER,GAAA,CAAA,IAAI,CAAC,YAAY,CAAC,GAAlB,MAAA,CAAA,EAAA,EAAA,CACL,MAAA,CAAA,EAAM,IAAI,CAAC,YAAY,GAAE,A,M,E,OAAzB,EAAA,IAAA,G,C,E,E,A,M,E,M,C,E,A,C,EAEH,EAEY,EAAA,SAAA,CAAA,WAAW,CAAxB,SAAyB,CAAuD,M,E,E,E,E,E,E,E,E,O,E,I,C,E,K,E,E,K,E,E,W,I,E,E,E,E,E,E,E,O,E,I,C,S,C,E,O,E,K,E,K,EAC1E,EAAU,CAAA,E,E,K,C,C,M,E,E,I,C,I,C,C,E,E,E,G,EAEa,EAAA,EAAA,G,E,K,C,C,M,E,M,C,E,E,I,G,A,M,E,G,A,C,E,E,I,E,E,I,C,M,C,E,E,CACzB,GADe,EAAM,EAAA,KAAA,CACjB,EACF,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAG/C,IAAI,CAAC,YAAY,CAAC,GAElB,GAAI,CACF,EAAS,IAAI,CAAC,YAAY,GAC1B,EAAU,CAAA,CACX,CAAC,MAAO,EAAG,CACV,GAAI,CAAE,CAAA,aAAa,CAAA,EACjB,MAAM,CAGT,CACD,IAAI,CAAC,QAAQ,EAAI,IAAI,CAAC,GAAG,C,E,K,C,C,M,E,M,C,E,E,A,M,E,M,C,E,G,A,M,E,O,E,C,M,E,I,E,E,C,E,G,A,M,E,G,E,I,C,I,C,C,G,G,G,E,C,C,G,C,E,I,E,C,E,E,M,A,C,E,M,C,E,E,C,M,C,E,E,I,C,G,A,M,E,E,I,G,E,K,C,C,M,E,M,C,E,G,A,M,G,G,E,M,E,K,C,M,C,E,A,M,G,M,C,E,A,M,GAG3B,GAAI,EAAS,CACX,GAAI,IAAI,CAAC,YAAY,CAAC,GACpB,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAE/C,MAAA,CAAA,EAAO,EAAM,AACd,CAGD,MADM,EAA8B,IAAI,CAAhC,EAAQ,EAAA,QAAA,CAAE,EAAG,EAAA,GAAA,CAAE,EAAQ,EAAA,QAAA,CACzB,AAAI,WACR,gCAAA,MAAA,CAAgC,AAAA,EAAW,GAAS,QAAA,MAAA,CAAO,EAAQ,MAAA,MAAA,CAAK,EAAG,2B,C,E,E,G,C,G,C,E,O,C,E,S,C,C,C,E,S,E,C,E,G,C,E,E,I,C,G,C,M,E,C,E,E,C,C,S,E,C,E,G,C,E,E,K,C,G,C,M,E,C,E,E,C,C,S,E,C,M,C,C,E,I,C,E,E,K,E,A,C,C,E,E,K,Y,E,E,I,E,S,C,E,E,E,E,E,I,C,E,E,C,E,A,C,E,E,K,C,E,G,E,C,E,I,G,EAE9E,EAEM,EAAA,SAAA,CAAA,iBAAiB,CAAxB,SACE,CAAuD,EAEvD,OAAO,IAAI,CAAC,gBAAgB,CAAC,EAAQ,CAAA,EACvC,EAEO,EAAA,SAAA,CAAA,YAAY,CAAnB,SAAoB,CAAuD,EACzE,OAAO,IAAI,CAAC,gBAAgB,CAAC,EAAQ,CAAA,EACvC,EAEe,EAAA,SAAA,CAAA,gBAAgB,CAA/B,SAAgC,CAAuD,CAAE,CAAgB,E,O,E,I,C,U,e,E,E,E,E,E,E,E,E,O,E,I,C,S,C,E,O,E,K,E,K,EACnG,EAAwB,EACxB,EAAiB,G,E,K,C,C,M,E,E,I,C,I,C,C,E,G,G,G,EAEM,EAAA,EAAA,G,E,K,C,C,M,E,M,C,E,E,E,I,I,A,M,E,G,A,C,E,E,I,E,E,I,C,M,C,E,G,CACzB,GADe,EAAM,EAAA,KAAA,CACjB,GAAW,AAAmB,IAAnB,EACb,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAG/C,IAAI,CAAC,YAAY,CAAC,GAEd,IACF,EAAiB,IAAI,CAAC,aAAa,GACnC,EAAwB,CAAA,EACxB,IAAI,CAAC,QAAQ,I,E,K,C,C,M,E,E,I,C,I,C,C,E,G,G,E,E,K,C,C,M,EAKL,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,YAAY,IAAjB,AAAN,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,IAAA,GAAA,A,M,EACA,GADA,EAAA,IAAA,GACI,AAAqB,GAArB,EAAE,EACJ,MAAA,CAAA,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C,E,M,C,C,C,E,C,E,K,E,C,A,C,E,E,M,A,G,E,I,C,G,C,E,E,I,A,G,C,A,C,E,E,I,C,E,C,C,E,C,E,I,C,O,E,O,E,E,A,G,C,E,C,A,E,C,C,E,C,E,K,C,A,E,C,C,E,E,K,E,K,E,E,E,K,M,E,O,E,K,G,C,M,C,C,E,C,K,C,C,C,M,E,E,K,G,E,C,C,E,C,E,C,E,C,Q,M,E,E,E,G,C,G,G,E,I,C,G,G,Q,S,G,C,C,E,A,C,E,E,I,A,E,M,C,G,C,C,E,M,C,E,A,G,C,A,I,C,C,E,E,A,I,C,C,E,A,E,C,E,E,Q,C,G,A,I,C,C,E,E,C,C,G,C,C,E,C,C,C,E,E,C,C,E,C,C,C,E,A,E,C,E,K,C,C,C,E,C,K,C,G,A,I,C,C,E,E,E,K,C,C,C,E,C,C,E,K,C,C,C,E,C,E,E,K,C,G,G,E,K,C,C,C,E,C,C,E,K,C,C,C,E,C,E,G,C,I,C,G,K,C,C,C,E,E,E,G,C,G,G,E,I,C,G,G,Q,C,E,E,I,C,E,E,C,M,E,C,E,C,E,E,C,E,C,Q,C,E,E,C,C,G,A,E,C,C,E,C,M,C,C,E,C,M,C,M,C,C,E,C,C,C,E,C,K,E,K,C,C,C,E,C,E,E,C,C,C,E,E,S,C,E,O,I,Y,E,C,I,C,C,C,E,I,A,E,I,E,E,E,E,S,C,C,C,C,C,E,G,C,O,a,C,M,A,U,wC,I,E,E,E,K,C,E,G,E,E,E,E,C,O,E,C,E,E,Q,E,S,E,U,C,C,O,a,C,C,W,O,I,A,E,E,S,E,C,E,C,C,E,E,C,C,C,E,C,S,C,E,O,I,Q,S,C,C,C,E,E,I,C,C,E,E,E,E,E,G,E,E,E,E,C,C,C,S,E,C,C,C,E,G,K,C,E,E,C,C,E,C,I,K,Y,E,Q,O,C,E,K,C,C,E,I,C,E,G,E,C,C,E,C,E,C,E,C,M,E,C,E,C,C,E,C,E,C,E,C,C,S,E,C,E,E,O,E,C,S,E,C,E,E,Q,E,C,S,E,C,C,C,E,E,G,E,K,G,A,E,M,E,E,C,C,E,C,E,C,C,C,E,C,E,C,C,EsBxkBa,EAAsC,CAAA,EEjCnD,EAAA,WAKE,SAAA,EACmB,CAAoF,CACpF,CAAuC,CACvC,CAA4B,CAC5B,CAA+C,CAC/C,CAAgB,CAChB,CAAoB,CACpB,CA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","sources":["<anon>","node_modules/@parcel/node-resolver-core/lib/_empty.js","lib/dataconnection/StreamConnection/StreamConnection.ts","lib/logger.ts","lib/dataconnection/DataConnection.ts","lib/negotiator.ts","lib/enums.ts","lib/baseconnection.ts","lib/peerError.ts","node_modules/eventemitter3/index.js","lib/utils/randomToken.ts","lib/dataconnection/StreamConnection/MsgPack.ts","node_modules/@msgpack/msgpack/dist.es5+esm/decodeAsync.mjs","node_modules/@msgpack/msgpack/src/decodeAsync.ts","node_modules/@msgpack/msgpack/dist.es5+esm/Decoder.mjs","node_modules/@msgpack/msgpack/src/Decoder.ts","node_modules/@msgpack/msgpack/dist.es5+esm/utils/prettyByte.mjs","node_modules/@msgpack/msgpack/src/utils/prettyByte.ts","node_modules/@msgpack/msgpack/dist.es5+esm/ExtensionCodec.mjs","node_modules/@msgpack/msgpack/src/ExtensionCodec.ts","node_modules/@msgpack/msgpack/dist.es5+esm/ExtData.mjs","node_modules/@msgpack/msgpack/src/ExtData.ts","node_modules/@msgpack/msgpack/dist.es5+esm/timestamp.mjs","node_modules/@msgpack/msgpack/src/timestamp.ts","node_modules/@msgpack/msgpack/dist.es5+esm/DecodeError.mjs","node_modules/@msgpack/msgpack/src/DecodeError.ts","node_modules/@msgpack/msgpack/dist.es5+esm/utils/int.mjs","node_modules/@msgpack/msgpack/src/utils/int.ts","node_modules/@msgpack/msgpack/dist.es5+esm/utils/utf8.mjs","node_modules/@msgpack/msgpack/src/utils/utf8.ts","node_modules/@msgpack/msgpack/dist.es5+esm/utils/typedArrays.mjs","node_modules/@msgpack/msgpack/src/utils/typedArrays.ts","node_modules/@msgpack/msgpack/dist.es5+esm/CachedKeyDecoder.mjs","node_modules/@msgpack/msgpack/src/CachedKeyDecoder.ts","node_modules/@msgpack/msgpack/dist.es5+esm/utils/stream.mjs","node_modules/@msgpack/msgpack/src/utils/stream.ts","node_modules/@msgpack/msgpack/dist.es5+esm/decode.mjs","node_modules/@msgpack/msgpack/src/decode.ts","node_modules/@msgpack/msgpack/dist.es5+esm/Encoder.mjs","node_modules/@msgpack/msgpack/src/Encoder.ts"],"sourcesContent":["\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequire83ac\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequire83ac\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nparcelRegister(\"5L6jO\", function(module, exports) {\n\"use strict\";\n\n});\n\nparcelRegister(\"hBa25\", function(module, exports) {\n\n$parcel$export(module.exports, \"StreamConnection\", () => $b68ef8ad985e69ce$export$72aa44612e2200cd);\n\nvar $aGTqB = parcelRequire(\"aGTqB\");\n\nvar $brJ7I = parcelRequire(\"brJ7I\");\nclass $b68ef8ad985e69ce$export$72aa44612e2200cd extends (0, $brJ7I.DataConnection) {\n constructor(peerId, provider, options){\n super(peerId, provider, {\n ...options,\n reliable: true\n });\n this._CHUNK_SIZE = 32768;\n this._splitStream = new TransformStream({\n transform: (chunk, controller)=>{\n for(let split = 0; split < chunk.length; split += this._CHUNK_SIZE)controller.enqueue(chunk.subarray(split, split + this._CHUNK_SIZE));\n }\n });\n this._rawSendStream = new WritableStream({\n write: async (chunk, controller)=>{\n const openEvent = new Promise((resolve)=>this.dataChannel.addEventListener(\"bufferedamountlow\", resolve, {\n once: true\n }));\n // if we can send the chunk now, send it\n // if not, we wait until at least half of the sending buffer is free again\n await (this.dataChannel.bufferedAmount <= (0, $brJ7I.DataConnection).MAX_BUFFERED_AMOUNT - chunk.byteLength || openEvent);\n // TODO: what can go wrong here?\n try {\n this.dataChannel.send(chunk);\n } catch (e) {\n (0, $aGTqB.default).error(`DC#:${this.connectionId} Error when sending:`, e);\n controller.error(e);\n this.close();\n }\n }\n });\n this.writer = this._splitStream.writable.getWriter();\n this._rawReadStream = new ReadableStream({\n start: (controller)=>{\n this.once(\"open\", ()=>{\n this.dataChannel.addEventListener(\"message\", (e)=>{\n controller.enqueue(e.data);\n });\n });\n }\n });\n this._splitStream.readable.pipeTo(this._rawSendStream);\n }\n _initializeDataChannel(dc) {\n super._initializeDataChannel(dc);\n this.dataChannel.binaryType = \"arraybuffer\";\n this.dataChannel.bufferedAmountLowThreshold = (0, $brJ7I.DataConnection).MAX_BUFFERED_AMOUNT / 2;\n }\n}\n\n});\nparcelRegister(\"aGTqB\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $55e90223fe532944$export$2e2bcd8739ae039);\nconst $55e90223fe532944$var$LOG_PREFIX = \"PeerJS: \";\nvar $55e90223fe532944$export$243e62d78d3b544d;\n(function(LogLevel) {\n /**\n\t * Prints no logs.\n\t */ LogLevel[LogLevel[\"Disabled\"] = 0] = \"Disabled\";\n /**\n\t * Prints only errors.\n\t */ LogLevel[LogLevel[\"Errors\"] = 1] = \"Errors\";\n /**\n\t * Prints errors and warnings.\n\t */ LogLevel[LogLevel[\"Warnings\"] = 2] = \"Warnings\";\n /**\n\t * Prints all logs.\n\t */ LogLevel[LogLevel[\"All\"] = 3] = \"All\";\n})($55e90223fe532944$export$243e62d78d3b544d || ($55e90223fe532944$export$243e62d78d3b544d = {}));\nclass $55e90223fe532944$var$Logger {\n get logLevel() {\n return this._logLevel;\n }\n set logLevel(logLevel) {\n this._logLevel = logLevel;\n }\n log(...args) {\n if (this._logLevel >= 3) this._print(3, ...args);\n }\n warn(...args) {\n if (this._logLevel >= 2) this._print(2, ...args);\n }\n error(...args) {\n if (this._logLevel >= 1) this._print(1, ...args);\n }\n setLogFunction(fn) {\n this._print = fn;\n }\n _print(logLevel, ...rest) {\n const copy = [\n $55e90223fe532944$var$LOG_PREFIX,\n ...rest\n ];\n for(const i in copy)if (copy[i] instanceof Error) copy[i] = \"(\" + copy[i].name + \") \" + copy[i].message;\n if (logLevel >= 3) console.log(...copy);\n else if (logLevel >= 2) console.warn(\"WARNING\", ...copy);\n else if (logLevel >= 1) console.error(\"ERROR\", ...copy);\n }\n constructor(){\n this._logLevel = 0;\n }\n}\nvar $55e90223fe532944$export$2e2bcd8739ae039 = new $55e90223fe532944$var$Logger();\n\n});\n\nparcelRegister(\"brJ7I\", function(module, exports) {\n\n$parcel$export(module.exports, \"DataConnection\", () => $f7363ab6888d1e18$export$d365f7ad9d7df9c9);\n\nvar $aGTqB = parcelRequire(\"aGTqB\");\n\nvar $eEr5Q = parcelRequire(\"eEr5Q\");\n\nvar $3pPW3 = parcelRequire(\"3pPW3\");\n\nvar $kRc3N = parcelRequire(\"kRc3N\");\n\nvar $9Ek5E = parcelRequire(\"9Ek5E\");\nclass $f7363ab6888d1e18$export$d365f7ad9d7df9c9 extends (0, $kRc3N.BaseConnection) {\n static #_ = this.ID_PREFIX = \"dc_\";\n static #_1 = this.MAX_BUFFERED_AMOUNT = 8388608;\n get type() {\n return (0, $3pPW3.ConnectionType).Data;\n }\n constructor(peerId, provider, options){\n super(peerId, provider, options);\n this.connectionId = this.options.connectionId || $f7363ab6888d1e18$export$d365f7ad9d7df9c9.ID_PREFIX + (0, $9Ek5E.randomToken)();\n this.label = this.options.label || this.connectionId;\n this.reliable = !!this.options.reliable;\n this._negotiator = new (0, $eEr5Q.Negotiator)(this);\n this._negotiator.startConnection(this.options._payload || {\n originator: true,\n reliable: this.reliable\n });\n }\n /** Called by the Negotiator when the DataChannel is ready. */ _initializeDataChannel(dc) {\n this.dataChannel = dc;\n this.dataChannel.onopen = ()=>{\n (0, $aGTqB.default).log(`DC#${this.connectionId} dc connection success`);\n this._open = true;\n this.emit(\"open\");\n };\n this.dataChannel.onmessage = (e)=>{\n (0, $aGTqB.default).log(`DC#${this.connectionId} dc onmessage:`, e.data);\n // this._handleDataMessage(e);\n };\n this.dataChannel.onclose = ()=>{\n (0, $aGTqB.default).log(`DC#${this.connectionId} dc closed for:`, this.peer);\n this.close();\n };\n }\n /**\n\t * Exposed functionality for users.\n\t */ /** Allows user to close connection. */ close(options) {\n if (options?.flush) {\n this.send({\n __peerData: {\n type: \"close\"\n }\n });\n return;\n }\n if (this._negotiator) {\n this._negotiator.cleanup();\n this._negotiator = null;\n }\n if (this.provider) {\n this.provider._removeConnection(this);\n this.provider = null;\n }\n if (this.dataChannel) {\n this.dataChannel.onopen = null;\n this.dataChannel.onmessage = null;\n this.dataChannel.onclose = null;\n this.dataChannel = null;\n }\n if (!this.open) return;\n this._open = false;\n super.emit(\"close\");\n }\n /** Allows user to send data. */ send(data, chunked = false) {\n if (!this.open) {\n this.emitError((0, $3pPW3.DataConnectionErrorType).NotOpenYet, \"Connection is not open. You should listen for the `open` event before sending messages.\");\n return;\n }\n return this._send(data, chunked);\n }\n async handleMessage(message) {\n const payload = message.payload;\n switch(message.type){\n case (0, $3pPW3.ServerMessageType).Answer:\n await this._negotiator.handleSDP(message.type, payload.sdp);\n break;\n case (0, $3pPW3.ServerMessageType).Candidate:\n await this._negotiator.handleCandidate(payload.candidate);\n break;\n default:\n (0, $aGTqB.default).warn(\"Unrecognized message type:\", message.type, \"from peer:\", this.peer);\n break;\n }\n }\n}\n\n});\nparcelRegister(\"eEr5Q\", function(module, exports) {\n\n$parcel$export(module.exports, \"Negotiator\", () => $ee2f7acfd22ad8cb$export$89e6bb5ad64bf4a);\n\nvar $aGTqB = parcelRequire(\"aGTqB\");\n\nvar $3pPW3 = parcelRequire(\"3pPW3\");\nclass $ee2f7acfd22ad8cb$export$89e6bb5ad64bf4a {\n constructor(connection){\n this.connection = connection;\n }\n /** Returns a PeerConnection object set up correctly (for data, media). */ startConnection(options) {\n const peerConnection = this._startPeerConnection();\n // Set the connection's PC.\n this.connection.peerConnection = peerConnection;\n if (this.connection.type === (0, $3pPW3.ConnectionType).Media && options._stream) this._addTracksToConnection(options._stream, peerConnection);\n // What do we need to do now?\n if (options.originator) {\n const dataConnection = this.connection;\n const config = {\n ordered: !!options.reliable\n };\n const dataChannel = peerConnection.createDataChannel(dataConnection.label, config);\n dataConnection._initializeDataChannel(dataChannel);\n this._makeOffer();\n } else this.handleSDP(\"OFFER\", options.sdp);\n }\n /** Start a PC. */ _startPeerConnection() {\n (0, $aGTqB.default).log(\"Creating RTCPeerConnection.\");\n const peerConnection = new RTCPeerConnection(this.connection.provider.options.config);\n this._setupListeners(peerConnection);\n return peerConnection;\n }\n /** Set up various WebRTC listeners. */ _setupListeners(peerConnection) {\n const peerId = this.connection.peer;\n const connectionId = this.connection.connectionId;\n const connectionType = this.connection.type;\n const provider = this.connection.provider;\n // ICE CANDIDATES.\n (0, $aGTqB.default).log(\"Listening for ICE candidates.\");\n peerConnection.onicecandidate = (evt)=>{\n if (!evt.candidate || !evt.candidate.candidate) return;\n (0, $aGTqB.default).log(`Received ICE candidates for ${peerId}:`, evt.candidate);\n provider.socket.send({\n type: (0, $3pPW3.ServerMessageType).Candidate,\n payload: {\n candidate: evt.candidate,\n type: connectionType,\n connectionId: connectionId\n },\n dst: peerId\n });\n };\n peerConnection.oniceconnectionstatechange = ()=>{\n switch(peerConnection.iceConnectionState){\n case \"failed\":\n (0, $aGTqB.default).log(\"iceConnectionState is failed, closing connections to \" + peerId);\n this.connection.emitError((0, $3pPW3.BaseConnectionErrorType).NegotiationFailed, \"Negotiation of connection to \" + peerId + \" failed.\");\n this.connection.close();\n break;\n case \"closed\":\n (0, $aGTqB.default).log(\"iceConnectionState is closed, closing connections to \" + peerId);\n this.connection.emitError((0, $3pPW3.BaseConnectionErrorType).ConnectionClosed, \"Connection to \" + peerId + \" closed.\");\n this.connection.close();\n break;\n case \"disconnected\":\n (0, $aGTqB.default).log(\"iceConnectionState changed to disconnected on the connection with \" + peerId);\n break;\n case \"completed\":\n peerConnection.onicecandidate = ()=>{};\n break;\n }\n this.connection.emit(\"iceStateChanged\", peerConnection.iceConnectionState);\n };\n // DATACONNECTION.\n (0, $aGTqB.default).log(\"Listening for data channel\");\n // Fired between offer and answer, so options should already be saved\n // in the options hash.\n peerConnection.ondatachannel = (evt)=>{\n (0, $aGTqB.default).log(\"Received data channel\");\n const dataChannel = evt.channel;\n const connection = provider.getConnection(peerId, connectionId);\n connection._initializeDataChannel(dataChannel);\n };\n // MEDIACONNECTION.\n (0, $aGTqB.default).log(\"Listening for remote stream\");\n peerConnection.ontrack = (evt)=>{\n (0, $aGTqB.default).log(\"Received remote stream\");\n const stream = evt.streams[0];\n const connection = provider.getConnection(peerId, connectionId);\n if (connection.type === (0, $3pPW3.ConnectionType).Media) {\n const mediaConnection = connection;\n this._addStreamToMediaConnection(stream, mediaConnection);\n }\n };\n }\n cleanup() {\n (0, $aGTqB.default).log(\"Cleaning up PeerConnection to \" + this.connection.peer);\n const peerConnection = this.connection.peerConnection;\n if (!peerConnection) return;\n this.connection.peerConnection = null;\n //unsubscribe from all PeerConnection's events\n peerConnection.onicecandidate = peerConnection.oniceconnectionstatechange = peerConnection.ondatachannel = peerConnection.ontrack = ()=>{};\n const peerConnectionNotClosed = peerConnection.signalingState !== \"closed\";\n let dataChannelNotClosed = false;\n const dataChannel = this.connection.dataChannel;\n if (dataChannel) dataChannelNotClosed = !!dataChannel.readyState && dataChannel.readyState !== \"closed\";\n if (peerConnectionNotClosed || dataChannelNotClosed) peerConnection.close();\n }\n async _makeOffer() {\n const peerConnection = this.connection.peerConnection;\n const provider = this.connection.provider;\n try {\n const offer = await peerConnection.createOffer(this.connection.options.constraints);\n (0, $aGTqB.default).log(\"Created offer.\");\n if (this.connection.options.sdpTransform && typeof this.connection.options.sdpTransform === \"function\") offer.sdp = this.connection.options.sdpTransform(offer.sdp) || offer.sdp;\n try {\n await peerConnection.setLocalDescription(offer);\n (0, $aGTqB.default).log(\"Set localDescription:\", offer, `for:${this.connection.peer}`);\n let payload = {\n sdp: offer,\n type: this.connection.type,\n connectionId: this.connection.connectionId,\n metadata: this.connection.metadata\n };\n if (this.connection.type === (0, $3pPW3.ConnectionType).Data) {\n const dataConnection = this.connection;\n payload = {\n ...payload,\n label: dataConnection.label,\n reliable: dataConnection.reliable,\n serialization: dataConnection.serialization\n };\n }\n provider.socket.send({\n type: (0, $3pPW3.ServerMessageType).Offer,\n payload: payload,\n dst: this.connection.peer\n });\n } catch (err) {\n // TODO: investigate why _makeOffer is being called from the answer\n if (err != \"OperationError: Failed to set local offer sdp: Called in wrong state: kHaveRemoteOffer\") {\n provider.emitError((0, $3pPW3.PeerErrorType).WebRTC, err);\n (0, $aGTqB.default).log(\"Failed to setLocalDescription, \", err);\n }\n }\n } catch (err_1) {\n provider.emitError((0, $3pPW3.PeerErrorType).WebRTC, err_1);\n (0, $aGTqB.default).log(\"Failed to createOffer, \", err_1);\n }\n }\n async _makeAnswer() {\n const peerConnection = this.connection.peerConnection;\n const provider = this.connection.provider;\n try {\n const answer = await peerConnection.createAnswer();\n (0, $aGTqB.default).log(\"Created answer.\");\n if (this.connection.options.sdpTransform && typeof this.connection.options.sdpTransform === \"function\") answer.sdp = this.connection.options.sdpTransform(answer.sdp) || answer.sdp;\n try {\n await peerConnection.setLocalDescription(answer);\n (0, $aGTqB.default).log(`Set localDescription:`, answer, `for:${this.connection.peer}`);\n provider.socket.send({\n type: (0, $3pPW3.ServerMessageType).Answer,\n payload: {\n sdp: answer,\n type: this.connection.type,\n connectionId: this.connection.connectionId\n },\n dst: this.connection.peer\n });\n } catch (err) {\n provider.emitError((0, $3pPW3.PeerErrorType).WebRTC, err);\n (0, $aGTqB.default).log(\"Failed to setLocalDescription, \", err);\n }\n } catch (err_1) {\n provider.emitError((0, $3pPW3.PeerErrorType).WebRTC, err_1);\n (0, $aGTqB.default).log(\"Failed to create answer, \", err_1);\n }\n }\n /** Handle an SDP. */ async handleSDP(type, sdp) {\n sdp = new RTCSessionDescription(sdp);\n const peerConnection = this.connection.peerConnection;\n const provider = this.connection.provider;\n (0, $aGTqB.default).log(\"Setting remote description\", sdp);\n const self = this;\n try {\n await peerConnection.setRemoteDescription(sdp);\n (0, $aGTqB.default).log(`Set remoteDescription:${type} for:${this.connection.peer}`);\n if (type === \"OFFER\") await self._makeAnswer();\n } catch (err) {\n provider.emitError((0, $3pPW3.PeerErrorType).WebRTC, err);\n (0, $aGTqB.default).log(\"Failed to setRemoteDescription, \", err);\n }\n }\n /** Handle a candidate. */ async handleCandidate(ice) {\n (0, $aGTqB.default).log(`handleCandidate:`, ice);\n try {\n await this.connection.peerConnection.addIceCandidate(ice);\n (0, $aGTqB.default).log(`Added ICE candidate for:${this.connection.peer}`);\n } catch (err) {\n this.connection.provider.emitError((0, $3pPW3.PeerErrorType).WebRTC, err);\n (0, $aGTqB.default).log(\"Failed to handleCandidate, \", err);\n }\n }\n _addTracksToConnection(stream, peerConnection) {\n (0, $aGTqB.default).log(`add tracks from stream ${stream.id} to peer connection`);\n if (!peerConnection.addTrack) return (0, $aGTqB.default).error(`Your browser does't support RTCPeerConnection#addTrack. Ignored.`);\n stream.getTracks().forEach((track)=>{\n peerConnection.addTrack(track, stream);\n });\n }\n _addStreamToMediaConnection(stream, mediaConnection) {\n (0, $aGTqB.default).log(`add stream ${stream.id} to media connection ${mediaConnection.connectionId}`);\n mediaConnection.addStream(stream);\n }\n}\n\n});\nparcelRegister(\"3pPW3\", function(module, exports) {\n\n$parcel$export(module.exports, \"ConnectionType\", () => $e07633d19f7426e9$export$3157d57b4135e3bc);\n$parcel$export(module.exports, \"PeerErrorType\", () => $e07633d19f7426e9$export$9547aaa2e39030ff);\n$parcel$export(module.exports, \"BaseConnectionErrorType\", () => $e07633d19f7426e9$export$7974935686149686);\n$parcel$export(module.exports, \"DataConnectionErrorType\", () => $e07633d19f7426e9$export$49ae800c114df41d);\n$parcel$export(module.exports, \"ServerMessageType\", () => $e07633d19f7426e9$export$adb4a1754da6f10d);\nvar $e07633d19f7426e9$export$3157d57b4135e3bc;\n(function(ConnectionType) {\n ConnectionType[\"Data\"] = \"data\";\n ConnectionType[\"Media\"] = \"media\";\n})($e07633d19f7426e9$export$3157d57b4135e3bc || ($e07633d19f7426e9$export$3157d57b4135e3bc = {}));\nvar $e07633d19f7426e9$export$9547aaa2e39030ff;\n(function(PeerErrorType) {\n /**\n\t * The client's browser does not support some or all WebRTC features that you are trying to use.\n\t */ PeerErrorType[\"BrowserIncompatible\"] = \"browser-incompatible\";\n /**\n\t * You've already disconnected this peer from the server and can no longer make any new connections on it.\n\t */ PeerErrorType[\"Disconnected\"] = \"disconnected\";\n /**\n\t * The ID passed into the Peer constructor contains illegal characters.\n\t */ PeerErrorType[\"InvalidID\"] = \"invalid-id\";\n /**\n\t * The API key passed into the Peer constructor contains illegal characters or is not in the system (cloud server only).\n\t */ PeerErrorType[\"InvalidKey\"] = \"invalid-key\";\n /**\n\t * Lost or cannot establish a connection to the signalling server.\n\t */ PeerErrorType[\"Network\"] = \"network\";\n /**\n\t * The peer you're trying to connect to does not exist.\n\t */ PeerErrorType[\"PeerUnavailable\"] = \"peer-unavailable\";\n /**\n\t * PeerJS is being used securely, but the cloud server does not support SSL. Use a custom PeerServer.\n\t */ PeerErrorType[\"SslUnavailable\"] = \"ssl-unavailable\";\n /**\n\t * Unable to reach the server.\n\t */ PeerErrorType[\"ServerError\"] = \"server-error\";\n /**\n\t * An error from the underlying socket.\n\t */ PeerErrorType[\"SocketError\"] = \"socket-error\";\n /**\n\t * The underlying socket closed unexpectedly.\n\t */ PeerErrorType[\"SocketClosed\"] = \"socket-closed\";\n /**\n\t * The ID passed into the Peer constructor is already taken.\n\t *\n\t * :::caution\n\t * This error is not fatal if your peer has open peer-to-peer connections.\n\t * This can happen if you attempt to {@apilink Peer.reconnect} a peer that has been disconnected from the server,\n\t * but its old ID has now been taken.\n\t * :::\n\t */ PeerErrorType[\"UnavailableID\"] = \"unavailable-id\";\n /**\n\t * Native WebRTC errors.\n\t */ PeerErrorType[\"WebRTC\"] = \"webrtc\";\n})($e07633d19f7426e9$export$9547aaa2e39030ff || ($e07633d19f7426e9$export$9547aaa2e39030ff = {}));\nvar $e07633d19f7426e9$export$7974935686149686;\n(function(BaseConnectionErrorType) {\n BaseConnectionErrorType[\"NegotiationFailed\"] = \"negotiation-failed\";\n BaseConnectionErrorType[\"ConnectionClosed\"] = \"connection-closed\";\n})($e07633d19f7426e9$export$7974935686149686 || ($e07633d19f7426e9$export$7974935686149686 = {}));\nvar $e07633d19f7426e9$export$49ae800c114df41d;\n(function(DataConnectionErrorType) {\n DataConnectionErrorType[\"NotOpenYet\"] = \"not-open-yet\";\n DataConnectionErrorType[\"MessageToBig\"] = \"message-too-big\";\n})($e07633d19f7426e9$export$49ae800c114df41d || ($e07633d19f7426e9$export$49ae800c114df41d = {}));\nvar $e07633d19f7426e9$export$89f507cf986a947;\n(function(SerializationType) {\n SerializationType[\"Binary\"] = \"binary\";\n SerializationType[\"BinaryUTF8\"] = \"binary-utf8\";\n SerializationType[\"JSON\"] = \"json\";\n SerializationType[\"None\"] = \"raw\";\n})($e07633d19f7426e9$export$89f507cf986a947 || ($e07633d19f7426e9$export$89f507cf986a947 = {}));\nvar $e07633d19f7426e9$export$3b5c4a4b6354f023;\n(function(SocketEventType) {\n SocketEventType[\"Message\"] = \"message\";\n SocketEventType[\"Disconnected\"] = \"disconnected\";\n SocketEventType[\"Error\"] = \"error\";\n SocketEventType[\"Close\"] = \"close\";\n})($e07633d19f7426e9$export$3b5c4a4b6354f023 || ($e07633d19f7426e9$export$3b5c4a4b6354f023 = {}));\nvar $e07633d19f7426e9$export$adb4a1754da6f10d;\n(function(ServerMessageType) {\n ServerMessageType[\"Heartbeat\"] = \"HEARTBEAT\";\n ServerMessageType[\"Candidate\"] = \"CANDIDATE\";\n ServerMessageType[\"Offer\"] = \"OFFER\";\n ServerMessageType[\"Answer\"] = \"ANSWER\";\n ServerMessageType[\"Open\"] = \"OPEN\";\n ServerMessageType[\"Error\"] = \"ERROR\";\n ServerMessageType[\"IdTaken\"] = \"ID-TAKEN\";\n ServerMessageType[\"InvalidKey\"] = \"INVALID-KEY\";\n ServerMessageType[\"Leave\"] = \"LEAVE\";\n ServerMessageType[\"Expire\"] = \"EXPIRE\";\n})($e07633d19f7426e9$export$adb4a1754da6f10d || ($e07633d19f7426e9$export$adb4a1754da6f10d = {}));\n\n});\n\n\nparcelRegister(\"kRc3N\", function(module, exports) {\n\n$parcel$export(module.exports, \"BaseConnection\", () => $76eedc1a03766751$export$23a2a68283c24d80);\n\nvar $8edWV = parcelRequire(\"8edWV\");\nclass $76eedc1a03766751$export$23a2a68283c24d80 extends (0, $8edWV.EventEmitterWithError) {\n /**\n\t * Whether the media connection is active (e.g. your call has been answered).\n\t * You can check this if you want to set a maximum wait time for a one-sided call.\n\t */ get open() {\n return this._open;\n }\n constructor(/**\n\t\t * The ID of the peer on the other end of this connection.\n\t\t */ peer, provider, options){\n super();\n this.peer = peer;\n this.provider = provider;\n this.options = options;\n this._open = false;\n this.metadata = options.metadata;\n }\n}\n\n});\nparcelRegister(\"8edWV\", function(module, exports) {\n\n$parcel$export(module.exports, \"EventEmitterWithError\", () => $428dbabfb6f47b54$export$6a678e589c8a4542);\n\nvar $2b5HH = parcelRequire(\"2b5HH\");\n\nvar $aGTqB = parcelRequire(\"aGTqB\");\nclass $428dbabfb6f47b54$export$6a678e589c8a4542 extends (0, $2b5HH.EventEmitter) {\n /**\n\t * Emits a typed error message.\n\t *\n\t * @internal\n\t */ emitError(type, err) {\n (0, $aGTqB.default).error(\"Error:\", err);\n // @ts-ignore\n this.emit(\"error\", new $428dbabfb6f47b54$export$98871882f492de82(`${type}`, err));\n }\n}\nclass $428dbabfb6f47b54$export$98871882f492de82 extends Error {\n /**\n\t * @internal\n\t */ constructor(type, err){\n if (typeof err === \"string\") super(err);\n else {\n super();\n Object.assign(this, err);\n }\n this.type = type;\n }\n}\n\n});\nparcelRegister(\"2b5HH\", function(module, exports) {\n\"use strict\";\nvar $1961087dd546fd56$var$has = Object.prototype.hasOwnProperty, $1961087dd546fd56$var$prefix = \"~\";\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */ function $1961087dd546fd56$var$Events() {}\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n $1961087dd546fd56$var$Events.prototype = Object.create(null);\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new $1961087dd546fd56$var$Events().__proto__) $1961087dd546fd56$var$prefix = false;\n}\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */ function $1961087dd546fd56$var$EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */ function $1961087dd546fd56$var$addListener(emitter, event, fn, context, once) {\n if (typeof fn !== \"function\") throw new TypeError(\"The listener must be a function\");\n var listener = new $1961087dd546fd56$var$EE(fn, context || emitter, once), evt = $1961087dd546fd56$var$prefix ? $1961087dd546fd56$var$prefix + event : event;\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [\n emitter._events[evt],\n listener\n ];\n return emitter;\n}\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */ function $1961087dd546fd56$var$clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new $1961087dd546fd56$var$Events();\n else delete emitter._events[evt];\n}\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */ function $1961087dd546fd56$var$EventEmitter() {\n this._events = new $1961087dd546fd56$var$Events();\n this._eventsCount = 0;\n}\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */ $1961087dd546fd56$var$EventEmitter.prototype.eventNames = function eventNames() {\n var names = [], events, name;\n if (this._eventsCount === 0) return names;\n for(name in events = this._events)if ($1961087dd546fd56$var$has.call(events, name)) names.push($1961087dd546fd56$var$prefix ? name.slice(1) : name);\n if (Object.getOwnPropertySymbols) return names.concat(Object.getOwnPropertySymbols(events));\n return names;\n};\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */ $1961087dd546fd56$var$EventEmitter.prototype.listeners = function listeners(event) {\n var evt = $1961087dd546fd56$var$prefix ? $1961087dd546fd56$var$prefix + event : event, handlers = this._events[evt];\n if (!handlers) return [];\n if (handlers.fn) return [\n handlers.fn\n ];\n for(var i = 0, l = handlers.length, ee = new Array(l); i < l; i++)ee[i] = handlers[i].fn;\n return ee;\n};\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */ $1961087dd546fd56$var$EventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = $1961087dd546fd56$var$prefix ? $1961087dd546fd56$var$prefix + event : event, listeners = this._events[evt];\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */ $1961087dd546fd56$var$EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = $1961087dd546fd56$var$prefix ? $1961087dd546fd56$var$prefix + event : event;\n if (!this._events[evt]) return false;\n var listeners = this._events[evt], len = arguments.length, args, i;\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n switch(len){\n case 1:\n return listeners.fn.call(listeners.context), true;\n case 2:\n return listeners.fn.call(listeners.context, a1), true;\n case 3:\n return listeners.fn.call(listeners.context, a1, a2), true;\n case 4:\n return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n for(i = 1, args = new Array(len - 1); i < len; i++)args[i - 1] = arguments[i];\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length, j;\n for(i = 0; i < length; i++){\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n switch(len){\n case 1:\n listeners[i].fn.call(listeners[i].context);\n break;\n case 2:\n listeners[i].fn.call(listeners[i].context, a1);\n break;\n case 3:\n listeners[i].fn.call(listeners[i].context, a1, a2);\n break;\n case 4:\n listeners[i].fn.call(listeners[i].context, a1, a2, a3);\n break;\n default:\n if (!args) for(j = 1, args = new Array(len - 1); j < len; j++)args[j - 1] = arguments[j];\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n return true;\n};\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */ $1961087dd546fd56$var$EventEmitter.prototype.on = function on(event, fn, context) {\n return $1961087dd546fd56$var$addListener(this, event, fn, context, false);\n};\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */ $1961087dd546fd56$var$EventEmitter.prototype.once = function once(event, fn, context) {\n return $1961087dd546fd56$var$addListener(this, event, fn, context, true);\n};\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */ $1961087dd546fd56$var$EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = $1961087dd546fd56$var$prefix ? $1961087dd546fd56$var$prefix + event : event;\n if (!this._events[evt]) return this;\n if (!fn) {\n $1961087dd546fd56$var$clearEvent(this, evt);\n return this;\n }\n var listeners = this._events[evt];\n if (listeners.fn) {\n if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) $1961087dd546fd56$var$clearEvent(this, evt);\n } else {\n for(var i = 0, events = [], length = listeners.length; i < length; i++)if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) events.push(listeners[i]);\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else $1961087dd546fd56$var$clearEvent(this, evt);\n }\n return this;\n};\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */ $1961087dd546fd56$var$EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n if (event) {\n evt = $1961087dd546fd56$var$prefix ? $1961087dd546fd56$var$prefix + event : event;\n if (this._events[evt]) $1961087dd546fd56$var$clearEvent(this, evt);\n } else {\n this._events = new $1961087dd546fd56$var$Events();\n this._eventsCount = 0;\n }\n return this;\n};\n//\n// Alias methods names because people roll like that.\n//\n$1961087dd546fd56$var$EventEmitter.prototype.off = $1961087dd546fd56$var$EventEmitter.prototype.removeListener;\n$1961087dd546fd56$var$EventEmitter.prototype.addListener = $1961087dd546fd56$var$EventEmitter.prototype.on;\n//\n// Expose the prefix.\n//\n$1961087dd546fd56$var$EventEmitter.prefixed = $1961087dd546fd56$var$prefix;\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\n$1961087dd546fd56$var$EventEmitter.EventEmitter = $1961087dd546fd56$var$EventEmitter;\nmodule.exports = $1961087dd546fd56$var$EventEmitter;\n\n});\n\n\n\nparcelRegister(\"9Ek5E\", function(module, exports) {\n\n$parcel$export(module.exports, \"randomToken\", () => $eb916fa843978df9$export$4e61f672936bec77);\nconst $eb916fa843978df9$export$4e61f672936bec77 = ()=>Math.random().toString(36).slice(2);\n\n});\n\n\n\nfunction $31bcb34ba1ba037f$export$78406e843f5312da(byte) {\n return \"\".concat(byte < 0 ? \"-\" : \"\", \"0x\").concat(Math.abs(byte).toString(16).padStart(2, \"0\"));\n}\n\n\n// ExtensionCodec to handle MessagePack extensions\n/**\n * ExtData is used to handle Extension Types that are not registered to ExtensionCodec.\n */ var $268a69da4c3a2b66$export$bcbeb236456bc779 = /** @class */ function() {\n function ExtData(type, data) {\n this.type = type;\n this.data = data;\n }\n return ExtData;\n}();\n\n\n// https://github.com/msgpack/msgpack/blob/master/spec.md#timestamp-extension-type\nvar $8bb13aa6087251ac$var$__extends = undefined && undefined.__extends || function() {\n var extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf || ({\n __proto__: []\n }) instanceof Array && function(d, b) {\n d.__proto__ = b;\n } || function(d, b) {\n for(var p in b)if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar $8bb13aa6087251ac$export$ef3eed12d06c0285 = /** @class */ function(_super) {\n $8bb13aa6087251ac$var$__extends(DecodeError, _super);\n function DecodeError(message) {\n var _this = _super.call(this, message) || this;\n // fix the prototype chain in a cross-platform way\n var proto = Object.create(DecodeError.prototype);\n Object.setPrototypeOf(_this, proto);\n Object.defineProperty(_this, \"name\", {\n configurable: true,\n enumerable: false,\n value: DecodeError.name\n });\n return _this;\n }\n return DecodeError;\n}(Error);\n\n\n// Integer Utility\nvar $518bfda92fef5c7f$export$3314b2c271c86d70 = 4294967295;\nfunction $518bfda92fef5c7f$export$20f71c4c8b0f96c3(view, offset, value) {\n var high = value / 4294967296;\n var low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\nfunction $518bfda92fef5c7f$export$8532a5209571c04a(view, offset, value) {\n var high = Math.floor(value / 4294967296);\n var low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\nfunction $518bfda92fef5c7f$export$69825c7adcc820c6(view, offset) {\n var high = view.getInt32(offset);\n var low = view.getUint32(offset + 4);\n return high * 4294967296 + low;\n}\nfunction $518bfda92fef5c7f$export$59a2dbf579ff9568(view, offset) {\n var high = view.getUint32(offset);\n var low = view.getUint32(offset + 4);\n return high * 4294967296 + low;\n}\n\n\nvar $90f42a47dc95aba0$export$f18369fc203f4e13 = -1;\nvar $90f42a47dc95aba0$var$TIMESTAMP32_MAX_SEC = 4294967295; // 32-bit unsigned int\nvar $90f42a47dc95aba0$var$TIMESTAMP64_MAX_SEC = 17179869183; // 34-bit unsigned int\nfunction $90f42a47dc95aba0$export$2fd05b828dd81159(_a) {\n var sec = _a.sec, nsec = _a.nsec;\n if (sec >= 0 && nsec >= 0 && sec <= $90f42a47dc95aba0$var$TIMESTAMP64_MAX_SEC) {\n // Here sec >= 0 && nsec >= 0\n if (nsec === 0 && sec <= $90f42a47dc95aba0$var$TIMESTAMP32_MAX_SEC) {\n // timestamp 32 = { sec32 (unsigned) }\n var rv = new Uint8Array(4);\n var view = new DataView(rv.buffer);\n view.setUint32(0, sec);\n return rv;\n } else {\n // timestamp 64 = { nsec30 (unsigned), sec34 (unsigned) }\n var secHigh = sec / 0x100000000;\n var secLow = sec & 0xffffffff;\n var rv = new Uint8Array(8);\n var view = new DataView(rv.buffer);\n // nsec30 | secHigh2\n view.setUint32(0, nsec << 2 | secHigh & 0x3);\n // secLow32\n view.setUint32(4, secLow);\n return rv;\n }\n } else {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n var rv = new Uint8Array(12);\n var view = new DataView(rv.buffer);\n view.setUint32(0, nsec);\n (0, $518bfda92fef5c7f$export$8532a5209571c04a)(view, 4, sec);\n return rv;\n }\n}\nfunction $90f42a47dc95aba0$export$221d97b3b00b03c2(date) {\n var msec = date.getTime();\n var sec = Math.floor(msec / 1e3);\n var nsec = (msec - sec * 1e3) * 1e6;\n // Normalizes { sec, nsec } to ensure nsec is unsigned.\n var nsecInSec = Math.floor(nsec / 1e9);\n return {\n sec: sec + nsecInSec,\n nsec: nsec - nsecInSec * 1e9\n };\n}\nfunction $90f42a47dc95aba0$export$32420f352fe0fc83(object) {\n if (object instanceof Date) {\n var timeSpec = $90f42a47dc95aba0$export$221d97b3b00b03c2(object);\n return $90f42a47dc95aba0$export$2fd05b828dd81159(timeSpec);\n } else return null;\n}\nfunction $90f42a47dc95aba0$export$abfc8800a5159711(data) {\n var view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n // data may be 32, 64, or 96 bits\n switch(data.byteLength){\n case 4:\n // timestamp 32 = { sec32 }\n var sec = view.getUint32(0);\n var nsec = 0;\n return {\n sec: sec,\n nsec: nsec\n };\n case 8:\n // timestamp 64 = { nsec30, sec34 }\n var nsec30AndSecHigh2 = view.getUint32(0);\n var secLow32 = view.getUint32(4);\n var sec = (nsec30AndSecHigh2 & 0x3) * 0x100000000 + secLow32;\n var nsec = nsec30AndSecHigh2 >>> 2;\n return {\n sec: sec,\n nsec: nsec\n };\n case 12:\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n var sec = (0, $518bfda92fef5c7f$export$69825c7adcc820c6)(view, 4);\n var nsec = view.getUint32(0);\n return {\n sec: sec,\n nsec: nsec\n };\n default:\n throw new (0, $8bb13aa6087251ac$export$ef3eed12d06c0285)(\"Unrecognized data size for timestamp (expected 4, 8, or 12): \".concat(data.length));\n }\n}\nfunction $90f42a47dc95aba0$export$80b8ff9315e4298f(data) {\n var timeSpec = $90f42a47dc95aba0$export$abfc8800a5159711(data);\n return new Date(timeSpec.sec * 1e3 + timeSpec.nsec / 1e6);\n}\nvar $90f42a47dc95aba0$export$8654479533463da1 = {\n type: $90f42a47dc95aba0$export$f18369fc203f4e13,\n encode: $90f42a47dc95aba0$export$32420f352fe0fc83,\n decode: $90f42a47dc95aba0$export$80b8ff9315e4298f\n};\n\n\nvar $f1fa32c4c66b90ce$export$12677a794dbd89d7 = /** @class */ function() {\n function ExtensionCodec() {\n // built-in extensions\n this.builtInEncoders = [];\n this.builtInDecoders = [];\n // custom extensions\n this.encoders = [];\n this.decoders = [];\n this.register((0, $90f42a47dc95aba0$export$8654479533463da1));\n }\n ExtensionCodec.prototype.register = function(_a) {\n var type = _a.type, encode = _a.encode, decode = _a.decode;\n if (type >= 0) {\n // custom extensions\n this.encoders[type] = encode;\n this.decoders[type] = decode;\n } else {\n // built-in extensions\n var index = 1 + type;\n this.builtInEncoders[index] = encode;\n this.builtInDecoders[index] = decode;\n }\n };\n ExtensionCodec.prototype.tryToEncode = function(object, context) {\n // built-in extensions\n for(var i = 0; i < this.builtInEncoders.length; i++){\n var encodeExt = this.builtInEncoders[i];\n if (encodeExt != null) {\n var data = encodeExt(object, context);\n if (data != null) {\n var type = -1 - i;\n return new (0, $268a69da4c3a2b66$export$bcbeb236456bc779)(type, data);\n }\n }\n }\n // custom extensions\n for(var i = 0; i < this.encoders.length; i++){\n var encodeExt = this.encoders[i];\n if (encodeExt != null) {\n var data = encodeExt(object, context);\n if (data != null) {\n var type = i;\n return new (0, $268a69da4c3a2b66$export$bcbeb236456bc779)(type, data);\n }\n }\n }\n if (object instanceof (0, $268a69da4c3a2b66$export$bcbeb236456bc779)) // to keep ExtData as is\n return object;\n return null;\n };\n ExtensionCodec.prototype.decode = function(data, type, context) {\n var decodeExt = type < 0 ? this.builtInDecoders[-1 - type] : this.decoders[type];\n if (decodeExt) return decodeExt(data, type, context);\n else // decode() does not fail, returns ExtData instead.\n return new (0, $268a69da4c3a2b66$export$bcbeb236456bc779)(type, data);\n };\n ExtensionCodec.defaultCodec = new ExtensionCodec();\n return ExtensionCodec;\n}();\n\n\n\n\n\nvar $5L6jO = parcelRequire(\"5L6jO\");\nvar $3f7790a221c2f3e5$var$_a, $3f7790a221c2f3e5$var$_b, $3f7790a221c2f3e5$var$_c;\nvar $3f7790a221c2f3e5$var$TEXT_ENCODING_AVAILABLE = (typeof $5L6jO === \"undefined\" || (($3f7790a221c2f3e5$var$_a = $5L6jO === null || $5L6jO === void 0 ? void 0 : $5L6jO.env) === null || $3f7790a221c2f3e5$var$_a === void 0 ? void 0 : $3f7790a221c2f3e5$var$_a[\"TEXT_ENCODING\"]) !== \"never\") && typeof TextEncoder !== \"undefined\" && typeof TextDecoder !== \"undefined\";\nfunction $3f7790a221c2f3e5$export$b61de95301265227(str) {\n var strLength = str.length;\n var byteLength = 0;\n var pos = 0;\n while(pos < strLength){\n var value = str.charCodeAt(pos++);\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n byteLength++;\n continue;\n } else if ((value & 0xfffff800) === 0) // 2-bytes\n byteLength += 2;\n else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) // high surrogate\n {\n if (pos < strLength) {\n var extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n if ((value & 0xffff0000) === 0) // 3-byte\n byteLength += 3;\n else // 4-byte\n byteLength += 4;\n }\n }\n return byteLength;\n}\nfunction $3f7790a221c2f3e5$export$1042e4338f1ef853(str, output, outputOffset) {\n var strLength = str.length;\n var offset = outputOffset;\n var pos = 0;\n while(pos < strLength){\n var value = str.charCodeAt(pos++);\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n output[offset++] = value;\n continue;\n } else if ((value & 0xfffff800) === 0) // 2-bytes\n output[offset++] = value >> 6 & 0x1f | 0xc0;\n else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) // high surrogate\n {\n if (pos < strLength) {\n var extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n output[offset++] = value >> 12 & 0x0f | 0xe0;\n output[offset++] = value >> 6 & 0x3f | 0x80;\n } else {\n // 4-byte\n output[offset++] = value >> 18 & 0x07 | 0xf0;\n output[offset++] = value >> 12 & 0x3f | 0x80;\n output[offset++] = value >> 6 & 0x3f | 0x80;\n }\n }\n output[offset++] = value & 0x3f | 0x80;\n }\n}\nvar $3f7790a221c2f3e5$var$sharedTextEncoder = $3f7790a221c2f3e5$var$TEXT_ENCODING_AVAILABLE ? new TextEncoder() : undefined;\nvar $3f7790a221c2f3e5$export$ed34c0622b397238 = !$3f7790a221c2f3e5$var$TEXT_ENCODING_AVAILABLE ? (0, $518bfda92fef5c7f$export$3314b2c271c86d70) : typeof $5L6jO !== \"undefined\" && (($3f7790a221c2f3e5$var$_b = $5L6jO === null || $5L6jO === void 0 ? void 0 : $5L6jO.env) === null || $3f7790a221c2f3e5$var$_b === void 0 ? void 0 : $3f7790a221c2f3e5$var$_b[\"TEXT_ENCODING\"]) !== \"force\" ? 200 : 0;\nfunction $3f7790a221c2f3e5$var$utf8EncodeTEencode(str, output, outputOffset) {\n output.set($3f7790a221c2f3e5$var$sharedTextEncoder.encode(str), outputOffset);\n}\nfunction $3f7790a221c2f3e5$var$utf8EncodeTEencodeInto(str, output, outputOffset) {\n $3f7790a221c2f3e5$var$sharedTextEncoder.encodeInto(str, output.subarray(outputOffset));\n}\nvar $3f7790a221c2f3e5$export$34cfdc82d430524 = ($3f7790a221c2f3e5$var$sharedTextEncoder === null || $3f7790a221c2f3e5$var$sharedTextEncoder === void 0 ? void 0 : $3f7790a221c2f3e5$var$sharedTextEncoder.encodeInto) ? $3f7790a221c2f3e5$var$utf8EncodeTEencodeInto : $3f7790a221c2f3e5$var$utf8EncodeTEencode;\nvar $3f7790a221c2f3e5$var$CHUNK_SIZE = 4096;\nfunction $3f7790a221c2f3e5$export$551117984c2adf4f(bytes, inputOffset, byteLength) {\n var offset = inputOffset;\n var end = offset + byteLength;\n var units = [];\n var result = \"\";\n while(offset < end){\n var byte1 = bytes[offset++];\n if ((byte1 & 0x80) === 0) // 1 byte\n units.push(byte1);\n else if ((byte1 & 0xe0) === 0xc0) {\n // 2 bytes\n var byte2 = bytes[offset++] & 0x3f;\n units.push((byte1 & 0x1f) << 6 | byte2);\n } else if ((byte1 & 0xf0) === 0xe0) {\n // 3 bytes\n var byte2 = bytes[offset++] & 0x3f;\n var byte3 = bytes[offset++] & 0x3f;\n units.push((byte1 & 0x1f) << 12 | byte2 << 6 | byte3);\n } else if ((byte1 & 0xf8) === 0xf0) {\n // 4 bytes\n var byte2 = bytes[offset++] & 0x3f;\n var byte3 = bytes[offset++] & 0x3f;\n var byte4 = bytes[offset++] & 0x3f;\n var unit = (byte1 & 0x07) << 0x12 | byte2 << 0x0c | byte3 << 0x06 | byte4;\n if (unit > 0xffff) {\n unit -= 0x10000;\n units.push(unit >>> 10 & 0x3ff | 0xd800);\n unit = 0xdc00 | unit & 0x3ff;\n }\n units.push(unit);\n } else units.push(byte1);\n if (units.length >= $3f7790a221c2f3e5$var$CHUNK_SIZE) {\n result += String.fromCharCode.apply(String, units);\n units.length = 0;\n }\n }\n if (units.length > 0) result += String.fromCharCode.apply(String, units);\n return result;\n}\nvar $3f7790a221c2f3e5$var$sharedTextDecoder = $3f7790a221c2f3e5$var$TEXT_ENCODING_AVAILABLE ? new TextDecoder() : null;\nvar $3f7790a221c2f3e5$export$d866281c5a66d1ef = !$3f7790a221c2f3e5$var$TEXT_ENCODING_AVAILABLE ? (0, $518bfda92fef5c7f$export$3314b2c271c86d70) : typeof $5L6jO !== \"undefined\" && (($3f7790a221c2f3e5$var$_c = $5L6jO === null || $5L6jO === void 0 ? void 0 : $5L6jO.env) === null || $3f7790a221c2f3e5$var$_c === void 0 ? void 0 : $3f7790a221c2f3e5$var$_c[\"TEXT_DECODER\"]) !== \"force\" ? 200 : 0;\nfunction $3f7790a221c2f3e5$export$6ed79e41309992dc(bytes, inputOffset, byteLength) {\n var stringBytes = bytes.subarray(inputOffset, inputOffset + byteLength);\n return $3f7790a221c2f3e5$var$sharedTextDecoder.decode(stringBytes);\n}\n\n\nfunction $e2b22818b7517d55$export$f8d669c2a17882f2(buffer) {\n if (buffer instanceof Uint8Array) return buffer;\n else if (ArrayBuffer.isView(buffer)) return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n else if (buffer instanceof ArrayBuffer) return new Uint8Array(buffer);\n else // ArrayLike<number>\n return Uint8Array.from(buffer);\n}\nfunction $e2b22818b7517d55$export$7277868462c1ba02(buffer) {\n if (buffer instanceof ArrayBuffer) return new DataView(buffer);\n var bufferView = $e2b22818b7517d55$export$f8d669c2a17882f2(buffer);\n return new DataView(bufferView.buffer, bufferView.byteOffset, bufferView.byteLength);\n}\n\n\n\nvar $a5b0b5bb55e8ea9d$var$DEFAULT_MAX_KEY_LENGTH = 16;\nvar $a5b0b5bb55e8ea9d$var$DEFAULT_MAX_LENGTH_PER_KEY = 16;\nvar $a5b0b5bb55e8ea9d$export$529b830450faf29c = /** @class */ function() {\n function CachedKeyDecoder(maxKeyLength, maxLengthPerKey) {\n if (maxKeyLength === void 0) maxKeyLength = $a5b0b5bb55e8ea9d$var$DEFAULT_MAX_KEY_LENGTH;\n if (maxLengthPerKey === void 0) maxLengthPerKey = $a5b0b5bb55e8ea9d$var$DEFAULT_MAX_LENGTH_PER_KEY;\n this.maxKeyLength = maxKeyLength;\n this.maxLengthPerKey = maxLengthPerKey;\n this.hit = 0;\n this.miss = 0;\n // avoid `new Array(N)`, which makes a sparse array,\n // because a sparse array is typically slower than a non-sparse array.\n this.caches = [];\n for(var i = 0; i < this.maxKeyLength; i++)this.caches.push([]);\n }\n CachedKeyDecoder.prototype.canBeCached = function(byteLength) {\n return byteLength > 0 && byteLength <= this.maxKeyLength;\n };\n CachedKeyDecoder.prototype.find = function(bytes, inputOffset, byteLength) {\n var records = this.caches[byteLength - 1];\n FIND_CHUNK: for(var _i = 0, records_1 = records; _i < records_1.length; _i++){\n var record = records_1[_i];\n var recordBytes = record.bytes;\n for(var j = 0; j < byteLength; j++){\n if (recordBytes[j] !== bytes[inputOffset + j]) continue FIND_CHUNK;\n }\n return record.str;\n }\n return null;\n };\n CachedKeyDecoder.prototype.store = function(bytes, value) {\n var records = this.caches[bytes.length - 1];\n var record = {\n bytes: bytes,\n str: value\n };\n if (records.length >= this.maxLengthPerKey) // `records` are full!\n // Set `record` to an arbitrary position.\n records[Math.random() * records.length | 0] = record;\n else records.push(record);\n };\n CachedKeyDecoder.prototype.decode = function(bytes, inputOffset, byteLength) {\n var cachedValue = this.find(bytes, inputOffset, byteLength);\n if (cachedValue != null) {\n this.hit++;\n return cachedValue;\n }\n this.miss++;\n var str = (0, $3f7790a221c2f3e5$export$551117984c2adf4f)(bytes, inputOffset, byteLength);\n // Ensure to copy a slice of bytes because the byte may be NodeJS Buffer and Buffer#slice() returns a reference to its internal ArrayBuffer.\n var slicedCopyOfBytes = Uint8Array.prototype.slice.call(bytes, inputOffset, inputOffset + byteLength);\n this.store(slicedCopyOfBytes, str);\n return str;\n };\n return CachedKeyDecoder;\n}();\n\n\n\nvar $e6c5ba1e7517ae08$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar $e6c5ba1e7517ae08$var$__generator = undefined && undefined.__generator || function(thisArg, body) {\n var _ = {\n label: 0,\n sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n }, f, y, t, g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() {\n return this;\n }), g;\n function verb(n) {\n return function(v) {\n return step([\n n,\n v\n ]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while(_)try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [\n op[0] & 2,\n t.value\n ];\n switch(op[0]){\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [\n 0\n ];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [\n 6,\n e\n ];\n y = 0;\n } finally{\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\nvar $e6c5ba1e7517ae08$var$__asyncValues = undefined && undefined.__asyncValues || function(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function() {\n return this;\n }, i);\n function verb(n) {\n i[n] = o[n] && function(v) {\n return new Promise(function(resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function(v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n};\nvar $e6c5ba1e7517ae08$var$__await = undefined && undefined.__await || function(v) {\n return this instanceof $e6c5ba1e7517ae08$var$__await ? (this.v = v, this) : new $e6c5ba1e7517ae08$var$__await(v);\n};\nvar $e6c5ba1e7517ae08$var$__asyncGenerator = undefined && undefined.__asyncGenerator || function(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function() {\n return this;\n }, i;\n function verb(n) {\n if (g[n]) i[n] = function(v) {\n return new Promise(function(a, b) {\n q.push([\n n,\n v,\n a,\n b\n ]) > 1 || resume(n, v);\n });\n };\n }\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n function step(r) {\n r.value instanceof $e6c5ba1e7517ae08$var$__await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n function fulfill(value) {\n resume(\"next\", value);\n }\n function reject(value) {\n resume(\"throw\", value);\n }\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n};\nvar $e6c5ba1e7517ae08$var$isValidMapKeyType = function(key) {\n var keyType = typeof key;\n return keyType === \"string\" || keyType === \"number\";\n};\nvar $e6c5ba1e7517ae08$var$HEAD_BYTE_REQUIRED = -1;\nvar $e6c5ba1e7517ae08$var$EMPTY_VIEW = new DataView(new ArrayBuffer(0));\nvar $e6c5ba1e7517ae08$var$EMPTY_BYTES = new Uint8Array($e6c5ba1e7517ae08$var$EMPTY_VIEW.buffer);\nvar $e6c5ba1e7517ae08$export$449c37eaf7093493 = function() {\n try {\n // IE11: The spec says it should throw RangeError,\n // IE11: but in IE11 it throws TypeError.\n $e6c5ba1e7517ae08$var$EMPTY_VIEW.getInt8(0);\n } catch (e) {\n return e.constructor;\n }\n throw new Error(\"never reached\");\n}();\nvar $e6c5ba1e7517ae08$var$MORE_DATA = new $e6c5ba1e7517ae08$export$449c37eaf7093493(\"Insufficient data\");\nvar $e6c5ba1e7517ae08$var$sharedCachedKeyDecoder = new (0, $a5b0b5bb55e8ea9d$export$529b830450faf29c)();\nvar $e6c5ba1e7517ae08$export$f9de6ca0bc043724 = /** @class */ function() {\n function Decoder(extensionCodec, context, maxStrLength, maxBinLength, maxArrayLength, maxMapLength, maxExtLength, keyDecoder) {\n if (extensionCodec === void 0) extensionCodec = (0, $f1fa32c4c66b90ce$export$12677a794dbd89d7).defaultCodec;\n if (context === void 0) context = undefined;\n if (maxStrLength === void 0) maxStrLength = (0, $518bfda92fef5c7f$export$3314b2c271c86d70);\n if (maxBinLength === void 0) maxBinLength = (0, $518bfda92fef5c7f$export$3314b2c271c86d70);\n if (maxArrayLength === void 0) maxArrayLength = (0, $518bfda92fef5c7f$export$3314b2c271c86d70);\n if (maxMapLength === void 0) maxMapLength = (0, $518bfda92fef5c7f$export$3314b2c271c86d70);\n if (maxExtLength === void 0) maxExtLength = (0, $518bfda92fef5c7f$export$3314b2c271c86d70);\n if (keyDecoder === void 0) keyDecoder = $e6c5ba1e7517ae08$var$sharedCachedKeyDecoder;\n this.extensionCodec = extensionCodec;\n this.context = context;\n this.maxStrLength = maxStrLength;\n this.maxBinLength = maxBinLength;\n this.maxArrayLength = maxArrayLength;\n this.maxMapLength = maxMapLength;\n this.maxExtLength = maxExtLength;\n this.keyDecoder = keyDecoder;\n this.totalPos = 0;\n this.pos = 0;\n this.view = $e6c5ba1e7517ae08$var$EMPTY_VIEW;\n this.bytes = $e6c5ba1e7517ae08$var$EMPTY_BYTES;\n this.headByte = $e6c5ba1e7517ae08$var$HEAD_BYTE_REQUIRED;\n this.stack = [];\n }\n Decoder.prototype.reinitializeState = function() {\n this.totalPos = 0;\n this.headByte = $e6c5ba1e7517ae08$var$HEAD_BYTE_REQUIRED;\n this.stack.length = 0;\n // view, bytes, and pos will be re-initialized in setBuffer()\n };\n Decoder.prototype.setBuffer = function(buffer) {\n this.bytes = (0, $e2b22818b7517d55$export$f8d669c2a17882f2)(buffer);\n this.view = (0, $e2b22818b7517d55$export$7277868462c1ba02)(this.bytes);\n this.pos = 0;\n };\n Decoder.prototype.appendBuffer = function(buffer) {\n if (this.headByte === $e6c5ba1e7517ae08$var$HEAD_BYTE_REQUIRED && !this.hasRemaining(1)) this.setBuffer(buffer);\n else {\n var remainingData = this.bytes.subarray(this.pos);\n var newData = (0, $e2b22818b7517d55$export$f8d669c2a17882f2)(buffer);\n // concat remainingData + newData\n var newBuffer = new Uint8Array(remainingData.length + newData.length);\n newBuffer.set(remainingData);\n newBuffer.set(newData, remainingData.length);\n this.setBuffer(newBuffer);\n }\n };\n Decoder.prototype.hasRemaining = function(size) {\n return this.view.byteLength - this.pos >= size;\n };\n Decoder.prototype.createExtraByteError = function(posToShow) {\n var _a = this, view = _a.view, pos = _a.pos;\n return new RangeError(\"Extra \".concat(view.byteLength - pos, \" of \").concat(view.byteLength, \" byte(s) found at buffer[\").concat(posToShow, \"]\"));\n };\n /**\n * @throws {@link DecodeError}\n * @throws {@link RangeError}\n */ Decoder.prototype.decode = function(buffer) {\n this.reinitializeState();\n this.setBuffer(buffer);\n var object = this.doDecodeSync();\n if (this.hasRemaining(1)) throw this.createExtraByteError(this.pos);\n return object;\n };\n Decoder.prototype.decodeMulti = function(buffer) {\n return $e6c5ba1e7517ae08$var$__generator(this, function(_a) {\n switch(_a.label){\n case 0:\n this.reinitializeState();\n this.setBuffer(buffer);\n _a.label = 1;\n case 1:\n if (!this.hasRemaining(1)) return [\n 3 /*break*/ ,\n 3\n ];\n return [\n 4 /*yield*/ ,\n this.doDecodeSync()\n ];\n case 2:\n _a.sent();\n return [\n 3 /*break*/ ,\n 1\n ];\n case 3:\n return [\n 2 /*return*/ \n ];\n }\n });\n };\n Decoder.prototype.decodeAsync = function(stream) {\n var stream_1, stream_1_1;\n var e_1, _a;\n return $e6c5ba1e7517ae08$var$__awaiter(this, void 0, void 0, function() {\n var decoded, object, buffer, e_1_1, _b, headByte, pos, totalPos;\n return $e6c5ba1e7517ae08$var$__generator(this, function(_c) {\n switch(_c.label){\n case 0:\n decoded = false;\n _c.label = 1;\n case 1:\n _c.trys.push([\n 1,\n 6,\n 7,\n 12\n ]);\n stream_1 = $e6c5ba1e7517ae08$var$__asyncValues(stream);\n _c.label = 2;\n case 2:\n return [\n 4 /*yield*/ ,\n stream_1.next()\n ];\n case 3:\n if (!(stream_1_1 = _c.sent(), !stream_1_1.done)) return [\n 3 /*break*/ ,\n 5\n ];\n buffer = stream_1_1.value;\n if (decoded) throw this.createExtraByteError(this.totalPos);\n this.appendBuffer(buffer);\n try {\n object = this.doDecodeSync();\n decoded = true;\n } catch (e) {\n if (!(e instanceof $e6c5ba1e7517ae08$export$449c37eaf7093493)) throw e; // rethrow\n // fallthrough\n }\n this.totalPos += this.pos;\n _c.label = 4;\n case 4:\n return [\n 3 /*break*/ ,\n 2\n ];\n case 5:\n return [\n 3 /*break*/ ,\n 12\n ];\n case 6:\n e_1_1 = _c.sent();\n e_1 = {\n error: e_1_1\n };\n return [\n 3 /*break*/ ,\n 12\n ];\n case 7:\n _c.trys.push([\n 7,\n ,\n 10,\n 11\n ]);\n if (!(stream_1_1 && !stream_1_1.done && (_a = stream_1.return))) return [\n 3 /*break*/ ,\n 9\n ];\n return [\n 4 /*yield*/ ,\n _a.call(stream_1)\n ];\n case 8:\n _c.sent();\n _c.label = 9;\n case 9:\n return [\n 3 /*break*/ ,\n 11\n ];\n case 10:\n if (e_1) throw e_1.error;\n return [\n 7 /*endfinally*/ \n ];\n case 11:\n return [\n 7 /*endfinally*/ \n ];\n case 12:\n if (decoded) {\n if (this.hasRemaining(1)) throw this.createExtraByteError(this.totalPos);\n return [\n 2 /*return*/ ,\n object\n ];\n }\n _b = this, headByte = _b.headByte, pos = _b.pos, totalPos = _b.totalPos;\n throw new RangeError(\"Insufficient data in parsing \".concat((0, $31bcb34ba1ba037f$export$78406e843f5312da)(headByte), \" at \").concat(totalPos, \" (\").concat(pos, \" in the current buffer)\"));\n }\n });\n });\n };\n Decoder.prototype.decodeArrayStream = function(stream) {\n return this.decodeMultiAsync(stream, true);\n };\n Decoder.prototype.decodeStream = function(stream) {\n return this.decodeMultiAsync(stream, false);\n };\n Decoder.prototype.decodeMultiAsync = function(stream, isArray) {\n return $e6c5ba1e7517ae08$var$__asyncGenerator(this, arguments, function decodeMultiAsync_1() {\n var isArrayHeaderRequired, arrayItemsLeft, stream_2, stream_2_1, buffer, e_2, e_3_1;\n var e_3, _a;\n return $e6c5ba1e7517ae08$var$__generator(this, function(_b) {\n switch(_b.label){\n case 0:\n isArrayHeaderRequired = isArray;\n arrayItemsLeft = -1;\n _b.label = 1;\n case 1:\n _b.trys.push([\n 1,\n 13,\n 14,\n 19\n ]);\n stream_2 = $e6c5ba1e7517ae08$var$__asyncValues(stream);\n _b.label = 2;\n case 2:\n return [\n 4 /*yield*/ ,\n $e6c5ba1e7517ae08$var$__await(stream_2.next())\n ];\n case 3:\n if (!(stream_2_1 = _b.sent(), !stream_2_1.done)) return [\n 3 /*break*/ ,\n 12\n ];\n buffer = stream_2_1.value;\n if (isArray && arrayItemsLeft === 0) throw this.createExtraByteError(this.totalPos);\n this.appendBuffer(buffer);\n if (isArrayHeaderRequired) {\n arrayItemsLeft = this.readArraySize();\n isArrayHeaderRequired = false;\n this.complete();\n }\n _b.label = 4;\n case 4:\n _b.trys.push([\n 4,\n 9,\n ,\n 10\n ]);\n _b.label = 5;\n case 5:\n return [\n 4 /*yield*/ ,\n $e6c5ba1e7517ae08$var$__await(this.doDecodeSync())\n ];\n case 6:\n return [\n 4 /*yield*/ ,\n _b.sent()\n ];\n case 7:\n _b.sent();\n if (--arrayItemsLeft === 0) return [\n 3 /*break*/ ,\n 8\n ];\n return [\n 3 /*break*/ ,\n 5\n ];\n case 8:\n return [\n 3 /*break*/ ,\n 10\n ];\n case 9:\n e_2 = _b.sent();\n if (!(e_2 instanceof $e6c5ba1e7517ae08$export$449c37eaf7093493)) throw e_2; // rethrow\n return [\n 3 /*break*/ ,\n 10\n ];\n case 10:\n this.totalPos += this.pos;\n _b.label = 11;\n case 11:\n return [\n 3 /*break*/ ,\n 2\n ];\n case 12:\n return [\n 3 /*break*/ ,\n 19\n ];\n case 13:\n e_3_1 = _b.sent();\n e_3 = {\n error: e_3_1\n };\n return [\n 3 /*break*/ ,\n 19\n ];\n case 14:\n _b.trys.push([\n 14,\n ,\n 17,\n 18\n ]);\n if (!(stream_2_1 && !stream_2_1.done && (_a = stream_2.return))) return [\n 3 /*break*/ ,\n 16\n ];\n return [\n 4 /*yield*/ ,\n $e6c5ba1e7517ae08$var$__await(_a.call(stream_2))\n ];\n case 15:\n _b.sent();\n _b.label = 16;\n case 16:\n return [\n 3 /*break*/ ,\n 18\n ];\n case 17:\n if (e_3) throw e_3.error;\n return [\n 7 /*endfinally*/ \n ];\n case 18:\n return [\n 7 /*endfinally*/ \n ];\n case 19:\n return [\n 2 /*return*/ \n ];\n }\n });\n });\n };\n Decoder.prototype.doDecodeSync = function() {\n DECODE: while(true){\n var headByte = this.readHeadByte();\n var object = void 0;\n if (headByte >= 0xe0) // negative fixint (111x xxxx) 0xe0 - 0xff\n object = headByte - 0x100;\n else if (headByte < 0xc0) {\n if (headByte < 0x80) // positive fixint (0xxx xxxx) 0x00 - 0x7f\n object = headByte;\n else if (headByte < 0x90) {\n // fixmap (1000 xxxx) 0x80 - 0x8f\n var size = headByte - 0x80;\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n } else object = {};\n } else if (headByte < 0xa0) {\n // fixarray (1001 xxxx) 0x90 - 0x9f\n var size = headByte - 0x90;\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n } else object = [];\n } else {\n // fixstr (101x xxxx) 0xa0 - 0xbf\n var byteLength = headByte - 0xa0;\n object = this.decodeUtf8String(byteLength, 0);\n }\n } else if (headByte === 0xc0) // nil\n object = null;\n else if (headByte === 0xc2) // false\n object = false;\n else if (headByte === 0xc3) // true\n object = true;\n else if (headByte === 0xca) // float 32\n object = this.readF32();\n else if (headByte === 0xcb) // float 64\n object = this.readF64();\n else if (headByte === 0xcc) // uint 8\n object = this.readU8();\n else if (headByte === 0xcd) // uint 16\n object = this.readU16();\n else if (headByte === 0xce) // uint 32\n object = this.readU32();\n else if (headByte === 0xcf) // uint 64\n object = this.readU64();\n else if (headByte === 0xd0) // int 8\n object = this.readI8();\n else if (headByte === 0xd1) // int 16\n object = this.readI16();\n else if (headByte === 0xd2) // int 32\n object = this.readI32();\n else if (headByte === 0xd3) // int 64\n object = this.readI64();\n else if (headByte === 0xd9) {\n // str 8\n var byteLength = this.lookU8();\n object = this.decodeUtf8String(byteLength, 1);\n } else if (headByte === 0xda) {\n // str 16\n var byteLength = this.lookU16();\n object = this.decodeUtf8String(byteLength, 2);\n } else if (headByte === 0xdb) {\n // str 32\n var byteLength = this.lookU32();\n object = this.decodeUtf8String(byteLength, 4);\n } else if (headByte === 0xdc) {\n // array 16\n var size = this.readU16();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n } else object = [];\n } else if (headByte === 0xdd) {\n // array 32\n var size = this.readU32();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n } else object = [];\n } else if (headByte === 0xde) {\n // map 16\n var size = this.readU16();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n } else object = {};\n } else if (headByte === 0xdf) {\n // map 32\n var size = this.readU32();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n } else object = {};\n } else if (headByte === 0xc4) {\n // bin 8\n var size = this.lookU8();\n object = this.decodeBinary(size, 1);\n } else if (headByte === 0xc5) {\n // bin 16\n var size = this.lookU16();\n object = this.decodeBinary(size, 2);\n } else if (headByte === 0xc6) {\n // bin 32\n var size = this.lookU32();\n object = this.decodeBinary(size, 4);\n } else if (headByte === 0xd4) // fixext 1\n object = this.decodeExtension(1, 0);\n else if (headByte === 0xd5) // fixext 2\n object = this.decodeExtension(2, 0);\n else if (headByte === 0xd6) // fixext 4\n object = this.decodeExtension(4, 0);\n else if (headByte === 0xd7) // fixext 8\n object = this.decodeExtension(8, 0);\n else if (headByte === 0xd8) // fixext 16\n object = this.decodeExtension(16, 0);\n else if (headByte === 0xc7) {\n // ext 8\n var size = this.lookU8();\n object = this.decodeExtension(size, 1);\n } else if (headByte === 0xc8) {\n // ext 16\n var size = this.lookU16();\n object = this.decodeExtension(size, 2);\n } else if (headByte === 0xc9) {\n // ext 32\n var size = this.lookU32();\n object = this.decodeExtension(size, 4);\n } else throw new (0, $8bb13aa6087251ac$export$ef3eed12d06c0285)(\"Unrecognized type byte: \".concat((0, $31bcb34ba1ba037f$export$78406e843f5312da)(headByte)));\n this.complete();\n var stack = this.stack;\n while(stack.length > 0){\n // arrays and maps\n var state = stack[stack.length - 1];\n if (state.type === 0 /* State.ARRAY */ ) {\n state.array[state.position] = object;\n state.position++;\n if (state.position === state.size) {\n stack.pop();\n object = state.array;\n } else continue DECODE;\n } else if (state.type === 1 /* State.MAP_KEY */ ) {\n if (!$e6c5ba1e7517ae08$var$isValidMapKeyType(object)) throw new (0, $8bb13aa6087251ac$export$ef3eed12d06c0285)(\"The type of key must be string or number but \" + typeof object);\n if (object === \"__proto__\") throw new (0, $8bb13aa6087251ac$export$ef3eed12d06c0285)(\"The key __proto__ is not allowed\");\n state.key = object;\n state.type = 2 /* State.MAP_VALUE */ ;\n continue DECODE;\n } else {\n // it must be `state.type === State.MAP_VALUE` here\n state.map[state.key] = object;\n state.readCount++;\n if (state.readCount === state.size) {\n stack.pop();\n object = state.map;\n } else {\n state.key = null;\n state.type = 1 /* State.MAP_KEY */ ;\n continue DECODE;\n }\n }\n }\n return object;\n }\n };\n Decoder.prototype.readHeadByte = function() {\n if (this.headByte === $e6c5ba1e7517ae08$var$HEAD_BYTE_REQUIRED) this.headByte = this.readU8();\n return this.headByte;\n };\n Decoder.prototype.complete = function() {\n this.headByte = $e6c5ba1e7517ae08$var$HEAD_BYTE_REQUIRED;\n };\n Decoder.prototype.readArraySize = function() {\n var headByte = this.readHeadByte();\n switch(headByte){\n case 0xdc:\n return this.readU16();\n case 0xdd:\n return this.readU32();\n default:\n if (headByte < 0xa0) return headByte - 0x90;\n else throw new (0, $8bb13aa6087251ac$export$ef3eed12d06c0285)(\"Unrecognized array type byte: \".concat((0, $31bcb34ba1ba037f$export$78406e843f5312da)(headByte)));\n }\n };\n Decoder.prototype.pushMapState = function(size) {\n if (size > this.maxMapLength) throw new (0, $8bb13aa6087251ac$export$ef3eed12d06c0285)(\"Max length exceeded: map length (\".concat(size, \") > maxMapLengthLength (\").concat(this.maxMapLength, \")\"));\n this.stack.push({\n type: 1 /* State.MAP_KEY */ ,\n size: size,\n key: null,\n readCount: 0,\n map: {}\n });\n };\n Decoder.prototype.pushArrayState = function(size) {\n if (size > this.maxArrayLength) throw new (0, $8bb13aa6087251ac$export$ef3eed12d06c0285)(\"Max length exceeded: array length (\".concat(size, \") > maxArrayLength (\").concat(this.maxArrayLength, \")\"));\n this.stack.push({\n type: 0 /* State.ARRAY */ ,\n size: size,\n array: new Array(size),\n position: 0\n });\n };\n Decoder.prototype.decodeUtf8String = function(byteLength, headerOffset) {\n var _a;\n if (byteLength > this.maxStrLength) throw new (0, $8bb13aa6087251ac$export$ef3eed12d06c0285)(\"Max length exceeded: UTF-8 byte length (\".concat(byteLength, \") > maxStrLength (\").concat(this.maxStrLength, \")\"));\n if (this.bytes.byteLength < this.pos + headerOffset + byteLength) throw $e6c5ba1e7517ae08$var$MORE_DATA;\n var offset = this.pos + headerOffset;\n var object;\n if (this.stateIsMapKey() && ((_a = this.keyDecoder) === null || _a === void 0 ? void 0 : _a.canBeCached(byteLength))) object = this.keyDecoder.decode(this.bytes, offset, byteLength);\n else if (byteLength > (0, $3f7790a221c2f3e5$export$d866281c5a66d1ef)) object = (0, $3f7790a221c2f3e5$export$6ed79e41309992dc)(this.bytes, offset, byteLength);\n else object = (0, $3f7790a221c2f3e5$export$551117984c2adf4f)(this.bytes, offset, byteLength);\n this.pos += headerOffset + byteLength;\n return object;\n };\n Decoder.prototype.stateIsMapKey = function() {\n if (this.stack.length > 0) {\n var state = this.stack[this.stack.length - 1];\n return state.type === 1 /* State.MAP_KEY */ ;\n }\n return false;\n };\n Decoder.prototype.decodeBinary = function(byteLength, headOffset) {\n if (byteLength > this.maxBinLength) throw new (0, $8bb13aa6087251ac$export$ef3eed12d06c0285)(\"Max length exceeded: bin length (\".concat(byteLength, \") > maxBinLength (\").concat(this.maxBinLength, \")\"));\n if (!this.hasRemaining(byteLength + headOffset)) throw $e6c5ba1e7517ae08$var$MORE_DATA;\n var offset = this.pos + headOffset;\n var object = this.bytes.subarray(offset, offset + byteLength);\n this.pos += headOffset + byteLength;\n return object;\n };\n Decoder.prototype.decodeExtension = function(size, headOffset) {\n if (size > this.maxExtLength) throw new (0, $8bb13aa6087251ac$export$ef3eed12d06c0285)(\"Max length exceeded: ext length (\".concat(size, \") > maxExtLength (\").concat(this.maxExtLength, \")\"));\n var extType = this.view.getInt8(this.pos + headOffset);\n var data = this.decodeBinary(size, headOffset + 1 /* extType */ );\n return this.extensionCodec.decode(data, extType, this.context);\n };\n Decoder.prototype.lookU8 = function() {\n return this.view.getUint8(this.pos);\n };\n Decoder.prototype.lookU16 = function() {\n return this.view.getUint16(this.pos);\n };\n Decoder.prototype.lookU32 = function() {\n return this.view.getUint32(this.pos);\n };\n Decoder.prototype.readU8 = function() {\n var value = this.view.getUint8(this.pos);\n this.pos++;\n return value;\n };\n Decoder.prototype.readI8 = function() {\n var value = this.view.getInt8(this.pos);\n this.pos++;\n return value;\n };\n Decoder.prototype.readU16 = function() {\n var value = this.view.getUint16(this.pos);\n this.pos += 2;\n return value;\n };\n Decoder.prototype.readI16 = function() {\n var value = this.view.getInt16(this.pos);\n this.pos += 2;\n return value;\n };\n Decoder.prototype.readU32 = function() {\n var value = this.view.getUint32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readI32 = function() {\n var value = this.view.getInt32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readU64 = function() {\n var value = (0, $518bfda92fef5c7f$export$59a2dbf579ff9568)(this.view, this.pos);\n this.pos += 8;\n return value;\n };\n Decoder.prototype.readI64 = function() {\n var value = (0, $518bfda92fef5c7f$export$69825c7adcc820c6)(this.view, this.pos);\n this.pos += 8;\n return value;\n };\n Decoder.prototype.readF32 = function() {\n var value = this.view.getFloat32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readF64 = function() {\n var value = this.view.getFloat64(this.pos);\n this.pos += 8;\n return value;\n };\n return Decoder;\n}();\n\n\n// utility for whatwg streams\nvar $de4ae0b6ff372b32$var$__generator = undefined && undefined.__generator || function(thisArg, body) {\n var _ = {\n label: 0,\n sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n }, f, y, t, g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() {\n return this;\n }), g;\n function verb(n) {\n return function(v) {\n return step([\n n,\n v\n ]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while(_)try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [\n op[0] & 2,\n t.value\n ];\n switch(op[0]){\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [\n 0\n ];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [\n 6,\n e\n ];\n y = 0;\n } finally{\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\nvar $de4ae0b6ff372b32$var$__await = undefined && undefined.__await || function(v) {\n return this instanceof $de4ae0b6ff372b32$var$__await ? (this.v = v, this) : new $de4ae0b6ff372b32$var$__await(v);\n};\nvar $de4ae0b6ff372b32$var$__asyncGenerator = undefined && undefined.__asyncGenerator || function(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function() {\n return this;\n }, i;\n function verb(n) {\n if (g[n]) i[n] = function(v) {\n return new Promise(function(a, b) {\n q.push([\n n,\n v,\n a,\n b\n ]) > 1 || resume(n, v);\n });\n };\n }\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n function step(r) {\n r.value instanceof $de4ae0b6ff372b32$var$__await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n function fulfill(value) {\n resume(\"next\", value);\n }\n function reject(value) {\n resume(\"throw\", value);\n }\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n};\nfunction $de4ae0b6ff372b32$export$edb10ab8dd75a915(object) {\n return object[Symbol.asyncIterator] != null;\n}\nfunction $de4ae0b6ff372b32$var$assertNonNull(value) {\n if (value == null) throw new Error(\"Assertion Failure: value must not be null nor undefined\");\n}\nfunction $de4ae0b6ff372b32$export$f62cf0e66867a58e(stream) {\n return $de4ae0b6ff372b32$var$__asyncGenerator(this, arguments, function asyncIterableFromStream_1() {\n var reader, _a, done, value;\n return $de4ae0b6ff372b32$var$__generator(this, function(_b) {\n switch(_b.label){\n case 0:\n reader = stream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([\n 1,\n ,\n 9,\n 10\n ]);\n _b.label = 2;\n case 2:\n return [\n 4 /*yield*/ ,\n $de4ae0b6ff372b32$var$__await(reader.read())\n ];\n case 3:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (!done) return [\n 3 /*break*/ ,\n 5\n ];\n return [\n 4 /*yield*/ ,\n $de4ae0b6ff372b32$var$__await(void 0)\n ];\n case 4:\n return [\n 2 /*return*/ ,\n _b.sent()\n ];\n case 5:\n $de4ae0b6ff372b32$var$assertNonNull(value);\n return [\n 4 /*yield*/ ,\n $de4ae0b6ff372b32$var$__await(value)\n ];\n case 6:\n return [\n 4 /*yield*/ ,\n _b.sent()\n ];\n case 7:\n _b.sent();\n return [\n 3 /*break*/ ,\n 2\n ];\n case 8:\n return [\n 3 /*break*/ ,\n 10\n ];\n case 9:\n reader.releaseLock();\n return [\n 7 /*endfinally*/ \n ];\n case 10:\n return [\n 2 /*return*/ \n ];\n }\n });\n });\n}\nfunction $de4ae0b6ff372b32$export$bf99ef56e8bd104(streamLike) {\n if ($de4ae0b6ff372b32$export$edb10ab8dd75a915(streamLike)) return streamLike;\n else return $de4ae0b6ff372b32$export$f62cf0e66867a58e(streamLike);\n}\n\n\n\nvar $79f3aa6fd9a8a1cb$export$ca6ec972f712a9eb = {};\nfunction $79f3aa6fd9a8a1cb$export$2f872c0f2117be69(buffer, options) {\n if (options === void 0) options = $79f3aa6fd9a8a1cb$export$ca6ec972f712a9eb;\n var decoder = new (0, $e6c5ba1e7517ae08$export$f9de6ca0bc043724)(options.extensionCodec, options.context, options.maxStrLength, options.maxBinLength, options.maxArrayLength, options.maxMapLength, options.maxExtLength);\n return decoder.decode(buffer);\n}\nfunction $79f3aa6fd9a8a1cb$export$43cc91859d9fdc54(buffer, options) {\n if (options === void 0) options = $79f3aa6fd9a8a1cb$export$ca6ec972f712a9eb;\n var decoder = new (0, $e6c5ba1e7517ae08$export$f9de6ca0bc043724)(options.extensionCodec, options.context, options.maxStrLength, options.maxBinLength, options.maxArrayLength, options.maxMapLength, options.maxExtLength);\n return decoder.decodeMulti(buffer);\n}\n\n\nvar $5dbeafcd6e23d52f$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar $5dbeafcd6e23d52f$var$__generator = undefined && undefined.__generator || function(thisArg, body) {\n var _ = {\n label: 0,\n sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n }, f, y, t, g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() {\n return this;\n }), g;\n function verb(n) {\n return function(v) {\n return step([\n n,\n v\n ]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while(_)try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [\n op[0] & 2,\n t.value\n ];\n switch(op[0]){\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [\n 0\n ];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [\n 6,\n e\n ];\n y = 0;\n } finally{\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\nfunction $5dbeafcd6e23d52f$export$e4c183687a6ff9b(streamLike, options) {\n if (options === void 0) options = (0, $79f3aa6fd9a8a1cb$export$ca6ec972f712a9eb);\n return $5dbeafcd6e23d52f$var$__awaiter(this, void 0, void 0, function() {\n var stream, decoder;\n return $5dbeafcd6e23d52f$var$__generator(this, function(_a) {\n stream = (0, $de4ae0b6ff372b32$export$bf99ef56e8bd104)(streamLike);\n decoder = new (0, $e6c5ba1e7517ae08$export$f9de6ca0bc043724)(options.extensionCodec, options.context, options.maxStrLength, options.maxBinLength, options.maxArrayLength, options.maxMapLength, options.maxExtLength);\n return [\n 2 /*return*/ ,\n decoder.decodeAsync(stream)\n ];\n });\n });\n}\nfunction $5dbeafcd6e23d52f$export$b1b94ac44d9853a4(streamLike, options) {\n if (options === void 0) options = (0, $79f3aa6fd9a8a1cb$export$ca6ec972f712a9eb);\n var stream = (0, $de4ae0b6ff372b32$export$bf99ef56e8bd104)(streamLike);\n var decoder = new (0, $e6c5ba1e7517ae08$export$f9de6ca0bc043724)(options.extensionCodec, options.context, options.maxStrLength, options.maxBinLength, options.maxArrayLength, options.maxMapLength, options.maxExtLength);\n return decoder.decodeArrayStream(stream);\n}\nfunction $5dbeafcd6e23d52f$export$bf87d8a088c760fb(streamLike, options) {\n if (options === void 0) options = (0, $79f3aa6fd9a8a1cb$export$ca6ec972f712a9eb);\n var stream = (0, $de4ae0b6ff372b32$export$bf99ef56e8bd104)(streamLike);\n var decoder = new (0, $e6c5ba1e7517ae08$export$f9de6ca0bc043724)(options.extensionCodec, options.context, options.maxStrLength, options.maxBinLength, options.maxArrayLength, options.maxMapLength, options.maxExtLength);\n return decoder.decodeStream(stream);\n}\nfunction $5dbeafcd6e23d52f$export$7fb0f205e4fd0bbe(streamLike, options) {\n if (options === void 0) options = (0, $79f3aa6fd9a8a1cb$export$ca6ec972f712a9eb);\n return $5dbeafcd6e23d52f$export$bf87d8a088c760fb(streamLike, options);\n}\n\n\n\n\n\nvar $c94702bf03c532e7$export$2c6de1218fe0e46d = 100;\nvar $c94702bf03c532e7$export$29659805a45f979c = 2048;\nvar $c94702bf03c532e7$export$a50aceb0e02a00aa = /** @class */ function() {\n function Encoder(extensionCodec, context, maxDepth, initialBufferSize, sortKeys, forceFloat32, ignoreUndefined, forceIntegerToFloat) {\n if (extensionCodec === void 0) extensionCodec = (0, $f1fa32c4c66b90ce$export$12677a794dbd89d7).defaultCodec;\n if (context === void 0) context = undefined;\n if (maxDepth === void 0) maxDepth = $c94702bf03c532e7$export$2c6de1218fe0e46d;\n if (initialBufferSize === void 0) initialBufferSize = $c94702bf03c532e7$export$29659805a45f979c;\n if (sortKeys === void 0) sortKeys = false;\n if (forceFloat32 === void 0) forceFloat32 = false;\n if (ignoreUndefined === void 0) ignoreUndefined = false;\n if (forceIntegerToFloat === void 0) forceIntegerToFloat = false;\n this.extensionCodec = extensionCodec;\n this.context = context;\n this.maxDepth = maxDepth;\n this.initialBufferSize = initialBufferSize;\n this.sortKeys = sortKeys;\n this.forceFloat32 = forceFloat32;\n this.ignoreUndefined = ignoreUndefined;\n this.forceIntegerToFloat = forceIntegerToFloat;\n this.pos = 0;\n this.view = new DataView(new ArrayBuffer(this.initialBufferSize));\n this.bytes = new Uint8Array(this.view.buffer);\n }\n Encoder.prototype.reinitializeState = function() {\n this.pos = 0;\n };\n /**\n * This is almost equivalent to {@link Encoder#encode}, but it returns an reference of the encoder's internal buffer and thus much faster than {@link Encoder#encode}.\n *\n * @returns Encodes the object and returns a shared reference the encoder's internal buffer.\n */ Encoder.prototype.encodeSharedRef = function(object) {\n this.reinitializeState();\n this.doEncode(object, 1);\n return this.bytes.subarray(0, this.pos);\n };\n /**\n * @returns Encodes the object and returns a copy of the encoder's internal buffer.\n */ Encoder.prototype.encode = function(object) {\n this.reinitializeState();\n this.doEncode(object, 1);\n return this.bytes.slice(0, this.pos);\n };\n Encoder.prototype.doEncode = function(object, depth) {\n if (depth > this.maxDepth) throw new Error(\"Too deep objects in depth \".concat(depth));\n if (object == null) this.encodeNil();\n else if (typeof object === \"boolean\") this.encodeBoolean(object);\n else if (typeof object === \"number\") this.encodeNumber(object);\n else if (typeof object === \"string\") this.encodeString(object);\n else this.encodeObject(object, depth);\n };\n Encoder.prototype.ensureBufferSizeToWrite = function(sizeToWrite) {\n var requiredSize = this.pos + sizeToWrite;\n if (this.view.byteLength < requiredSize) this.resizeBuffer(requiredSize * 2);\n };\n Encoder.prototype.resizeBuffer = function(newSize) {\n var newBuffer = new ArrayBuffer(newSize);\n var newBytes = new Uint8Array(newBuffer);\n var newView = new DataView(newBuffer);\n newBytes.set(this.bytes);\n this.view = newView;\n this.bytes = newBytes;\n };\n Encoder.prototype.encodeNil = function() {\n this.writeU8(0xc0);\n };\n Encoder.prototype.encodeBoolean = function(object) {\n if (object === false) this.writeU8(0xc2);\n else this.writeU8(0xc3);\n };\n Encoder.prototype.encodeNumber = function(object) {\n if (Number.isSafeInteger(object) && !this.forceIntegerToFloat) {\n if (object >= 0) {\n if (object < 0x80) // positive fixint\n this.writeU8(object);\n else if (object < 0x100) {\n // uint 8\n this.writeU8(0xcc);\n this.writeU8(object);\n } else if (object < 0x10000) {\n // uint 16\n this.writeU8(0xcd);\n this.writeU16(object);\n } else if (object < 0x100000000) {\n // uint 32\n this.writeU8(0xce);\n this.writeU32(object);\n } else {\n // uint 64\n this.writeU8(0xcf);\n this.writeU64(object);\n }\n } else {\n if (object >= -32) // negative fixint\n this.writeU8(0xe0 | object + 0x20);\n else if (object >= -128) {\n // int 8\n this.writeU8(0xd0);\n this.writeI8(object);\n } else if (object >= -32768) {\n // int 16\n this.writeU8(0xd1);\n this.writeI16(object);\n } else if (object >= -2147483648) {\n // int 32\n this.writeU8(0xd2);\n this.writeI32(object);\n } else {\n // int 64\n this.writeU8(0xd3);\n this.writeI64(object);\n }\n }\n } else // non-integer numbers\n if (this.forceFloat32) {\n // float 32\n this.writeU8(0xca);\n this.writeF32(object);\n } else {\n // float 64\n this.writeU8(0xcb);\n this.writeF64(object);\n }\n };\n Encoder.prototype.writeStringHeader = function(byteLength) {\n if (byteLength < 32) // fixstr\n this.writeU8(0xa0 + byteLength);\n else if (byteLength < 0x100) {\n // str 8\n this.writeU8(0xd9);\n this.writeU8(byteLength);\n } else if (byteLength < 0x10000) {\n // str 16\n this.writeU8(0xda);\n this.writeU16(byteLength);\n } else if (byteLength < 0x100000000) {\n // str 32\n this.writeU8(0xdb);\n this.writeU32(byteLength);\n } else throw new Error(\"Too long string: \".concat(byteLength, \" bytes in UTF-8\"));\n };\n Encoder.prototype.encodeString = function(object) {\n var maxHeaderSize = 5;\n var strLength = object.length;\n if (strLength > (0, $3f7790a221c2f3e5$export$ed34c0622b397238)) {\n var byteLength = (0, $3f7790a221c2f3e5$export$b61de95301265227)(object);\n this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);\n this.writeStringHeader(byteLength);\n (0, $3f7790a221c2f3e5$export$34cfdc82d430524)(object, this.bytes, this.pos);\n this.pos += byteLength;\n } else {\n var byteLength = (0, $3f7790a221c2f3e5$export$b61de95301265227)(object);\n this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);\n this.writeStringHeader(byteLength);\n (0, $3f7790a221c2f3e5$export$1042e4338f1ef853)(object, this.bytes, this.pos);\n this.pos += byteLength;\n }\n };\n Encoder.prototype.encodeObject = function(object, depth) {\n // try to encode objects with custom codec first of non-primitives\n var ext = this.extensionCodec.tryToEncode(object, this.context);\n if (ext != null) this.encodeExtension(ext);\n else if (Array.isArray(object)) this.encodeArray(object, depth);\n else if (ArrayBuffer.isView(object)) this.encodeBinary(object);\n else if (typeof object === \"object\") this.encodeMap(object, depth);\n else // symbol, function and other special object come here unless extensionCodec handles them.\n throw new Error(\"Unrecognized object: \".concat(Object.prototype.toString.apply(object)));\n };\n Encoder.prototype.encodeBinary = function(object) {\n var size = object.byteLength;\n if (size < 0x100) {\n // bin 8\n this.writeU8(0xc4);\n this.writeU8(size);\n } else if (size < 0x10000) {\n // bin 16\n this.writeU8(0xc5);\n this.writeU16(size);\n } else if (size < 0x100000000) {\n // bin 32\n this.writeU8(0xc6);\n this.writeU32(size);\n } else throw new Error(\"Too large binary: \".concat(size));\n var bytes = (0, $e2b22818b7517d55$export$f8d669c2a17882f2)(object);\n this.writeU8a(bytes);\n };\n Encoder.prototype.encodeArray = function(object, depth) {\n var size = object.length;\n if (size < 16) // fixarray\n this.writeU8(0x90 + size);\n else if (size < 0x10000) {\n // array 16\n this.writeU8(0xdc);\n this.writeU16(size);\n } else if (size < 0x100000000) {\n // array 32\n this.writeU8(0xdd);\n this.writeU32(size);\n } else throw new Error(\"Too large array: \".concat(size));\n for(var _i = 0, object_1 = object; _i < object_1.length; _i++){\n var item = object_1[_i];\n this.doEncode(item, depth + 1);\n }\n };\n Encoder.prototype.countWithoutUndefined = function(object, keys) {\n var count = 0;\n for(var _i = 0, keys_1 = keys; _i < keys_1.length; _i++){\n var key = keys_1[_i];\n if (object[key] !== undefined) count++;\n }\n return count;\n };\n Encoder.prototype.encodeMap = function(object, depth) {\n var keys = Object.keys(object);\n if (this.sortKeys) keys.sort();\n var size = this.ignoreUndefined ? this.countWithoutUndefined(object, keys) : keys.length;\n if (size < 16) // fixmap\n this.writeU8(0x80 + size);\n else if (size < 0x10000) {\n // map 16\n this.writeU8(0xde);\n this.writeU16(size);\n } else if (size < 0x100000000) {\n // map 32\n this.writeU8(0xdf);\n this.writeU32(size);\n } else throw new Error(\"Too large map object: \".concat(size));\n for(var _i = 0, keys_2 = keys; _i < keys_2.length; _i++){\n var key = keys_2[_i];\n var value = object[key];\n if (!(this.ignoreUndefined && value === undefined)) {\n this.encodeString(key);\n this.doEncode(value, depth + 1);\n }\n }\n };\n Encoder.prototype.encodeExtension = function(ext) {\n var size = ext.data.length;\n if (size === 1) // fixext 1\n this.writeU8(0xd4);\n else if (size === 2) // fixext 2\n this.writeU8(0xd5);\n else if (size === 4) // fixext 4\n this.writeU8(0xd6);\n else if (size === 8) // fixext 8\n this.writeU8(0xd7);\n else if (size === 16) // fixext 16\n this.writeU8(0xd8);\n else if (size < 0x100) {\n // ext 8\n this.writeU8(0xc7);\n this.writeU8(size);\n } else if (size < 0x10000) {\n // ext 16\n this.writeU8(0xc8);\n this.writeU16(size);\n } else if (size < 0x100000000) {\n // ext 32\n this.writeU8(0xc9);\n this.writeU32(size);\n } else throw new Error(\"Too large extension object: \".concat(size));\n this.writeI8(ext.type);\n this.writeU8a(ext.data);\n };\n Encoder.prototype.writeU8 = function(value) {\n this.ensureBufferSizeToWrite(1);\n this.view.setUint8(this.pos, value);\n this.pos++;\n };\n Encoder.prototype.writeU8a = function(values) {\n var size = values.length;\n this.ensureBufferSizeToWrite(size);\n this.bytes.set(values, this.pos);\n this.pos += size;\n };\n Encoder.prototype.writeI8 = function(value) {\n this.ensureBufferSizeToWrite(1);\n this.view.setInt8(this.pos, value);\n this.pos++;\n };\n Encoder.prototype.writeU16 = function(value) {\n this.ensureBufferSizeToWrite(2);\n this.view.setUint16(this.pos, value);\n this.pos += 2;\n };\n Encoder.prototype.writeI16 = function(value) {\n this.ensureBufferSizeToWrite(2);\n this.view.setInt16(this.pos, value);\n this.pos += 2;\n };\n Encoder.prototype.writeU32 = function(value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setUint32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeI32 = function(value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setInt32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeF32 = function(value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setFloat32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeF64 = function(value) {\n this.ensureBufferSizeToWrite(8);\n this.view.setFloat64(this.pos, value);\n this.pos += 8;\n };\n Encoder.prototype.writeU64 = function(value) {\n this.ensureBufferSizeToWrite(8);\n (0, $518bfda92fef5c7f$export$20f71c4c8b0f96c3)(this.view, this.pos, value);\n this.pos += 8;\n };\n Encoder.prototype.writeI64 = function(value) {\n this.ensureBufferSizeToWrite(8);\n (0, $518bfda92fef5c7f$export$8532a5209571c04a)(this.view, this.pos, value);\n this.pos += 8;\n };\n return Encoder;\n}();\n\n\n\nvar $hBa25 = parcelRequire(\"hBa25\");\nclass $115c516f1c55edeb$export$80f5de1a66c4d624 extends (0, $hBa25.StreamConnection) {\n constructor(peerId, provider, options){\n super(peerId, provider, options);\n this.serialization = \"MsgPack\";\n this._encoder = new (0, $c94702bf03c532e7$export$a50aceb0e02a00aa)();\n (async ()=>{\n for await (const msg of (0, $5dbeafcd6e23d52f$export$bf87d8a088c760fb)(this._rawReadStream)){\n // @ts-ignore\n if (msg.__peerData?.type === \"close\") {\n this.close();\n return;\n }\n this.emit(\"data\", msg);\n }\n })();\n }\n _send(data) {\n return this.writer.write(this._encoder.encode(data));\n }\n}\n\n\nexport {$115c516f1c55edeb$export$80f5de1a66c4d624 as MsgPack};\n//# sourceMappingURL=serializer.msgpack.mjs.map\n","\"use strict\";","import logger from \"../../logger.js\";\nimport type { Peer } from \"../../peer.js\";\nimport { DataConnection } from \"../DataConnection.js\";\n\nexport abstract class StreamConnection extends DataConnection {\n\tprivate _CHUNK_SIZE = 1024 * 8 * 4;\n\tprivate _splitStream = new TransformStream<Uint8Array>({\n\t\ttransform: (chunk, controller) => {\n\t\t\tfor (let split = 0; split < chunk.length; split += this._CHUNK_SIZE) {\n\t\t\t\tcontroller.enqueue(chunk.subarray(split, split + this._CHUNK_SIZE));\n\t\t\t}\n\t\t},\n\t});\n\tprivate _rawSendStream = new WritableStream<ArrayBuffer>({\n\t\twrite: async (chunk, controller) => {\n\t\t\tconst openEvent = new Promise((resolve) =>\n\t\t\t\tthis.dataChannel.addEventListener(\"bufferedamountlow\", resolve, {\n\t\t\t\t\tonce: true,\n\t\t\t\t}),\n\t\t\t);\n\n\t\t\t// if we can send the chunk now, send it\n\t\t\t// if not, we wait until at least half of the sending buffer is free again\n\t\t\tawait (this.dataChannel.bufferedAmount <=\n\t\t\t\tDataConnection.MAX_BUFFERED_AMOUNT - chunk.byteLength || openEvent);\n\n\t\t\t// TODO: what can go wrong here?\n\t\t\ttry {\n\t\t\t\tthis.dataChannel.send(chunk);\n\t\t\t} catch (e) {\n\t\t\t\tlogger.error(`DC#:${this.connectionId} Error when sending:`, e);\n\t\t\t\tcontroller.error(e);\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t},\n\t});\n\tprotected writer = this._splitStream.writable.getWriter();\n\n\tprotected _rawReadStream = new ReadableStream<ArrayBuffer>({\n\t\tstart: (controller) => {\n\t\t\tthis.once(\"open\", () => {\n\t\t\t\tthis.dataChannel.addEventListener(\"message\", (e) => {\n\t\t\t\t\tcontroller.enqueue(e.data);\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\t});\n\n\tprotected constructor(peerId: string, provider: Peer, options: any) {\n\t\tsuper(peerId, provider, { ...options, reliable: true });\n\n\t\tvoid this._splitStream.readable.pipeTo(this._rawSendStream);\n\t}\n\n\tpublic override _initializeDataChannel(dc) {\n\t\tsuper._initializeDataChannel(dc);\n\t\tthis.dataChannel.binaryType = \"arraybuffer\";\n\t\tthis.dataChannel.bufferedAmountLowThreshold =\n\t\t\tDataConnection.MAX_BUFFERED_AMOUNT / 2;\n\t}\n}\n","const LOG_PREFIX = \"PeerJS: \";\n\n/*\nPrints log messages depending on the debug level passed in. Defaults to 0.\n0 Prints no logs.\n1 Prints only errors.\n2 Prints errors and warnings.\n3 Prints all logs.\n*/\nexport enum LogLevel {\n\t/**\n\t * Prints no logs.\n\t */\n\tDisabled,\n\t/**\n\t * Prints only errors.\n\t */\n\tErrors,\n\t/**\n\t * Prints errors and warnings.\n\t */\n\tWarnings,\n\t/**\n\t * Prints all logs.\n\t */\n\tAll,\n}\n\nclass Logger {\n\tprivate _logLevel = LogLevel.Disabled;\n\n\tget logLevel(): LogLevel {\n\t\treturn this._logLevel;\n\t}\n\n\tset logLevel(logLevel: LogLevel) {\n\t\tthis._logLevel = logLevel;\n\t}\n\n\tlog(...args: any[]) {\n\t\tif (this._logLevel >= LogLevel.All) {\n\t\t\tthis._print(LogLevel.All, ...args);\n\t\t}\n\t}\n\n\twarn(...args: any[]) {\n\t\tif (this._logLevel >= LogLevel.Warnings) {\n\t\t\tthis._print(LogLevel.Warnings, ...args);\n\t\t}\n\t}\n\n\terror(...args: any[]) {\n\t\tif (this._logLevel >= LogLevel.Errors) {\n\t\t\tthis._print(LogLevel.Errors, ...args);\n\t\t}\n\t}\n\n\tsetLogFunction(fn: (logLevel: LogLevel, ..._: any[]) => void): void {\n\t\tthis._print = fn;\n\t}\n\n\tprivate _print(logLevel: LogLevel, ...rest: any[]): void {\n\t\tconst copy = [LOG_PREFIX, ...rest];\n\n\t\tfor (const i in copy) {\n\t\t\tif (copy[i] instanceof Error) {\n\t\t\t\tcopy[i] = \"(\" + copy[i].name + \") \" + copy[i].message;\n\t\t\t}\n\t\t}\n\n\t\tif (logLevel >= LogLevel.All) {\n\t\t\tconsole.log(...copy);\n\t\t} else if (logLevel >= LogLevel.Warnings) {\n\t\t\tconsole.warn(\"WARNING\", ...copy);\n\t\t} else if (logLevel >= LogLevel.Errors) {\n\t\t\tconsole.error(\"ERROR\", ...copy);\n\t\t}\n\t}\n}\n\nexport default new Logger();\n","import logger from \"../logger\";\nimport { Negotiator } from \"../negotiator\";\nimport {\n\tBaseConnectionErrorType,\n\tConnectionType,\n\tDataConnectionErrorType,\n\tServerMessageType,\n} from \"../enums\";\nimport type { Peer } from \"../peer\";\nimport { BaseConnection, type BaseConnectionEvents } from \"../baseconnection\";\nimport type { ServerMessage } from \"../servermessage\";\nimport type { EventsWithError } from \"../peerError\";\nimport { randomToken } from \"../utils/randomToken\";\n\nexport interface DataConnectionEvents\n\textends EventsWithError<DataConnectionErrorType | BaseConnectionErrorType>,\n\t\tBaseConnectionEvents<DataConnectionErrorType | BaseConnectionErrorType> {\n\t/**\n\t * Emitted when data is received from the remote peer.\n\t */\n\tdata: (data: unknown) => void;\n\t/**\n\t * Emitted when the connection is established and ready-to-use.\n\t */\n\topen: () => void;\n}\n\n/**\n * Wraps a DataChannel between two Peers.\n */\nexport abstract class DataConnection extends BaseConnection<\n\tDataConnectionEvents,\n\tDataConnectionErrorType\n> {\n\tprotected static readonly ID_PREFIX = \"dc_\";\n\tprotected static readonly MAX_BUFFERED_AMOUNT = 8 * 1024 * 1024;\n\n\tprivate _negotiator: Negotiator<DataConnectionEvents, this>;\n\tabstract readonly serialization: string;\n\treadonly reliable: boolean;\n\n\tpublic get type() {\n\t\treturn ConnectionType.Data;\n\t}\n\n\tconstructor(peerId: string, provider: Peer, options: any) {\n\t\tsuper(peerId, provider, options);\n\n\t\tthis.connectionId =\n\t\t\tthis.options.connectionId || DataConnection.ID_PREFIX + randomToken();\n\n\t\tthis.label = this.options.label || this.connectionId;\n\t\tthis.reliable = !!this.options.reliable;\n\n\t\tthis._negotiator = new Negotiator(this);\n\n\t\tthis._negotiator.startConnection(\n\t\t\tthis.options._payload || {\n\t\t\t\toriginator: true,\n\t\t\t\treliable: this.reliable,\n\t\t\t},\n\t\t);\n\t}\n\n\t/** Called by the Negotiator when the DataChannel is ready. */\n\toverride _initializeDataChannel(dc: RTCDataChannel): void {\n\t\tthis.dataChannel = dc;\n\n\t\tthis.dataChannel.onopen = () => {\n\t\t\tlogger.log(`DC#${this.connectionId} dc connection success`);\n\t\t\tthis._open = true;\n\t\t\tthis.emit(\"open\");\n\t\t};\n\n\t\tthis.dataChannel.onmessage = (e) => {\n\t\t\tlogger.log(`DC#${this.connectionId} dc onmessage:`, e.data);\n\t\t\t// this._handleDataMessage(e);\n\t\t};\n\n\t\tthis.dataChannel.onclose = () => {\n\t\t\tlogger.log(`DC#${this.connectionId} dc closed for:`, this.peer);\n\t\t\tthis.close();\n\t\t};\n\t}\n\n\t/**\n\t * Exposed functionality for users.\n\t */\n\n\t/** Allows user to close connection. */\n\tclose(options?: { flush?: boolean }): void {\n\t\tif (options?.flush) {\n\t\t\tthis.send({\n\t\t\t\t__peerData: {\n\t\t\t\t\ttype: \"close\",\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (this._negotiator) {\n\t\t\tthis._negotiator.cleanup();\n\t\t\tthis._negotiator = null;\n\t\t}\n\n\t\tif (this.provider) {\n\t\t\tthis.provider._removeConnection(this);\n\n\t\t\tthis.provider = null;\n\t\t}\n\n\t\tif (this.dataChannel) {\n\t\t\tthis.dataChannel.onopen = null;\n\t\t\tthis.dataChannel.onmessage = null;\n\t\t\tthis.dataChannel.onclose = null;\n\t\t\tthis.dataChannel = null;\n\t\t}\n\n\t\tif (!this.open) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._open = false;\n\n\t\tsuper.emit(\"close\");\n\t}\n\n\tprotected abstract _send(data: any, chunked: boolean): void | Promise<void>;\n\n\t/** Allows user to send data. */\n\tpublic send(data: any, chunked = false) {\n\t\tif (!this.open) {\n\t\t\tthis.emitError(\n\t\t\t\tDataConnectionErrorType.NotOpenYet,\n\t\t\t\t\"Connection is not open. You should listen for the `open` event before sending messages.\",\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\treturn this._send(data, chunked);\n\t}\n\n\tasync handleMessage(message: ServerMessage) {\n\t\tconst payload = message.payload;\n\n\t\tswitch (message.type) {\n\t\t\tcase ServerMessageType.Answer:\n\t\t\t\tawait this._negotiator.handleSDP(message.type, payload.sdp);\n\t\t\t\tbreak;\n\t\t\tcase ServerMessageType.Candidate:\n\t\t\t\tawait this._negotiator.handleCandidate(payload.candidate);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tlogger.warn(\n\t\t\t\t\t\"Unrecognized message type:\",\n\t\t\t\t\tmessage.type,\n\t\t\t\t\t\"from peer:\",\n\t\t\t\t\tthis.peer,\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n","import logger from \"./logger\";\nimport type { MediaConnection } from \"./mediaconnection\";\nimport type { DataConnection } from \"./dataconnection/DataConnection\";\nimport {\n\tBaseConnectionErrorType,\n\tConnectionType,\n\tPeerErrorType,\n\tServerMessageType,\n} from \"./enums\";\nimport type { BaseConnection, BaseConnectionEvents } from \"./baseconnection\";\nimport type { ValidEventTypes } from \"eventemitter3\";\n\n/**\n * Manages all negotiations between Peers.\n */\nexport class Negotiator<\n\tEvents extends ValidEventTypes,\n\tConnectionType extends BaseConnection<Events | BaseConnectionEvents>,\n> {\n\tconstructor(readonly connection: ConnectionType) {}\n\n\t/** Returns a PeerConnection object set up correctly (for data, media). */\n\tstartConnection(options: any) {\n\t\tconst peerConnection = this._startPeerConnection();\n\n\t\t// Set the connection's PC.\n\t\tthis.connection.peerConnection = peerConnection;\n\n\t\tif (this.connection.type === ConnectionType.Media && options._stream) {\n\t\t\tthis._addTracksToConnection(options._stream, peerConnection);\n\t\t}\n\n\t\t// What do we need to do now?\n\t\tif (options.originator) {\n\t\t\tconst dataConnection = this.connection;\n\n\t\t\tconst config: RTCDataChannelInit = { ordered: !!options.reliable };\n\n\t\t\tconst dataChannel = peerConnection.createDataChannel(\n\t\t\t\tdataConnection.label,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t\tdataConnection._initializeDataChannel(dataChannel);\n\n\t\t\tvoid this._makeOffer();\n\t\t} else {\n\t\t\tvoid this.handleSDP(\"OFFER\", options.sdp);\n\t\t}\n\t}\n\n\t/** Start a PC. */\n\tprivate _startPeerConnection(): RTCPeerConnection {\n\t\tlogger.log(\"Creating RTCPeerConnection.\");\n\n\t\tconst peerConnection = new RTCPeerConnection(\n\t\t\tthis.connection.provider.options.config,\n\t\t);\n\n\t\tthis._setupListeners(peerConnection);\n\n\t\treturn peerConnection;\n\t}\n\n\t/** Set up various WebRTC listeners. */\n\tprivate _setupListeners(peerConnection: RTCPeerConnection) {\n\t\tconst peerId = this.connection.peer;\n\t\tconst connectionId = this.connection.connectionId;\n\t\tconst connectionType = this.connection.type;\n\t\tconst provider = this.connection.provider;\n\n\t\t// ICE CANDIDATES.\n\t\tlogger.log(\"Listening for ICE candidates.\");\n\n\t\tpeerConnection.onicecandidate = (evt) => {\n\t\t\tif (!evt.candidate || !evt.candidate.candidate) return;\n\n\t\t\tlogger.log(`Received ICE candidates for ${peerId}:`, evt.candidate);\n\n\t\t\tprovider.socket.send({\n\t\t\t\ttype: ServerMessageType.Candidate,\n\t\t\t\tpayload: {\n\t\t\t\t\tcandidate: evt.candidate,\n\t\t\t\t\ttype: connectionType,\n\t\t\t\t\tconnectionId: connectionId,\n\t\t\t\t},\n\t\t\t\tdst: peerId,\n\t\t\t});\n\t\t};\n\n\t\tpeerConnection.oniceconnectionstatechange = () => {\n\t\t\tswitch (peerConnection.iceConnectionState) {\n\t\t\t\tcase \"failed\":\n\t\t\t\t\tlogger.log(\n\t\t\t\t\t\t\"iceConnectionState is failed, closing connections to \" + peerId,\n\t\t\t\t\t);\n\t\t\t\t\tthis.connection.emitError(\n\t\t\t\t\t\tBaseConnectionErrorType.NegotiationFailed,\n\t\t\t\t\t\t\"Negotiation of connection to \" + peerId + \" failed.\",\n\t\t\t\t\t);\n\t\t\t\t\tthis.connection.close();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"closed\":\n\t\t\t\t\tlogger.log(\n\t\t\t\t\t\t\"iceConnectionState is closed, closing connections to \" + peerId,\n\t\t\t\t\t);\n\t\t\t\t\tthis.connection.emitError(\n\t\t\t\t\t\tBaseConnectionErrorType.ConnectionClosed,\n\t\t\t\t\t\t\"Connection to \" + peerId + \" closed.\",\n\t\t\t\t\t);\n\t\t\t\t\tthis.connection.close();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"disconnected\":\n\t\t\t\t\tlogger.log(\n\t\t\t\t\t\t\"iceConnectionState changed to disconnected on the connection with \" +\n\t\t\t\t\t\t\tpeerId,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"completed\":\n\t\t\t\t\tpeerConnection.onicecandidate = () => {};\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tthis.connection.emit(\n\t\t\t\t\"iceStateChanged\",\n\t\t\t\tpeerConnection.iceConnectionState,\n\t\t\t);\n\t\t};\n\n\t\t// DATACONNECTION.\n\t\tlogger.log(\"Listening for data channel\");\n\t\t// Fired between offer and answer, so options should already be saved\n\t\t// in the options hash.\n\t\tpeerConnection.ondatachannel = (evt) => {\n\t\t\tlogger.log(\"Received data channel\");\n\n\t\t\tconst dataChannel = evt.channel;\n\t\t\tconst connection = <DataConnection>(\n\t\t\t\tprovider.getConnection(peerId, connectionId)\n\t\t\t);\n\n\t\t\tconnection._initializeDataChannel(dataChannel);\n\t\t};\n\n\t\t// MEDIACONNECTION.\n\t\tlogger.log(\"Listening for remote stream\");\n\n\t\tpeerConnection.ontrack = (evt) => {\n\t\t\tlogger.log(\"Received remote stream\");\n\n\t\t\tconst stream = evt.streams[0];\n\t\t\tconst connection = provider.getConnection(peerId, connectionId);\n\n\t\t\tif (connection.type === ConnectionType.Media) {\n\t\t\t\tconst mediaConnection = <MediaConnection>connection;\n\n\t\t\t\tthis._addStreamToMediaConnection(stream, mediaConnection);\n\t\t\t}\n\t\t};\n\t}\n\n\tcleanup(): void {\n\t\tlogger.log(\"Cleaning up PeerConnection to \" + this.connection.peer);\n\n\t\tconst peerConnection = this.connection.peerConnection;\n\n\t\tif (!peerConnection) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.connection.peerConnection = null;\n\n\t\t//unsubscribe from all PeerConnection's events\n\t\tpeerConnection.onicecandidate =\n\t\t\tpeerConnection.oniceconnectionstatechange =\n\t\t\tpeerConnection.ondatachannel =\n\t\t\tpeerConnection.ontrack =\n\t\t\t\t() => {};\n\n\t\tconst peerConnectionNotClosed = peerConnection.signalingState !== \"closed\";\n\t\tlet dataChannelNotClosed = false;\n\n\t\tconst dataChannel = this.connection.dataChannel;\n\n\t\tif (dataChannel) {\n\t\t\tdataChannelNotClosed =\n\t\t\t\t!!dataChannel.readyState && dataChannel.readyState !== \"closed\";\n\t\t}\n\n\t\tif (peerConnectionNotClosed || dataChannelNotClosed) {\n\t\t\tpeerConnection.close();\n\t\t}\n\t}\n\n\tprivate async _makeOffer(): Promise<void> {\n\t\tconst peerConnection = this.connection.peerConnection;\n\t\tconst provider = this.connection.provider;\n\n\t\ttry {\n\t\t\tconst offer = await peerConnection.createOffer(\n\t\t\t\tthis.connection.options.constraints,\n\t\t\t);\n\n\t\t\tlogger.log(\"Created offer.\");\n\n\t\t\tif (\n\t\t\t\tthis.connection.options.sdpTransform &&\n\t\t\t\ttypeof this.connection.options.sdpTransform === \"function\"\n\t\t\t) {\n\t\t\t\toffer.sdp =\n\t\t\t\t\tthis.connection.options.sdpTransform(offer.sdp) || offer.sdp;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tawait peerConnection.setLocalDescription(offer);\n\n\t\t\t\tlogger.log(\n\t\t\t\t\t\"Set localDescription:\",\n\t\t\t\t\toffer,\n\t\t\t\t\t`for:${this.connection.peer}`,\n\t\t\t\t);\n\n\t\t\t\tlet payload: any = {\n\t\t\t\t\tsdp: offer,\n\t\t\t\t\ttype: this.connection.type,\n\t\t\t\t\tconnectionId: this.connection.connectionId,\n\t\t\t\t\tmetadata: this.connection.metadata,\n\t\t\t\t};\n\n\t\t\t\tif (this.connection.type === ConnectionType.Data) {\n\t\t\t\t\tconst dataConnection = <DataConnection>(<unknown>this.connection);\n\n\t\t\t\t\tpayload = {\n\t\t\t\t\t\t...payload,\n\t\t\t\t\t\tlabel: dataConnection.label,\n\t\t\t\t\t\treliable: dataConnection.reliable,\n\t\t\t\t\t\tserialization: dataConnection.serialization,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tprovider.socket.send({\n\t\t\t\t\ttype: ServerMessageType.Offer,\n\t\t\t\t\tpayload,\n\t\t\t\t\tdst: this.connection.peer,\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\t// TODO: investigate why _makeOffer is being called from the answer\n\t\t\t\tif (\n\t\t\t\t\terr !=\n\t\t\t\t\t\"OperationError: Failed to set local offer sdp: Called in wrong state: kHaveRemoteOffer\"\n\t\t\t\t) {\n\t\t\t\t\tprovider.emitError(PeerErrorType.WebRTC, err);\n\t\t\t\t\tlogger.log(\"Failed to setLocalDescription, \", err);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err_1) {\n\t\t\tprovider.emitError(PeerErrorType.WebRTC, err_1);\n\t\t\tlogger.log(\"Failed to createOffer, \", err_1);\n\t\t}\n\t}\n\n\tprivate async _makeAnswer(): Promise<void> {\n\t\tconst peerConnection = this.connection.peerConnection;\n\t\tconst provider = this.connection.provider;\n\n\t\ttry {\n\t\t\tconst answer = await peerConnection.createAnswer();\n\t\t\tlogger.log(\"Created answer.\");\n\n\t\t\tif (\n\t\t\t\tthis.connection.options.sdpTransform &&\n\t\t\t\ttypeof this.connection.options.sdpTransform === \"function\"\n\t\t\t) {\n\t\t\t\tanswer.sdp =\n\t\t\t\t\tthis.connection.options.sdpTransform(answer.sdp) || answer.sdp;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tawait peerConnection.setLocalDescription(answer);\n\n\t\t\t\tlogger.log(\n\t\t\t\t\t`Set localDescription:`,\n\t\t\t\t\tanswer,\n\t\t\t\t\t`for:${this.connection.peer}`,\n\t\t\t\t);\n\n\t\t\t\tprovider.socket.send({\n\t\t\t\t\ttype: ServerMessageType.Answer,\n\t\t\t\t\tpayload: {\n\t\t\t\t\t\tsdp: answer,\n\t\t\t\t\t\ttype: this.connection.type,\n\t\t\t\t\t\tconnectionId: this.connection.connectionId,\n\t\t\t\t\t},\n\t\t\t\t\tdst: this.connection.peer,\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tprovider.emitError(PeerErrorType.WebRTC, err);\n\t\t\t\tlogger.log(\"Failed to setLocalDescription, \", err);\n\t\t\t}\n\t\t} catch (err_1) {\n\t\t\tprovider.emitError(PeerErrorType.WebRTC, err_1);\n\t\t\tlogger.log(\"Failed to create answer, \", err_1);\n\t\t}\n\t}\n\n\t/** Handle an SDP. */\n\tasync handleSDP(type: string, sdp: any): Promise<void> {\n\t\tsdp = new RTCSessionDescription(sdp);\n\t\tconst peerConnection = this.connection.peerConnection;\n\t\tconst provider = this.connection.provider;\n\n\t\tlogger.log(\"Setting remote description\", sdp);\n\n\t\tconst self = this;\n\n\t\ttry {\n\t\t\tawait peerConnection.setRemoteDescription(sdp);\n\t\t\tlogger.log(`Set remoteDescription:${type} for:${this.connection.peer}`);\n\t\t\tif (type === \"OFFER\") {\n\t\t\t\tawait self._makeAnswer();\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tprovider.emitError(PeerErrorType.WebRTC, err);\n\t\t\tlogger.log(\"Failed to setRemoteDescription, \", err);\n\t\t}\n\t}\n\n\t/** Handle a candidate. */\n\tasync handleCandidate(ice: RTCIceCandidate) {\n\t\tlogger.log(`handleCandidate:`, ice);\n\n\t\ttry {\n\t\t\tawait this.connection.peerConnection.addIceCandidate(ice);\n\t\t\tlogger.log(`Added ICE candidate for:${this.connection.peer}`);\n\t\t} catch (err) {\n\t\t\tthis.connection.provider.emitError(PeerErrorType.WebRTC, err);\n\t\t\tlogger.log(\"Failed to handleCandidate, \", err);\n\t\t}\n\t}\n\n\tprivate _addTracksToConnection(\n\t\tstream: MediaStream,\n\t\tpeerConnection: RTCPeerConnection,\n\t): void {\n\t\tlogger.log(`add tracks from stream ${stream.id} to peer connection`);\n\n\t\tif (!peerConnection.addTrack) {\n\t\t\treturn logger.error(\n\t\t\t\t`Your browser does't support RTCPeerConnection#addTrack. Ignored.`,\n\t\t\t);\n\t\t}\n\n\t\tstream.getTracks().forEach((track) => {\n\t\t\tpeerConnection.addTrack(track, stream);\n\t\t});\n\t}\n\n\tprivate _addStreamToMediaConnection(\n\t\tstream: MediaStream,\n\t\tmediaConnection: MediaConnection,\n\t): void {\n\t\tlogger.log(\n\t\t\t`add stream ${stream.id} to media connection ${mediaConnection.connectionId}`,\n\t\t);\n\n\t\tmediaConnection.addStream(stream);\n\t}\n}\n","export enum ConnectionType {\n\tData = \"data\",\n\tMedia = \"media\",\n}\n\nexport enum PeerErrorType {\n\t/**\n\t * The client's browser does not support some or all WebRTC features that you are trying to use.\n\t */\n\tBrowserIncompatible = \"browser-incompatible\",\n\t/**\n\t * You've already disconnected this peer from the server and can no longer make any new connections on it.\n\t */\n\tDisconnected = \"disconnected\",\n\t/**\n\t * The ID passed into the Peer constructor contains illegal characters.\n\t */\n\tInvalidID = \"invalid-id\",\n\t/**\n\t * The API key passed into the Peer constructor contains illegal characters or is not in the system (cloud server only).\n\t */\n\tInvalidKey = \"invalid-key\",\n\t/**\n\t * Lost or cannot establish a connection to the signalling server.\n\t */\n\tNetwork = \"network\",\n\t/**\n\t * The peer you're trying to connect to does not exist.\n\t */\n\tPeerUnavailable = \"peer-unavailable\",\n\t/**\n\t * PeerJS is being used securely, but the cloud server does not support SSL. Use a custom PeerServer.\n\t */\n\tSslUnavailable = \"ssl-unavailable\",\n\t/**\n\t * Unable to reach the server.\n\t */\n\tServerError = \"server-error\",\n\t/**\n\t * An error from the underlying socket.\n\t */\n\tSocketError = \"socket-error\",\n\t/**\n\t * The underlying socket closed unexpectedly.\n\t */\n\tSocketClosed = \"socket-closed\",\n\t/**\n\t * The ID passed into the Peer constructor is already taken.\n\t *\n\t * :::caution\n\t * This error is not fatal if your peer has open peer-to-peer connections.\n\t * This can happen if you attempt to {@apilink Peer.reconnect} a peer that has been disconnected from the server,\n\t * but its old ID has now been taken.\n\t * :::\n\t */\n\tUnavailableID = \"unavailable-id\",\n\t/**\n\t * Native WebRTC errors.\n\t */\n\tWebRTC = \"webrtc\",\n}\n\nexport enum BaseConnectionErrorType {\n\tNegotiationFailed = \"negotiation-failed\",\n\tConnectionClosed = \"connection-closed\",\n}\n\nexport enum DataConnectionErrorType {\n\tNotOpenYet = \"not-open-yet\",\n\tMessageToBig = \"message-too-big\",\n}\n\nexport enum SerializationType {\n\tBinary = \"binary\",\n\tBinaryUTF8 = \"binary-utf8\",\n\tJSON = \"json\",\n\tNone = \"raw\",\n}\n\nexport enum SocketEventType {\n\tMessage = \"message\",\n\tDisconnected = \"disconnected\",\n\tError = \"error\",\n\tClose = \"close\",\n}\n\nexport enum ServerMessageType {\n\tHeartbeat = \"HEARTBEAT\",\n\tCandidate = \"CANDIDATE\",\n\tOffer = \"OFFER\",\n\tAnswer = \"ANSWER\",\n\tOpen = \"OPEN\", // The connection to the server is open.\n\tError = \"ERROR\", // Server error.\n\tIdTaken = \"ID-TAKEN\", // The selected ID is taken.\n\tInvalidKey = \"INVALID-KEY\", // The given API key cannot be found.\n\tLeave = \"LEAVE\", // Another peer has closed its connection to this peer.\n\tExpire = \"EXPIRE\", // The offer sent to a peer has expired without response.\n}\n","import type { Peer } from \"./peer\";\nimport type { ServerMessage } from \"./servermessage\";\nimport type { ConnectionType } from \"./enums\";\nimport { BaseConnectionErrorType } from \"./enums\";\nimport {\n\tEventEmitterWithError,\n\ttype EventsWithError,\n\tPeerError,\n} from \"./peerError\";\nimport type { ValidEventTypes } from \"eventemitter3\";\n\nexport interface BaseConnectionEvents<\n\tErrorType extends string = BaseConnectionErrorType,\n> extends EventsWithError<ErrorType> {\n\t/**\n\t * Emitted when either you or the remote peer closes the connection.\n\t *\n\t * ```ts\n\t * connection.on('close', () => { ... });\n\t * ```\n\t */\n\tclose: () => void;\n\t/**\n\t * ```ts\n\t * connection.on('error', (error) => { ... });\n\t * ```\n\t */\n\terror: (error: PeerError<`${ErrorType}`>) => void;\n\ticeStateChanged: (state: RTCIceConnectionState) => void;\n}\n\nexport abstract class BaseConnection<\n\tSubClassEvents extends ValidEventTypes,\n\tErrorType extends string = never,\n> extends EventEmitterWithError<\n\tErrorType | BaseConnectionErrorType,\n\tSubClassEvents & BaseConnectionEvents<BaseConnectionErrorType | ErrorType>\n> {\n\tprotected _open = false;\n\n\t/**\n\t * Any type of metadata associated with the connection,\n\t * passed in by whoever initiated the connection.\n\t */\n\treadonly metadata: any;\n\tconnectionId: string;\n\n\tpeerConnection: RTCPeerConnection;\n\tdataChannel: RTCDataChannel;\n\n\tabstract get type(): ConnectionType;\n\n\t/**\n\t * The optional label passed in or assigned by PeerJS when the connection was initiated.\n\t */\n\tlabel: string;\n\n\t/**\n\t * Whether the media connection is active (e.g. your call has been answered).\n\t * You can check this if you want to set a maximum wait time for a one-sided call.\n\t */\n\tget open() {\n\t\treturn this._open;\n\t}\n\n\tprotected constructor(\n\t\t/**\n\t\t * The ID of the peer on the other end of this connection.\n\t\t */\n\t\treadonly peer: string,\n\t\tpublic provider: Peer,\n\t\treadonly options: any,\n\t) {\n\t\tsuper();\n\n\t\tthis.metadata = options.metadata;\n\t}\n\n\tabstract close(): void;\n\n\t/**\n\t * @internal\n\t */\n\tabstract handleMessage(message: ServerMessage): void;\n\n\t/**\n\t * Called by the Negotiator when the DataChannel is ready.\n\t * @internal\n\t * */\n\tabstract _initializeDataChannel(dc: RTCDataChannel): void;\n}\n","import { EventEmitter } from \"eventemitter3\";\nimport logger from \"./logger\";\n\nexport interface EventsWithError<ErrorType extends string> {\n\terror: (error: PeerError<`${ErrorType}`>) => void;\n}\n\nexport class EventEmitterWithError<\n\tErrorType extends string,\n\tEvents extends EventsWithError<ErrorType>,\n> extends EventEmitter<Events, never> {\n\t/**\n\t * Emits a typed error message.\n\t *\n\t * @internal\n\t */\n\temitError(type: ErrorType, err: string | Error): void {\n\t\tlogger.error(\"Error:\", err);\n\n\t\t// @ts-ignore\n\t\tthis.emit(\"error\", new PeerError<`${ErrorType}`>(`${type}`, err));\n\t}\n}\n/**\n * A PeerError is emitted whenever an error occurs.\n * It always has a `.type`, which can be used to identify the error.\n */\nexport class PeerError<T extends string> extends Error {\n\t/**\n\t * @internal\n\t */\n\tconstructor(type: T, err: Error | string) {\n\t\tif (typeof err === \"string\") {\n\t\t\tsuper(err);\n\t\t} else {\n\t\t\tsuper();\n\t\t\tObject.assign(this, err);\n\t\t}\n\n\t\tthis.type = type;\n\t}\n\n\tpublic type: T;\n}\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","export const randomToken = () => Math.random().toString(36).slice(2);\n","import { decodeMultiStream, Encoder } from \"@msgpack/msgpack\";\nimport { StreamConnection } from \"./StreamConnection.js\";\nimport type { Peer } from \"../../peer.js\";\n\nexport class MsgPack extends StreamConnection {\n\treadonly serialization = \"MsgPack\";\n\tprivate _encoder = new Encoder();\n\n\tconstructor(peerId: string, provider: Peer, options: any) {\n\t\tsuper(peerId, provider, options);\n\n\t\t(async () => {\n\t\t\tfor await (const msg of decodeMultiStream(this._rawReadStream)) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (msg.__peerData?.type === \"close\") {\n\t\t\t\t\tthis.close();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.emit(\"data\", msg);\n\t\t\t}\n\t\t})();\n\t}\n\n\tprotected override _send(data) {\n\t\treturn this.writer.write(this._encoder.encode(data));\n\t}\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Decoder } from \"./Decoder.mjs\";\nimport { ensureAsyncIterable } from \"./utils/stream.mjs\";\nimport { defaultDecodeOptions } from \"./decode.mjs\";\n/**\n * @throws {@link RangeError} if the buffer is incomplete, including the case where the buffer is empty.\n * @throws {@link DecodeError} if the buffer contains invalid data.\n */\nexport function decodeAsync(streamLike, options) {\n if (options === void 0) { options = defaultDecodeOptions; }\n return __awaiter(this, void 0, void 0, function () {\n var stream, decoder;\n return __generator(this, function (_a) {\n stream = ensureAsyncIterable(streamLike);\n decoder = new Decoder(options.extensionCodec, options.context, options.maxStrLength, options.maxBinLength, options.maxArrayLength, options.maxMapLength, options.maxExtLength);\n return [2 /*return*/, decoder.decodeAsync(stream)];\n });\n });\n}\n/**\n * @throws {@link RangeError} if the buffer is incomplete, including the case where the buffer is empty.\n * @throws {@link DecodeError} if the buffer contains invalid data.\n */\nexport function decodeArrayStream(streamLike, options) {\n if (options === void 0) { options = defaultDecodeOptions; }\n var stream = ensureAsyncIterable(streamLike);\n var decoder = new Decoder(options.extensionCodec, options.context, options.maxStrLength, options.maxBinLength, options.maxArrayLength, options.maxMapLength, options.maxExtLength);\n return decoder.decodeArrayStream(stream);\n}\n/**\n * @throws {@link RangeError} if the buffer is incomplete, including the case where the buffer is empty.\n * @throws {@link DecodeError} if the buffer contains invalid data.\n */\nexport function decodeMultiStream(streamLike, options) {\n if (options === void 0) { options = defaultDecodeOptions; }\n var stream = ensureAsyncIterable(streamLike);\n var decoder = new Decoder(options.extensionCodec, options.context, options.maxStrLength, options.maxBinLength, options.maxArrayLength, options.maxMapLength, options.maxExtLength);\n return decoder.decodeStream(stream);\n}\n/**\n * @deprecated Use {@link decodeMultiStream()} instead.\n */\nexport function decodeStream(streamLike, options) {\n if (options === void 0) { options = defaultDecodeOptions; }\n return decodeMultiStream(streamLike, options);\n}\n//# sourceMappingURL=decodeAsync.mjs.map","import { Decoder } from \"./Decoder\";\nimport { ensureAsyncIterable } from \"./utils/stream\";\nimport { defaultDecodeOptions } from \"./decode\";\nimport type { ReadableStreamLike } from \"./utils/stream\";\nimport type { DecodeOptions } from \"./decode\";\nimport type { SplitUndefined } from \"./context\";\n\n/**\n * @throws {@link RangeError} if the buffer is incomplete, including the case where the buffer is empty.\n * @throws {@link DecodeError} if the buffer contains invalid data.\n */\n export async function decodeAsync<ContextType>(\n streamLike: ReadableStreamLike<ArrayLike<number> | BufferSource>,\n options: DecodeOptions<SplitUndefined<ContextType>> = defaultDecodeOptions as any,\n): Promise<unknown> {\n const stream = ensureAsyncIterable(streamLike);\n\n const decoder = new Decoder(\n options.extensionCodec,\n (options as typeof options & { context: any }).context,\n options.maxStrLength,\n options.maxBinLength,\n options.maxArrayLength,\n options.maxMapLength,\n options.maxExtLength,\n );\n return decoder.decodeAsync(stream);\n}\n\n/**\n * @throws {@link RangeError} if the buffer is incomplete, including the case where the buffer is empty.\n * @throws {@link DecodeError} if the buffer contains invalid data.\n */\n export function decodeArrayStream<ContextType>(\n streamLike: ReadableStreamLike<ArrayLike<number> | BufferSource>,\n options: DecodeOptions<SplitUndefined<ContextType>> = defaultDecodeOptions as any,\n): AsyncGenerator<unknown, void, unknown> {\n const stream = ensureAsyncIterable(streamLike);\n\n const decoder = new Decoder(\n options.extensionCodec,\n (options as typeof options & { context: any }).context,\n options.maxStrLength,\n options.maxBinLength,\n options.maxArrayLength,\n options.maxMapLength,\n options.maxExtLength,\n );\n\n return decoder.decodeArrayStream(stream);\n}\n\n/**\n * @throws {@link RangeError} if the buffer is incomplete, including the case where the buffer is empty.\n * @throws {@link DecodeError} if the buffer contains invalid data.\n */\nexport function decodeMultiStream<ContextType>(\n streamLike: ReadableStreamLike<ArrayLike<number> | BufferSource>,\n options: DecodeOptions<SplitUndefined<ContextType>> = defaultDecodeOptions as any,\n): AsyncGenerator<unknown, void, unknown> {\n const stream = ensureAsyncIterable(streamLike);\n\n const decoder = new Decoder(\n options.extensionCodec,\n (options as typeof options & { context: any }).context,\n options.maxStrLength,\n options.maxBinLength,\n options.maxArrayLength,\n options.maxMapLength,\n options.maxExtLength,\n );\n\n return decoder.decodeStream(stream);\n}\n\n/**\n * @deprecated Use {@link decodeMultiStream()} instead.\n */\nexport function decodeStream<ContextType>(\n streamLike: ReadableStreamLike<ArrayLike<number> | BufferSource>,\n options: DecodeOptions<SplitUndefined<ContextType>> = defaultDecodeOptions as any,\n): AsyncGenerator<unknown, void, unknown> {\n return decodeMultiStream(streamLike, options);\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { prettyByte } from \"./utils/prettyByte.mjs\";\nimport { ExtensionCodec } from \"./ExtensionCodec.mjs\";\nimport { getInt64, getUint64, UINT32_MAX } from \"./utils/int.mjs\";\nimport { utf8DecodeJs, TEXT_DECODER_THRESHOLD, utf8DecodeTD } from \"./utils/utf8.mjs\";\nimport { createDataView, ensureUint8Array } from \"./utils/typedArrays.mjs\";\nimport { CachedKeyDecoder } from \"./CachedKeyDecoder.mjs\";\nimport { DecodeError } from \"./DecodeError.mjs\";\nvar isValidMapKeyType = function (key) {\n var keyType = typeof key;\n return keyType === \"string\" || keyType === \"number\";\n};\nvar HEAD_BYTE_REQUIRED = -1;\nvar EMPTY_VIEW = new DataView(new ArrayBuffer(0));\nvar EMPTY_BYTES = new Uint8Array(EMPTY_VIEW.buffer);\n// IE11: Hack to support IE11.\n// IE11: Drop this hack and just use RangeError when IE11 is obsolete.\nexport var DataViewIndexOutOfBoundsError = (function () {\n try {\n // IE11: The spec says it should throw RangeError,\n // IE11: but in IE11 it throws TypeError.\n EMPTY_VIEW.getInt8(0);\n }\n catch (e) {\n return e.constructor;\n }\n throw new Error(\"never reached\");\n})();\nvar MORE_DATA = new DataViewIndexOutOfBoundsError(\"Insufficient data\");\nvar sharedCachedKeyDecoder = new CachedKeyDecoder();\nvar Decoder = /** @class */ (function () {\n function Decoder(extensionCodec, context, maxStrLength, maxBinLength, maxArrayLength, maxMapLength, maxExtLength, keyDecoder) {\n if (extensionCodec === void 0) { extensionCodec = ExtensionCodec.defaultCodec; }\n if (context === void 0) { context = undefined; }\n if (maxStrLength === void 0) { maxStrLength = UINT32_MAX; }\n if (maxBinLength === void 0) { maxBinLength = UINT32_MAX; }\n if (maxArrayLength === void 0) { maxArrayLength = UINT32_MAX; }\n if (maxMapLength === void 0) { maxMapLength = UINT32_MAX; }\n if (maxExtLength === void 0) { maxExtLength = UINT32_MAX; }\n if (keyDecoder === void 0) { keyDecoder = sharedCachedKeyDecoder; }\n this.extensionCodec = extensionCodec;\n this.context = context;\n this.maxStrLength = maxStrLength;\n this.maxBinLength = maxBinLength;\n this.maxArrayLength = maxArrayLength;\n this.maxMapLength = maxMapLength;\n this.maxExtLength = maxExtLength;\n this.keyDecoder = keyDecoder;\n this.totalPos = 0;\n this.pos = 0;\n this.view = EMPTY_VIEW;\n this.bytes = EMPTY_BYTES;\n this.headByte = HEAD_BYTE_REQUIRED;\n this.stack = [];\n }\n Decoder.prototype.reinitializeState = function () {\n this.totalPos = 0;\n this.headByte = HEAD_BYTE_REQUIRED;\n this.stack.length = 0;\n // view, bytes, and pos will be re-initialized in setBuffer()\n };\n Decoder.prototype.setBuffer = function (buffer) {\n this.bytes = ensureUint8Array(buffer);\n this.view = createDataView(this.bytes);\n this.pos = 0;\n };\n Decoder.prototype.appendBuffer = function (buffer) {\n if (this.headByte === HEAD_BYTE_REQUIRED && !this.hasRemaining(1)) {\n this.setBuffer(buffer);\n }\n else {\n var remainingData = this.bytes.subarray(this.pos);\n var newData = ensureUint8Array(buffer);\n // concat remainingData + newData\n var newBuffer = new Uint8Array(remainingData.length + newData.length);\n newBuffer.set(remainingData);\n newBuffer.set(newData, remainingData.length);\n this.setBuffer(newBuffer);\n }\n };\n Decoder.prototype.hasRemaining = function (size) {\n return this.view.byteLength - this.pos >= size;\n };\n Decoder.prototype.createExtraByteError = function (posToShow) {\n var _a = this, view = _a.view, pos = _a.pos;\n return new RangeError(\"Extra \".concat(view.byteLength - pos, \" of \").concat(view.byteLength, \" byte(s) found at buffer[\").concat(posToShow, \"]\"));\n };\n /**\n * @throws {@link DecodeError}\n * @throws {@link RangeError}\n */\n Decoder.prototype.decode = function (buffer) {\n this.reinitializeState();\n this.setBuffer(buffer);\n var object = this.doDecodeSync();\n if (this.hasRemaining(1)) {\n throw this.createExtraByteError(this.pos);\n }\n return object;\n };\n Decoder.prototype.decodeMulti = function (buffer) {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.reinitializeState();\n this.setBuffer(buffer);\n _a.label = 1;\n case 1:\n if (!this.hasRemaining(1)) return [3 /*break*/, 3];\n return [4 /*yield*/, this.doDecodeSync()];\n case 2:\n _a.sent();\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/];\n }\n });\n };\n Decoder.prototype.decodeAsync = function (stream) {\n var stream_1, stream_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function () {\n var decoded, object, buffer, e_1_1, _b, headByte, pos, totalPos;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n decoded = false;\n _c.label = 1;\n case 1:\n _c.trys.push([1, 6, 7, 12]);\n stream_1 = __asyncValues(stream);\n _c.label = 2;\n case 2: return [4 /*yield*/, stream_1.next()];\n case 3:\n if (!(stream_1_1 = _c.sent(), !stream_1_1.done)) return [3 /*break*/, 5];\n buffer = stream_1_1.value;\n if (decoded) {\n throw this.createExtraByteError(this.totalPos);\n }\n this.appendBuffer(buffer);\n try {\n object = this.doDecodeSync();\n decoded = true;\n }\n catch (e) {\n if (!(e instanceof DataViewIndexOutOfBoundsError)) {\n throw e; // rethrow\n }\n // fallthrough\n }\n this.totalPos += this.pos;\n _c.label = 4;\n case 4: return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 12];\n case 6:\n e_1_1 = _c.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 12];\n case 7:\n _c.trys.push([7, , 10, 11]);\n if (!(stream_1_1 && !stream_1_1.done && (_a = stream_1.return))) return [3 /*break*/, 9];\n return [4 /*yield*/, _a.call(stream_1)];\n case 8:\n _c.sent();\n _c.label = 9;\n case 9: return [3 /*break*/, 11];\n case 10:\n if (e_1) throw e_1.error;\n return [7 /*endfinally*/];\n case 11: return [7 /*endfinally*/];\n case 12:\n if (decoded) {\n if (this.hasRemaining(1)) {\n throw this.createExtraByteError(this.totalPos);\n }\n return [2 /*return*/, object];\n }\n _b = this, headByte = _b.headByte, pos = _b.pos, totalPos = _b.totalPos;\n throw new RangeError(\"Insufficient data in parsing \".concat(prettyByte(headByte), \" at \").concat(totalPos, \" (\").concat(pos, \" in the current buffer)\"));\n }\n });\n });\n };\n Decoder.prototype.decodeArrayStream = function (stream) {\n return this.decodeMultiAsync(stream, true);\n };\n Decoder.prototype.decodeStream = function (stream) {\n return this.decodeMultiAsync(stream, false);\n };\n Decoder.prototype.decodeMultiAsync = function (stream, isArray) {\n return __asyncGenerator(this, arguments, function decodeMultiAsync_1() {\n var isArrayHeaderRequired, arrayItemsLeft, stream_2, stream_2_1, buffer, e_2, e_3_1;\n var e_3, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n isArrayHeaderRequired = isArray;\n arrayItemsLeft = -1;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 13, 14, 19]);\n stream_2 = __asyncValues(stream);\n _b.label = 2;\n case 2: return [4 /*yield*/, __await(stream_2.next())];\n case 3:\n if (!(stream_2_1 = _b.sent(), !stream_2_1.done)) return [3 /*break*/, 12];\n buffer = stream_2_1.value;\n if (isArray && arrayItemsLeft === 0) {\n throw this.createExtraByteError(this.totalPos);\n }\n this.appendBuffer(buffer);\n if (isArrayHeaderRequired) {\n arrayItemsLeft = this.readArraySize();\n isArrayHeaderRequired = false;\n this.complete();\n }\n _b.label = 4;\n case 4:\n _b.trys.push([4, 9, , 10]);\n _b.label = 5;\n case 5:\n if (!true) return [3 /*break*/, 8];\n return [4 /*yield*/, __await(this.doDecodeSync())];\n case 6: return [4 /*yield*/, _b.sent()];\n case 7:\n _b.sent();\n if (--arrayItemsLeft === 0) {\n return [3 /*break*/, 8];\n }\n return [3 /*break*/, 5];\n case 8: return [3 /*break*/, 10];\n case 9:\n e_2 = _b.sent();\n if (!(e_2 instanceof DataViewIndexOutOfBoundsError)) {\n throw e_2; // rethrow\n }\n return [3 /*break*/, 10];\n case 10:\n this.totalPos += this.pos;\n _b.label = 11;\n case 11: return [3 /*break*/, 2];\n case 12: return [3 /*break*/, 19];\n case 13:\n e_3_1 = _b.sent();\n e_3 = { error: e_3_1 };\n return [3 /*break*/, 19];\n case 14:\n _b.trys.push([14, , 17, 18]);\n if (!(stream_2_1 && !stream_2_1.done && (_a = stream_2.return))) return [3 /*break*/, 16];\n return [4 /*yield*/, __await(_a.call(stream_2))];\n case 15:\n _b.sent();\n _b.label = 16;\n case 16: return [3 /*break*/, 18];\n case 17:\n if (e_3) throw e_3.error;\n return [7 /*endfinally*/];\n case 18: return [7 /*endfinally*/];\n case 19: return [2 /*return*/];\n }\n });\n });\n };\n Decoder.prototype.doDecodeSync = function () {\n DECODE: while (true) {\n var headByte = this.readHeadByte();\n var object = void 0;\n if (headByte >= 0xe0) {\n // negative fixint (111x xxxx) 0xe0 - 0xff\n object = headByte - 0x100;\n }\n else if (headByte < 0xc0) {\n if (headByte < 0x80) {\n // positive fixint (0xxx xxxx) 0x00 - 0x7f\n object = headByte;\n }\n else if (headByte < 0x90) {\n // fixmap (1000 xxxx) 0x80 - 0x8f\n var size = headByte - 0x80;\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte < 0xa0) {\n // fixarray (1001 xxxx) 0x90 - 0x9f\n var size = headByte - 0x90;\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else {\n // fixstr (101x xxxx) 0xa0 - 0xbf\n var byteLength = headByte - 0xa0;\n object = this.decodeUtf8String(byteLength, 0);\n }\n }\n else if (headByte === 0xc0) {\n // nil\n object = null;\n }\n else if (headByte === 0xc2) {\n // false\n object = false;\n }\n else if (headByte === 0xc3) {\n // true\n object = true;\n }\n else if (headByte === 0xca) {\n // float 32\n object = this.readF32();\n }\n else if (headByte === 0xcb) {\n // float 64\n object = this.readF64();\n }\n else if (headByte === 0xcc) {\n // uint 8\n object = this.readU8();\n }\n else if (headByte === 0xcd) {\n // uint 16\n object = this.readU16();\n }\n else if (headByte === 0xce) {\n // uint 32\n object = this.readU32();\n }\n else if (headByte === 0xcf) {\n // uint 64\n object = this.readU64();\n }\n else if (headByte === 0xd0) {\n // int 8\n object = this.readI8();\n }\n else if (headByte === 0xd1) {\n // int 16\n object = this.readI16();\n }\n else if (headByte === 0xd2) {\n // int 32\n object = this.readI32();\n }\n else if (headByte === 0xd3) {\n // int 64\n object = this.readI64();\n }\n else if (headByte === 0xd9) {\n // str 8\n var byteLength = this.lookU8();\n object = this.decodeUtf8String(byteLength, 1);\n }\n else if (headByte === 0xda) {\n // str 16\n var byteLength = this.lookU16();\n object = this.decodeUtf8String(byteLength, 2);\n }\n else if (headByte === 0xdb) {\n // str 32\n var byteLength = this.lookU32();\n object = this.decodeUtf8String(byteLength, 4);\n }\n else if (headByte === 0xdc) {\n // array 16\n var size = this.readU16();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else if (headByte === 0xdd) {\n // array 32\n var size = this.readU32();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else if (headByte === 0xde) {\n // map 16\n var size = this.readU16();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte === 0xdf) {\n // map 32\n var size = this.readU32();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte === 0xc4) {\n // bin 8\n var size = this.lookU8();\n object = this.decodeBinary(size, 1);\n }\n else if (headByte === 0xc5) {\n // bin 16\n var size = this.lookU16();\n object = this.decodeBinary(size, 2);\n }\n else if (headByte === 0xc6) {\n // bin 32\n var size = this.lookU32();\n object = this.decodeBinary(size, 4);\n }\n else if (headByte === 0xd4) {\n // fixext 1\n object = this.decodeExtension(1, 0);\n }\n else if (headByte === 0xd5) {\n // fixext 2\n object = this.decodeExtension(2, 0);\n }\n else if (headByte === 0xd6) {\n // fixext 4\n object = this.decodeExtension(4, 0);\n }\n else if (headByte === 0xd7) {\n // fixext 8\n object = this.decodeExtension(8, 0);\n }\n else if (headByte === 0xd8) {\n // fixext 16\n object = this.decodeExtension(16, 0);\n }\n else if (headByte === 0xc7) {\n // ext 8\n var size = this.lookU8();\n object = this.decodeExtension(size, 1);\n }\n else if (headByte === 0xc8) {\n // ext 16\n var size = this.lookU16();\n object = this.decodeExtension(size, 2);\n }\n else if (headByte === 0xc9) {\n // ext 32\n var size = this.lookU32();\n object = this.decodeExtension(size, 4);\n }\n else {\n throw new DecodeError(\"Unrecognized type byte: \".concat(prettyByte(headByte)));\n }\n this.complete();\n var stack = this.stack;\n while (stack.length > 0) {\n // arrays and maps\n var state = stack[stack.length - 1];\n if (state.type === 0 /* State.ARRAY */) {\n state.array[state.position] = object;\n state.position++;\n if (state.position === state.size) {\n stack.pop();\n object = state.array;\n }\n else {\n continue DECODE;\n }\n }\n else if (state.type === 1 /* State.MAP_KEY */) {\n if (!isValidMapKeyType(object)) {\n throw new DecodeError(\"The type of key must be string or number but \" + typeof object);\n }\n if (object === \"__proto__\") {\n throw new DecodeError(\"The key __proto__ is not allowed\");\n }\n state.key = object;\n state.type = 2 /* State.MAP_VALUE */;\n continue DECODE;\n }\n else {\n // it must be `state.type === State.MAP_VALUE` here\n state.map[state.key] = object;\n state.readCount++;\n if (state.readCount === state.size) {\n stack.pop();\n object = state.map;\n }\n else {\n state.key = null;\n state.type = 1 /* State.MAP_KEY */;\n continue DECODE;\n }\n }\n }\n return object;\n }\n };\n Decoder.prototype.readHeadByte = function () {\n if (this.headByte === HEAD_BYTE_REQUIRED) {\n this.headByte = this.readU8();\n // console.log(\"headByte\", prettyByte(this.headByte));\n }\n return this.headByte;\n };\n Decoder.prototype.complete = function () {\n this.headByte = HEAD_BYTE_REQUIRED;\n };\n Decoder.prototype.readArraySize = function () {\n var headByte = this.readHeadByte();\n switch (headByte) {\n case 0xdc:\n return this.readU16();\n case 0xdd:\n return this.readU32();\n default: {\n if (headByte < 0xa0) {\n return headByte - 0x90;\n }\n else {\n throw new DecodeError(\"Unrecognized array type byte: \".concat(prettyByte(headByte)));\n }\n }\n }\n };\n Decoder.prototype.pushMapState = function (size) {\n if (size > this.maxMapLength) {\n throw new DecodeError(\"Max length exceeded: map length (\".concat(size, \") > maxMapLengthLength (\").concat(this.maxMapLength, \")\"));\n }\n this.stack.push({\n type: 1 /* State.MAP_KEY */,\n size: size,\n key: null,\n readCount: 0,\n map: {},\n });\n };\n Decoder.prototype.pushArrayState = function (size) {\n if (size > this.maxArrayLength) {\n throw new DecodeError(\"Max length exceeded: array length (\".concat(size, \") > maxArrayLength (\").concat(this.maxArrayLength, \")\"));\n }\n this.stack.push({\n type: 0 /* State.ARRAY */,\n size: size,\n array: new Array(size),\n position: 0,\n });\n };\n Decoder.prototype.decodeUtf8String = function (byteLength, headerOffset) {\n var _a;\n if (byteLength > this.maxStrLength) {\n throw new DecodeError(\"Max length exceeded: UTF-8 byte length (\".concat(byteLength, \") > maxStrLength (\").concat(this.maxStrLength, \")\"));\n }\n if (this.bytes.byteLength < this.pos + headerOffset + byteLength) {\n throw MORE_DATA;\n }\n var offset = this.pos + headerOffset;\n var object;\n if (this.stateIsMapKey() && ((_a = this.keyDecoder) === null || _a === void 0 ? void 0 : _a.canBeCached(byteLength))) {\n object = this.keyDecoder.decode(this.bytes, offset, byteLength);\n }\n else if (byteLength > TEXT_DECODER_THRESHOLD) {\n object = utf8DecodeTD(this.bytes, offset, byteLength);\n }\n else {\n object = utf8DecodeJs(this.bytes, offset, byteLength);\n }\n this.pos += headerOffset + byteLength;\n return object;\n };\n Decoder.prototype.stateIsMapKey = function () {\n if (this.stack.length > 0) {\n var state = this.stack[this.stack.length - 1];\n return state.type === 1 /* State.MAP_KEY */;\n }\n return false;\n };\n Decoder.prototype.decodeBinary = function (byteLength, headOffset) {\n if (byteLength > this.maxBinLength) {\n throw new DecodeError(\"Max length exceeded: bin length (\".concat(byteLength, \") > maxBinLength (\").concat(this.maxBinLength, \")\"));\n }\n if (!this.hasRemaining(byteLength + headOffset)) {\n throw MORE_DATA;\n }\n var offset = this.pos + headOffset;\n var object = this.bytes.subarray(offset, offset + byteLength);\n this.pos += headOffset + byteLength;\n return object;\n };\n Decoder.prototype.decodeExtension = function (size, headOffset) {\n if (size > this.maxExtLength) {\n throw new DecodeError(\"Max length exceeded: ext length (\".concat(size, \") > maxExtLength (\").concat(this.maxExtLength, \")\"));\n }\n var extType = this.view.getInt8(this.pos + headOffset);\n var data = this.decodeBinary(size, headOffset + 1 /* extType */);\n return this.extensionCodec.decode(data, extType, this.context);\n };\n Decoder.prototype.lookU8 = function () {\n return this.view.getUint8(this.pos);\n };\n Decoder.prototype.lookU16 = function () {\n return this.view.getUint16(this.pos);\n };\n Decoder.prototype.lookU32 = function () {\n return this.view.getUint32(this.pos);\n };\n Decoder.prototype.readU8 = function () {\n var value = this.view.getUint8(this.pos);\n this.pos++;\n return value;\n };\n Decoder.prototype.readI8 = function () {\n var value = this.view.getInt8(this.pos);\n this.pos++;\n return value;\n };\n Decoder.prototype.readU16 = function () {\n var value = this.view.getUint16(this.pos);\n this.pos += 2;\n return value;\n };\n Decoder.prototype.readI16 = function () {\n var value = this.view.getInt16(this.pos);\n this.pos += 2;\n return value;\n };\n Decoder.prototype.readU32 = function () {\n var value = this.view.getUint32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readI32 = function () {\n var value = this.view.getInt32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readU64 = function () {\n var value = getUint64(this.view, this.pos);\n this.pos += 8;\n return value;\n };\n Decoder.prototype.readI64 = function () {\n var value = getInt64(this.view, this.pos);\n this.pos += 8;\n return value;\n };\n Decoder.prototype.readF32 = function () {\n var value = this.view.getFloat32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readF64 = function () {\n var value = this.view.getFloat64(this.pos);\n this.pos += 8;\n return value;\n };\n return Decoder;\n}());\nexport { Decoder };\n//# sourceMappingURL=Decoder.mjs.map","import { prettyByte } from \"./utils/prettyByte\";\nimport { ExtensionCodec, ExtensionCodecType } from \"./ExtensionCodec\";\nimport { getInt64, getUint64, UINT32_MAX } from \"./utils/int\";\nimport { utf8DecodeJs, TEXT_DECODER_THRESHOLD, utf8DecodeTD } from \"./utils/utf8\";\nimport { createDataView, ensureUint8Array } from \"./utils/typedArrays\";\nimport { CachedKeyDecoder, KeyDecoder } from \"./CachedKeyDecoder\";\nimport { DecodeError } from \"./DecodeError\";\n\nconst enum State {\n ARRAY,\n MAP_KEY,\n MAP_VALUE,\n}\n\ntype MapKeyType = string | number;\n\nconst isValidMapKeyType = (key: unknown): key is MapKeyType => {\n const keyType = typeof key;\n\n return keyType === \"string\" || keyType === \"number\";\n};\n\ntype StackMapState = {\n type: State.MAP_KEY | State.MAP_VALUE;\n size: number;\n key: MapKeyType | null;\n readCount: number;\n map: Record<string, unknown>;\n};\n\ntype StackArrayState = {\n type: State.ARRAY;\n size: number;\n array: Array<unknown>;\n position: number;\n};\n\ntype StackState = StackArrayState | StackMapState;\n\nconst HEAD_BYTE_REQUIRED = -1;\n\nconst EMPTY_VIEW = new DataView(new ArrayBuffer(0));\nconst EMPTY_BYTES = new Uint8Array(EMPTY_VIEW.buffer);\n\n// IE11: Hack to support IE11.\n// IE11: Drop this hack and just use RangeError when IE11 is obsolete.\nexport const DataViewIndexOutOfBoundsError: typeof Error = (() => {\n try {\n // IE11: The spec says it should throw RangeError,\n // IE11: but in IE11 it throws TypeError.\n EMPTY_VIEW.getInt8(0);\n } catch (e: any) {\n return e.constructor;\n }\n throw new Error(\"never reached\");\n})();\n\nconst MORE_DATA = new DataViewIndexOutOfBoundsError(\"Insufficient data\");\n\nconst sharedCachedKeyDecoder = new CachedKeyDecoder();\n\nexport class Decoder<ContextType = undefined> {\n private totalPos = 0;\n private pos = 0;\n\n private view = EMPTY_VIEW;\n private bytes = EMPTY_BYTES;\n private headByte = HEAD_BYTE_REQUIRED;\n private readonly stack: Array<StackState> = [];\n\n public constructor(\n private readonly extensionCodec: ExtensionCodecType<ContextType> = ExtensionCodec.defaultCodec as any,\n private readonly context: ContextType = undefined as any,\n private readonly maxStrLength = UINT32_MAX,\n private readonly maxBinLength = UINT32_MAX,\n private readonly maxArrayLength = UINT32_MAX,\n private readonly maxMapLength = UINT32_MAX,\n private readonly maxExtLength = UINT32_MAX,\n private readonly keyDecoder: KeyDecoder | null = sharedCachedKeyDecoder,\n ) {}\n\n private reinitializeState() {\n this.totalPos = 0;\n this.headByte = HEAD_BYTE_REQUIRED;\n this.stack.length = 0;\n\n // view, bytes, and pos will be re-initialized in setBuffer()\n }\n\n private setBuffer(buffer: ArrayLike<number> | BufferSource): void {\n this.bytes = ensureUint8Array(buffer);\n this.view = createDataView(this.bytes);\n this.pos = 0;\n }\n\n private appendBuffer(buffer: ArrayLike<number> | BufferSource) {\n if (this.headByte === HEAD_BYTE_REQUIRED && !this.hasRemaining(1)) {\n this.setBuffer(buffer);\n } else {\n const remainingData = this.bytes.subarray(this.pos);\n const newData = ensureUint8Array(buffer);\n\n // concat remainingData + newData\n const newBuffer = new Uint8Array(remainingData.length + newData.length);\n newBuffer.set(remainingData);\n newBuffer.set(newData, remainingData.length);\n this.setBuffer(newBuffer);\n }\n }\n\n private hasRemaining(size: number) {\n return this.view.byteLength - this.pos >= size;\n }\n\n private createExtraByteError(posToShow: number): Error {\n const { view, pos } = this;\n return new RangeError(`Extra ${view.byteLength - pos} of ${view.byteLength} byte(s) found at buffer[${posToShow}]`);\n }\n\n /**\n * @throws {@link DecodeError}\n * @throws {@link RangeError}\n */\n public decode(buffer: ArrayLike<number> | BufferSource): unknown {\n this.reinitializeState();\n this.setBuffer(buffer);\n\n const object = this.doDecodeSync();\n if (this.hasRemaining(1)) {\n throw this.createExtraByteError(this.pos);\n }\n return object;\n }\n\n public *decodeMulti(buffer: ArrayLike<number> | BufferSource): Generator<unknown, void, unknown> {\n this.reinitializeState();\n this.setBuffer(buffer);\n\n while (this.hasRemaining(1)) {\n yield this.doDecodeSync();\n }\n }\n\n public async decodeAsync(stream: AsyncIterable<ArrayLike<number> | BufferSource>): Promise<unknown> {\n let decoded = false;\n let object: unknown;\n for await (const buffer of stream) {\n if (decoded) {\n throw this.createExtraByteError(this.totalPos);\n }\n\n this.appendBuffer(buffer);\n\n try {\n object = this.doDecodeSync();\n decoded = true;\n } catch (e) {\n if (!(e instanceof DataViewIndexOutOfBoundsError)) {\n throw e; // rethrow\n }\n // fallthrough\n }\n this.totalPos += this.pos;\n }\n\n if (decoded) {\n if (this.hasRemaining(1)) {\n throw this.createExtraByteError(this.totalPos);\n }\n return object;\n }\n\n const { headByte, pos, totalPos } = this;\n throw new RangeError(\n `Insufficient data in parsing ${prettyByte(headByte)} at ${totalPos} (${pos} in the current buffer)`,\n );\n }\n\n public decodeArrayStream(\n stream: AsyncIterable<ArrayLike<number> | BufferSource>,\n ): AsyncGenerator<unknown, void, unknown> {\n return this.decodeMultiAsync(stream, true);\n }\n\n public decodeStream(stream: AsyncIterable<ArrayLike<number> | BufferSource>): AsyncGenerator<unknown, void, unknown> {\n return this.decodeMultiAsync(stream, false);\n }\n\n private async *decodeMultiAsync(stream: AsyncIterable<ArrayLike<number> | BufferSource>, isArray: boolean) {\n let isArrayHeaderRequired = isArray;\n let arrayItemsLeft = -1;\n\n for await (const buffer of stream) {\n if (isArray && arrayItemsLeft === 0) {\n throw this.createExtraByteError(this.totalPos);\n }\n\n this.appendBuffer(buffer);\n\n if (isArrayHeaderRequired) {\n arrayItemsLeft = this.readArraySize();\n isArrayHeaderRequired = false;\n this.complete();\n }\n\n try {\n while (true) {\n yield this.doDecodeSync();\n if (--arrayItemsLeft === 0) {\n break;\n }\n }\n } catch (e) {\n if (!(e instanceof DataViewIndexOutOfBoundsError)) {\n throw e; // rethrow\n }\n // fallthrough\n }\n this.totalPos += this.pos;\n }\n }\n\n private doDecodeSync(): unknown {\n DECODE: while (true) {\n const headByte = this.readHeadByte();\n let object: unknown;\n\n if (headByte >= 0xe0) {\n // negative fixint (111x xxxx) 0xe0 - 0xff\n object = headByte - 0x100;\n } else if (headByte < 0xc0) {\n if (headByte < 0x80) {\n // positive fixint (0xxx xxxx) 0x00 - 0x7f\n object = headByte;\n } else if (headByte < 0x90) {\n // fixmap (1000 xxxx) 0x80 - 0x8f\n const size = headByte - 0x80;\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n } else {\n object = {};\n }\n } else if (headByte < 0xa0) {\n // fixarray (1001 xxxx) 0x90 - 0x9f\n const size = headByte - 0x90;\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n } else {\n object = [];\n }\n } else {\n // fixstr (101x xxxx) 0xa0 - 0xbf\n const byteLength = headByte - 0xa0;\n object = this.decodeUtf8String(byteLength, 0);\n }\n } else if (headByte === 0xc0) {\n // nil\n object = null;\n } else if (headByte === 0xc2) {\n // false\n object = false;\n } else if (headByte === 0xc3) {\n // true\n object = true;\n } else if (headByte === 0xca) {\n // float 32\n object = this.readF32();\n } else if (headByte === 0xcb) {\n // float 64\n object = this.readF64();\n } else if (headByte === 0xcc) {\n // uint 8\n object = this.readU8();\n } else if (headByte === 0xcd) {\n // uint 16\n object = this.readU16();\n } else if (headByte === 0xce) {\n // uint 32\n object = this.readU32();\n } else if (headByte === 0xcf) {\n // uint 64\n object = this.readU64();\n } else if (headByte === 0xd0) {\n // int 8\n object = this.readI8();\n } else if (headByte === 0xd1) {\n // int 16\n object = this.readI16();\n } else if (headByte === 0xd2) {\n // int 32\n object = this.readI32();\n } else if (headByte === 0xd3) {\n // int 64\n object = this.readI64();\n } else if (headByte === 0xd9) {\n // str 8\n const byteLength = this.lookU8();\n object = this.decodeUtf8String(byteLength, 1);\n } else if (headByte === 0xda) {\n // str 16\n const byteLength = this.lookU16();\n object = this.decodeUtf8String(byteLength, 2);\n } else if (headByte === 0xdb) {\n // str 32\n const byteLength = this.lookU32();\n object = this.decodeUtf8String(byteLength, 4);\n } else if (headByte === 0xdc) {\n // array 16\n const size = this.readU16();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n } else {\n object = [];\n }\n } else if (headByte === 0xdd) {\n // array 32\n const size = this.readU32();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n } else {\n object = [];\n }\n } else if (headByte === 0xde) {\n // map 16\n const size = this.readU16();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n } else {\n object = {};\n }\n } else if (headByte === 0xdf) {\n // map 32\n const size = this.readU32();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n } else {\n object = {};\n }\n } else if (headByte === 0xc4) {\n // bin 8\n const size = this.lookU8();\n object = this.decodeBinary(size, 1);\n } else if (headByte === 0xc5) {\n // bin 16\n const size = this.lookU16();\n object = this.decodeBinary(size, 2);\n } else if (headByte === 0xc6) {\n // bin 32\n const size = this.lookU32();\n object = this.decodeBinary(size, 4);\n } else if (headByte === 0xd4) {\n // fixext 1\n object = this.decodeExtension(1, 0);\n } else if (headByte === 0xd5) {\n // fixext 2\n object = this.decodeExtension(2, 0);\n } else if (headByte === 0xd6) {\n // fixext 4\n object = this.decodeExtension(4, 0);\n } else if (headByte === 0xd7) {\n // fixext 8\n object = this.decodeExtension(8, 0);\n } else if (headByte === 0xd8) {\n // fixext 16\n object = this.decodeExtension(16, 0);\n } else if (headByte === 0xc7) {\n // ext 8\n const size = this.lookU8();\n object = this.decodeExtension(size, 1);\n } else if (headByte === 0xc8) {\n // ext 16\n const size = this.lookU16();\n object = this.decodeExtension(size, 2);\n } else if (headByte === 0xc9) {\n // ext 32\n const size = this.lookU32();\n object = this.decodeExtension(size, 4);\n } else {\n throw new DecodeError(`Unrecognized type byte: ${prettyByte(headByte)}`);\n }\n\n this.complete();\n\n const stack = this.stack;\n while (stack.length > 0) {\n // arrays and maps\n const state = stack[stack.length - 1]!;\n if (state.type === State.ARRAY) {\n state.array[state.position] = object;\n state.position++;\n if (state.position === state.size) {\n stack.pop();\n object = state.array;\n } else {\n continue DECODE;\n }\n } else if (state.type === State.MAP_KEY) {\n if (!isValidMapKeyType(object)) {\n throw new DecodeError(\"The type of key must be string or number but \" + typeof object);\n }\n if (object === \"__proto__\") {\n throw new DecodeError(\"The key __proto__ is not allowed\");\n }\n\n state.key = object;\n state.type = State.MAP_VALUE;\n continue DECODE;\n } else {\n // it must be `state.type === State.MAP_VALUE` here\n\n state.map[state.key!] = object;\n state.readCount++;\n\n if (state.readCount === state.size) {\n stack.pop();\n object = state.map;\n } else {\n state.key = null;\n state.type = State.MAP_KEY;\n continue DECODE;\n }\n }\n }\n\n return object;\n }\n }\n\n private readHeadByte(): number {\n if (this.headByte === HEAD_BYTE_REQUIRED) {\n this.headByte = this.readU8();\n // console.log(\"headByte\", prettyByte(this.headByte));\n }\n\n return this.headByte;\n }\n\n private complete(): void {\n this.headByte = HEAD_BYTE_REQUIRED;\n }\n\n private readArraySize(): number {\n const headByte = this.readHeadByte();\n\n switch (headByte) {\n case 0xdc:\n return this.readU16();\n case 0xdd:\n return this.readU32();\n default: {\n if (headByte < 0xa0) {\n return headByte - 0x90;\n } else {\n throw new DecodeError(`Unrecognized array type byte: ${prettyByte(headByte)}`);\n }\n }\n }\n }\n\n private pushMapState(size: number) {\n if (size > this.maxMapLength) {\n throw new DecodeError(`Max length exceeded: map length (${size}) > maxMapLengthLength (${this.maxMapLength})`);\n }\n\n this.stack.push({\n type: State.MAP_KEY,\n size,\n key: null,\n readCount: 0,\n map: {},\n });\n }\n\n private pushArrayState(size: number) {\n if (size > this.maxArrayLength) {\n throw new DecodeError(`Max length exceeded: array length (${size}) > maxArrayLength (${this.maxArrayLength})`);\n }\n\n this.stack.push({\n type: State.ARRAY,\n size,\n array: new Array<unknown>(size),\n position: 0,\n });\n }\n\n private decodeUtf8String(byteLength: number, headerOffset: number): string {\n if (byteLength > this.maxStrLength) {\n throw new DecodeError(\n `Max length exceeded: UTF-8 byte length (${byteLength}) > maxStrLength (${this.maxStrLength})`,\n );\n }\n\n if (this.bytes.byteLength < this.pos + headerOffset + byteLength) {\n throw MORE_DATA;\n }\n\n const offset = this.pos + headerOffset;\n let object: string;\n if (this.stateIsMapKey() && this.keyDecoder?.canBeCached(byteLength)) {\n object = this.keyDecoder.decode(this.bytes, offset, byteLength);\n } else if (byteLength > TEXT_DECODER_THRESHOLD) {\n object = utf8DecodeTD(this.bytes, offset, byteLength);\n } else {\n object = utf8DecodeJs(this.bytes, offset, byteLength);\n }\n this.pos += headerOffset + byteLength;\n return object;\n }\n\n private stateIsMapKey(): boolean {\n if (this.stack.length > 0) {\n const state = this.stack[this.stack.length - 1]!;\n return state.type === State.MAP_KEY;\n }\n return false;\n }\n\n private decodeBinary(byteLength: number, headOffset: number): Uint8Array {\n if (byteLength > this.maxBinLength) {\n throw new DecodeError(`Max length exceeded: bin length (${byteLength}) > maxBinLength (${this.maxBinLength})`);\n }\n\n if (!this.hasRemaining(byteLength + headOffset)) {\n throw MORE_DATA;\n }\n\n const offset = this.pos + headOffset;\n const object = this.bytes.subarray(offset, offset + byteLength);\n this.pos += headOffset + byteLength;\n return object;\n }\n\n private decodeExtension(size: number, headOffset: number): unknown {\n if (size > this.maxExtLength) {\n throw new DecodeError(`Max length exceeded: ext length (${size}) > maxExtLength (${this.maxExtLength})`);\n }\n\n const extType = this.view.getInt8(this.pos + headOffset);\n const data = this.decodeBinary(size, headOffset + 1 /* extType */);\n return this.extensionCodec.decode(data, extType, this.context);\n }\n\n private lookU8() {\n return this.view.getUint8(this.pos);\n }\n\n private lookU16() {\n return this.view.getUint16(this.pos);\n }\n\n private lookU32() {\n return this.view.getUint32(this.pos);\n }\n\n private readU8(): number {\n const value = this.view.getUint8(this.pos);\n this.pos++;\n return value;\n }\n\n private readI8(): number {\n const value = this.view.getInt8(this.pos);\n this.pos++;\n return value;\n }\n\n private readU16(): number {\n const value = this.view.getUint16(this.pos);\n this.pos += 2;\n return value;\n }\n\n private readI16(): number {\n const value = this.view.getInt16(this.pos);\n this.pos += 2;\n return value;\n }\n\n private readU32(): number {\n const value = this.view.getUint32(this.pos);\n this.pos += 4;\n return value;\n }\n\n private readI32(): number {\n const value = this.view.getInt32(this.pos);\n this.pos += 4;\n return value;\n }\n\n private readU64(): number {\n const value = getUint64(this.view, this.pos);\n this.pos += 8;\n return value;\n }\n\n private readI64(): number {\n const value = getInt64(this.view, this.pos);\n this.pos += 8;\n return value;\n }\n\n private readF32() {\n const value = this.view.getFloat32(this.pos);\n this.pos += 4;\n return value;\n }\n\n private readF64() {\n const value = this.view.getFloat64(this.pos);\n this.pos += 8;\n return value;\n }\n}\n","export function prettyByte(byte) {\n return \"\".concat(byte < 0 ? \"-\" : \"\", \"0x\").concat(Math.abs(byte).toString(16).padStart(2, \"0\"));\n}\n//# sourceMappingURL=prettyByte.mjs.map","export function prettyByte(byte: number): string {\n return `${byte < 0 ? \"-\" : \"\"}0x${Math.abs(byte).toString(16).padStart(2, \"0\")}`;\n}\n","// ExtensionCodec to handle MessagePack extensions\nimport { ExtData } from \"./ExtData.mjs\";\nimport { timestampExtension } from \"./timestamp.mjs\";\nvar ExtensionCodec = /** @class */ (function () {\n function ExtensionCodec() {\n // built-in extensions\n this.builtInEncoders = [];\n this.builtInDecoders = [];\n // custom extensions\n this.encoders = [];\n this.decoders = [];\n this.register(timestampExtension);\n }\n ExtensionCodec.prototype.register = function (_a) {\n var type = _a.type, encode = _a.encode, decode = _a.decode;\n if (type >= 0) {\n // custom extensions\n this.encoders[type] = encode;\n this.decoders[type] = decode;\n }\n else {\n // built-in extensions\n var index = 1 + type;\n this.builtInEncoders[index] = encode;\n this.builtInDecoders[index] = decode;\n }\n };\n ExtensionCodec.prototype.tryToEncode = function (object, context) {\n // built-in extensions\n for (var i = 0; i < this.builtInEncoders.length; i++) {\n var encodeExt = this.builtInEncoders[i];\n if (encodeExt != null) {\n var data = encodeExt(object, context);\n if (data != null) {\n var type = -1 - i;\n return new ExtData(type, data);\n }\n }\n }\n // custom extensions\n for (var i = 0; i < this.encoders.length; i++) {\n var encodeExt = this.encoders[i];\n if (encodeExt != null) {\n var data = encodeExt(object, context);\n if (data != null) {\n var type = i;\n return new ExtData(type, data);\n }\n }\n }\n if (object instanceof ExtData) {\n // to keep ExtData as is\n return object;\n }\n return null;\n };\n ExtensionCodec.prototype.decode = function (data, type, context) {\n var decodeExt = type < 0 ? this.builtInDecoders[-1 - type] : this.decoders[type];\n if (decodeExt) {\n return decodeExt(data, type, context);\n }\n else {\n // decode() does not fail, returns ExtData instead.\n return new ExtData(type, data);\n }\n };\n ExtensionCodec.defaultCodec = new ExtensionCodec();\n return ExtensionCodec;\n}());\nexport { ExtensionCodec };\n//# sourceMappingURL=ExtensionCodec.mjs.map","// ExtensionCodec to handle MessagePack extensions\n\nimport { ExtData } from \"./ExtData\";\nimport { timestampExtension } from \"./timestamp\";\n\nexport type ExtensionDecoderType<ContextType> = (\n data: Uint8Array,\n extensionType: number,\n context: ContextType,\n) => unknown;\n\nexport type ExtensionEncoderType<ContextType> = (input: unknown, context: ContextType) => Uint8Array | null;\n\n// immutable interface to ExtensionCodec\nexport type ExtensionCodecType<ContextType> = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n __brand?: ContextType;\n tryToEncode(object: unknown, context: ContextType): ExtData | null;\n decode(data: Uint8Array, extType: number, context: ContextType): unknown;\n};\n\nexport class ExtensionCodec<ContextType = undefined> implements ExtensionCodecType<ContextType> {\n public static readonly defaultCodec: ExtensionCodecType<undefined> = new ExtensionCodec();\n\n // ensures ExtensionCodecType<X> matches ExtensionCodec<X>\n // this will make type errors a lot more clear\n // eslint-disable-next-line @typescript-eslint/naming-convention\n __brand?: ContextType;\n\n // built-in extensions\n private readonly builtInEncoders: Array<ExtensionEncoderType<ContextType> | undefined | null> = [];\n private readonly builtInDecoders: Array<ExtensionDecoderType<ContextType> | undefined | null> = [];\n\n // custom extensions\n private readonly encoders: Array<ExtensionEncoderType<ContextType> | undefined | null> = [];\n private readonly decoders: Array<ExtensionDecoderType<ContextType> | undefined | null> = [];\n\n public constructor() {\n this.register(timestampExtension);\n }\n\n public register({\n type,\n encode,\n decode,\n }: {\n type: number;\n encode: ExtensionEncoderType<ContextType>;\n decode: ExtensionDecoderType<ContextType>;\n }): void {\n if (type >= 0) {\n // custom extensions\n this.encoders[type] = encode;\n this.decoders[type] = decode;\n } else {\n // built-in extensions\n const index = 1 + type;\n this.builtInEncoders[index] = encode;\n this.builtInDecoders[index] = decode;\n }\n }\n\n public tryToEncode(object: unknown, context: ContextType): ExtData | null {\n // built-in extensions\n for (let i = 0; i < this.builtInEncoders.length; i++) {\n const encodeExt = this.builtInEncoders[i];\n if (encodeExt != null) {\n const data = encodeExt(object, context);\n if (data != null) {\n const type = -1 - i;\n return new ExtData(type, data);\n }\n }\n }\n\n // custom extensions\n for (let i = 0; i < this.encoders.length; i++) {\n const encodeExt = this.encoders[i];\n if (encodeExt != null) {\n const data = encodeExt(object, context);\n if (data != null) {\n const type = i;\n return new ExtData(type, data);\n }\n }\n }\n\n if (object instanceof ExtData) {\n // to keep ExtData as is\n return object;\n }\n return null;\n }\n\n public decode(data: Uint8Array, type: number, context: ContextType): unknown {\n const decodeExt = type < 0 ? this.builtInDecoders[-1 - type] : this.decoders[type];\n if (decodeExt) {\n return decodeExt(data, type, context);\n } else {\n // decode() does not fail, returns ExtData instead.\n return new ExtData(type, data);\n }\n }\n}\n","/**\n * ExtData is used to handle Extension Types that are not registered to ExtensionCodec.\n */\nvar ExtData = /** @class */ (function () {\n function ExtData(type, data) {\n this.type = type;\n this.data = data;\n }\n return ExtData;\n}());\nexport { ExtData };\n//# sourceMappingURL=ExtData.mjs.map","/**\n * ExtData is used to handle Extension Types that are not registered to ExtensionCodec.\n */\nexport class ExtData {\n constructor(readonly type: number, readonly data: Uint8Array) {}\n}\n","// https://github.com/msgpack/msgpack/blob/master/spec.md#timestamp-extension-type\nimport { DecodeError } from \"./DecodeError.mjs\";\nimport { getInt64, setInt64 } from \"./utils/int.mjs\";\nexport var EXT_TIMESTAMP = -1;\nvar TIMESTAMP32_MAX_SEC = 0x100000000 - 1; // 32-bit unsigned int\nvar TIMESTAMP64_MAX_SEC = 0x400000000 - 1; // 34-bit unsigned int\nexport function encodeTimeSpecToTimestamp(_a) {\n var sec = _a.sec, nsec = _a.nsec;\n if (sec >= 0 && nsec >= 0 && sec <= TIMESTAMP64_MAX_SEC) {\n // Here sec >= 0 && nsec >= 0\n if (nsec === 0 && sec <= TIMESTAMP32_MAX_SEC) {\n // timestamp 32 = { sec32 (unsigned) }\n var rv = new Uint8Array(4);\n var view = new DataView(rv.buffer);\n view.setUint32(0, sec);\n return rv;\n }\n else {\n // timestamp 64 = { nsec30 (unsigned), sec34 (unsigned) }\n var secHigh = sec / 0x100000000;\n var secLow = sec & 0xffffffff;\n var rv = new Uint8Array(8);\n var view = new DataView(rv.buffer);\n // nsec30 | secHigh2\n view.setUint32(0, (nsec << 2) | (secHigh & 0x3));\n // secLow32\n view.setUint32(4, secLow);\n return rv;\n }\n }\n else {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n var rv = new Uint8Array(12);\n var view = new DataView(rv.buffer);\n view.setUint32(0, nsec);\n setInt64(view, 4, sec);\n return rv;\n }\n}\nexport function encodeDateToTimeSpec(date) {\n var msec = date.getTime();\n var sec = Math.floor(msec / 1e3);\n var nsec = (msec - sec * 1e3) * 1e6;\n // Normalizes { sec, nsec } to ensure nsec is unsigned.\n var nsecInSec = Math.floor(nsec / 1e9);\n return {\n sec: sec + nsecInSec,\n nsec: nsec - nsecInSec * 1e9,\n };\n}\nexport function encodeTimestampExtension(object) {\n if (object instanceof Date) {\n var timeSpec = encodeDateToTimeSpec(object);\n return encodeTimeSpecToTimestamp(timeSpec);\n }\n else {\n return null;\n }\n}\nexport function decodeTimestampToTimeSpec(data) {\n var view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n // data may be 32, 64, or 96 bits\n switch (data.byteLength) {\n case 4: {\n // timestamp 32 = { sec32 }\n var sec = view.getUint32(0);\n var nsec = 0;\n return { sec: sec, nsec: nsec };\n }\n case 8: {\n // timestamp 64 = { nsec30, sec34 }\n var nsec30AndSecHigh2 = view.getUint32(0);\n var secLow32 = view.getUint32(4);\n var sec = (nsec30AndSecHigh2 & 0x3) * 0x100000000 + secLow32;\n var nsec = nsec30AndSecHigh2 >>> 2;\n return { sec: sec, nsec: nsec };\n }\n case 12: {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n var sec = getInt64(view, 4);\n var nsec = view.getUint32(0);\n return { sec: sec, nsec: nsec };\n }\n default:\n throw new DecodeError(\"Unrecognized data size for timestamp (expected 4, 8, or 12): \".concat(data.length));\n }\n}\nexport function decodeTimestampExtension(data) {\n var timeSpec = decodeTimestampToTimeSpec(data);\n return new Date(timeSpec.sec * 1e3 + timeSpec.nsec / 1e6);\n}\nexport var timestampExtension = {\n type: EXT_TIMESTAMP,\n encode: encodeTimestampExtension,\n decode: decodeTimestampExtension,\n};\n//# sourceMappingURL=timestamp.mjs.map","// https://github.com/msgpack/msgpack/blob/master/spec.md#timestamp-extension-type\nimport { DecodeError } from \"./DecodeError\";\nimport { getInt64, setInt64 } from \"./utils/int\";\n\nexport const EXT_TIMESTAMP = -1;\n\nexport type TimeSpec = {\n sec: number;\n nsec: number;\n};\n\nconst TIMESTAMP32_MAX_SEC = 0x100000000 - 1; // 32-bit unsigned int\nconst TIMESTAMP64_MAX_SEC = 0x400000000 - 1; // 34-bit unsigned int\n\nexport function encodeTimeSpecToTimestamp({ sec, nsec }: TimeSpec): Uint8Array {\n if (sec >= 0 && nsec >= 0 && sec <= TIMESTAMP64_MAX_SEC) {\n // Here sec >= 0 && nsec >= 0\n if (nsec === 0 && sec <= TIMESTAMP32_MAX_SEC) {\n // timestamp 32 = { sec32 (unsigned) }\n const rv = new Uint8Array(4);\n const view = new DataView(rv.buffer);\n view.setUint32(0, sec);\n return rv;\n } else {\n // timestamp 64 = { nsec30 (unsigned), sec34 (unsigned) }\n const secHigh = sec / 0x100000000;\n const secLow = sec & 0xffffffff;\n const rv = new Uint8Array(8);\n const view = new DataView(rv.buffer);\n // nsec30 | secHigh2\n view.setUint32(0, (nsec << 2) | (secHigh & 0x3));\n // secLow32\n view.setUint32(4, secLow);\n return rv;\n }\n } else {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n const rv = new Uint8Array(12);\n const view = new DataView(rv.buffer);\n view.setUint32(0, nsec);\n setInt64(view, 4, sec);\n return rv;\n }\n}\n\nexport function encodeDateToTimeSpec(date: Date): TimeSpec {\n const msec = date.getTime();\n const sec = Math.floor(msec / 1e3);\n const nsec = (msec - sec * 1e3) * 1e6;\n\n // Normalizes { sec, nsec } to ensure nsec is unsigned.\n const nsecInSec = Math.floor(nsec / 1e9);\n return {\n sec: sec + nsecInSec,\n nsec: nsec - nsecInSec * 1e9,\n };\n}\n\nexport function encodeTimestampExtension(object: unknown): Uint8Array | null {\n if (object instanceof Date) {\n const timeSpec = encodeDateToTimeSpec(object);\n return encodeTimeSpecToTimestamp(timeSpec);\n } else {\n return null;\n }\n}\n\nexport function decodeTimestampToTimeSpec(data: Uint8Array): TimeSpec {\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n\n // data may be 32, 64, or 96 bits\n switch (data.byteLength) {\n case 4: {\n // timestamp 32 = { sec32 }\n const sec = view.getUint32(0);\n const nsec = 0;\n return { sec, nsec };\n }\n case 8: {\n // timestamp 64 = { nsec30, sec34 }\n const nsec30AndSecHigh2 = view.getUint32(0);\n const secLow32 = view.getUint32(4);\n const sec = (nsec30AndSecHigh2 & 0x3) * 0x100000000 + secLow32;\n const nsec = nsec30AndSecHigh2 >>> 2;\n return { sec, nsec };\n }\n case 12: {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n\n const sec = getInt64(view, 4);\n const nsec = view.getUint32(0);\n return { sec, nsec };\n }\n default:\n throw new DecodeError(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${data.length}`);\n }\n}\n\nexport function decodeTimestampExtension(data: Uint8Array): Date {\n const timeSpec = decodeTimestampToTimeSpec(data);\n return new Date(timeSpec.sec * 1e3 + timeSpec.nsec / 1e6);\n}\n\nexport const timestampExtension = {\n type: EXT_TIMESTAMP,\n encode: encodeTimestampExtension,\n decode: decodeTimestampExtension,\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar DecodeError = /** @class */ (function (_super) {\n __extends(DecodeError, _super);\n function DecodeError(message) {\n var _this = _super.call(this, message) || this;\n // fix the prototype chain in a cross-platform way\n var proto = Object.create(DecodeError.prototype);\n Object.setPrototypeOf(_this, proto);\n Object.defineProperty(_this, \"name\", {\n configurable: true,\n enumerable: false,\n value: DecodeError.name,\n });\n return _this;\n }\n return DecodeError;\n}(Error));\nexport { DecodeError };\n//# sourceMappingURL=DecodeError.mjs.map","export class DecodeError extends Error {\n constructor(message: string) {\n super(message);\n\n // fix the prototype chain in a cross-platform way\n const proto: typeof DecodeError.prototype = Object.create(DecodeError.prototype);\n Object.setPrototypeOf(this, proto);\n\n Object.defineProperty(this, \"name\", {\n configurable: true,\n enumerable: false,\n value: DecodeError.name,\n });\n }\n}\n","// Integer Utility\nexport var UINT32_MAX = 4294967295;\n// DataView extension to handle int64 / uint64,\n// where the actual range is 53-bits integer (a.k.a. safe integer)\nexport function setUint64(view, offset, value) {\n var high = value / 4294967296;\n var low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\nexport function setInt64(view, offset, value) {\n var high = Math.floor(value / 4294967296);\n var low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\nexport function getInt64(view, offset) {\n var high = view.getInt32(offset);\n var low = view.getUint32(offset + 4);\n return high * 4294967296 + low;\n}\nexport function getUint64(view, offset) {\n var high = view.getUint32(offset);\n var low = view.getUint32(offset + 4);\n return high * 4294967296 + low;\n}\n//# sourceMappingURL=int.mjs.map","// Integer Utility\n\nexport const UINT32_MAX = 0xffff_ffff;\n\n// DataView extension to handle int64 / uint64,\n// where the actual range is 53-bits integer (a.k.a. safe integer)\n\nexport function setUint64(view: DataView, offset: number, value: number): void {\n const high = value / 0x1_0000_0000;\n const low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\n\nexport function setInt64(view: DataView, offset: number, value: number): void {\n const high = Math.floor(value / 0x1_0000_0000);\n const low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\n\nexport function getInt64(view: DataView, offset: number): number {\n const high = view.getInt32(offset);\n const low = view.getUint32(offset + 4);\n return high * 0x1_0000_0000 + low;\n}\n\nexport function getUint64(view: DataView, offset: number): number {\n const high = view.getUint32(offset);\n const low = view.getUint32(offset + 4);\n return high * 0x1_0000_0000 + low;\n}\n","var _a, _b, _c;\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\nimport { UINT32_MAX } from \"./int.mjs\";\nvar TEXT_ENCODING_AVAILABLE = (typeof process === \"undefined\" || ((_a = process === null || process === void 0 ? void 0 : process.env) === null || _a === void 0 ? void 0 : _a[\"TEXT_ENCODING\"]) !== \"never\") &&\n typeof TextEncoder !== \"undefined\" &&\n typeof TextDecoder !== \"undefined\";\nexport function utf8Count(str) {\n var strLength = str.length;\n var byteLength = 0;\n var pos = 0;\n while (pos < strLength) {\n var value = str.charCodeAt(pos++);\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n byteLength++;\n continue;\n }\n else if ((value & 0xfffff800) === 0) {\n // 2-bytes\n byteLength += 2;\n }\n else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) {\n // high surrogate\n if (pos < strLength) {\n var extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n byteLength += 3;\n }\n else {\n // 4-byte\n byteLength += 4;\n }\n }\n }\n return byteLength;\n}\nexport function utf8EncodeJs(str, output, outputOffset) {\n var strLength = str.length;\n var offset = outputOffset;\n var pos = 0;\n while (pos < strLength) {\n var value = str.charCodeAt(pos++);\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n output[offset++] = value;\n continue;\n }\n else if ((value & 0xfffff800) === 0) {\n // 2-bytes\n output[offset++] = ((value >> 6) & 0x1f) | 0xc0;\n }\n else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) {\n // high surrogate\n if (pos < strLength) {\n var extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n output[offset++] = ((value >> 12) & 0x0f) | 0xe0;\n output[offset++] = ((value >> 6) & 0x3f) | 0x80;\n }\n else {\n // 4-byte\n output[offset++] = ((value >> 18) & 0x07) | 0xf0;\n output[offset++] = ((value >> 12) & 0x3f) | 0x80;\n output[offset++] = ((value >> 6) & 0x3f) | 0x80;\n }\n }\n output[offset++] = (value & 0x3f) | 0x80;\n }\n}\nvar sharedTextEncoder = TEXT_ENCODING_AVAILABLE ? new TextEncoder() : undefined;\nexport var TEXT_ENCODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE\n ? UINT32_MAX\n : typeof process !== \"undefined\" && ((_b = process === null || process === void 0 ? void 0 : process.env) === null || _b === void 0 ? void 0 : _b[\"TEXT_ENCODING\"]) !== \"force\"\n ? 200\n : 0;\nfunction utf8EncodeTEencode(str, output, outputOffset) {\n output.set(sharedTextEncoder.encode(str), outputOffset);\n}\nfunction utf8EncodeTEencodeInto(str, output, outputOffset) {\n sharedTextEncoder.encodeInto(str, output.subarray(outputOffset));\n}\nexport var utf8EncodeTE = (sharedTextEncoder === null || sharedTextEncoder === void 0 ? void 0 : sharedTextEncoder.encodeInto) ? utf8EncodeTEencodeInto : utf8EncodeTEencode;\nvar CHUNK_SIZE = 4096;\nexport function utf8DecodeJs(bytes, inputOffset, byteLength) {\n var offset = inputOffset;\n var end = offset + byteLength;\n var units = [];\n var result = \"\";\n while (offset < end) {\n var byte1 = bytes[offset++];\n if ((byte1 & 0x80) === 0) {\n // 1 byte\n units.push(byte1);\n }\n else if ((byte1 & 0xe0) === 0xc0) {\n // 2 bytes\n var byte2 = bytes[offset++] & 0x3f;\n units.push(((byte1 & 0x1f) << 6) | byte2);\n }\n else if ((byte1 & 0xf0) === 0xe0) {\n // 3 bytes\n var byte2 = bytes[offset++] & 0x3f;\n var byte3 = bytes[offset++] & 0x3f;\n units.push(((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3);\n }\n else if ((byte1 & 0xf8) === 0xf0) {\n // 4 bytes\n var byte2 = bytes[offset++] & 0x3f;\n var byte3 = bytes[offset++] & 0x3f;\n var byte4 = bytes[offset++] & 0x3f;\n var unit = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4;\n if (unit > 0xffff) {\n unit -= 0x10000;\n units.push(((unit >>> 10) & 0x3ff) | 0xd800);\n unit = 0xdc00 | (unit & 0x3ff);\n }\n units.push(unit);\n }\n else {\n units.push(byte1);\n }\n if (units.length >= CHUNK_SIZE) {\n result += String.fromCharCode.apply(String, units);\n units.length = 0;\n }\n }\n if (units.length > 0) {\n result += String.fromCharCode.apply(String, units);\n }\n return result;\n}\nvar sharedTextDecoder = TEXT_ENCODING_AVAILABLE ? new TextDecoder() : null;\nexport var TEXT_DECODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE\n ? UINT32_MAX\n : typeof process !== \"undefined\" && ((_c = process === null || process === void 0 ? void 0 : process.env) === null || _c === void 0 ? void 0 : _c[\"TEXT_DECODER\"]) !== \"force\"\n ? 200\n : 0;\nexport function utf8DecodeTD(bytes, inputOffset, byteLength) {\n var stringBytes = bytes.subarray(inputOffset, inputOffset + byteLength);\n return sharedTextDecoder.decode(stringBytes);\n}\n//# sourceMappingURL=utf8.mjs.map","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\nimport { UINT32_MAX } from \"./int\";\n\nconst TEXT_ENCODING_AVAILABLE =\n (typeof process === \"undefined\" || process?.env?.[\"TEXT_ENCODING\"] !== \"never\") &&\n typeof TextEncoder !== \"undefined\" &&\n typeof TextDecoder !== \"undefined\";\n\nexport function utf8Count(str: string): number {\n const strLength = str.length;\n\n let byteLength = 0;\n let pos = 0;\n while (pos < strLength) {\n let value = str.charCodeAt(pos++);\n\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n byteLength++;\n continue;\n } else if ((value & 0xfffff800) === 0) {\n // 2-bytes\n byteLength += 2;\n } else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) {\n // high surrogate\n if (pos < strLength) {\n const extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n byteLength += 3;\n } else {\n // 4-byte\n byteLength += 4;\n }\n }\n }\n return byteLength;\n}\n\nexport function utf8EncodeJs(str: string, output: Uint8Array, outputOffset: number): void {\n const strLength = str.length;\n let offset = outputOffset;\n let pos = 0;\n while (pos < strLength) {\n let value = str.charCodeAt(pos++);\n\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n output[offset++] = value;\n continue;\n } else if ((value & 0xfffff800) === 0) {\n // 2-bytes\n output[offset++] = ((value >> 6) & 0x1f) | 0xc0;\n } else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) {\n // high surrogate\n if (pos < strLength) {\n const extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n output[offset++] = ((value >> 12) & 0x0f) | 0xe0;\n output[offset++] = ((value >> 6) & 0x3f) | 0x80;\n } else {\n // 4-byte\n output[offset++] = ((value >> 18) & 0x07) | 0xf0;\n output[offset++] = ((value >> 12) & 0x3f) | 0x80;\n output[offset++] = ((value >> 6) & 0x3f) | 0x80;\n }\n }\n\n output[offset++] = (value & 0x3f) | 0x80;\n }\n}\n\nconst sharedTextEncoder = TEXT_ENCODING_AVAILABLE ? new TextEncoder() : undefined;\nexport const TEXT_ENCODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE\n ? UINT32_MAX\n : typeof process !== \"undefined\" && process?.env?.[\"TEXT_ENCODING\"] !== \"force\"\n ? 200\n : 0;\n\nfunction utf8EncodeTEencode(str: string, output: Uint8Array, outputOffset: number): void {\n output.set(sharedTextEncoder!.encode(str), outputOffset);\n}\n\nfunction utf8EncodeTEencodeInto(str: string, output: Uint8Array, outputOffset: number): void {\n sharedTextEncoder!.encodeInto(str, output.subarray(outputOffset));\n}\n\nexport const utf8EncodeTE = sharedTextEncoder?.encodeInto ? utf8EncodeTEencodeInto : utf8EncodeTEencode;\n\nconst CHUNK_SIZE = 0x1_000;\n\nexport function utf8DecodeJs(bytes: Uint8Array, inputOffset: number, byteLength: number): string {\n let offset = inputOffset;\n const end = offset + byteLength;\n\n const units: Array<number> = [];\n let result = \"\";\n while (offset < end) {\n const byte1 = bytes[offset++]!;\n if ((byte1 & 0x80) === 0) {\n // 1 byte\n units.push(byte1);\n } else if ((byte1 & 0xe0) === 0xc0) {\n // 2 bytes\n const byte2 = bytes[offset++]! & 0x3f;\n units.push(((byte1 & 0x1f) << 6) | byte2);\n } else if ((byte1 & 0xf0) === 0xe0) {\n // 3 bytes\n const byte2 = bytes[offset++]! & 0x3f;\n const byte3 = bytes[offset++]! & 0x3f;\n units.push(((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3);\n } else if ((byte1 & 0xf8) === 0xf0) {\n // 4 bytes\n const byte2 = bytes[offset++]! & 0x3f;\n const byte3 = bytes[offset++]! & 0x3f;\n const byte4 = bytes[offset++]! & 0x3f;\n let unit = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4;\n if (unit > 0xffff) {\n unit -= 0x10000;\n units.push(((unit >>> 10) & 0x3ff) | 0xd800);\n unit = 0xdc00 | (unit & 0x3ff);\n }\n units.push(unit);\n } else {\n units.push(byte1);\n }\n\n if (units.length >= CHUNK_SIZE) {\n result += String.fromCharCode(...units);\n units.length = 0;\n }\n }\n\n if (units.length > 0) {\n result += String.fromCharCode(...units);\n }\n\n return result;\n}\n\nconst sharedTextDecoder = TEXT_ENCODING_AVAILABLE ? new TextDecoder() : null;\nexport const TEXT_DECODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE\n ? UINT32_MAX\n : typeof process !== \"undefined\" && process?.env?.[\"TEXT_DECODER\"] !== \"force\"\n ? 200\n : 0;\n\nexport function utf8DecodeTD(bytes: Uint8Array, inputOffset: number, byteLength: number): string {\n const stringBytes = bytes.subarray(inputOffset, inputOffset + byteLength);\n return sharedTextDecoder!.decode(stringBytes);\n}\n","export function ensureUint8Array(buffer) {\n if (buffer instanceof Uint8Array) {\n return buffer;\n }\n else if (ArrayBuffer.isView(buffer)) {\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n else if (buffer instanceof ArrayBuffer) {\n return new Uint8Array(buffer);\n }\n else {\n // ArrayLike<number>\n return Uint8Array.from(buffer);\n }\n}\nexport function createDataView(buffer) {\n if (buffer instanceof ArrayBuffer) {\n return new DataView(buffer);\n }\n var bufferView = ensureUint8Array(buffer);\n return new DataView(bufferView.buffer, bufferView.byteOffset, bufferView.byteLength);\n}\n//# sourceMappingURL=typedArrays.mjs.map","export function ensureUint8Array(buffer: ArrayLike<number> | Uint8Array | ArrayBufferView | ArrayBuffer): Uint8Array {\n if (buffer instanceof Uint8Array) {\n return buffer;\n } else if (ArrayBuffer.isView(buffer)) {\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n } else if (buffer instanceof ArrayBuffer) {\n return new Uint8Array(buffer);\n } else {\n // ArrayLike<number>\n return Uint8Array.from(buffer);\n }\n}\n\nexport function createDataView(buffer: ArrayLike<number> | ArrayBufferView | ArrayBuffer): DataView {\n if (buffer instanceof ArrayBuffer) {\n return new DataView(buffer);\n }\n\n const bufferView = ensureUint8Array(buffer);\n return new DataView(bufferView.buffer, bufferView.byteOffset, bufferView.byteLength);\n}\n","import { utf8DecodeJs } from \"./utils/utf8.mjs\";\nvar DEFAULT_MAX_KEY_LENGTH = 16;\nvar DEFAULT_MAX_LENGTH_PER_KEY = 16;\nvar CachedKeyDecoder = /** @class */ (function () {\n function CachedKeyDecoder(maxKeyLength, maxLengthPerKey) {\n if (maxKeyLength === void 0) { maxKeyLength = DEFAULT_MAX_KEY_LENGTH; }\n if (maxLengthPerKey === void 0) { maxLengthPerKey = DEFAULT_MAX_LENGTH_PER_KEY; }\n this.maxKeyLength = maxKeyLength;\n this.maxLengthPerKey = maxLengthPerKey;\n this.hit = 0;\n this.miss = 0;\n // avoid `new Array(N)`, which makes a sparse array,\n // because a sparse array is typically slower than a non-sparse array.\n this.caches = [];\n for (var i = 0; i < this.maxKeyLength; i++) {\n this.caches.push([]);\n }\n }\n CachedKeyDecoder.prototype.canBeCached = function (byteLength) {\n return byteLength > 0 && byteLength <= this.maxKeyLength;\n };\n CachedKeyDecoder.prototype.find = function (bytes, inputOffset, byteLength) {\n var records = this.caches[byteLength - 1];\n FIND_CHUNK: for (var _i = 0, records_1 = records; _i < records_1.length; _i++) {\n var record = records_1[_i];\n var recordBytes = record.bytes;\n for (var j = 0; j < byteLength; j++) {\n if (recordBytes[j] !== bytes[inputOffset + j]) {\n continue FIND_CHUNK;\n }\n }\n return record.str;\n }\n return null;\n };\n CachedKeyDecoder.prototype.store = function (bytes, value) {\n var records = this.caches[bytes.length - 1];\n var record = { bytes: bytes, str: value };\n if (records.length >= this.maxLengthPerKey) {\n // `records` are full!\n // Set `record` to an arbitrary position.\n records[(Math.random() * records.length) | 0] = record;\n }\n else {\n records.push(record);\n }\n };\n CachedKeyDecoder.prototype.decode = function (bytes, inputOffset, byteLength) {\n var cachedValue = this.find(bytes, inputOffset, byteLength);\n if (cachedValue != null) {\n this.hit++;\n return cachedValue;\n }\n this.miss++;\n var str = utf8DecodeJs(bytes, inputOffset, byteLength);\n // Ensure to copy a slice of bytes because the byte may be NodeJS Buffer and Buffer#slice() returns a reference to its internal ArrayBuffer.\n var slicedCopyOfBytes = Uint8Array.prototype.slice.call(bytes, inputOffset, inputOffset + byteLength);\n this.store(slicedCopyOfBytes, str);\n return str;\n };\n return CachedKeyDecoder;\n}());\nexport { CachedKeyDecoder };\n//# sourceMappingURL=CachedKeyDecoder.mjs.map","import { utf8DecodeJs } from \"./utils/utf8\";\n\nconst DEFAULT_MAX_KEY_LENGTH = 16;\nconst DEFAULT_MAX_LENGTH_PER_KEY = 16;\n\nexport interface KeyDecoder {\n canBeCached(byteLength: number): boolean;\n decode(bytes: Uint8Array, inputOffset: number, byteLength: number): string;\n}\ninterface KeyCacheRecord {\n readonly bytes: Uint8Array;\n readonly str: string;\n}\n\nexport class CachedKeyDecoder implements KeyDecoder {\n hit = 0;\n miss = 0;\n private readonly caches: Array<Array<KeyCacheRecord>>;\n\n constructor(readonly maxKeyLength = DEFAULT_MAX_KEY_LENGTH, readonly maxLengthPerKey = DEFAULT_MAX_LENGTH_PER_KEY) {\n // avoid `new Array(N)`, which makes a sparse array,\n // because a sparse array is typically slower than a non-sparse array.\n this.caches = [];\n for (let i = 0; i < this.maxKeyLength; i++) {\n this.caches.push([]);\n }\n }\n\n public canBeCached(byteLength: number): boolean {\n return byteLength > 0 && byteLength <= this.maxKeyLength;\n }\n\n private find(bytes: Uint8Array, inputOffset: number, byteLength: number): string | null {\n const records = this.caches[byteLength - 1]!;\n\n FIND_CHUNK: for (const record of records) {\n const recordBytes = record.bytes;\n\n for (let j = 0; j < byteLength; j++) {\n if (recordBytes[j] !== bytes[inputOffset + j]) {\n continue FIND_CHUNK;\n }\n }\n return record.str;\n }\n return null;\n }\n\n private store(bytes: Uint8Array, value: string) {\n const records = this.caches[bytes.length - 1]!;\n const record: KeyCacheRecord = { bytes, str: value };\n\n if (records.length >= this.maxLengthPerKey) {\n // `records` are full!\n // Set `record` to an arbitrary position.\n records[(Math.random() * records.length) | 0] = record;\n } else {\n records.push(record);\n }\n }\n\n public decode(bytes: Uint8Array, inputOffset: number, byteLength: number): string {\n const cachedValue = this.find(bytes, inputOffset, byteLength);\n if (cachedValue != null) {\n this.hit++;\n return cachedValue;\n }\n this.miss++;\n\n const str = utf8DecodeJs(bytes, inputOffset, byteLength);\n // Ensure to copy a slice of bytes because the byte may be NodeJS Buffer and Buffer#slice() returns a reference to its internal ArrayBuffer.\n const slicedCopyOfBytes = Uint8Array.prototype.slice.call(bytes, inputOffset, inputOffset + byteLength);\n this.store(slicedCopyOfBytes, str);\n return str;\n }\n}\n","// utility for whatwg streams\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nexport function isAsyncIterable(object) {\n return object[Symbol.asyncIterator] != null;\n}\nfunction assertNonNull(value) {\n if (value == null) {\n throw new Error(\"Assertion Failure: value must not be null nor undefined\");\n }\n}\nexport function asyncIterableFromStream(stream) {\n return __asyncGenerator(this, arguments, function asyncIterableFromStream_1() {\n var reader, _a, done, value;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = stream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3 /*break*/, 8];\n return [4 /*yield*/, __await(reader.read())];\n case 3:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (!done) return [3 /*break*/, 5];\n return [4 /*yield*/, __await(void 0)];\n case 4: return [2 /*return*/, _b.sent()];\n case 5:\n assertNonNull(value);\n return [4 /*yield*/, __await(value)];\n case 6: return [4 /*yield*/, _b.sent()];\n case 7:\n _b.sent();\n return [3 /*break*/, 2];\n case 8: return [3 /*break*/, 10];\n case 9:\n reader.releaseLock();\n return [7 /*endfinally*/];\n case 10: return [2 /*return*/];\n }\n });\n });\n}\nexport function ensureAsyncIterable(streamLike) {\n if (isAsyncIterable(streamLike)) {\n return streamLike;\n }\n else {\n return asyncIterableFromStream(streamLike);\n }\n}\n//# sourceMappingURL=stream.mjs.map","// utility for whatwg streams\n\n// The living standard of whatwg streams says\n// ReadableStream is also AsyncIterable, but\n// as of June 2019, no browser implements it.\n// See https://streams.spec.whatwg.org/ for details\nexport type ReadableStreamLike<T> = AsyncIterable<T> | ReadableStream<T>;\n\nexport function isAsyncIterable<T>(object: ReadableStreamLike<T>): object is AsyncIterable<T> {\n return (object as any)[Symbol.asyncIterator] != null;\n}\n\nfunction assertNonNull<T>(value: T | null | undefined): asserts value is T {\n if (value == null) {\n throw new Error(\"Assertion Failure: value must not be null nor undefined\");\n }\n}\n\nexport async function* asyncIterableFromStream<T>(stream: ReadableStream<T>): AsyncIterable<T> {\n const reader = stream.getReader();\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n return;\n }\n assertNonNull(value);\n yield value;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function ensureAsyncIterable<T>(streamLike: ReadableStreamLike<T>): AsyncIterable<T> {\n if (isAsyncIterable(streamLike)) {\n return streamLike;\n } else {\n return asyncIterableFromStream(streamLike);\n }\n}\n","import { Decoder } from \"./Decoder.mjs\";\nexport var defaultDecodeOptions = {};\n/**\n * It decodes a single MessagePack object in a buffer.\n *\n * This is a synchronous decoding function.\n * See other variants for asynchronous decoding: {@link decodeAsync()}, {@link decodeStream()}, or {@link decodeArrayStream()}.\n *\n * @throws {@link RangeError} if the buffer is incomplete, including the case where the buffer is empty.\n * @throws {@link DecodeError} if the buffer contains invalid data.\n */\nexport function decode(buffer, options) {\n if (options === void 0) { options = defaultDecodeOptions; }\n var decoder = new Decoder(options.extensionCodec, options.context, options.maxStrLength, options.maxBinLength, options.maxArrayLength, options.maxMapLength, options.maxExtLength);\n return decoder.decode(buffer);\n}\n/**\n * It decodes multiple MessagePack objects in a buffer.\n * This is corresponding to {@link decodeMultiStream()}.\n *\n * @throws {@link RangeError} if the buffer is incomplete, including the case where the buffer is empty.\n * @throws {@link DecodeError} if the buffer contains invalid data.\n */\nexport function decodeMulti(buffer, options) {\n if (options === void 0) { options = defaultDecodeOptions; }\n var decoder = new Decoder(options.extensionCodec, options.context, options.maxStrLength, options.maxBinLength, options.maxArrayLength, options.maxMapLength, options.maxExtLength);\n return decoder.decodeMulti(buffer);\n}\n//# sourceMappingURL=decode.mjs.map","import { Decoder } from \"./Decoder\";\nimport type { ExtensionCodecType } from \"./ExtensionCodec\";\nimport type { ContextOf, SplitUndefined } from \"./context\";\n\nexport type DecodeOptions<ContextType = undefined> = Readonly<\n Partial<{\n extensionCodec: ExtensionCodecType<ContextType>;\n\n /**\n * Maximum string length.\n *\n * Defaults to 4_294_967_295 (UINT32_MAX).\n */\n maxStrLength: number;\n /**\n * Maximum binary length.\n *\n * Defaults to 4_294_967_295 (UINT32_MAX).\n */\n maxBinLength: number;\n /**\n * Maximum array length.\n *\n * Defaults to 4_294_967_295 (UINT32_MAX).\n */\n maxArrayLength: number;\n /**\n * Maximum map length.\n *\n * Defaults to 4_294_967_295 (UINT32_MAX).\n */\n maxMapLength: number;\n /**\n * Maximum extension length.\n *\n * Defaults to 4_294_967_295 (UINT32_MAX).\n */\n maxExtLength: number;\n }>\n> &\n ContextOf<ContextType>;\n\nexport const defaultDecodeOptions: DecodeOptions = {};\n\n/**\n * It decodes a single MessagePack object in a buffer.\n *\n * This is a synchronous decoding function.\n * See other variants for asynchronous decoding: {@link decodeAsync()}, {@link decodeStream()}, or {@link decodeArrayStream()}.\n *\n * @throws {@link RangeError} if the buffer is incomplete, including the case where the buffer is empty.\n * @throws {@link DecodeError} if the buffer contains invalid data.\n */\nexport function decode<ContextType = undefined>(\n buffer: ArrayLike<number> | BufferSource,\n options: DecodeOptions<SplitUndefined<ContextType>> = defaultDecodeOptions as any,\n): unknown {\n const decoder = new Decoder(\n options.extensionCodec,\n (options as typeof options & { context: any }).context,\n options.maxStrLength,\n options.maxBinLength,\n options.maxArrayLength,\n options.maxMapLength,\n options.maxExtLength,\n );\n return decoder.decode(buffer);\n}\n\n/**\n * It decodes multiple MessagePack objects in a buffer.\n * This is corresponding to {@link decodeMultiStream()}.\n *\n * @throws {@link RangeError} if the buffer is incomplete, including the case where the buffer is empty.\n * @throws {@link DecodeError} if the buffer contains invalid data.\n */\nexport function decodeMulti<ContextType = undefined>(\n buffer: ArrayLike<number> | BufferSource,\n options: DecodeOptions<SplitUndefined<ContextType>> = defaultDecodeOptions as any,\n): Generator<unknown, void, unknown> {\n const decoder = new Decoder(\n options.extensionCodec,\n (options as typeof options & { context: any }).context,\n options.maxStrLength,\n options.maxBinLength,\n options.maxArrayLength,\n options.maxMapLength,\n options.maxExtLength,\n );\n return decoder.decodeMulti(buffer);\n}\n","import { utf8EncodeJs, utf8Count, TEXT_ENCODER_THRESHOLD, utf8EncodeTE } from \"./utils/utf8.mjs\";\nimport { ExtensionCodec } from \"./ExtensionCodec.mjs\";\nimport { setInt64, setUint64 } from \"./utils/int.mjs\";\nimport { ensureUint8Array } from \"./utils/typedArrays.mjs\";\nexport var DEFAULT_MAX_DEPTH = 100;\nexport var DEFAULT_INITIAL_BUFFER_SIZE = 2048;\nvar Encoder = /** @class */ (function () {\n function Encoder(extensionCodec, context, maxDepth, initialBufferSize, sortKeys, forceFloat32, ignoreUndefined, forceIntegerToFloat) {\n if (extensionCodec === void 0) { extensionCodec = ExtensionCodec.defaultCodec; }\n if (context === void 0) { context = undefined; }\n if (maxDepth === void 0) { maxDepth = DEFAULT_MAX_DEPTH; }\n if (initialBufferSize === void 0) { initialBufferSize = DEFAULT_INITIAL_BUFFER_SIZE; }\n if (sortKeys === void 0) { sortKeys = false; }\n if (forceFloat32 === void 0) { forceFloat32 = false; }\n if (ignoreUndefined === void 0) { ignoreUndefined = false; }\n if (forceIntegerToFloat === void 0) { forceIntegerToFloat = false; }\n this.extensionCodec = extensionCodec;\n this.context = context;\n this.maxDepth = maxDepth;\n this.initialBufferSize = initialBufferSize;\n this.sortKeys = sortKeys;\n this.forceFloat32 = forceFloat32;\n this.ignoreUndefined = ignoreUndefined;\n this.forceIntegerToFloat = forceIntegerToFloat;\n this.pos = 0;\n this.view = new DataView(new ArrayBuffer(this.initialBufferSize));\n this.bytes = new Uint8Array(this.view.buffer);\n }\n Encoder.prototype.reinitializeState = function () {\n this.pos = 0;\n };\n /**\n * This is almost equivalent to {@link Encoder#encode}, but it returns an reference of the encoder's internal buffer and thus much faster than {@link Encoder#encode}.\n *\n * @returns Encodes the object and returns a shared reference the encoder's internal buffer.\n */\n Encoder.prototype.encodeSharedRef = function (object) {\n this.reinitializeState();\n this.doEncode(object, 1);\n return this.bytes.subarray(0, this.pos);\n };\n /**\n * @returns Encodes the object and returns a copy of the encoder's internal buffer.\n */\n Encoder.prototype.encode = function (object) {\n this.reinitializeState();\n this.doEncode(object, 1);\n return this.bytes.slice(0, this.pos);\n };\n Encoder.prototype.doEncode = function (object, depth) {\n if (depth > this.maxDepth) {\n throw new Error(\"Too deep objects in depth \".concat(depth));\n }\n if (object == null) {\n this.encodeNil();\n }\n else if (typeof object === \"boolean\") {\n this.encodeBoolean(object);\n }\n else if (typeof object === \"number\") {\n this.encodeNumber(object);\n }\n else if (typeof object === \"string\") {\n this.encodeString(object);\n }\n else {\n this.encodeObject(object, depth);\n }\n };\n Encoder.prototype.ensureBufferSizeToWrite = function (sizeToWrite) {\n var requiredSize = this.pos + sizeToWrite;\n if (this.view.byteLength < requiredSize) {\n this.resizeBuffer(requiredSize * 2);\n }\n };\n Encoder.prototype.resizeBuffer = function (newSize) {\n var newBuffer = new ArrayBuffer(newSize);\n var newBytes = new Uint8Array(newBuffer);\n var newView = new DataView(newBuffer);\n newBytes.set(this.bytes);\n this.view = newView;\n this.bytes = newBytes;\n };\n Encoder.prototype.encodeNil = function () {\n this.writeU8(0xc0);\n };\n Encoder.prototype.encodeBoolean = function (object) {\n if (object === false) {\n this.writeU8(0xc2);\n }\n else {\n this.writeU8(0xc3);\n }\n };\n Encoder.prototype.encodeNumber = function (object) {\n if (Number.isSafeInteger(object) && !this.forceIntegerToFloat) {\n if (object >= 0) {\n if (object < 0x80) {\n // positive fixint\n this.writeU8(object);\n }\n else if (object < 0x100) {\n // uint 8\n this.writeU8(0xcc);\n this.writeU8(object);\n }\n else if (object < 0x10000) {\n // uint 16\n this.writeU8(0xcd);\n this.writeU16(object);\n }\n else if (object < 0x100000000) {\n // uint 32\n this.writeU8(0xce);\n this.writeU32(object);\n }\n else {\n // uint 64\n this.writeU8(0xcf);\n this.writeU64(object);\n }\n }\n else {\n if (object >= -0x20) {\n // negative fixint\n this.writeU8(0xe0 | (object + 0x20));\n }\n else if (object >= -0x80) {\n // int 8\n this.writeU8(0xd0);\n this.writeI8(object);\n }\n else if (object >= -0x8000) {\n // int 16\n this.writeU8(0xd1);\n this.writeI16(object);\n }\n else if (object >= -0x80000000) {\n // int 32\n this.writeU8(0xd2);\n this.writeI32(object);\n }\n else {\n // int 64\n this.writeU8(0xd3);\n this.writeI64(object);\n }\n }\n }\n else {\n // non-integer numbers\n if (this.forceFloat32) {\n // float 32\n this.writeU8(0xca);\n this.writeF32(object);\n }\n else {\n // float 64\n this.writeU8(0xcb);\n this.writeF64(object);\n }\n }\n };\n Encoder.prototype.writeStringHeader = function (byteLength) {\n if (byteLength < 32) {\n // fixstr\n this.writeU8(0xa0 + byteLength);\n }\n else if (byteLength < 0x100) {\n // str 8\n this.writeU8(0xd9);\n this.writeU8(byteLength);\n }\n else if (byteLength < 0x10000) {\n // str 16\n this.writeU8(0xda);\n this.writeU16(byteLength);\n }\n else if (byteLength < 0x100000000) {\n // str 32\n this.writeU8(0xdb);\n this.writeU32(byteLength);\n }\n else {\n throw new Error(\"Too long string: \".concat(byteLength, \" bytes in UTF-8\"));\n }\n };\n Encoder.prototype.encodeString = function (object) {\n var maxHeaderSize = 1 + 4;\n var strLength = object.length;\n if (strLength > TEXT_ENCODER_THRESHOLD) {\n var byteLength = utf8Count(object);\n this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);\n this.writeStringHeader(byteLength);\n utf8EncodeTE(object, this.bytes, this.pos);\n this.pos += byteLength;\n }\n else {\n var byteLength = utf8Count(object);\n this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);\n this.writeStringHeader(byteLength);\n utf8EncodeJs(object, this.bytes, this.pos);\n this.pos += byteLength;\n }\n };\n Encoder.prototype.encodeObject = function (object, depth) {\n // try to encode objects with custom codec first of non-primitives\n var ext = this.extensionCodec.tryToEncode(object, this.context);\n if (ext != null) {\n this.encodeExtension(ext);\n }\n else if (Array.isArray(object)) {\n this.encodeArray(object, depth);\n }\n else if (ArrayBuffer.isView(object)) {\n this.encodeBinary(object);\n }\n else if (typeof object === \"object\") {\n this.encodeMap(object, depth);\n }\n else {\n // symbol, function and other special object come here unless extensionCodec handles them.\n throw new Error(\"Unrecognized object: \".concat(Object.prototype.toString.apply(object)));\n }\n };\n Encoder.prototype.encodeBinary = function (object) {\n var size = object.byteLength;\n if (size < 0x100) {\n // bin 8\n this.writeU8(0xc4);\n this.writeU8(size);\n }\n else if (size < 0x10000) {\n // bin 16\n this.writeU8(0xc5);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // bin 32\n this.writeU8(0xc6);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large binary: \".concat(size));\n }\n var bytes = ensureUint8Array(object);\n this.writeU8a(bytes);\n };\n Encoder.prototype.encodeArray = function (object, depth) {\n var size = object.length;\n if (size < 16) {\n // fixarray\n this.writeU8(0x90 + size);\n }\n else if (size < 0x10000) {\n // array 16\n this.writeU8(0xdc);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // array 32\n this.writeU8(0xdd);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large array: \".concat(size));\n }\n for (var _i = 0, object_1 = object; _i < object_1.length; _i++) {\n var item = object_1[_i];\n this.doEncode(item, depth + 1);\n }\n };\n Encoder.prototype.countWithoutUndefined = function (object, keys) {\n var count = 0;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (object[key] !== undefined) {\n count++;\n }\n }\n return count;\n };\n Encoder.prototype.encodeMap = function (object, depth) {\n var keys = Object.keys(object);\n if (this.sortKeys) {\n keys.sort();\n }\n var size = this.ignoreUndefined ? this.countWithoutUndefined(object, keys) : keys.length;\n if (size < 16) {\n // fixmap\n this.writeU8(0x80 + size);\n }\n else if (size < 0x10000) {\n // map 16\n this.writeU8(0xde);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // map 32\n this.writeU8(0xdf);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large map object: \".concat(size));\n }\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n var value = object[key];\n if (!(this.ignoreUndefined && value === undefined)) {\n this.encodeString(key);\n this.doEncode(value, depth + 1);\n }\n }\n };\n Encoder.prototype.encodeExtension = function (ext) {\n var size = ext.data.length;\n if (size === 1) {\n // fixext 1\n this.writeU8(0xd4);\n }\n else if (size === 2) {\n // fixext 2\n this.writeU8(0xd5);\n }\n else if (size === 4) {\n // fixext 4\n this.writeU8(0xd6);\n }\n else if (size === 8) {\n // fixext 8\n this.writeU8(0xd7);\n }\n else if (size === 16) {\n // fixext 16\n this.writeU8(0xd8);\n }\n else if (size < 0x100) {\n // ext 8\n this.writeU8(0xc7);\n this.writeU8(size);\n }\n else if (size < 0x10000) {\n // ext 16\n this.writeU8(0xc8);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // ext 32\n this.writeU8(0xc9);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large extension object: \".concat(size));\n }\n this.writeI8(ext.type);\n this.writeU8a(ext.data);\n };\n Encoder.prototype.writeU8 = function (value) {\n this.ensureBufferSizeToWrite(1);\n this.view.setUint8(this.pos, value);\n this.pos++;\n };\n Encoder.prototype.writeU8a = function (values) {\n var size = values.length;\n this.ensureBufferSizeToWrite(size);\n this.bytes.set(values, this.pos);\n this.pos += size;\n };\n Encoder.prototype.writeI8 = function (value) {\n this.ensureBufferSizeToWrite(1);\n this.view.setInt8(this.pos, value);\n this.pos++;\n };\n Encoder.prototype.writeU16 = function (value) {\n this.ensureBufferSizeToWrite(2);\n this.view.setUint16(this.pos, value);\n this.pos += 2;\n };\n Encoder.prototype.writeI16 = function (value) {\n this.ensureBufferSizeToWrite(2);\n this.view.setInt16(this.pos, value);\n this.pos += 2;\n };\n Encoder.prototype.writeU32 = function (value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setUint32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeI32 = function (value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setInt32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeF32 = function (value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setFloat32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeF64 = function (value) {\n this.ensureBufferSizeToWrite(8);\n this.view.setFloat64(this.pos, value);\n this.pos += 8;\n };\n Encoder.prototype.writeU64 = function (value) {\n this.ensureBufferSizeToWrite(8);\n setUint64(this.view, this.pos, value);\n this.pos += 8;\n };\n Encoder.prototype.writeI64 = function (value) {\n this.ensureBufferSizeToWrite(8);\n setInt64(this.view, this.pos, value);\n this.pos += 8;\n };\n return Encoder;\n}());\nexport { Encoder };\n//# sourceMappingURL=Encoder.mjs.map","import { utf8EncodeJs, utf8Count, TEXT_ENCODER_THRESHOLD, utf8EncodeTE } from \"./utils/utf8\";\nimport { ExtensionCodec, ExtensionCodecType } from \"./ExtensionCodec\";\nimport { setInt64, setUint64 } from \"./utils/int\";\nimport { ensureUint8Array } from \"./utils/typedArrays\";\nimport type { ExtData } from \"./ExtData\";\n\nexport const DEFAULT_MAX_DEPTH = 100;\nexport const DEFAULT_INITIAL_BUFFER_SIZE = 2048;\n\nexport class Encoder<ContextType = undefined> {\n private pos = 0;\n private view = new DataView(new ArrayBuffer(this.initialBufferSize));\n private bytes = new Uint8Array(this.view.buffer);\n\n public constructor(\n private readonly extensionCodec: ExtensionCodecType<ContextType> = ExtensionCodec.defaultCodec as any,\n private readonly context: ContextType = undefined as any,\n private readonly maxDepth = DEFAULT_MAX_DEPTH,\n private readonly initialBufferSize = DEFAULT_INITIAL_BUFFER_SIZE,\n private readonly sortKeys = false,\n private readonly forceFloat32 = false,\n private readonly ignoreUndefined = false,\n private readonly forceIntegerToFloat = false,\n ) {}\n\n private reinitializeState() {\n this.pos = 0;\n }\n\n /**\n * This is almost equivalent to {@link Encoder#encode}, but it returns an reference of the encoder's internal buffer and thus much faster than {@link Encoder#encode}.\n *\n * @returns Encodes the object and returns a shared reference the encoder's internal buffer.\n */\n public encodeSharedRef(object: unknown): Uint8Array {\n this.reinitializeState();\n this.doEncode(object, 1);\n return this.bytes.subarray(0, this.pos);\n }\n\n /**\n * @returns Encodes the object and returns a copy of the encoder's internal buffer.\n */\n public encode(object: unknown): Uint8Array {\n this.reinitializeState();\n this.doEncode(object, 1);\n return this.bytes.slice(0, this.pos);\n }\n\n private doEncode(object: unknown, depth: number): void {\n if (depth > this.maxDepth) {\n throw new Error(`Too deep objects in depth ${depth}`);\n }\n\n if (object == null) {\n this.encodeNil();\n } else if (typeof object === \"boolean\") {\n this.encodeBoolean(object);\n } else if (typeof object === \"number\") {\n this.encodeNumber(object);\n } else if (typeof object === \"string\") {\n this.encodeString(object);\n } else {\n this.encodeObject(object, depth);\n }\n }\n\n private ensureBufferSizeToWrite(sizeToWrite: number) {\n const requiredSize = this.pos + sizeToWrite;\n\n if (this.view.byteLength < requiredSize) {\n this.resizeBuffer(requiredSize * 2);\n }\n }\n\n private resizeBuffer(newSize: number) {\n const newBuffer = new ArrayBuffer(newSize);\n const newBytes = new Uint8Array(newBuffer);\n const newView = new DataView(newBuffer);\n\n newBytes.set(this.bytes);\n\n this.view = newView;\n this.bytes = newBytes;\n }\n\n private encodeNil() {\n this.writeU8(0xc0);\n }\n\n private encodeBoolean(object: boolean) {\n if (object === false) {\n this.writeU8(0xc2);\n } else {\n this.writeU8(0xc3);\n }\n }\n private encodeNumber(object: number) {\n if (Number.isSafeInteger(object) && !this.forceIntegerToFloat) {\n if (object >= 0) {\n if (object < 0x80) {\n // positive fixint\n this.writeU8(object);\n } else if (object < 0x100) {\n // uint 8\n this.writeU8(0xcc);\n this.writeU8(object);\n } else if (object < 0x10000) {\n // uint 16\n this.writeU8(0xcd);\n this.writeU16(object);\n } else if (object < 0x100000000) {\n // uint 32\n this.writeU8(0xce);\n this.writeU32(object);\n } else {\n // uint 64\n this.writeU8(0xcf);\n this.writeU64(object);\n }\n } else {\n if (object >= -0x20) {\n // negative fixint\n this.writeU8(0xe0 | (object + 0x20));\n } else if (object >= -0x80) {\n // int 8\n this.writeU8(0xd0);\n this.writeI8(object);\n } else if (object >= -0x8000) {\n // int 16\n this.writeU8(0xd1);\n this.writeI16(object);\n } else if (object >= -0x80000000) {\n // int 32\n this.writeU8(0xd2);\n this.writeI32(object);\n } else {\n // int 64\n this.writeU8(0xd3);\n this.writeI64(object);\n }\n }\n } else {\n // non-integer numbers\n if (this.forceFloat32) {\n // float 32\n this.writeU8(0xca);\n this.writeF32(object);\n } else {\n // float 64\n this.writeU8(0xcb);\n this.writeF64(object);\n }\n }\n }\n\n private writeStringHeader(byteLength: number) {\n if (byteLength < 32) {\n // fixstr\n this.writeU8(0xa0 + byteLength);\n } else if (byteLength < 0x100) {\n // str 8\n this.writeU8(0xd9);\n this.writeU8(byteLength);\n } else if (byteLength < 0x10000) {\n // str 16\n this.writeU8(0xda);\n this.writeU16(byteLength);\n } else if (byteLength < 0x100000000) {\n // str 32\n this.writeU8(0xdb);\n this.writeU32(byteLength);\n } else {\n throw new Error(`Too long string: ${byteLength} bytes in UTF-8`);\n }\n }\n\n private encodeString(object: string) {\n const maxHeaderSize = 1 + 4;\n const strLength = object.length;\n\n if (strLength > TEXT_ENCODER_THRESHOLD) {\n const byteLength = utf8Count(object);\n this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);\n this.writeStringHeader(byteLength);\n utf8EncodeTE(object, this.bytes, this.pos);\n this.pos += byteLength;\n } else {\n const byteLength = utf8Count(object);\n this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);\n this.writeStringHeader(byteLength);\n utf8EncodeJs(object, this.bytes, this.pos);\n this.pos += byteLength;\n }\n }\n\n private encodeObject(object: unknown, depth: number) {\n // try to encode objects with custom codec first of non-primitives\n const ext = this.extensionCodec.tryToEncode(object, this.context);\n if (ext != null) {\n this.encodeExtension(ext);\n } else if (Array.isArray(object)) {\n this.encodeArray(object, depth);\n } else if (ArrayBuffer.isView(object)) {\n this.encodeBinary(object);\n } else if (typeof object === \"object\") {\n this.encodeMap(object as Record<string, unknown>, depth);\n } else {\n // symbol, function and other special object come here unless extensionCodec handles them.\n throw new Error(`Unrecognized object: ${Object.prototype.toString.apply(object)}`);\n }\n }\n\n private encodeBinary(object: ArrayBufferView) {\n const size = object.byteLength;\n if (size < 0x100) {\n // bin 8\n this.writeU8(0xc4);\n this.writeU8(size);\n } else if (size < 0x10000) {\n // bin 16\n this.writeU8(0xc5);\n this.writeU16(size);\n } else if (size < 0x100000000) {\n // bin 32\n this.writeU8(0xc6);\n this.writeU32(size);\n } else {\n throw new Error(`Too large binary: ${size}`);\n }\n const bytes = ensureUint8Array(object);\n this.writeU8a(bytes);\n }\n\n private encodeArray(object: Array<unknown>, depth: number) {\n const size = object.length;\n if (size < 16) {\n // fixarray\n this.writeU8(0x90 + size);\n } else if (size < 0x10000) {\n // array 16\n this.writeU8(0xdc);\n this.writeU16(size);\n } else if (size < 0x100000000) {\n // array 32\n this.writeU8(0xdd);\n this.writeU32(size);\n } else {\n throw new Error(`Too large array: ${size}`);\n }\n for (const item of object) {\n this.doEncode(item, depth + 1);\n }\n }\n\n private countWithoutUndefined(object: Record<string, unknown>, keys: ReadonlyArray<string>): number {\n let count = 0;\n\n for (const key of keys) {\n if (object[key] !== undefined) {\n count++;\n }\n }\n\n return count;\n }\n\n private encodeMap(object: Record<string, unknown>, depth: number) {\n const keys = Object.keys(object);\n if (this.sortKeys) {\n keys.sort();\n }\n\n const size = this.ignoreUndefined ? this.countWithoutUndefined(object, keys) : keys.length;\n\n if (size < 16) {\n // fixmap\n this.writeU8(0x80 + size);\n } else if (size < 0x10000) {\n // map 16\n this.writeU8(0xde);\n this.writeU16(size);\n } else if (size < 0x100000000) {\n // map 32\n this.writeU8(0xdf);\n this.writeU32(size);\n } else {\n throw new Error(`Too large map object: ${size}`);\n }\n\n for (const key of keys) {\n const value = object[key];\n\n if (!(this.ignoreUndefined && value === undefined)) {\n this.encodeString(key);\n this.doEncode(value, depth + 1);\n }\n }\n }\n\n private encodeExtension(ext: ExtData) {\n const size = ext.data.length;\n if (size === 1) {\n // fixext 1\n this.writeU8(0xd4);\n } else if (size === 2) {\n // fixext 2\n this.writeU8(0xd5);\n } else if (size === 4) {\n // fixext 4\n this.writeU8(0xd6);\n } else if (size === 8) {\n // fixext 8\n this.writeU8(0xd7);\n } else if (size === 16) {\n // fixext 16\n this.writeU8(0xd8);\n } else if (size < 0x100) {\n // ext 8\n this.writeU8(0xc7);\n this.writeU8(size);\n } else if (size < 0x10000) {\n // ext 16\n this.writeU8(0xc8);\n this.writeU16(size);\n } else if (size < 0x100000000) {\n // ext 32\n this.writeU8(0xc9);\n this.writeU32(size);\n } else {\n throw new Error(`Too large extension object: ${size}`);\n }\n this.writeI8(ext.type);\n this.writeU8a(ext.data);\n }\n\n private writeU8(value: number) {\n this.ensureBufferSizeToWrite(1);\n\n this.view.setUint8(this.pos, value);\n this.pos++;\n }\n\n private writeU8a(values: ArrayLike<number>) {\n const size = values.length;\n this.ensureBufferSizeToWrite(size);\n\n this.bytes.set(values, this.pos);\n this.pos += size;\n }\n\n private writeI8(value: number) {\n this.ensureBufferSizeToWrite(1);\n\n this.view.setInt8(this.pos, value);\n this.pos++;\n }\n\n private writeU16(value: number) {\n this.ensureBufferSizeToWrite(2);\n\n this.view.setUint16(this.pos, value);\n this.pos += 2;\n }\n\n private writeI16(value: number) {\n this.ensureBufferSizeToWrite(2);\n\n this.view.setInt16(this.pos, value);\n this.pos += 2;\n }\n\n private writeU32(value: number) {\n this.ensureBufferSizeToWrite(4);\n\n this.view.setUint32(this.pos, value);\n this.pos += 4;\n }\n\n private writeI32(value: number) {\n this.ensureBufferSizeToWrite(4);\n\n this.view.setInt32(this.pos, value);\n this.pos += 4;\n }\n\n private writeF32(value: number) {\n this.ensureBufferSizeToWrite(4);\n this.view.setFloat32(this.pos, value);\n this.pos += 4;\n }\n\n private writeF64(value: number) {\n this.ensureBufferSizeToWrite(8);\n this.view.setFloat64(this.pos, value);\n this.pos += 8;\n }\n\n private writeU64(value: number) {\n this.ensureBufferSizeToWrite(8);\n\n setUint64(this.view, this.pos, value);\n this.pos += 8;\n }\n\n private writeI64(value: number) {\n this.ensureBufferSizeToWrite(8);\n\n setInt64(this.view, this.pos, value);\n this.pos += 8;\n }\n}\n"],"names":["$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","extendStatics","$3f7790a221c2f3e5$var$_a","$3f7790a221c2f3e5$var$_b","$3f7790a221c2f3e5$var$_c","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","parcelRegister","$31bcb34ba1ba037f$export$78406e843f5312da","byte","concat","Math","abs","toString","padStart","$b68ef8ad985e69ce$export$72aa44612e2200cd","$aGTqB","$brJ7I","DataConnection","constructor","peerId","provider","options","reliable","_CHUNK_SIZE","_splitStream","TransformStream","transform","chunk","controller","split","length","enqueue","subarray","_rawSendStream","WritableStream","write","openEvent","Promise","resolve","dataChannel","addEventListener","once","bufferedAmount","MAX_BUFFERED_AMOUNT","byteLength","send","default","error","connectionId","close","writer","writable","getWriter","_rawReadStream","ReadableStream","start","data","readable","pipeTo","_initializeDataChannel","dc","binaryType","bufferedAmountLowThreshold","$55e90223fe532944$export$2e2bcd8739ae039","LogLevel","$55e90223fe532944$export$243e62d78d3b544d","logLevel","_logLevel","log","args","_print","warn","setLogFunction","fn","rest","copy","i","name","message","console","$f7363ab6888d1e18$export$d365f7ad9d7df9c9","$eEr5Q","$3pPW3","$kRc3N","$9Ek5E","BaseConnection","_","ID_PREFIX","_1","type","ConnectionType","Data","randomToken","label","_negotiator","Negotiator","startConnection","_payload","originator","onopen","_open","emit","onmessage","onclose","peer","flush","__peerData","cleanup","_removeConnection","open","chunked","emitError","DataConnectionErrorType","NotOpenYet","_send","handleMessage","payload","ServerMessageType","Answer","handleSDP","sdp","Candidate","handleCandidate","candidate","$ee2f7acfd22ad8cb$export$89e6bb5ad64bf4a","connection","peerConnection","_startPeerConnection","Media","_stream","_addTracksToConnection","dataConnection","config","ordered","createDataChannel","_makeOffer","RTCPeerConnection","_setupListeners","connectionType","onicecandidate","evt","socket","dst","oniceconnectionstatechange","iceConnectionState","BaseConnectionErrorType","NegotiationFailed","ConnectionClosed","ondatachannel","channel","getConnection","ontrack","stream","streams","_addStreamToMediaConnection","peerConnectionNotClosed","signalingState","dataChannelNotClosed","readyState","offer","createOffer","constraints","sdpTransform","setLocalDescription","metadata","serialization","Offer","PeerErrorType","WebRTC","err_1","_makeAnswer","answer","createAnswer","RTCSessionDescription","setRemoteDescription","self","ice","addIceCandidate","addTrack","getTracks","forEach","track","mediaConnection","addStream","$e07633d19f7426e9$export$3157d57b4135e3bc","$e07633d19f7426e9$export$9547aaa2e39030ff","$e07633d19f7426e9$export$7974935686149686","$e07633d19f7426e9$export$49ae800c114df41d","$e07633d19f7426e9$export$89f507cf986a947","$e07633d19f7426e9$export$3b5c4a4b6354f023","$e07633d19f7426e9$export$adb4a1754da6f10d","SerializationType","SocketEventType","$76eedc1a03766751$export$23a2a68283c24d80","$8edWV","EventEmitterWithError","$428dbabfb6f47b54$export$6a678e589c8a4542","$2b5HH","EventEmitter","$428dbabfb6f47b54$export$98871882f492de82","assign","$1961087dd546fd56$var$has","prototype","hasOwnProperty","$1961087dd546fd56$var$prefix","$1961087dd546fd56$var$Events","$1961087dd546fd56$var$EE","context","$1961087dd546fd56$var$addListener","emitter","event","TypeError","listener","_events","push","_eventsCount","$1961087dd546fd56$var$clearEvent","$1961087dd546fd56$var$EventEmitter","create","__proto__","eventNames","events","names","slice","getOwnPropertySymbols","listeners","handlers","l","ee","Array","listenerCount","a1","a2","a3","a4","a5","len","arguments","removeListener","undefined","apply","j","on","removeAllListeners","off","addListener","prefixed","$eb916fa843978df9$export$4e61f672936bec77","random","$268a69da4c3a2b66$export$bcbeb236456bc779","$8bb13aa6087251ac$var$__extends","d","b","setPrototypeOf","p","String","__","$8bb13aa6087251ac$export$ef3eed12d06c0285","_super","DecodeError","_this","value","$518bfda92fef5c7f$export$8532a5209571c04a","view","offset","setUint32","floor","$518bfda92fef5c7f$export$69825c7adcc820c6","high","getInt32","getUint32","$90f42a47dc95aba0$export$8654479533463da1","encode","object","msec","sec","nsec","nsecInSec","Date","$90f42a47dc95aba0$export$2fd05b828dd81159","_a","rv","Uint8Array","DataView","buffer","secHigh","date","getTime","decode","timeSpec","$90f42a47dc95aba0$export$abfc8800a5159711","byteOffset","nsec30AndSecHigh2","$f1fa32c4c66b90ce$export$12677a794dbd89d7","ExtensionCodec","builtInEncoders","builtInDecoders","encoders","decoders","index","tryToEncode","encodeExt","decodeExt","defaultCodec","$5L6jO","$3f7790a221c2f3e5$var$TEXT_ENCODING_AVAILABLE","env","TextEncoder","TextDecoder","$3f7790a221c2f3e5$export$b61de95301265227","str","strLength","pos","charCodeAt","extra","$3f7790a221c2f3e5$var$sharedTextEncoder","$3f7790a221c2f3e5$export$ed34c0622b397238","$3f7790a221c2f3e5$export$34cfdc82d430524","encodeInto","output","outputOffset","$3f7790a221c2f3e5$export$551117984c2adf4f","bytes","inputOffset","end","units","result","byte1","byte2","byte3","unit","fromCharCode","$3f7790a221c2f3e5$var$sharedTextDecoder","$3f7790a221c2f3e5$export$d866281c5a66d1ef","$e2b22818b7517d55$export$f8d669c2a17882f2","ArrayBuffer","isView","from","$a5b0b5bb55e8ea9d$export$529b830450faf29c","CachedKeyDecoder","maxKeyLength","maxLengthPerKey","hit","miss","caches","canBeCached","find","records","FIND_CHUNK","_i","records_1","record","recordBytes","store","cachedValue","slicedCopyOfBytes","$e6c5ba1e7517ae08$var$__generator","thisArg","body","f","y","t","g","sent","trys","ops","next","verb","Symbol","iterator","step","op","done","pop","$e6c5ba1e7517ae08$var$__asyncValues","o","asyncIterator","m","__values","reject","settle","then","$e6c5ba1e7517ae08$var$__await","$e6c5ba1e7517ae08$var$__asyncGenerator","_arguments","generator","q","a","resume","r","fulfill","shift","$e6c5ba1e7517ae08$var$isValidMapKeyType","key","keyType","$e6c5ba1e7517ae08$var$EMPTY_VIEW","$e6c5ba1e7517ae08$var$EMPTY_BYTES","$e6c5ba1e7517ae08$export$449c37eaf7093493","getInt8","$e6c5ba1e7517ae08$var$MORE_DATA","$e6c5ba1e7517ae08$var$sharedCachedKeyDecoder","$e6c5ba1e7517ae08$export$f9de6ca0bc043724","Decoder","extensionCodec","maxStrLength","maxBinLength","maxArrayLength","maxMapLength","maxExtLength","keyDecoder","totalPos","headByte","stack","reinitializeState","setBuffer","bufferView","appendBuffer","hasRemaining","remainingData","newData","newBuffer","size","createExtraByteError","posToShow","RangeError","doDecodeSync","decodeMulti","decodeAsync","stream_1","stream_1_1","e_1","P","decoded","_b","_c","return","fulfilled","rejected","adopt","decodeArrayStream","decodeMultiAsync","decodeStream","isArray","isArrayHeaderRequired","arrayItemsLeft","stream_2","stream_2_1","e_2","e_3","readArraySize","complete","DECODE","readHeadByte","pushMapState","pushArrayState","decodeUtf8String","readF32","readF64","readU8","readU16","readU32","readU64","readI8","readI16","readI32","readI64","lookU8","lookU16","lookU32","decodeBinary","decodeExtension","state","array","position","map","readCount","headerOffset","stringBytes","stateIsMapKey","headOffset","extType","getUint8","getUint16","getInt16","getFloat32","getFloat64","$de4ae0b6ff372b32$var$__generator","$de4ae0b6ff372b32$var$__await","$de4ae0b6ff372b32$var$__asyncGenerator","$79f3aa6fd9a8a1cb$export$ca6ec972f712a9eb","$c94702bf03c532e7$export$a50aceb0e02a00aa","Encoder","maxDepth","initialBufferSize","sortKeys","forceFloat32","ignoreUndefined","forceIntegerToFloat","encodeSharedRef","doEncode","depth","encodeNil","encodeBoolean","encodeNumber","encodeString","encodeObject","ensureBufferSizeToWrite","sizeToWrite","requiredSize","resizeBuffer","newSize","newBytes","newView","writeU8","Number","isSafeInteger","writeU16","writeU32","writeU64","writeI8","writeI16","writeI32","writeI64","writeF32","writeF64","writeStringHeader","maxHeaderSize","ext","encodeExtension","encodeArray","encodeBinary","encodeMap","writeU8a","object_1","item","countWithoutUndefined","keys","count","keys_1","sort","keys_2","setUint8","values","setInt8","setUint16","setInt16","setInt32","setFloat32","setFloat64","$hBa25","$115c516f1c55edeb$export$80f5de1a66c4d624","StreamConnection","_encoder","streamLike","msg","$de4ae0b6ff372b32$export$f62cf0e66867a58e","reader","getReader","read","$de4ae0b6ff372b32$var$assertNonNull","releaseLock","decoder","MsgPack"],"version":3,"file":"serializer.msgpack.mjs.map"}
\No newline at end of file