{"version":3,"sources":["jsdelivr-header.js","/npm/pbf@5.1.0/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACLA,MAAM,cAAgB,WAChB,eAAiB,EADD,WAKhB,wBAA0B,GAC1B,gBAAyC,oBAAhB,YAA8B,KAAO,IAAI,YAAY,SAE9E,WAAc,EACd,YAAc,EACd,UAAc,EACd,YAAc,SAEb,MAAM,UAIT,WAAA,CAAY,GACR,KAAK,IAAM,YAAY,OAAO,GAAO,EAAM,IAAI,WAAW,GAC1D,KAAK,SAAW,IAAI,SAAS,KAAK,IAAI,QACtC,KAAK,IAAM,EACX,KAAK,KAAO,EACZ,KAAK,aAAe,EACpB,KAAK,OAAS,KAAK,IAAI,MAC3B,CAQA,UAAA,CAAW,EAAW,EAAQ,EAAM,KAAK,QACrC,IAAI,EACJ,KAAQ,EAAQ,KAAK,UAAU,IAC3B,EAAU,EAAO,EAAQ,MAE7B,OAAO,CACX,CAOA,WAAA,CAAY,EAAW,GACnB,OAAO,KAAK,WAAW,EAAW,EAAQ,KAAK,aAAe,KAAK,IACvE,CAEA,WAAA,GACI,MAAM,EAAM,KAAK,SAAS,UAAU,KAAK,KAAK,GAE9C,OADA,KAAK,KAAO,EACL,CACX,CAEA,YAAA,GACI,MAAM,EAAM,KAAK,SAAS,SAAS,KAAK,KAAK,GAE7C,OADA,KAAK,KAAO,EACL,CACX,CAIA,WAAA,GACI,MAAM,EAAM,KAAK,SAAS,UAAU,KAAK,KAAK,GAhEhC,WAgEwC,KAAK,SAAS,UAAU,KAAK,IAAM,GAAG,GAE5F,OADA,KAAK,KAAO,EACL,CACX,CAEA,YAAA,GACI,MAAM,EAAM,KAAK,SAAS,UAAU,KAAK,KAAK,GAtEhC,WAsEwC,KAAK,SAAS,SAAS,KAAK,IAAM,GAAG,GAE3F,OADA,KAAK,KAAO,EACL,CACX,CAEA,SAAA,GACI,MAAM,EAAM,KAAK,SAAS,WAAW,KAAK,KAAK,GAE/C,OADA,KAAK,KAAO,EACL,CACX,CAEA,UAAA,GACI,MAAM,EAAM,KAAK,SAAS,WAAW,KAAK,KAAK,GAE/C,OADA,KAAK,KAAO,EACL,CACX,CAKA,UAAA,CAAW,GACP,MAAM,EAAM,KAAK,IACX,EAAK,EAAI,KAAK,OACpB,GAAI,EAAK,IAAM,OAAO,EAEtB,IAAqB,EAAjB,EAAW,IAAL,EACoC,OAA9C,EAAI,EAAI,KAAK,OAAQ,IAAY,IAAJ,IAAa,EAAQ,EAAI,IAAa,GACnE,EAAI,EAAI,KAAK,OAAQ,IAAY,IAAJ,IAAa,GAAQ,EAAI,IAAa,GACnE,EAAI,EAAI,KAAK,OAAQ,IAAY,IAAJ,IAAa,GAAQ,EAAI,IAAa,GACnE,EAAI,EAAI,KAAK,KAAQ,IAAY,GAAJ,IAAa,GAEnC,oBAAoB,EAAK,EAAU,QAC9C,CAEA,WAAA,GACI,MAAM,EAAM,KAAK,aACjB,OAAO,EAAM,GAAM,GAAK,EAAM,IAAM,EAAI,EAAM,CAClD,CAEA,WAAA,GACI,OAAO,QAAQ,KAAK,aACxB,CAEA,UAAA,GACI,MAAM,EAAM,KAAK,aAAe,KAAK,IAC/B,EAAM,KAAK,IAGjB,OAFA,KAAK,IAAM,EAEP,EAAM,GAjHc,IAiHoB,gBAEjC,gBAAgB,OAAO,KAAK,IAAI,SAAS,EAAK,IAGlD,SAAS,KAAK,IAAK,EAAK,EACnC,CAEA,SAAA,GACI,MAAM,EAAM,KAAK,aAAe,KAAK,IACjC,EAAS,KAAK,IAAI,SAAS,KAAK,IAAK,GAEzC,OADA,KAAK,IAAM,EACJ,CACX,CAQA,gBAAA,CAAiB,EAAM,GAAI,GACvB,MAAM,EAAM,KAAK,gBACjB,KAAO,KAAK,IAAM,GAAK,EAAI,KAAK,KAAK,WAAW,IAChD,OAAO,CACX,CAEA,iBAAA,CAAkB,EAAM,IACpB,MAAM,EAAM,KAAK,gBACjB,KAAO,KAAK,IAAM,GAAK,EAAI,KAAK,KAAK,eACrC,OAAO,CACX,CAEA,iBAAA,CAAkB,EAAM,IACpB,MAAM,EAAM,KAAK,gBACjB,KAAO,KAAK,IAAM,GAAK,EAAI,KAAK,KAAK,eACrC,OAAO,CACX,CAEA,eAAA,CAAgB,EAAM,IAClB,MAAM,EAAM,KAAK,gBACjB,KAAO,KAAK,IAAM,GAAK,EAAI,KAAK,KAAK,aACrC,OAAO,CACX,CAEA,gBAAA,CAAiB,EAAM,IACnB,MAAM,EAAM,KAAK,gBACjB,KAAO,KAAK,IAAM,GAAK,EAAI,KAAK,KAAK,cACrC,OAAO,CACX,CAEA,iBAAA,CAAkB,EAAM,IACpB,MAAM,EAAM,KAAK,gBACjB,KAAO,KAAK,IAAM,GAAK,EAAI,KAAK,KAAK,eACrC,OAAO,CACX,CAEA,kBAAA,CAAmB,EAAM,IACrB,MAAM,EAAM,KAAK,gBACjB,KAAO,KAAK,IAAM,GAAK,EAAI,KAAK,KAAK,gBACrC,OAAO,CACX,CAEA,iBAAA,CAAkB,EAAM,IACpB,MAAM,EAAM,KAAK,gBACjB,KAAO,KAAK,IAAM,GAAK,EAAI,KAAK,KAAK,eACrC,OAAO,CACX,CAEA,kBAAA,CAAmB,EAAM,IACrB,MAAM,EAAM,KAAK,gBACjB,KAAO,KAAK,IAAM,GAAK,EAAI,KAAK,KAAK,gBACrC,OAAO,CACX,CACA,aAAA,GACI,OAvLY,IAuLL,KAAK,KAAqB,KAAK,aAAe,KAAK,IAAM,KAAK,IAAM,CAC/E,CAMA,SAAA,CAAU,EAAM,KAAK,QAEjB,GADI,KAAK,MAAQ,KAAK,aAAa,KAAK,KAAK,KAAK,MAC9C,KAAK,KAAO,EAAK,OAAO,EAC5B,MAAM,EAAM,KAAK,aAGjB,OAFA,KAAK,KAAa,EAAN,EACZ,KAAK,YAAc,KAAK,IACjB,IAAQ,CACnB,CAGA,IAAA,CAAK,GACD,MAAM,EAAa,EAAN,EACb,GA5MY,IA4MR,EAAqB,KAAO,KAAK,IAAI,KAAK,OAAS,WAClD,GA3MO,IA2MH,EAAoB,KAAK,IAAM,KAAK,aAAe,KAAK,SAC5D,GA3MO,IA2MH,EAAsB,KAAK,KAAO,MACtC,IA9MO,IA8MH,EACJ,MAAM,IAAI,MAAM,uBAAuB,KADb,KAAK,KAAO,CACQ,CACvD,SAGG,MAAM,UAIT,WAAA,CAAY,EAAM,IAAI,WAAW,KAC7B,KAAK,IAAM,YAAY,OAAO,GAAO,EAAM,IAAI,WAAW,GAC1D,KAAK,SAAW,IAAI,SAAS,KAAK,IAAI,QACtC,KAAK,IAAM,EACX,KAAK,OAAS,KAAK,IAAI,MAC3B,CAMA,QAAA,CAAS,EAAK,GACV,KAAK,YAAa,GAAO,EAAK,EAClC,CAGA,OAAA,CAAQ,GACJ,IAAI,EAAS,KAAK,QAAU,GAE5B,KAAO,EAAS,KAAK,IAAM,GAAK,GAAU,EAE1C,GAAI,IAAW,KAAK,OAAQ,CACxB,MAAM,EAAM,IAAI,WAAW,GAC3B,EAAI,IAAI,KAAK,KACb,KAAK,IAAM,EACX,KAAK,SAAW,IAAI,SAAS,EAAI,QACjC,KAAK,OAAS,CAClB,CACJ,CAEA,MAAA,GAGI,OAFA,KAAK,OAAS,KAAK,IACnB,KAAK,IAAM,EACJ,KAAK,IAAI,SAAS,EAAG,KAAK,OACrC,CAGA,YAAA,CAAa,GACT,KAAK,QAAQ,GACb,KAAK,SAAS,SAAS,KAAK,IAAK,GAAK,GACtC,KAAK,KAAO,CAChB,CAGA,aAAA,CAAc,GACV,KAAK,QAAQ,GACb,KAAK,SAAS,SAAS,KAAK,IAAK,GAAK,GACtC,KAAK,KAAO,CAChB,CAGA,YAAA,CAAa,GACT,KAAK,QAAQ,GACb,KAAK,SAAS,SAAS,KAAK,KAAY,EAAP,GAAU,GAC3C,KAAK,SAAS,SAAS,KAAK,IAAM,EAAG,KAAK,MAAM,EAAM,iBAAiB,GACvE,KAAK,KAAO,CAChB,CAGA,aAAA,CAAc,GACV,KAAK,QAAQ,GACb,KAAK,SAAS,SAAS,KAAK,KAAY,EAAP,GAAU,GAC3C,KAAK,SAAS,SAAS,KAAK,IAAM,EAAG,KAAK,MAAM,EAAM,iBAAiB,GACvE,KAAK,KAAO,CAChB,CAGA,WAAA,CAAY,GAGR,IAFA,GAAO,GAAO,IAEH,GAAK,EAAM,IAGlB,OAFI,KAAK,KAAO,KAAK,QAAQ,KAAK,QAAQ,QAC1C,KAAK,IAAI,KAAK,OAAS,GAIvB,EAAM,WAAa,EAAM,EACzB,eAAe,EAAK,OAIxB,KAAK,QAAQ,GAEb,KAAK,IAAI,KAAK,OAAyB,IAAN,GAAe,EAAM,IAAO,IAAO,GAAQ,GAAO,MACnF,KAAK,IAAI,KAAK,OAAyB,KAAd,KAAS,IAAc,EAAM,IAAO,IAAO,GAAQ,GAAO,MACnF,KAAK,IAAI,KAAK,OAAyB,KAAd,KAAS,IAAc,EAAM,IAAO,IAAO,GAAQ,GAAO,MACnF,KAAK,IAAI,KAAK,OAAY,IAAQ,EAAK,OAC3C,CAGA,YAAA,CAAa,GACT,KAAK,YAAY,EAAM,EAAW,GAAN,EAAU,EAAU,EAAN,EAC9C,CAGA,YAAA,CAAa,GACT,KAAK,aAAa,EACtB,CAGA,WAAA,CAAY,GACR,EAAM,OAAO,GACb,KAAK,QAAqB,EAAb,EAAI,QAEjB,KAAK,MAEL,MAAM,EAAW,KAAK,IAEtB,KAAK,IAAM,UAAU,KAAK,IAAK,EAAK,KAAK,KACzC,MAAM,EAAM,KAAK,IAAM,EAEnB,GAAO,KAAM,uBAAuB,EAAU,EAAK,MAGvD,KAAK,IAAM,EAAW,EACtB,KAAK,YAAY,GACjB,KAAK,KAAO,CAChB,CAGA,UAAA,CAAW,GACP,KAAK,QAAQ,GACb,KAAK,SAAS,WAAW,KAAK,IAAK,GAAK,GACxC,KAAK,KAAO,CAChB,CAGA,WAAA,CAAY,GACR,KAAK,QAAQ,GACb,KAAK,SAAS,WAAW,KAAK,IAAK,GAAK,GACxC,KAAK,KAAO,CAChB,CAGA,UAAA,CAAW,GACP,MAAM,EAAM,EAAO,OACnB,KAAK,YAAY,GACjB,KAAK,QAAQ,GACb,KAAK,IAAI,IAAI,EAAQ,KAAK,KAC1B,KAAK,KAAO,CAChB,CAOA,eAAA,CAAgB,EAAI,GAChB,KAAK,MAGL,MAAM,EAAW,KAAK,IACtB,EAAG,EAAK,MACR,MAAM,EAAM,KAAK,IAAM,EAEnB,GAAO,KAAM,uBAAuB,EAAU,EAAK,MAGvD,KAAK,IAAM,EAAW,EACtB,KAAK,YAAY,GACjB,KAAK,KAAO,CAChB,CAQA,YAAA,CAAa,EAAK,EAAI,GAClB,KAAK,SAAS,EAhYF,GAiYZ,KAAK,gBAAgB,EAAI,EAC7B,CAMA,iBAAA,CAAkB,EAAK,GACf,EAAI,QAAQ,KAAK,aAAa,EAAK,kBAAmB,EAC9D,CAKA,kBAAA,CAAmB,EAAK,GAChB,EAAI,QAAQ,KAAK,aAAa,EAAK,mBAAoB,EAC/D,CAKA,kBAAA,CAAmB,EAAK,GAChB,EAAI,QAAQ,KAAK,aAAa,EAAK,mBAAoB,EAC/D,CAKA,gBAAA,CAAiB,EAAK,GACd,EAAI,QAAQ,KAAK,aAAa,EAAK,iBAAkB,EAC7D,CAKA,iBAAA,CAAkB,EAAK,GACf,EAAI,QAAQ,KAAK,aAAa,EAAK,kBAAmB,EAC9D,CAKA,kBAAA,CAAmB,EAAK,GAChB,EAAI,QAAQ,KAAK,aAAa,EAAK,mBAAoB,EAC/D,CAKA,mBAAA,CAAoB,EAAK,GACjB,EAAI,QAAQ,KAAK,aAAa,EAAK,oBAAqB,EAChE,CAKA,kBAAA,CAAmB,EAAK,GAChB,EAAI,QAAQ,KAAK,aAAa,EAAK,mBAAoB,EAC/D,CAKA,mBAAA,CAAoB,EAAK,GACjB,EAAI,QAAQ,KAAK,aAAa,EAAK,oBAAqB,EAChE,CAMA,eAAA,CAAgB,EAAK,GACjB,KAAK,SAAS,EAzcF,GA0cZ,KAAK,WAAW,EACpB,CAKA,iBAAA,CAAkB,EAAK,GACnB,KAAK,SAAS,EAhdF,GAidZ,KAAK,aAAa,EACtB,CAKA,kBAAA,CAAmB,EAAK,GACpB,KAAK,SAAS,EAxdF,GAydZ,KAAK,cAAc,EACvB,CAKA,iBAAA,CAAkB,EAAK,GACnB,KAAK,SAAS,EAleF,GAmeZ,KAAK,aAAa,EACtB,CAKA,kBAAA,CAAmB,EAAK,GACpB,KAAK,SAAS,EA1eF,GA2eZ,KAAK,cAAc,EACvB,CAKA,gBAAA,CAAiB,EAAK,GAClB,KAAK,SAAS,EAnfF,GAofZ,KAAK,YAAY,EACrB,CAKA,iBAAA,CAAkB,EAAK,GACnB,KAAK,SAAS,EA3fF,GA4fZ,KAAK,aAAa,EACtB,CAKA,gBAAA,CAAiB,EAAK,GAClB,KAAK,SAAS,EAjgBF,GAkgBZ,KAAK,YAAY,EACrB,CAKA,eAAA,CAAgB,EAAK,GACjB,KAAK,SAAS,EAxgBF,GAygBZ,KAAK,WAAW,EACpB,CAKA,gBAAA,CAAiB,EAAK,GAClB,KAAK,SAAS,EAlhBF,GAmhBZ,KAAK,YAAY,EACrB,CAKA,iBAAA,CAAkB,EAAK,GACnB,KAAK,iBAAiB,GAAM,EAChC,EAQJ,SAAS,oBAAoB,EAAG,EAAG,GAC/B,MAAM,EAAM,EAAE,IACd,IAAI,EAAG,EAEkC,GAAzC,EAAI,EAAI,EAAE,OAAQ,GAAU,IAAJ,IAAa,EAAQ,EAAI,IAAM,OAAO,MAAM,EAAG,EAAG,GACjC,GAAzC,EAAI,EAAI,EAAE,OAAQ,IAAU,IAAJ,IAAa,EAAQ,EAAI,IAAM,OAAO,MAAM,EAAG,EAAG,GACjC,GAAzC,EAAI,EAAI,EAAE,OAAQ,IAAU,IAAJ,IAAa,GAAQ,EAAI,IAAM,OAAO,MAAM,EAAG,EAAG,GACjC,GAAzC,EAAI,EAAI,EAAE,OAAQ,IAAU,IAAJ,IAAa,GAAQ,EAAI,IAAM,OAAO,MAAM,EAAG,EAAG,GACjC,GAAzC,EAAI,EAAI,EAAE,OAAQ,IAAU,IAAJ,IAAa,GAAQ,EAAI,IAAM,OAAO,MAAM,EAAG,EAAG,GACjC,GAAzC,EAAI,EAAI,EAAE,OAAQ,IAAU,EAAJ,IAAa,GAAQ,EAAI,IAAM,OAAO,MAAM,EAAG,EAAG,GAE1E,MAAM,IAAI,MAAM,yCACpB,CAOA,SAAS,MAAM,EAAK,EAAM,GACtB,OAAO,EAAkB,WAAP,GAAsB,IAAQ,GAAqB,YAAd,IAAS,IAAqB,IAAQ,EACjG,CAMA,SAAS,eAAe,EAAK,GACzB,IAAI,EAAK,EAiBT,GAfI,GAAO,GACP,EAAQ,EAAM,WAAe,EAC7B,EAAQ,EAAM,WAAe,IAE7B,KAAU,EAAM,YAChB,KAAU,EAAM,YAEN,WAAN,EACA,EAAO,EAAM,EAAK,GAElB,EAAM,EACN,EAAQ,EAAO,EAAK,IAIxB,GAAO,qBAAuB,GAAO,oBACrC,MAAM,IAAI,MAAM,0CAGpB,EAAI,QAAQ,IAEZ,kBAAkB,EAAK,EAAM,GAC7B,mBAAmB,EAAM,EAC7B,CAOA,SAAS,kBAAkB,EAAK,EAAM,GAClC,EAAI,IAAI,EAAI,OAAe,IAAN,EAAa,IAAM,KAAS,EACjD,EAAI,IAAI,EAAI,OAAe,IAAN,EAAa,IAAM,KAAS,EACjD,EAAI,IAAI,EAAI,OAAe,IAAN,EAAa,IAAM,KAAS,EACjD,EAAI,IAAI,EAAI,OAAe,IAAN,EAAa,IAAM,KAAS,EACjD,EAAI,IAAI,EAAI,KAAe,IAAN,CACzB,CAMA,SAAS,mBAAmB,EAAM,GAC9B,MAAM,GAAc,EAAP,IAAgB,EAE7B,EAAI,IAAI,EAAI,QAAU,IAAgB,KAAU,GAAK,IAAO,GAAS,IACrE,EAAI,IAAI,EAAI,OAAiB,IAAP,IAAgB,KAAU,GAAK,IAAO,GAAS,IACrE,EAAI,IAAI,EAAI,OAAiB,IAAP,IAAgB,KAAU,GAAK,IAAO,GAAS,IACrE,EAAI,IAAI,EAAI,OAAiB,IAAP,IAAgB,KAAU,GAAK,IAAO,GAAS,IACrE,EAAI,IAAI,EAAI,OAAiB,IAAP,IAAgB,KAAU,GAAK,IAAO,GAAS,IACrE,EAAI,IAAI,EAAI,OAAiB,IAAP,MAC1B,CAOA,SAAS,uBAAuB,EAAU,EAAK,GAC3C,MAAM,EACF,GAAO,MAAS,EAChB,GAAO,QAAW,EAClB,GAAO,UAAY,EAAI,KAAK,MAAM,KAAK,IAAI,IAAmB,EAAX,KAAK,MAG5D,EAAI,QAAQ,GACZ,EAAI,IAAI,WAAW,EAAW,EAAU,EAAU,EAAI,IAC1D,CAMA,SAAS,kBAAkB,EAAK,GAC5B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,EAAI,YAAY,EAAI,GAC7D,CAKA,SAAS,mBAAmB,EAAK,GAC7B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,EAAI,aAAa,EAAI,GAC9D,CAKA,SAAS,iBAAiB,EAAK,GAC3B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,EAAI,WAAW,EAAI,GAC5D,CAKA,SAAS,kBAAkB,EAAK,GAC5B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,EAAI,YAAY,EAAI,GAC7D,CAKA,SAAS,mBAAmB,EAAK,GAC7B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,EAAI,aAAa,EAAI,GAC9D,CAKA,SAAS,mBAAmB,EAAK,GAC7B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,EAAI,aAAa,EAAI,GAC9D,CAKA,SAAS,oBAAoB,EAAK,GAC9B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,EAAI,cAAc,EAAI,GAC/D,CAKA,SAAS,mBAAmB,EAAK,GAC7B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,EAAI,aAAa,EAAI,GAC9D,CAKA,SAAS,oBAAoB,EAAK,GAC9B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,EAAI,cAAc,EAAI,GAC/D,CASA,SAAS,SAAS,EAAK,EAAK,GACxB,IAAI,EAAM,GACN,EAAI,EAER,KAAO,EAAI,GAAK,CACZ,MAAM,EAAK,EAAI,GACf,IAQI,EAAI,EAAI,EARR,EAAI,KACJ,EACA,EAAK,IAAO,EACZ,EAAK,IAAO,EACZ,EAAK,IAAO,EAAI,EAEpB,GAAI,EAAI,EAAmB,EAAK,MAIP,IAArB,EACI,EAAK,MACL,EAAI,GAEoB,IAArB,GACP,EAAK,EAAI,EAAI,GACO,MAAV,IAAL,KACD,GAAU,GAAL,IAAc,EAAY,GAAL,EACtB,GAAK,MACL,EAAI,QAGgB,IAArB,GACP,EAAK,EAAI,EAAI,GACb,EAAK,EAAI,EAAI,GACO,MAAV,IAAL,IAAuC,MAAV,IAAL,KACzB,GAAU,GAAL,IAAa,IAAY,GAAL,IAAc,EAAY,GAAL,GAC1C,GAAK,MAAU,GAAK,OAAU,GAAK,SACnC,EAAI,QAGgB,IAArB,IACP,EAAK,EAAI,EAAI,GACb,EAAK,EAAI,EAAI,GACb,EAAK,EAAI,EAAI,GACO,MAAV,IAAL,IAAuC,MAAV,IAAL,IAAuC,MAAV,IAAL,KACjD,GAAU,GAAL,IAAa,IAAa,GAAL,IAAc,IAAY,GAAL,IAAc,EAAY,GAAL,GAChE,GAAK,OAAU,GAAK,WACpB,EAAI,QAKN,OAAN,GACA,EAAI,MACJ,EAAmB,GAEZ,EAAI,QACX,GAAK,MACL,GAAO,OAAO,aAAa,IAAM,GAAK,KAAQ,OAC9C,EAAI,MAAa,KAAJ,GAGjB,GAAO,OAAO,aAAa,GAC3B,GAAK,CACT,CAEA,OAAO,CACX,CAOA,SAAS,UAAU,EAAK,EAAK,GACzB,IAAK,IAAW,EAAG,EAAV,EAAI,EAAY,EAAI,EAAI,OAAQ,IAAK,CAG1C,GAFA,EAAI,EAAI,WAAW,GAEf,EAAI,OAAU,EAAI,MAAQ,CAC1B,IAAI,EAWG,CACC,EAAI,OAAW,EAAI,IAAM,EAAI,QAC7B,EAAI,KAAS,IACb,EAAI,KAAS,IACb,EAAI,KAAS,KAEb,EAAO,EAEX,QACJ,CAnBI,GAAI,EAAI,MAAQ,CACZ,EAAI,KAAS,IACb,EAAI,KAAS,IACb,EAAI,KAAS,IACb,EAAO,EACP,QACJ,CACI,EAAI,EAAO,OAAU,GAAK,EAAI,MAAS,MACvC,EAAO,IAYnB,MAAW,IACP,EAAI,KAAS,IACb,EAAI,KAAS,IACb,EAAI,KAAS,IACb,EAAO,MAGP,EAAI,IACJ,EAAI,KAAS,GAET,EAAI,KACJ,EAAI,KAAS,GAAK,EAAM,KAEpB,EAAI,MACJ,EAAI,KAAS,GAAK,GAAM,KAExB,EAAI,KAAS,GAAK,GAAO,IACzB,EAAI,KAAS,GAAK,GAAM,GAAO,KAEnC,EAAI,KAAS,GAAK,EAAM,GAAO,KAEnC,EAAI,KAAa,GAAJ,EAAW,IAEhC,CACA,OAAO,CACX","file":"/npm/pbf@5.1.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /npm/pbf@5.1.0/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\nconst SHIFT_LEFT_32 = (1 << 16) * (1 << 16);\nconst SHIFT_RIGHT_32 = 1 / SHIFT_LEFT_32;\n\n// Threshold chosen based on both benchmarking and knowledge about browser string\n// data structures (which currently switch structure types at 12 bytes or more)\nconst TEXT_DECODER_MIN_LENGTH = 12;\nconst utf8TextDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8');\n\nconst PBF_VARINT  = 0; // varint: int32, int64, uint32, uint64, sint32, sint64, bool, enum\nconst PBF_FIXED64 = 1; // 64-bit: double, fixed64, sfixed64\nconst PBF_BYTES   = 2; // length-delimited: string, bytes, embedded messages, packed repeated fields\nconst PBF_FIXED32 = 5; // 32-bit: float, fixed32, sfixed32\n\nexport class PbfReader {\n    /**\n     * @param {Uint8Array | ArrayBuffer} buf\n     */\n    constructor(buf) {\n        this.buf = ArrayBuffer.isView(buf) ? buf : new Uint8Array(buf);\n        this.dataView = new DataView(this.buf.buffer);\n        this.pos = 0;\n        this.type = 0;\n        this._valueStart = -1;\n        this.length = this.buf.length;\n    }\n\n    /**\n     * @template T\n     * @param {(tag: number, result: T, pbf: PbfReader) => void} readField\n     * @param {T} result\n     * @param {number} [end]\n     */\n    readFields(readField, result, end = this.length) {\n        let field;\n        while ((field = this.nextField(end))) {\n            readField(field, result, this);\n        }\n        return result;\n    }\n\n    /**\n     * @template T\n     * @param {(tag: number, result: T, pbf: PbfReader) => void} readField\n     * @param {T} result\n     */\n    readMessage(readField, result) {\n        return this.readFields(readField, result, this.readVarint() + this.pos);\n    }\n\n    readFixed32() {\n        const val = this.dataView.getUint32(this.pos, true);\n        this.pos += 4;\n        return val;\n    }\n\n    readSFixed32() {\n        const val = this.dataView.getInt32(this.pos, true);\n        this.pos += 4;\n        return val;\n    }\n\n    // 64-bit int handling is based on github.com/dpw/node-buffer-more-ints (MIT-licensed)\n\n    readFixed64() {\n        const val = this.dataView.getUint32(this.pos, true) + this.dataView.getUint32(this.pos + 4, true) * SHIFT_LEFT_32;\n        this.pos += 8;\n        return val;\n    }\n\n    readSFixed64() {\n        const val = this.dataView.getUint32(this.pos, true) + this.dataView.getInt32(this.pos + 4, true) * SHIFT_LEFT_32;\n        this.pos += 8;\n        return val;\n    }\n\n    readFloat() {\n        const val = this.dataView.getFloat32(this.pos, true);\n        this.pos += 4;\n        return val;\n    }\n\n    readDouble() {\n        const val = this.dataView.getFloat64(this.pos, true);\n        this.pos += 8;\n        return val;\n    }\n\n    /**\n     * @param {boolean} [isSigned]\n     */\n    readVarint(isSigned) {\n        const buf = this.buf;\n        const b0 = buf[this.pos++];\n        if (b0 < 0x80) return b0;\n\n        let val = b0 & 0x7f, b;\n        b = buf[this.pos++]; val |= (b & 0x7f) << 7;  if (b < 0x80) return val;\n        b = buf[this.pos++]; val |= (b & 0x7f) << 14; if (b < 0x80) return val;\n        b = buf[this.pos++]; val |= (b & 0x7f) << 21; if (b < 0x80) return val;\n        b = buf[this.pos];   val |= (b & 0x0f) << 28;\n\n        return readVarintRemainder(val, isSigned, this);\n    }\n\n    readSVarint() {\n        const num = this.readVarint();\n        return num % 2 === 1 ? (num + 1) / -2 : num / 2; // zigzag encoding\n    }\n\n    readBoolean() {\n        return Boolean(this.readVarint());\n    }\n\n    readString() {\n        const end = this.readVarint() + this.pos;\n        const pos = this.pos;\n        this.pos = end;\n\n        if (end - pos >= TEXT_DECODER_MIN_LENGTH && utf8TextDecoder) {\n            // longer strings are fast with the built-in browser TextDecoder API\n            return utf8TextDecoder.decode(this.buf.subarray(pos, end));\n        }\n        // short strings are fast with our custom implementation\n        return readUtf8(this.buf, pos, end);\n    }\n\n    readBytes() {\n        const end = this.readVarint() + this.pos,\n            buffer = this.buf.subarray(this.pos, end);\n        this.pos = end;\n        return buffer;\n    }\n\n    // verbose for performance reasons; doesn't affect gzipped size\n\n    /**\n     * @param {number[]} [arr]\n     * @param {boolean} [isSigned]\n     */\n    readPackedVarint(arr = [], isSigned) {\n        const end = this.readPackedEnd();\n        while (this.pos < end) arr.push(this.readVarint(isSigned));\n        return arr;\n    }\n    /** @param {number[]} [arr] */\n    readPackedSVarint(arr = []) {\n        const end = this.readPackedEnd();\n        while (this.pos < end) arr.push(this.readSVarint());\n        return arr;\n    }\n    /** @param {boolean[]} [arr] */\n    readPackedBoolean(arr = []) {\n        const end = this.readPackedEnd();\n        while (this.pos < end) arr.push(this.readBoolean());\n        return arr;\n    }\n    /** @param {number[]} [arr] */\n    readPackedFloat(arr = []) {\n        const end = this.readPackedEnd();\n        while (this.pos < end) arr.push(this.readFloat());\n        return arr;\n    }\n    /** @param {number[]} [arr] */\n    readPackedDouble(arr = []) {\n        const end = this.readPackedEnd();\n        while (this.pos < end) arr.push(this.readDouble());\n        return arr;\n    }\n    /** @param {number[]} [arr] */\n    readPackedFixed32(arr = []) {\n        const end = this.readPackedEnd();\n        while (this.pos < end) arr.push(this.readFixed32());\n        return arr;\n    }\n    /** @param {number[]} [arr] */\n    readPackedSFixed32(arr = []) {\n        const end = this.readPackedEnd();\n        while (this.pos < end) arr.push(this.readSFixed32());\n        return arr;\n    }\n    /** @param {number[]} [arr] */\n    readPackedFixed64(arr = []) {\n        const end = this.readPackedEnd();\n        while (this.pos < end) arr.push(this.readFixed64());\n        return arr;\n    }\n    /** @param {number[]} [arr] */\n    readPackedSFixed64(arr = []) {\n        const end = this.readPackedEnd();\n        while (this.pos < end) arr.push(this.readSFixed64());\n        return arr;\n    }\n    readPackedEnd() {\n        return this.type === PBF_BYTES ? this.readVarint() + this.pos : this.pos + 1;\n    }\n\n    /**\n     * Advance to the next field. Returns the field number, or 0 at end-of-message.\n     * @param {number} [end]\n     */\n    nextField(end = this.length) {\n        if (this.pos === this._valueStart) this.skip(this.type);\n        if (this.pos >= end) return 0;\n        const tag = this.readVarint();\n        this.type = tag & 0x7;\n        this._valueStart = this.pos;\n        return tag >>> 3;\n    }\n\n    /** @param {number} val */\n    skip(val) {\n        const type = val & 0x7;\n        if (type === PBF_VARINT) while (this.buf[this.pos++] > 0x7f) {}\n        else if (type === PBF_BYTES) this.pos = this.readVarint() + this.pos;\n        else if (type === PBF_FIXED32) this.pos += 4;\n        else if (type === PBF_FIXED64) this.pos += 8;\n        else throw new Error(`Unimplemented type: ${type}`);\n    }\n}\n\nexport class PbfWriter {\n    /**\n     * @param {Uint8Array | ArrayBuffer} [buf]\n     */\n    constructor(buf = new Uint8Array(16)) {\n        this.buf = ArrayBuffer.isView(buf) ? buf : new Uint8Array(buf);\n        this.dataView = new DataView(this.buf.buffer);\n        this.pos = 0;\n        this.length = this.buf.length;\n    }\n\n    /**\n     * @param {number} tag\n     * @param {number} type\n     */\n    writeTag(tag, type) {\n        this.writeVarint((tag << 3) | type);\n    }\n\n    /** @param {number} min */\n    realloc(min) {\n        let length = this.length || 16;\n\n        while (length < this.pos + min) length *= 2;\n\n        if (length !== this.length) {\n            const buf = new Uint8Array(length);\n            buf.set(this.buf);\n            this.buf = buf;\n            this.dataView = new DataView(buf.buffer);\n            this.length = length;\n        }\n    }\n\n    finish() {\n        this.length = this.pos;\n        this.pos = 0;\n        return this.buf.subarray(0, this.length);\n    }\n\n    /** @param {number} val */\n    writeFixed32(val) {\n        this.realloc(4);\n        this.dataView.setInt32(this.pos, val, true);\n        this.pos += 4;\n    }\n\n    /** @param {number} val */\n    writeSFixed32(val) {\n        this.realloc(4);\n        this.dataView.setInt32(this.pos, val, true);\n        this.pos += 4;\n    }\n\n    /** @param {number} val */\n    writeFixed64(val) {\n        this.realloc(8);\n        this.dataView.setInt32(this.pos, val & -1, true);\n        this.dataView.setInt32(this.pos + 4, Math.floor(val * SHIFT_RIGHT_32), true);\n        this.pos += 8;\n    }\n\n    /** @param {number} val */\n    writeSFixed64(val) {\n        this.realloc(8);\n        this.dataView.setInt32(this.pos, val & -1, true);\n        this.dataView.setInt32(this.pos + 4, Math.floor(val * SHIFT_RIGHT_32), true);\n        this.pos += 8;\n    }\n\n    /** @param {number} val */\n    writeVarint(val) {\n        val = +val || 0;\n\n        if (val >= 0 && val < 0x80) {\n            if (this.pos >= this.length) this.realloc(1);\n            this.buf[this.pos++] = val;\n            return;\n        }\n\n        if (val > 0xfffffff || val < 0) {\n            writeBigVarint(val, this);\n            return;\n        }\n\n        this.realloc(4);\n\n        this.buf[this.pos++] =           val & 0x7f  | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n        this.buf[this.pos++] = ((val >>>= 7) & 0x7f) | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n        this.buf[this.pos++] = ((val >>>= 7) & 0x7f) | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n        this.buf[this.pos++] =   (val >>> 7) & 0x7f;\n    }\n\n    /** @param {number} val */\n    writeSVarint(val) {\n        this.writeVarint(val < 0 ? -val * 2 - 1 : val * 2);\n    }\n\n    /** @param {boolean} val */\n    writeBoolean(val) {\n        this.writeVarint(+val);\n    }\n\n    /** @param {string} str */\n    writeString(str) {\n        str = String(str);\n        this.realloc(str.length * 4);\n\n        this.pos++; // reserve 1 byte for short string length\n\n        const startPos = this.pos;\n        // write the string directly to the buffer and see how much was written\n        this.pos = writeUtf8(this.buf, str, this.pos);\n        const len = this.pos - startPos;\n\n        if (len >= 0x80) makeRoomForExtraLength(startPos, len, this);\n\n        // finally, write the message length in the reserved place and restore the position\n        this.pos = startPos - 1;\n        this.writeVarint(len);\n        this.pos += len;\n    }\n\n    /** @param {number} val */\n    writeFloat(val) {\n        this.realloc(4);\n        this.dataView.setFloat32(this.pos, val, true);\n        this.pos += 4;\n    }\n\n    /** @param {number} val */\n    writeDouble(val) {\n        this.realloc(8);\n        this.dataView.setFloat64(this.pos, val, true);\n        this.pos += 8;\n    }\n\n    /** @param {Uint8Array} buffer */\n    writeBytes(buffer) {\n        const len = buffer.length;\n        this.writeVarint(len);\n        this.realloc(len);\n        this.buf.set(buffer, this.pos);\n        this.pos += len;\n    }\n\n    /**\n     * @template T\n     * @param {(obj: T, pbf: PbfWriter) => void} fn\n     * @param {T} obj\n     */\n    writeRawMessage(fn, obj) {\n        this.pos++; // reserve 1 byte for short message length\n\n        // write the message directly to the buffer and see how much was written\n        const startPos = this.pos;\n        fn(obj, this);\n        const len = this.pos - startPos;\n\n        if (len >= 0x80) makeRoomForExtraLength(startPos, len, this);\n\n        // finally, write the message length in the reserved place and restore the position\n        this.pos = startPos - 1;\n        this.writeVarint(len);\n        this.pos += len;\n    }\n\n    /**\n     * @template T\n     * @param {number} tag\n     * @param {(obj: T, pbf: PbfWriter) => void} fn\n     * @param {T} obj\n     */\n    writeMessage(tag, fn, obj) {\n        this.writeTag(tag, PBF_BYTES);\n        this.writeRawMessage(fn, obj);\n    }\n\n    /**\n     * @param {number} tag\n     * @param {number[]} arr\n     */\n    writePackedVarint(tag, arr) {\n        if (arr.length) this.writeMessage(tag, writePackedVarint, arr);\n    }\n    /**\n     * @param {number} tag\n     * @param {number[]} arr\n     */\n    writePackedSVarint(tag, arr) {\n        if (arr.length) this.writeMessage(tag, writePackedSVarint, arr);\n    }\n    /**\n     * @param {number} tag\n     * @param {boolean[]} arr\n     */\n    writePackedBoolean(tag, arr) {\n        if (arr.length) this.writeMessage(tag, writePackedBoolean, arr);\n    }\n    /**\n     * @param {number} tag\n     * @param {number[]} arr\n     */\n    writePackedFloat(tag, arr) {\n        if (arr.length) this.writeMessage(tag, writePackedFloat, arr);\n    }\n    /**\n     * @param {number} tag\n     * @param {number[]} arr\n     */\n    writePackedDouble(tag, arr) {\n        if (arr.length) this.writeMessage(tag, writePackedDouble, arr);\n    }\n    /**\n     * @param {number} tag\n     * @param {number[]} arr\n     */\n    writePackedFixed32(tag, arr) {\n        if (arr.length) this.writeMessage(tag, writePackedFixed32, arr);\n    }\n    /**\n     * @param {number} tag\n     * @param {number[]} arr\n     */\n    writePackedSFixed32(tag, arr) {\n        if (arr.length) this.writeMessage(tag, writePackedSFixed32, arr);\n    }\n    /**\n     * @param {number} tag\n     * @param {number[]} arr\n     */\n    writePackedFixed64(tag, arr) {\n        if (arr.length) this.writeMessage(tag, writePackedFixed64, arr);\n    }\n    /**\n     * @param {number} tag\n     * @param {number[]} arr\n     */\n    writePackedSFixed64(tag, arr) {\n        if (arr.length) this.writeMessage(tag, writePackedSFixed64, arr);\n    }\n\n    /**\n     * @param {number} tag\n     * @param {Uint8Array} buffer\n     */\n    writeBytesField(tag, buffer) {\n        this.writeTag(tag, PBF_BYTES);\n        this.writeBytes(buffer);\n    }\n    /**\n     * @param {number} tag\n     * @param {number} val\n     */\n    writeFixed32Field(tag, val) {\n        this.writeTag(tag, PBF_FIXED32);\n        this.writeFixed32(val);\n    }\n    /**\n     * @param {number} tag\n     * @param {number} val\n     */\n    writeSFixed32Field(tag, val) {\n        this.writeTag(tag, PBF_FIXED32);\n        this.writeSFixed32(val);\n    }\n    /**\n     * @param {number} tag\n     * @param {number} val\n     */\n    writeFixed64Field(tag, val) {\n        this.writeTag(tag, PBF_FIXED64);\n        this.writeFixed64(val);\n    }\n    /**\n     * @param {number} tag\n     * @param {number} val\n     */\n    writeSFixed64Field(tag, val) {\n        this.writeTag(tag, PBF_FIXED64);\n        this.writeSFixed64(val);\n    }\n    /**\n     * @param {number} tag\n     * @param {number} val\n     */\n    writeVarintField(tag, val) {\n        this.writeTag(tag, PBF_VARINT);\n        this.writeVarint(val);\n    }\n    /**\n     * @param {number} tag\n     * @param {number} val\n     */\n    writeSVarintField(tag, val) {\n        this.writeTag(tag, PBF_VARINT);\n        this.writeSVarint(val);\n    }\n    /**\n     * @param {number} tag\n     * @param {string} str\n     */\n    writeStringField(tag, str) {\n        this.writeTag(tag, PBF_BYTES);\n        this.writeString(str);\n    }\n    /**\n     * @param {number} tag\n     * @param {number} val\n     */\n    writeFloatField(tag, val) {\n        this.writeTag(tag, PBF_FIXED32);\n        this.writeFloat(val);\n    }\n    /**\n     * @param {number} tag\n     * @param {number} val\n     */\n    writeDoubleField(tag, val) {\n        this.writeTag(tag, PBF_FIXED64);\n        this.writeDouble(val);\n    }\n    /**\n     * @param {number} tag\n     * @param {boolean} val\n     */\n    writeBooleanField(tag, val) {\n        this.writeVarintField(tag, +val);\n    }\n}\n\n/**\n * @param {number} l\n * @param {boolean | undefined} s\n * @param {PbfReader} p\n */\nfunction readVarintRemainder(l, s, p) {\n    const buf = p.buf;\n    let h, b;\n\n    b = buf[p.pos++]; h  = (b & 0x70) >> 4;  if (b < 0x80) return toNum(l, h, s);\n    b = buf[p.pos++]; h |= (b & 0x7f) << 3;  if (b < 0x80) return toNum(l, h, s);\n    b = buf[p.pos++]; h |= (b & 0x7f) << 10; if (b < 0x80) return toNum(l, h, s);\n    b = buf[p.pos++]; h |= (b & 0x7f) << 17; if (b < 0x80) return toNum(l, h, s);\n    b = buf[p.pos++]; h |= (b & 0x7f) << 24; if (b < 0x80) return toNum(l, h, s);\n    b = buf[p.pos++]; h |= (b & 0x01) << 31; if (b < 0x80) return toNum(l, h, s);\n\n    throw new Error('Expected varint not more than 10 bytes');\n}\n\n/**\n * @param {number} low\n * @param {number} high\n * @param {boolean} [isSigned]\n */\nfunction toNum(low, high, isSigned) {\n    return isSigned ? high * 0x100000000 + (low >>> 0) : ((high >>> 0) * 0x100000000) + (low >>> 0);\n}\n\n/**\n * @param {number} val\n * @param {PbfWriter} pbf\n */\nfunction writeBigVarint(val, pbf) {\n    let low, high;\n\n    if (val >= 0) {\n        low  = (val % 0x100000000) | 0;\n        high = (val / 0x100000000) | 0;\n    } else {\n        low  = ~(-val % 0x100000000);\n        high = ~(-val / 0x100000000);\n\n        if (low ^ 0xffffffff) {\n            low = (low + 1) | 0;\n        } else {\n            low = 0;\n            high = (high + 1) | 0;\n        }\n    }\n\n    if (val >= 0x10000000000000000 || val < -0x10000000000000000) {\n        throw new Error('Given varint doesn\\'t fit into 10 bytes');\n    }\n\n    pbf.realloc(10);\n\n    writeBigVarintLow(low, high, pbf);\n    writeBigVarintHigh(high, pbf);\n}\n\n/**\n * @param {number} high\n * @param {number} low\n * @param {PbfWriter} pbf\n */\nfunction writeBigVarintLow(low, high, pbf) {\n    pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n    pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n    pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n    pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n    pbf.buf[pbf.pos]   = low & 0x7f;\n}\n\n/**\n * @param {number} high\n * @param {PbfWriter} pbf\n */\nfunction writeBigVarintHigh(high, pbf) {\n    const lsb = (high & 0x07) << 4;\n\n    pbf.buf[pbf.pos++] |= lsb         | ((high >>>= 3) ? 0x80 : 0); if (!high) return;\n    pbf.buf[pbf.pos++]  = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n    pbf.buf[pbf.pos++]  = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n    pbf.buf[pbf.pos++]  = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n    pbf.buf[pbf.pos++]  = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n    pbf.buf[pbf.pos++]  = high & 0x7f;\n}\n\n/**\n * @param {number} startPos\n * @param {number} len\n * @param {PbfWriter} pbf\n */\nfunction makeRoomForExtraLength(startPos, len, pbf) {\n    const extraLen =\n        len <= 0x3fff ? 1 :\n        len <= 0x1fffff ? 2 :\n        len <= 0xfffffff ? 3 : Math.floor(Math.log(len) / (Math.LN2 * 7));\n\n    // if 1 byte isn't enough for encoding message length, shift the data to the right\n    pbf.realloc(extraLen);\n    pbf.buf.copyWithin(startPos + extraLen, startPos, pbf.pos);\n}\n\n/**\n * @param {number[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedVarint(arr, pbf) {\n    for (let i = 0; i < arr.length; i++) pbf.writeVarint(arr[i]);\n}\n/**\n * @param {number[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedSVarint(arr, pbf) {\n    for (let i = 0; i < arr.length; i++) pbf.writeSVarint(arr[i]);\n}\n/**\n * @param {number[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedFloat(arr, pbf) {\n    for (let i = 0; i < arr.length; i++) pbf.writeFloat(arr[i]);\n}\n/**\n * @param {number[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedDouble(arr, pbf) {\n    for (let i = 0; i < arr.length; i++) pbf.writeDouble(arr[i]);\n}\n/**\n * @param {boolean[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedBoolean(arr, pbf) {\n    for (let i = 0; i < arr.length; i++) pbf.writeBoolean(arr[i]);\n}\n/**\n * @param {number[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedFixed32(arr, pbf) {\n    for (let i = 0; i < arr.length; i++) pbf.writeFixed32(arr[i]);\n}\n/**\n * @param {number[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedSFixed32(arr, pbf) {\n    for (let i = 0; i < arr.length; i++) pbf.writeSFixed32(arr[i]);\n}\n/**\n * @param {number[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedFixed64(arr, pbf) {\n    for (let i = 0; i < arr.length; i++) pbf.writeFixed64(arr[i]);\n}\n/**\n * @param {number[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedSFixed64(arr, pbf) {\n    for (let i = 0; i < arr.length; i++) pbf.writeSFixed64(arr[i]);\n}\n\n// Buffer code below from https://github.com/feross/buffer, MIT-licensed\n\n/**\n * @param {Uint8Array} buf\n * @param {number} pos\n * @param {number} end\n */\nfunction readUtf8(buf, pos, end) {\n    let str = '';\n    let i = pos;\n\n    while (i < end) {\n        const b0 = buf[i];\n        let c = null; // codepoint\n        let bytesPerSequence =\n            b0 > 0xEF ? 4 :\n            b0 > 0xDF ? 3 :\n            b0 > 0xBF ? 2 : 1;\n\n        if (i + bytesPerSequence > end) break;\n\n        let b1, b2, b3;\n\n        if (bytesPerSequence === 1) {\n            if (b0 < 0x80) {\n                c = b0;\n            }\n        } else if (bytesPerSequence === 2) {\n            b1 = buf[i + 1];\n            if ((b1 & 0xC0) === 0x80) {\n                c = (b0 & 0x1F) << 0x6 | (b1 & 0x3F);\n                if (c <= 0x7F) {\n                    c = null;\n                }\n            }\n        } else if (bytesPerSequence === 3) {\n            b1 = buf[i + 1];\n            b2 = buf[i + 2];\n            if ((b1 & 0xC0) === 0x80 && (b2 & 0xC0) === 0x80) {\n                c = (b0 & 0xF) << 0xC | (b1 & 0x3F) << 0x6 | (b2 & 0x3F);\n                if (c <= 0x7FF || (c >= 0xD800 && c <= 0xDFFF)) {\n                    c = null;\n                }\n            }\n        } else if (bytesPerSequence === 4) {\n            b1 = buf[i + 1];\n            b2 = buf[i + 2];\n            b3 = buf[i + 3];\n            if ((b1 & 0xC0) === 0x80 && (b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n                c = (b0 & 0xF) << 0x12 | (b1 & 0x3F) << 0xC | (b2 & 0x3F) << 0x6 | (b3 & 0x3F);\n                if (c <= 0xFFFF || c >= 0x110000) {\n                    c = null;\n                }\n            }\n        }\n\n        if (c === null) {\n            c = 0xFFFD;\n            bytesPerSequence = 1;\n\n        } else if (c > 0xFFFF) {\n            c -= 0x10000;\n            str += String.fromCharCode(c >>> 10 & 0x3FF | 0xD800);\n            c = 0xDC00 | c & 0x3FF;\n        }\n\n        str += String.fromCharCode(c);\n        i += bytesPerSequence;\n    }\n\n    return str;\n}\n\n/**\n * @param {Uint8Array} buf\n * @param {string} str\n * @param {number} pos\n */\nfunction writeUtf8(buf, str, pos) {\n    for (let i = 0, c, lead; i < str.length; i++) {\n        c = str.charCodeAt(i); // code point\n\n        if (c > 0xD7FF && c < 0xE000) {\n            if (lead) {\n                if (c < 0xDC00) {\n                    buf[pos++] = 0xEF;\n                    buf[pos++] = 0xBF;\n                    buf[pos++] = 0xBD;\n                    lead = c;\n                    continue;\n                } else {\n                    c = lead - 0xD800 << 10 | c - 0xDC00 | 0x10000;\n                    lead = null;\n                }\n            } else {\n                if (c > 0xDBFF || (i + 1 === str.length)) {\n                    buf[pos++] = 0xEF;\n                    buf[pos++] = 0xBF;\n                    buf[pos++] = 0xBD;\n                } else {\n                    lead = c;\n                }\n                continue;\n            }\n        } else if (lead) {\n            buf[pos++] = 0xEF;\n            buf[pos++] = 0xBF;\n            buf[pos++] = 0xBD;\n            lead = null;\n        }\n\n        if (c < 0x80) {\n            buf[pos++] = c;\n        } else {\n            if (c < 0x800) {\n                buf[pos++] = c >> 0x6 | 0xC0;\n            } else {\n                if (c < 0x10000) {\n                    buf[pos++] = c >> 0xC | 0xE0;\n                } else {\n                    buf[pos++] = c >> 0x12 | 0xF0;\n                    buf[pos++] = c >> 0xC & 0x3F | 0x80;\n                }\n                buf[pos++] = c >> 0x6 & 0x3F | 0x80;\n            }\n            buf[pos++] = c & 0x3F | 0x80;\n        }\n    }\n    return pos;\n}\n"]}